6 skills found
chrisneagu / FTC Skystone Dark Angels Romania 2020NOTICE This repository contains the public FTC SDK for the SKYSTONE (2019-2020) competition season. If you are looking for the current season's FTC SDK software, please visit the new and permanent home of the public FTC SDK: FtcRobotController repository Welcome! This GitHub repository contains the source code that is used to build an Android app to control a FIRST Tech Challenge competition robot. To use this SDK, download/clone the entire project to your local computer. Getting Started If you are new to robotics or new to the FIRST Tech Challenge, then you should consider reviewing the FTC Blocks Tutorial to get familiar with how to use the control system: FTC Blocks Online Tutorial Even if you are an advanced Java programmer, it is helpful to start with the FTC Blocks tutorial, and then migrate to the OnBot Java Tool or to Android Studio afterwards. Downloading the Project If you are an Android Studio programmer, there are several ways to download this repo. Note that if you use the Blocks or OnBot Java Tool to program your robot, then you do not need to download this repository. If you are a git user, you can clone the most current version of the repository: git clone https://github.com/FIRST-Tech-Challenge/SKYSTONE.git Or, if you prefer, you can use the "Download Zip" button available through the main repository page. Downloading the project as a .ZIP file will keep the size of the download manageable. You can also download the project folder (as a .zip or .tar.gz archive file) from the Downloads subsection of the Releases page for this repository. Once you have downloaded and uncompressed (if needed) your folder, you can use Android Studio to import the folder ("Import project (Eclipse ADT, Gradle, etc.)"). Getting Help User Documentation and Tutorials FIRST maintains online documentation with information and tutorials on how to use the FIRST Tech Challenge software and robot control system. You can access this documentation using the following link: SKYSTONE Online Documentation Note that the online documentation is an "evergreen" document that is constantly being updated and edited. It contains the most current information about the FIRST Tech Challenge software and control system. Javadoc Reference Material The Javadoc reference documentation for the FTC SDK is now available online. Click on the following link to view the FTC SDK Javadoc documentation as a live website: FTC Javadoc Documentation Documentation for the FTC SDK is also included with this repository. There is a subfolder called "doc" which contains several subfolders: The folder "apk" contains the .apk files for the FTC Driver Station and FTC Robot Controller apps. The folder "javadoc" contains the JavaDoc user documentation for the FTC SDK. Online User Forum For technical questions regarding the Control System or the FTC SDK, please visit the FTC Technology forum: FTC Technology Forum Release Information Version 5.5 (20200824-090813) Version 5.5 requires Android Studio 4.0 or later. New features Adds support for calling custom Java classes from Blocks OpModes (fixes SkyStone issue #161). Classes must be in the org.firstinspires.ftc.teamcode package. Methods must be public static and have no more than 21 parameters. Parameters declared as OpMode, LinearOpMode, Telemetry, and HardwareMap are supported and the argument is provided automatically, regardless of the order of the parameters. On the block, the sockets for those parameters are automatically filled in. Parameters declared as char or java.lang.Character will accept any block that returns text and will only use the first character in the text. Parameters declared as boolean or java.lang.Boolean will accept any block that returns boolean. Parameters declared as byte, java.lang.Byte, short, java.lang.Short, int, java.lang.Integer, long, or java.lang.Long, will accept any block that returns a number and will round that value to the nearest whole number. Parameters declared as float, java.lang.Float, double, java.lang.Double will accept any block that returns a number. Adds telemetry API method for setting display format Classic Monospace HTML (certain tags only) Adds blocks support for switching cameras. Adds Blocks support for TensorFlow Object Detection with a custom model. Adds support for uploading a custom TensorFlow Object Detection model in the Manage page, which is especially useful for Blocks and OnBotJava users. Shows new Control Hub blink codes when the WiFi band is switched using the Control Hub's button (only possible on Control Hub OS 1.1.2) Adds new warnings which can be disabled in the Advanced RC Settings Mismatched app versions warning Unnecessary 2.4 GHz WiFi usage warning REV Hub is running outdated firmware (older than version 1.8.2) Adds support for Sony PS4 gamepad, and reworks how gamepads work on the Driver Station Removes preference which sets gamepad type based on driver position. Replaced with menu which allows specifying type for gamepads with unknown VID and PID Attempts to auto-detect gamepad type based on USB VID and PID If gamepad VID and PID is not known, use type specified by user for that VID and PID If gamepad VID and PID is not known AND the user has not specified a type for that VID and PID, an educated guess is made about how to map the gamepad Driver Station will now attempt to automatically recover from a gamepad disconnecting, and re-assign it to the position it was assigned to when it dropped If only one gamepad is assigned and it drops: it can be recovered If two gamepads are assigned, and have different VID/PID signatures, and only one drops: it will be recovered If two gamepads are assigned, and have different VID/PID signatures, and BOTH drop: both will be recovered If two gamepads are assigned, and have the same VID/PID signatures, and only one drops: it will be recovered If two gamepads are assigned, and have the same VID/PID signatures, and BOTH drop: neither will be recovered, because of the ambiguity of the gamepads when they re-appear on the USB bus. There is currently one known edge case: if there are two gamepads with the same VID/PID signature plugged in, but only one is assigned, and they BOTH drop, it's a 50-50 chance of which one will be chosen for automatic recovery to the assigned position: it is determined by whichever one is re-enumerated first by the USB bus controller. Adds landscape user interface to Driver Station New feature: practice timer with audio cues New feature (Control Hub only): wireless network connection strength indicator (0-5 bars) New feature (Control Hub only): tapping on the ping/channel display will switch to an alternate display showing radio RX dBm and link speed (tap again to switch back) The layout will NOT autorotate. You can switch the layout from the Driver Station's settings menu. Breaking changes Removes support for Android versions 4.4 through 5.1 (KitKat and Lollipop). The minSdkVersion is now 23. Removes the deprecated LinearOpMode methods waitOneFullHardwareCycle() and waitForNextHardwareCycle() Enhancements Handles RS485 address of Control Hub automatically The Control Hub is automatically given a reserved address Existing configuration files will continue to work All addresses in the range of 1-10 are still available for Expansion Hubs The Control Hub light will now normally be solid green, without blinking to indicate the address The Control Hub will not be shown on the Expansion Hub Address Change settings page Improves REV Hub firmware updater The user can now choose between all available firmware update files Version 1.8.2 of the REV Hub firmware is bundled into the Robot Controller app. Text was added to clarify that Expansion Hubs can only be updated via USB. Firmware update speed was reduced to improve reliability Allows REV Hub firmware to be updated directly from the Manage webpage Improves log viewer on Robot Controller Horizontal scrolling support (no longer word wrapped) Supports pinch-to-zoom Uses a monospaced font Error messages are highlighted New color scheme Attempts to force-stop a runaway/stuck OpMode without restarting the entire app Not all types of runaway conditions are stoppable, but if the user code attempts to talk to hardware during the runaway, the system should be able to capture it. Makes various tweaks to the Self Inspect screen Renames "OS version" entry to "Android version" Renames "WiFi Direct Name" to "WiFi Name" Adds Control Hub OS version, when viewing the report of a Control Hub Hides the airplane mode entry, when viewing the report of a Control Hub Removes check for ZTE Speed Channel Changer Shows firmware version for all Expansion and Control Hubs Reworks network settings portion of Manage page All network settings are now applied with a single click The WiFi Direct channel of phone-based Robot Controllers can now be changed from the Manage page WiFi channels are filtered by band (2.4 vs 5 GHz) and whether they overlap with other channels The current WiFi channel is pre-selected on phone-based Robot Controllers, and Control Hubs running OS 1.1.2 or later. On Control Hubs running OS 1.1.2 or later, you can choose to have the system automatically select a channel on the 5 GHz band Improves OnBotJava New light and dark themes replace the old themes (chaos, github, chrome,...) the new default theme is light and will be used when you first update to this version OnBotJava now has a tabbed editor Read-only offline mode Improves function of "exit" menu item on Robot Controller and Driver Station Now guaranteed to be fully stopped and unloaded from memory Shows a warning message if a LinearOpMode exists prematurely due to failure to monitor for the start condition Improves error message shown when the Driver Station and Robot Controller are incompatible with each other Driver Station OpMode Control Panel now disabled while a Restart Robot is in progress Disables advanced settings related to WiFi direct when the Robot Controller is a Control Hub. Tint phone battery icons on Driver Station when low/critical. Uses names "Control Hub Portal" and "Control Hub" (when appropriate) in new configuration files Improve I2C read performance Very large improvement on Control Hub; up to ~2x faster with small (e.g. 6 byte) reads Not as apparent on Expansion Hubs connected to a phone Update/refresh build infrastructure Update to 'androidx' support library from 'com.android.support:appcompat', which is end-of-life Update targetSdkVersion and compileSdkVersion to 28 Update Android Studio's Android plugin to latest Fix reported build timestamp in 'About' screen Add sample illustrating manual webcam use: ConceptWebcam Bug fixes Fixes SkyStone issue #248 Fixes SkyStone issue #232 and modifies bulk caching semantics to allow for cache-preserving MANUAL/AUTO transitions. Improves performance when REV 2M distance sensor is unplugged Improves readability of Toast messages on certain devices Allows a Driver Station to connect to a Robot Controller after another has disconnected Improves generation of fake serial numbers for UVC cameras which do not provide a real serial number Previously some devices would assign such cameras a serial of 0:0 and fail to open and start streaming Fixes ftc_app issue #638. Fixes a slew of bugs with the Vuforia camera monitor including: Fixes bug where preview could be displayed with a wonky aspect ratio Fixes bug where preview could be cut off in landscape Fixes bug where preview got totally messed up when rotating phone Fixes bug where crosshair could drift off target when using webcams Fixes issue in UVC driver on some devices (ftc_app 681) if streaming was started/stopped multiple times in a row Issue manifested as kernel panic on devices which do not have this kernel patch. On affected devices which do have the patch, the issue was manifest as simply a failure to start streaming. The Tech Team believes that the root cause of the issue is a bug in the Linux kernel XHCI driver. A workaround was implemented in the SDK UVC driver. Fixes bug in UVC driver where often half the frames from the camera would be dropped (e.g. only 15FPS delivered during a streaming session configured for 30FPS). Fixes issue where TensorFlow Object Detection would show results whose confidence was lower than the minimum confidence parameter. Fixes a potential exploitation issue of CVE-2019-11358 in OnBotJava Fixes changing the address of an Expansion Hub with additional Expansion Hubs connected to it Preserves the Control Hub's network connection when "Restart Robot" is selected Fixes issue where device scans would fail while the Robot was restarting Fix RenderScript usage Use androidx.renderscript variant: increased compatibility Use RenderScript in Java mode, not native: simplifies build Fixes webcam-frame-to-bitmap conversion problem: alpha channel wasn't being initialized, only R, G, & B Fixes possible arithmetic overflow in Deadline Fixes deadlock in Vuforia webcam support which could cause 5-second delays when stopping OpMode Version 5.4 (20200108-101156) Fixes SkyStone issue #88 Adds an inspection item that notes when a robot controller (Control Hub) is using the factory default password. Fixes SkyStone issue #61 Fixes SkyStone issue #142 Fixes ftc_app issue #417 by adding more current and voltage monitoring capabilities for REV Hubs. Fixes a crash sometimes caused by OnBotJava activity Improves OnBotJava autosave functionality ftc_app #738 Fixes system responsiveness issue when an Expansion Hub is disconnected Fixes issue where IMU initialization could prevent Op Modes from stopping Fixes issue where AndroidTextToSpeech.speak() would fail if it was called too early Adds telemetry.speak() methods and blocks, which cause the Driver Station (if also updated) to speak text Adds and improves Expansion Hub-related warnings Improves Expansion Hub low battery warning Displays the warning immediately after the hub reports it Specifies whether the condition is current or occurred temporarily during an OpMode run Displays which hubs reported low battery Displays warning when hub loses and regains power during an OpMode run Fixes the hub's LED pattern after this condition Displays warning when Expansion Hub is not responding to commands Specifies whether the condition is current or occurred temporarily during an OpMode run Clarifies warning when Expansion Hub is not present at startup Specifies that this condition requires a Robot Restart before the hub can be used. The hub light will now accurately reflect this state Improves logging and reduces log spam during these conditions Syncs the Control Hub time and timezone to a connected web browser programming the robot, if a Driver Station is not available. Adds bulk read functionality for REV Hubs A bulk caching mode must be set at the Hub level with LynxModule#setBulkCachingMode(). This applies to all relevant SDK hardware classes that reference that Hub. The following following Hub bulk caching modes are available: BulkCachingMode.OFF (default): All hardware calls operate as usual. Bulk data can read through LynxModule#getBulkData() and processed manually. BulkCachingMode.AUTO: Applicable hardware calls are served from a bulk read cache that is cleared/refreshed automatically to ensure identical commands don't hit the same cache. The cache can also be cleared manually with LynxModule#clearBulkCache(), although this is not recommended. (advanced users) BulkCachingMode.MANUAL: Same as BulkCachingMode.AUTO except the cache is never cleared automatically. To avoid getting stale data, the cache must be manually cleared at the beginning of each loop body or as the user deems appropriate. Removes PIDF Annotation values added in Rev 5.3 (to AndyMark, goBILDA and TETRIX motor configurations). The new motor types will still be available but their Default control behavior will revert back to Rev 5.2 Adds new ConceptMotorBulkRead sample Opmode to demonstrate and compare Motor Bulk-Read modes for reducing I/O latencies. Version 5.3 (20191004-112306) Fixes external USB/UVC webcam support Makes various bugfixes and improvements to Blocks page, including but not limited to: Many visual tweaks Browser zoom and window resize behave better Resizing the Java preview pane works better and more consistently across browsers The Java preview pane consistently gets scrollbars when needed The Java preview pane is hidden by default on phones Internet Explorer 11 should work Large dropdown lists display properly on lower res screens Disabled buttons are now visually identifiable as disabled A warning is shown if a user selects a TFOD sample, but their device is not compatible Warning messages in a Blocks op mode are now visible by default. Adds goBILDA 5201 and 5202 motors to Robot Configurator Adds PIDF Annotation values to AndyMark, goBILDA and TETRIX motor configurations. This has the effect of causing the RUN_USING_ENCODERS and RUN_TO_POSITION modes to use PIDF vs PID closed loop control on these motors. This should provide more responsive, yet stable, speed control. PIDF adds Feedforward control to the basic PID control loop. Feedforward is useful when controlling a motor's speed because it "anticipates" how much the control voltage must change to achieve a new speed set-point, rather than requiring the integrated error to change sufficiently. The PIDF values were chosen to provide responsive, yet stable, speed control on a lightly loaded motor. The more heavily a motor is loaded (drag or friction), the more noticable the PIDF improvement will be. Fixes startup crash on Android 10 Fixes ftc_app issue #712 (thanks to FROGbots-4634) Fixes ftc_app issue #542 Allows "A" and lowercase letters when naming device through RC and DS apps. Version 5.2 (20190905-083277) Fixes extra-wide margins on settings activities, and placement of the new configuration button Adds Skystone Vuforia image target data. Includes sample Skystone Vuforia Navigation op modes (Java). Includes sample Skystone Vuforia Navigation op modes (Blocks). Adds TensorFlow inference model (.tflite) for Skystone game elements. Includes sample Skystone TensorFlow op modes (Java). Includes sample Skystone TensorFlow op modes (Blocks). Removes older (season-specific) sample op modes. Includes 64-bit support (to comply with Google Play requirements). Protects against Stuck OpModes when a Restart Robot is requested. (Thanks to FROGbots-4634) (ftc_app issue #709) Blocks related changes: Fixes bug with blocks generated code when hardware device name is a java or javascript reserved word. Shows generated java code for blocks, even when hardware items are missing from the active configuration. Displays warning icon when outdated Vuforia and TensorFlow blocks are used (SkyStone issue #27) Version 5.1 (20190820-222104) Defines default PIDF parameters for the following motors: REV Core Hex Motor REV 20:1 HD Hex Motor REV 40:1 HD Hex Motor Adds back button when running on a device without a system back button (such as a Control Hub) Allows a REV Control Hub to update the firmware on a REV Expansion Hub via USB Fixes SkyStone issue #9 Fixes ftc_app issue #715 Prevents extra DS User clicks by filtering based on current state. Prevents incorrect DS UI state changes when receiving new OpMode list from RC Adds support for REV Color Sensor V3 Adds a manual-refresh DS Camera Stream for remotely viewing RC camera frames. To show the stream on the DS, initialize but do not run a stream-enabled opmode, select the Camera Stream option in the DS menu, and tap the image to refresh. This feature is automatically enabled when using Vuforia or TFOD—no additional RC configuration is required for typical use cases. To hide the stream, select the same menu item again. Note that gamepads are disabled and the selected opmode cannot be started while the stream is open as a safety precaution. To use custom streams, consult the API docs for CameraStreamServer#setSource and CameraStreamSource. Adds many Star Wars sounds to RobotController resources. Added SKYSTONE Sounds Chooser Sample Program. Switches out startup, connect chimes, and error/warning sounds for Star Wars sounds Updates OnBot Java to use a WebSocket for communication with the robot The OnBot Java page no longer has to do a full refresh when a user switches from editing one file to another Known issues: Camera Stream The Vuforia camera stream inherits the issues present in the phone preview (namely ftc_app issue #574). This problem does not affect the TFOD camera stream even though it receives frames from Vuforia. The orientation of the stream frames may not always match the phone preview. For now, these frames may be rotated manually via a custom CameraStreamSource if desired. OnBotJava Browser back button may not always work correctly It's possible for a build to be queued, but not started. The OnBot Java build console will display a warning if this occurs. A user might not realize they are editing a different file if the user inadvertently switches from one file to another since this switch is now seamless. The name of the currently open file is displayed in the browser tab. Version 5.0 (built on 19.06.14) Support for the REV Robotics Control Hub. Adds a Java preview pane to the Blocks editor. Adds a new offline export feature to the Blocks editor. Display wifi channel in Network circle on Driver Station. Adds calibration for Logitech C270 Updates build tooling and target SDK. Compliance with Google's permissions infrastructure (Required after build tooling update). Keep Alives to mitigate the Motorola wifi scanning problem. Telemetry substitute no longer necessary. Improves Vuforia error reporting. Fixes ftctechnh/ftc_app issues 621, 713. Miscellaneous bug fixes and improvements. Version 4.3 (built on 18.10.31) Includes missing TensorFlow-related libraries and files. Version 4.2 (built on 18.10.30) Includes fix to avoid deadlock situation with WatchdogMonitor which could result in USB communication errors. Comm error appeared to require that user disconnect USB cable and restart the Robot Controller app to recover. robotControllerLog.txt would have error messages that included the words "E RobotCore: lynx xmit lock: #### abandoning lock:" Includes fix to correctly list the parent module address for a REV Robotics Expansion Hub in a configuration (.xml) file. Bug in versions 4.0 and 4.1 would incorrect list the address module for a parent REV Robotics device as "1". If the parent module had a higher address value than the daisy-chained module, then this bug would prevent the Robot Controller from communicating with the downstream Expansion Hub. Added requirement for ACCESS_COARSE_LOCATION to allow a Driver Station running Android Oreo to scan for Wi-Fi Direct devices. Added google() repo to build.gradle because aapt2 must be downloaded from the google() repository beginning with version 3.2 of the Android Gradle Plugin. Important Note: Android Studio users will need to be connected to the Internet the first time build the ftc_app project. Internet connectivity is required for the first build so the appropriate files can be downloaded from the Google repository. Users should not need to be connected to the Internet for subsequent builds. This should also fix buid issue where Android Studio would complain that it "Could not find com.android.tools.lint:lint-gradle:26.1.4" (or similar). Added support for REV Spark Mini motor controller as part of the configuration menu for a servo/PWM port on the REV Expansion Hub. Provide examples for playing audio files in an Op Mode. Block Development Tool Changes Includes a fix for a problem with the Velocity blocks that were reported in the FTC Technology forum (Blocks Programming subforum). Change the "Save completed successfully." message to a white color so it will contrast with a green background. Fixed the "Download image" feature so it will work if there are text blocks in the op mode. Introduce support for Google's TensorFlow Lite technology for object detetion for 2018-2019 game. TensorFlow lite can recognize Gold Mineral and Silver Mineral from 2018-2019 game. Example Java and Block op modes are included to show how to determine the relative position of the gold block (left, center, right). Version 4.1 (released on 18.09.24) Changes include: Fix to prevent crash when deprecated configuration annotations are used. Change to allow FTC Robot Controller APK to be auto-updated using FIRST Global Control Hub update scripts. Removed samples for non supported / non legal hardware. Improvements to Telemetry.addData block with "text" socket. Updated Blocks sample op mode list to include Rover Ruckus Vuforia example. Update SDK library version number. Version 4.0 (released on 18.09.12) Changes include: Initial support for UVC compatible cameras If UVC camera has a unique serial number, RC will detect and enumerate by serial number. If UVC camera lacks a unique serial number, RC will only support one camera of that type connected. Calibration settings for a few cameras are included (see TeamCode/src/main/res/xml/teamwebcamcalibrations.xml for details). User can upload calibration files from Program and Manage web interface. UVC cameras seem to draw a fair amount of electrical current from the USB bus. This does not appear to present any problems for the REV Robotics Control Hub. This does seem to create stability problems when using some cameras with an Android phone-based Robot Controller. FTC Tech Team is investigating options to mitigate this issue with the phone-based Robot Controllers. Updated sample Vuforia Navigation and VuMark Op Modes to demonstrate how to use an internal phone-based camera and an external UVC webcam. Support for improved motor control. REV Robotics Expansion Hub firmware 1.8 and greater will support a feed forward mechanism for closed loop motor control. FTC SDK has been modified to support PIDF coefficients (proportional, integral, derivative, and feed forward). FTC Blocks development tool modified to include PIDF programming blocks. Deprecated older PID-related methods and variables. REV's 1.8.x PIDF-related changes provide a more linear and accurate way to control a motor. Wireless Added 5GHz support for wireless channel changing for those devices that support it. Tested with Moto G5 and E4 phones. Also tested with other (currently non-approved) phones such as Samsung Galaxy S8. Improved Expansion Hub firmware update support in Robot Controller app Changes to make the system more robust during the firmware update process (when performed through Robot Controller app). User no longer has to disconnect a downstream daisy-chained Expansion Hub when updating an Expansion Hub's firmware. If user is updating an Expansion Hub's firmware through a USB connection, he/she does not have to disconnect RS485 connection to other Expansion Hubs. The user still must use a USB connection to update an Expansion Hub's firmware. The user cannot update the Expansion Hub firmware for a downstream device that is daisy chained through an RS485 connection. If an Expansion Hub accidentally gets "bricked" the Robot Controller app is now more likely to recognize the Hub when it scans the USB bus. Robot Controller app should be able to detect an Expansion Hub, even if it accidentally was bricked in a previous update attempt. Robot Controller app should be able to install the firmware onto the Hub, even if if accidentally was bricked in a previous update attempt. Resiliency FTC software can detect and enable an FTDI reset feature that is available with REV Robotics v1.8 Expansion Hub firmware and greater. When enabled, the Expansion Hub can detect if it hasn't communicated with the Robot Controller over the FTDI (USB) connection. If the Hub hasn't heard from the Robot Controller in a while, it will reset the FTDI connection. This action helps system recover from some ESD-induced disruptions. Various fixes to improve reliability of FTC software. Blocks Fixed errors with string and list indices in blocks export to java. Support for USB connected UVC webcams. Refactored optimized Blocks Vuforia code to support Rover Ruckus image targets. Added programming blocks to support PIDF (proportional, integral, derivative and feed forward) motor control. Added formatting options (under Telemetry and Miscellaneous categories) so user can set how many decimal places to display a numerical value. Support to play audio files (which are uploaded through Blocks web interface) on Driver Station in addition to the Robot Controller. Fixed bug with Download Image of Blocks feature. Support for REV Robotics Blinkin LED Controller. Support for REV Robotics 2m Distance Sensor. Added support for a REV Touch Sensor (no longer have to configure as a generic digital device). Added blocks for DcMotorEx methods. These are enhanced methods that you can use when supported by the motor controller hardware. The REV Robotics Expansion Hub supports these enhanced methods. Enhanced methods include methods to get/set motor velocity (in encoder pulses per second), get/set PIDF coefficients, etc.. Modest Improvements in Logging Decrease frequency of battery checker voltage statements. Removed non-FTC related log statements (wherever possible). Introduced a "Match Logging" feature. Under "Settings" a user can enable/disable this feature (it's disabled by default). If enabled, user provides a "Match Number" through the Driver Station user interface (top of the screen). The Match Number is used to create a log file specifically with log statements from that particular Op Mode run. Match log files are stored in /sdcard/FIRST/matlogs on the Robot Controller. Once an op mode run is complete, the Match Number is cleared. This is a convenient way to create a separate match log with statements only related to a specific op mode run. New Devices Support for REV Robotics Blinkin LED Controller. Support for REV Robotics 2m Distance Sensor. Added configuration option for REV 20:1 HD Hex Motor. Added support for a REV Touch Sensor (no longer have to configure as a generic digital device). Miscellaneous Fixed some errors in the definitions for acceleration and velocity in our javadoc documentation. Added ability to play audio files on Driver Station When user is configuring an Expansion Hub, the LED on the Expansion Hub will change blink pattern (purple-cyan) to indicate which Hub is currently being configured. Renamed I2cSensorType to I2cDeviceType. Added an external sample Op Mode that demonstrates localization using 2018-2019 (Rover Ruckus presented by QualComm) Vuforia targets. Added an external sample Op Mode that demonstrates how to use the REV Robotics 2m Laser Distance Sensor. Added an external sample Op Mode that demonstrates how to use the REV Robotics Blinkin LED Controller. Re-categorized external Java sample Op Modes to "TeleOp" instead of "Autonomous". Known issues: Initial support for UVC compatible cameras UVC cameras seem to draw significant amount of current from the USB bus. This does not appear to present any problems for the REV Robotics Control Hub. This does seem to create stability problems when using some cameras with an Android phone-based Robot Controller. FTC Tech Team is investigating options to mitigate this issue with the phone-based Robot Controllers. There might be a possible deadlock which causes the RC to become unresponsive when using a UVC webcam with a Nougat Android Robot Controller. Wireless When user selects a wireless channel, this channel does not necessarily persist if the phone is power cycled. Tech Team is hoping to eventually address this issue in a future release. Issue has been present since apps were introduced (i.e., it is not new with the v4.0 release). Wireless channel is not currently displayed for WiFi Direct connections. Miscellaneous The blink indication feature that shows which Expansion Hub is currently being configured does not work for a newly created configuration file. User has to first save a newly created configuration file and then close and re-edit the file in order for blink indicator to work. Version 3.6 (built on 17.12.18) Changes include: Blocks Changes Uses updated Google Blockly software to allow users to edit their op modes on Apple iOS devices (including iPad and iPhone). Improvement in Blocks tool to handle corrupt op mode files. Autonomous op modes should no longer get switched back to tele-op after re-opening them to be edited. The system can now detect type mismatches during runtime and alert the user with a message on the Driver Station. Updated javadoc documentation for setPower() method to reflect correct range of values (-1 to +1). Modified VuforiaLocalizerImpl to allow for user rendering of frames Added a user-overrideable onRenderFrame() method which gets called by the class's renderFrame() method. Version 3.5 (built on 17.10.30) Changes with version 3.5 include: Introduced a fix to prevent random op mode stops, which can occur after the Robot Controller app has been paused and then resumed (for example, when a user temporarily turns off the display of the Robot Controller phone, and then turns the screen back on). Introduced a fix to prevent random op mode stops, which were previously caused by random peer disconnect events on the Driver Station. Fixes issue where log files would be closed on pause of the RC or DS, but not re-opened upon resume. Fixes issue with battery handler (voltage) start/stop race. Fixes issue where Android Studio generated op modes would disappear from available list in certain situations. Fixes problem where OnBot Java would not build on REV Robotics Control Hub. Fixes problem where OnBot Java would not build if the date and time on the Robot Controller device was "rewound" (set to an earlier date/time). Improved error message on OnBot Java that occurs when renaming a file fails. Removed unneeded resources from android.jar binaries used by OnBot Java to reduce final size of Robot Controller app. Added MR_ANALOG_TOUCH_SENSOR block to Blocks Programming Tool. Version 3.4 (built on 17.09.06) Changes with version 3.4 include: Added telemetry.update() statement for BlankLinearOpMode template. Renamed sample Block op modes to be more consistent with Java samples. Added some additional sample Block op modes. Reworded OnBot Java readme slightly. Version 3.3 (built on 17.09.04) This version of the software includes improves for the FTC Blocks Programming Tool and the OnBot Java Programming Tool. Changes with verion 3.3 include: Android Studio ftc_app project has been updated to use Gradle Plugin 2.3.3. Android Studio ftc_app project is already using gradle 3.5 distribution. Robot Controller log has been renamed to /sdcard/RobotControllerLog.txt (note that this change was actually introduced w/ v3.2). Improvements in I2C reliability. Optimized I2C read for REV Expansion Hub, with v1.7 firmware or greater. Updated all external/samples (available through OnBot and in Android project folder). Vuforia Added support for VuMarks that will be used for the 2017-2018 season game. Blocks Update to latest Google Blockly release. Sample op modes can be selected as a template when creating new op mode. Fixed bug where the blocks would disappear temporarily when mouse button is held down. Added blocks for Range.clip and Range.scale. User can now disable/enable Block op modes. Fix to prevent occasional Blocks deadlock. OnBot Java Significant improvements with autocomplete function for OnBot Java editor. Sample op modes can be selected as a template when creating new op mode. Fixes and changes to complete hardware setup feature. Updated (and more useful) onBot welcome message. Known issues: Android Studio After updating to the new v3.3 Android Studio project folder, if you get error messages indicating "InvalidVirtualFileAccessException" then you might need to do a File->Invalidate Caches / Restart to clear the error. OnBot Java Sometimes when you push the build button to build all op modes, the RC returns an error message that the build failed. If you press the build button a second time, the build typically suceeds. Version 3.2 (built on 17.08.02) This version of the software introduces the "OnBot Java" Development Tool. Similar to the FTC Blocks Development Tool, the FTC OnBot Java Development Tool allows a user to create, edit and build op modes dynamically using only a Javascript-enabled web browser. The OnBot Java Development Tool is an integrated development environment (IDE) that is served up by the Robot Controller. Op modes are created and edited using a Javascript-enabled browser (Google Chromse is recommended). Op modes are saved on the Robot Controller Android device directly. The OnBot Java Development Tool provides a Java programming environment that does NOT need Android Studio. Changes with version 3.2 include: Enhanced web-based development tools Introduction of OnBot Java Development Tool. Web-based programming and management features are "always on" (user no longer needs to put Robot Controller into programming mode). Web-based management interface (where user can change Robot Controller name and also easily download Robot Controller log file). OnBot Java, Blocks and Management features available from web based interface. Blocks Programming Development Tool: Changed "LynxI2cColorRangeSensor" block to "REV Color/range sensor" block. Fixed tooltip for ColorSensor.isLightOn block. Added blocks for ColorSensor.getNormalizedColors and LynxI2cColorRangeSensor.getNormalizedColors. Added example op modes for digital touch sensor and REV Robotics Color Distance sensor. User selectable color themes. Includes many minor enhancements and fixes (too numerous to list). Known issues: Auto complete function is incomplete and does not support the following (for now): Access via this keyword Access via super keyword Members of the super cloass, not overridden by the class Any methods provided in the current class Inner classes Can't handle casted objects Any objects coming from an parenthetically enclosed expression Version 3.10 (built on 17.05.09) This version of the software provides support for the REV Robotics Expansion Hub. This version also includes improvements in the USB communication layer in an effort to enhance system resiliency. If you were using a 2.x version of the software previously, updating to version 3.1 requires that you also update your Driver Station software in addition to updating the Robot Controller software. Also note that in version 3.10 software, the setMaxSpeed and getMaxSpeed methods are no longer available (not deprecated, they have been removed from the SDK). Also note that the the new 3.x software incorporates motor profiles that a user can select as he/she configures the robot. Changes include: Blocks changes Added VuforiaTrackableDefaultListener.getPose and Vuforia.trackPose blocks. Added optimized blocks support for Vuforia extended tracking. Added atan2 block to the math category. Added useCompetitionFieldTargetLocations parameter to Vuforia.initialize block. If set to false, the target locations are placed at (0,0,0) with target orientation as specified in https://github.com/gearsincorg/FTCVuforiaDemo/blob/master/Robot_Navigation.java tutorial op mode. Incorporates additional improvements to USB comm layer to improve system resiliency (to recover from a greater number of communication disruptions). Additional Notes Regarding Version 3.00 (built on 17.04.13) In addition to the release changes listed below (see section labeled "Version 3.00 (built on 17.04.013)"), version 3.00 has the following important changes: Version 3.00 software uses a new version of the FTC Robocol (robot protocol). If you upgrade to v3.0 on the Robot Controller and/or Android Studio side, you must also upgrade the Driver Station software to match the new Robocol. Version 3.00 software removes the setMaxSpeed and getMaxSpeed methods from the DcMotor class. If you have an op mode that formerly used these methods, you will need to remove the references/calls to these methods. Instead, v3.0 provides the max speed information through the use of motor profiles that are selected by the user during robot configuration. Version 3.00 software currently does not have a mechanism to disable extra i2c sensors. We hope to re-introduce this function with a release in the near future. Version 3.00 (built on 17.04.13) *** Use this version of the software at YOUR OWN RISK!!! *** This software is being released as an "alpha" version. Use this version at your own risk! This pre-release software contains SIGNIFICANT changes, including changes to the Wi-Fi Direct pairing mechanism, rewrites of the I2C sensor classes, changes to the USB/FTDI layer, and the introduction of support for the REV Robotics Expansion Hub and the REV Robotics color-range-light sensor. These changes were implemented to improve the reliability and resiliency of the FTC control system. Please note, however, that version 3.00 is considered "alpha" code. This code is being released so that the FIRST community will have an opportunity to test the new REV Expansion Hub electronics module when it becomes available in May. The developers do not recommend using this code for critical applications (i.e., competition use). *** Use this version of the software at YOUR OWN RISK!!! *** Changes include: Major rework of sensor-related infrastructure. Includes rewriting sensor classes to implement synchronous I2C communication. Fix to reset Autonomous timer back to 30 seconds. Implementation of specific motor profiles for approved 12V motors (includes Tetrix, AndyMark, Matrix and REV models). Modest improvements to enhance Wi-Fi P2P pairing. Fixes telemetry log addition race. Publishes all the sources (not just a select few). Includes Block programming improvements Addition of optimized Vuforia blocks. Auto scrollbar to projects and sounds pages. Fixed blocks paste bug. Blocks execute after while-opModeIsActive loop (to allow for cleanup before exiting op mode). Added gyro integratedZValue block. Fixes bug with projects page for Firefox browser. Added IsSpeaking block to AndroidTextToSpeech. Implements support for the REV Robotics Expansion Hub Implements support for integral REV IMU (physically installed on I2C bus 0, uses same Bosch BNO055 9 axis absolute orientation sensor as Adafruit 9DOF abs orientation sensor). - Implements support for REV color/range/light sensor. Provides support to update Expansion Hub firmware through FTC SDK. Detects REV firmware version and records in log file. Includes support for REV Control Hub (note that the REV Control Hub is not yet approved for FTC use). Implements FTC Blocks programming support for REV Expansion Hub and sensor hardware. Detects and alerts when I2C device disconnect. Version 2.62 (built on 17.01.07) Added null pointer check before calling modeToByte() in finishModeSwitchIfNecessary method for ModernRoboticsUsbDcMotorController class. Changes to enhance Modern Robotics USB protocol robustness. Version 2.61 (released on 16.12.19) Blocks Programming mode changes: Fix to correct issue when an exception was thrown because an OpticalDistanceSensor object appears twice in the hardware map (the second time as a LightSensor). Version 2.6 (released on 16.12.16) Fixes for Gyro class: Improve (decrease) sensor refresh latency. fix isCalibrating issues. Blocks Programming mode changes: Blocks now ignores a device in the configuration xml if the name is empty. Other devices work in configuration work fine. Version 2.5 (internal release on released on 16.12.13) Blocks Programming mode changes: Added blocks support for AdafruitBNO055IMU. Added Download Op Mode button to FtcBocks.html. Added support for copying blocks in one OpMode and pasting them in an other OpMode. The clipboard content is stored on the phone, so the programming mode server must be running. Modified Utilities section of the toolbox. In Programming Mode, display information about the active connections. Fixed paste location when workspace has been scrolled. Added blocks support for the android Accelerometer. Fixed issue where Blocks Upload Op Mode truncated name at first dot. Added blocks support for Android SoundPool. Added type safety to blocks for Acceleration. Added type safety to blocks for AdafruitBNO055IMU.Parameters. Added type safety to blocks for AnalogInput. Added type safety to blocks for AngularVelocity. Added type safety to blocks for Color. Added type safety to blocks for ColorSensor. Added type safety to blocks for CompassSensor. Added type safety to blocks for CRServo. Added type safety to blocks for DigitalChannel. Added type safety to blocks for ElapsedTime. Added type safety to blocks for Gamepad. Added type safety to blocks for GyroSensor. Added type safety to blocks for IrSeekerSensor. Added type safety to blocks for LED. Added type safety to blocks for LightSensor. Added type safety to blocks for LinearOpMode. Added type safety to blocks for MagneticFlux. Added type safety to blocks for MatrixF. Added type safety to blocks for MrI2cCompassSensor. Added type safety to blocks for MrI2cRangeSensor. Added type safety to blocks for OpticalDistanceSensor. Added type safety to blocks for Orientation. Added type safety to blocks for Position. Added type safety to blocks for Quaternion. Added type safety to blocks for Servo. Added type safety to blocks for ServoController. Added type safety to blocks for Telemetry. Added type safety to blocks for Temperature. Added type safety to blocks for TouchSensor. Added type safety to blocks for UltrasonicSensor. Added type safety to blocks for VectorF. Added type safety to blocks for Velocity. Added type safety to blocks for VoltageSensor. Added type safety to blocks for VuforiaLocalizer.Parameters. Added type safety to blocks for VuforiaTrackable. Added type safety to blocks for VuforiaTrackables. Added type safety to blocks for enums in AdafruitBNO055IMU.Parameters. Added type safety to blocks for AndroidAccelerometer, AndroidGyroscope, AndroidOrientation, and AndroidTextToSpeech. Version 2.4 (released on 16.11.13) Fix to avoid crashing for nonexistent resources. Blocks Programming mode changes: Added blocks to support OpenGLMatrix, MatrixF, and VectorF. Added blocks to support AngleUnit, AxesOrder, AxesReference, CameraDirection, CameraMonitorFeedback, DistanceUnit, and TempUnit. Added blocks to support Acceleration. Added blocks to support LinearOpMode.getRuntime. Added blocks to support MagneticFlux and Position. Fixed typos. Made blocks for ElapsedTime more consistent with other objects. Added blocks to support Quaternion, Velocity, Orientation, AngularVelocity. Added blocks to support VuforiaTrackables, VuforiaTrackable, VuforiaLocalizer, VuforiaTrackableDefaultListener. Fixed a few blocks. Added type checking to new blocks. Updated to latest blockly. Added default variable blocks to navigation and matrix blocks. Fixed toolbox entry for openGLMatrix_rotation_withAxesArgs. When user downloads Blocks-generated op mode, only the .blk file is downloaded. When user uploads Blocks-generated op mode (.blk file), Javascript code is auto generated. Added DbgLog support. Added logging when a blocks file is read/written. Fixed bug to properly render blocks even if missing devices from configuration file. Added support for additional characters (not just alphanumeric) for the block file names (for download and upload). Added support for OpMode flavor (“Autonomous” or “TeleOp”) and group. Changes to Samples to prevent tutorial issues. Incorporated suggested changes from public pull 216 (“Replace .. paths”). Remove Servo Glitches when robot stopped. if user hits “Cancels” when editing a configuration file, clears the unsaved changes and reverts to original unmodified configuration. Added log info to help diagnose why the Robot Controller app was terminated (for example, by watch dog function). Added ability to transfer log from the controller. Fixed inconsistency for AngularVelocity Limit unbounded growth of data for telemetry. If user does not call telemetry.update() for LinearOpMode in a timely manner, data added for telemetry might get lost if size limit is exceeded. Version 2.35 (released on 16.10.06) Blockly programming mode - Removed unnecesary idle() call from blocks for new project. Version 2.30 (released on 16.10.05) Blockly programming mode: Mechanism added to save Blockly op modes from Programming Mode Server onto local device To avoid clutter, blocks are displayed in categorized folders Added support for DigitalChannel Added support for ModernRoboticsI2cCompassSensor Added support for ModernRoboticsI2cRangeSensor Added support for VoltageSensor Added support for AnalogInput Added support for AnalogOutput Fix for CompassSensor setMode block Vuforia Fix deadlock / make camera data available while Vuforia is running. Update to Vuforia 6.0.117 (recommended by Vuforia and Google to close security loophole). Fix for autonomous 30 second timer bug (where timer was in effect, even though it appeared to have timed out). opModeIsActive changes to allow cleanup after op mode is stopped (with enforced 2 second safety timeout). Fix to avoid reading i2c twice. Updated sample Op Modes. Improved logging and fixed intermittent freezing. Added digital I/O sample. Cleaned up device names in sample op modes to be consistent with Pushbot guide. Fix to allow use of IrSeekerSensorV3. Version 2.20 (released on 16.09.08) Support for Modern Robotics Compass Sensor. Support for Modern Robotics Range Sensor. Revise device names for Pushbot templates to match the names used in Pushbot guide. Fixed bug so that IrSeekerSensorV3 device is accessible as IrSeekerSensor in hardwareMap. Modified computer vision code to require an individual Vuforia license (per legal requirement from PTC). Minor fixes. Blockly enhancements: Support for Voltage Sensor. Support for Analog Input. Support for Analog Output. Support for Light Sensor. Support for Servo Controller. Version 2.10 (released on 16.09.03) Support for Adafruit IMU. Improvements to ModernRoboticsI2cGyro class Block on reset of z axis. isCalibrating() returns true while gyro is calibration. Updated sample gyro program. Blockly enhancements support for android.graphics.Color. added support for ElapsedTime. improved look and legibility of blocks. support for compass sensor. support for ultrasonic sensor. support for IrSeeker. support for LED. support for color sensor. support for CRServo prompt user to configure robot before using programming mode. Provides ability to disable audio cues. various bug fixes and improvements. Version 2.00 (released on 16.08.19) This is the new release for the upcoming 2016-2017 FIRST Tech Challenge Season. Channel change is enabled in the FTC Robot Controller app for Moto G 2nd and 3rd Gen phones. Users can now use annotations to register/disable their Op Modes. Changes in the Android SDK, JDK and build tool requirements (minsdk=19, java 1.7, build tools 23.0.3). Standardized units in analog input. Cleaned up code for existing analog sensor classes. setChannelMode and getChannelMode were REMOVED from the DcMotorController class. This is important - we no longer set the motor modes through the motor controller. setMode and getMode were added to the DcMotor class. ContinuousRotationServo class has been added to the FTC SDK. Range.clip() method has been overloaded so it can support this operation for int, short and byte integers. Some changes have been made (new methods added) on how a user can access items from the hardware map. Users can now set the zero power behavior for a DC motor so that the motor will brake or float when power is zero. Prototype Blockly Programming Mode has been added to FTC Robot Controller. Users can place the Robot Controller into this mode, and then use a device (such as a laptop) that has a Javascript enabled browser to write Blockly-based Op Modes directly onto the Robot Controller. Users can now configure the robot remotely through the FTC Driver Station app. Android Studio project supports Android Studio 2.1.x and compile SDK Version 23 (Marshmallow). Vuforia Computer Vision SDK integrated into FTC SDK. Users can use sample vision targets to get localization information on a standard FTC field. Project structure has been reorganized so that there is now a TeamCode package that users can use to place their local/custom Op Modes into this package. Inspection function has been integrated into the FTC Robot Controller and Driver Station Apps (Thanks Team HazMat… 9277 & 10650!). Audio cues have been incorporated into FTC SDK. Swap mechanism added to FTC Robot Controller configuration activity. For example, if you have two motor controllers on a robot, and you misidentified them in your configuration file, you can use the Swap button to swap the devices within the configuration file (so you do not have to manually re-enter in the configuration info for the two devices). Fix mechanism added to all user to replace an electronic module easily. For example, suppose a servo controller dies on your robot. You replace the broken module with a new module, which has a different serial number from the original servo controller. You can use the Fix button to automatically reconfigure your configuration file to use the serial number of the new module. Improvements made to fix resiliency and responsiveness of the system. For LinearOpMode the user now must for a telemetry.update() to update the telemetry data on the driver station. This update() mechanism ensures that the driver station gets the updated data properly and at the same time. The Auto Configure function of the Robot Controller is now template based. If there is a commonly used robot configuration, a template can be created so that the Auto Configure mechanism can be used to quickly configure a robot of this type. The logic to detect a runaway op mode (both in the LinearOpMode and OpMode types) and to abort the run, then auto recover has been improved/implemented. Fix has been incorporated so that Logitech F310 gamepad mappings will be correct for Marshmallow users. Release 16.07.08 For the ftc_app project, the gradle files have been modified to support Android Studio 2.1.x. Release 16.03.30 For the MIT App Inventor, the design blocks have new icons that better represent the function of each design component. Some changes were made to the shutdown logic to ensure the robust shutdown of some of our USB services. A change was made to LinearOpMode so as to allow a given instance to be executed more than once, which is required for the App Inventor. Javadoc improved/updated. Release 16.03.09 Changes made to make the FTC SDK synchronous (significant change!) waitOneFullHardwareCycle() and waitForNextHardwareCycle() are no longer needed and have been deprecated. runOpMode() (for a LinearOpMode) is now decoupled from the system's hardware read/write thread. loop() (for an OpMode) is now decoupled from the system's hardware read/write thread. Methods are synchronous. For example, if you call setMode(DcMotorController.RunMode.RESET_ENCODERS) for a motor, the encoder is guaranteed to be reset when the method call is complete. For legacy module (NXT compatible), user no longer has to toggle between read and write modes when reading from or writing to a legacy device. Changes made to enhance reliability/robustness during ESD event. Changes made to make code thread safe. Debug keystore added so that user-generated robot controller APKs will all use the same signed key (to avoid conflicts if a team has multiple developer laptops for example). Firmware version information for Modern Robotics modules are now logged. Changes made to improve USB comm reliability and robustness. Added support for voltage indicator for legacy (NXT-compatible) motor controllers. Changes made to provide auto stop capabilities for op modes. A LinearOpMode class will stop when the statements in runOpMode() are complete. User does not have to push the stop button on the driver station. If an op mode is stopped by the driver station, but there is a run away/uninterruptible thread persisting, the app will log an error message then force itself to crash to stop the runaway thread. Driver Station UI modified to display lowest measured voltage below current voltage (12V battery). Driver Station UI modified to have color background for current voltage (green=good, yellow=caution, red=danger, extremely low voltage). javadoc improved (edits and additional classes). Added app build time to About activity for driver station and robot controller apps. Display local IP addresses on Driver Station About activity. Added I2cDeviceSynchImpl. Added I2cDeviceSync interface. Added seconds() and milliseconds() to ElapsedTime for clarity. Added getCallbackCount() to I2cDevice. Added missing clearI2cPortActionFlag. Added code to create log messages while waiting for LinearOpMode shutdown. Fix so Wifi Direct Config activity will no longer launch multiple times. Added the ability to specify an alternate i2c address in software for the Modern Robotics gyro. Release 16.02.09 Improved battery checker feature so that voltage values get refreshed regularly (every 250 msec) on Driver Station (DS) user interface. Improved software so that Robot Controller (RC) is much more resilient and “self-healing” to USB disconnects: If user attempts to start/restart RC with one or more module missing, it will display a warning but still start up. When running an op mode, if one or more modules gets disconnected, the RC & DS will display warnings,and robot will keep on working in spite of the missing module(s). If a disconnected module gets physically reconnected the RC will auto detect the module and the user will regain control of the recently connected module. Warning messages are more helpful (identifies the type of module that’s missing plus its USB serial number). Code changes to fix the null gamepad reference when users try to reference the gamepads in the init() portion of their op mode. NXT light sensor output is now properly scaled. Note that teams might have to readjust their light threshold values in their op modes. On DS user interface, gamepad icon for a driver will disappear if the matching gamepad is disconnected or if that gamepad gets designated as a different driver. Robot Protocol (ROBOCOL) version number info is displayed in About screen on RC and DS apps. Incorporated a display filter on pairing screen to filter out devices that don’t use the “-“ format. This filter can be turned off to show all WiFi Direct devices. Updated text in License file. Fixed formatting error in OpticalDistanceSensor.toString(). Fixed issue on with a blank (“”) device name that would disrupt WiFi Direct Pairing. Made a change so that the WiFi info and battery info can be displayed more quickly on the DS upon connecting to RC. Improved javadoc generation. Modified code to make it easier to support language localization in the future. Release 16.01.04 Updated compileSdkVersion for apps Prevent Wifi from entering power saving mode removed unused import from driver station Corrrected "Dead zone" joystick code. LED.getDeviceName and .getConnectionInfo() return null apps check for ROBOCOL_VERSION mismatch Fix for Telemetry also has off-by-one errors in its data string sizing / short size limitations error User telemetry output is sorted. added formatting variants to DbgLog and RobotLog APIs code modified to allow for a long list of op mode names. changes to improve thread safety of RobocolDatagramSocket Fix for "missing hardware leaves robot controller disconnected from driver station" error fix for "fast tapping of Init/Start causes problems" (toast is now only instantiated on UI thread). added some log statements for thread life cycle. moved gamepad reset logic inside of initActiveOpMode() for robustness changes made to mitigate risk of race conditions on public methods. changes to try and flag when WiFi Direct name contains non-printable characters. fix to correct race condition between .run() and .close() in ReadWriteRunnableStandard. updated FTDI driver made ReadWriteRunnableStanard interface public. fixed off-by-one errors in Command constructor moved specific hardware implmentations into their own package. moved specific gamepad implemnatations to the hardware library. changed LICENSE file to new BSD version. fixed race condition when shutting down Modern Robotics USB devices. methods in the ColorSensor classes have been synchronized. corrected isBusy() status to reflect end of motion. corrected "back" button keycode. the notSupported() method of the GyroSensor class was changed to protected (it should not be public). Release 15.11.04.001 Added Support for Modern Robotics Gyro. The GyroSensor class now supports the MR Gyro Sensor. Users can access heading data (about Z axis) Users can also access raw gyro data (X, Y, & Z axes). Example MRGyroTest.java op mode included. Improved error messages More descriptive error messages for exceptions in user code. Updated DcMotor API Enable read mode on new address in setI2cAddress Fix so that driver station app resets the gamepads when switching op modes. USB-related code changes to make USB comm more responsive and to display more explicit error messages. Fix so that USB will recover properly if the USB bus returns garbage data. Fix USB initializtion race condition. Better error reporting during FTDI open. More explicit messages during USB failures. Fixed bug so that USB device is closed if event loop teardown method was not called. Fixed timer UI issue Fixed duplicate name UI bug (Legacy Module configuration). Fixed race condition in EventLoopManager. Fix to keep references stable when updating gamepad. For legacy Matrix motor/servo controllers removed necessity of appending "Motor" and "Servo" to controller names. Updated HT color sensor driver to use constants from ModernRoboticsUsbLegacyModule class. Updated MR color sensor driver to use constants from ModernRoboticsUsbDeviceInterfaceModule class. Correctly handle I2C Address change in all color sensors Updated/cleaned up op modes. Updated comments in LinearI2cAddressChange.java example op mode. Replaced the calls to "setChannelMode" with "setMode" (to match the new of the DcMotor method). Removed K9AutoTime.java op mode. Added MRGyroTest.java op mode (demonstrates how to use MR Gyro Sensor). Added MRRGBExample.java op mode (demonstrates how to use MR Color Sensor). Added HTRGBExample.java op mode (demonstrates how to use HT legacy color sensor). Added MatrixControllerDemo.java (demonstrates how to use legacy Matrix controller). Updated javadoc documentation. Updated release .apk files for Robot Controller and Driver Station apps. Release 15.10.06.002 Added support for Legacy Matrix 9.6V motor/servo controller. Cleaned up build.gradle file. Minor UI and bug fixes for driver station and robot controller apps. Throws error if Ultrasonic sensor (NXT) is not configured for legacy module port 4 or 5. Release 15.08.03.001 New user interfaces for FTC Driver Station and FTC Robot Controller apps. An init() method is added to the OpMode class. For this release, init() is triggered right before the start() method. Eventually, the init() method will be triggered when the user presses an "INIT" button on driver station. The init() and loop() methods are now required (i.e., need to be overridden in the user's op mode). The start() and stop() methods are optional. A new LinearOpMode class is introduced. Teams can use the LinearOpMode mode to create a linear (not event driven) program model. Teams can use blocking statements like Thread.sleep() within a linear op mode. The API for the Legacy Module and Core Device Interface Module have been updated. Support for encoders with the Legacy Module is now working. The hardware loop has been updated for better performance.
klonnet23 / Helloy Word{ "releases": { "2.0.4": [ "[Fixed] Refresh for Enterprise repositories did not handle API error querying branches - #7713", "[Fixed] Missing \"Discard all changes\" context menu in Changes header - #7696", "[Fixed] \"Select all\" keyboard shortcut not firing on Windows - #7759" ], "2.0.4-beta1": [ "[Fixed] Refresh for Enterprise repositories did not handle API error querying branches - #7713", "[Fixed] Missing \"Discard all changes\" context menu in Changes header - #7696", "[Fixed] \"Select all\" keyboard shortcut not firing on Windows - #7759" ], "2.0.4-beta0": [ "[Added] Extend crash reports with more information about application state for troubleshooting - #7693", "[Fixed] Crash when attempting to update pull requests with partially updated repository information - #7688", "[Fixed] Crash when loading repositories after signing in through the welcome flow - #7699" ], "2.0.3": [ "[Fixed] Crash when loading repositories after signing in through the welcome flow - #7699" ], "2.0.2": [ "[Added] Extend crash reports with more information about application state for troubleshooting - #7693" ], "2.0.1": [ "[Fixed] Crash when attempting to update pull requests with partially updated repository information - #7688" ], "2.0.0": [ "[New] You can now choose to bring your changes with you to a new branch or stash them on the current branch when switching branches - #6107", "[New] Rebase your current branch onto another branch using a guided flow - #5953", "[New] Repositories grouped by owner, and recent repositories listed at top - #6923 #7132", "[New] Suggested next steps now includes suggestion to create a pull request after publishing a branch - #7505", "[Added] .resx syntax highlighting - #7235. Thanks @say25!", "[Added] \"Exit\" menu item now has accelerator and access key - #6507. Thanks @AndreiMaga!", "[Added] Help menu entry to view documentation about keyboard shortcuts - #7184", "[Added] \"Discard all changes\" action under Branch menu - #7394. Thanks @ahuth!", "[Fixed] \"Esc\" key does not close Repository or Branch list - #7177. Thanks @roottool!", "[Fixed] Attempting to revert commits not on current branch results in an error - #6300. Thanks @msftrncs!", "[Fixed] Emoji rendering in app when account name has special characters - #6909", "[Fixed] Files staged outside Desktop for deletion are incorrectly marked as modified after committing - #4133", "[Fixed] Horizontal scroll bar appears unnecessarily when switching branches - #7212", "[Fixed] Icon accessibility labels fail when multiple icons are visible at the same time - #7174", "[Fixed] Incorrectly encoding URLs affects issue filtering - #7506", "[Fixed] License templates do not end with newline character - #6999", "[Fixed] Conflicts banners do not hide after aborting operation outside Desktop - #7046", "[Fixed] Missing tooltips for change indicators in the sidebar - #7174", "[Fixed] Mistaken classification of all crashes being related to launch - #7126", "[Fixed] Unable to switch keyboard layout and retain keyboard focus while using commit form - #6366. Thanks @AndreiMaga!", "[Fixed] Prevent console errors due to underlying component unmounts - #6970", "[Fixed] Menus disabled by activity in inactive repositories - #6313", "[Fixed] Race condition with Git remote lookup may cause push to incorrect remote - #6986", "[Fixed] Restore GitHub Desktop to main screen if external monitor removed - #7418 #2107. Thanks @say25!", "[Fixed] Tab Bar focus ring outlines clip into other elements - #5802. Thanks @Daniel-McCarthy!", "[Improved] \"Automatically Switch Theme\" on macOS checks theme on launch - #7116. Thanks @say25!", "[Improved] \"Add\" button in repository list should always be visible - #6646", "[Improved] Pull Requests list loads and updates pull requests from GitHub more quickly - #7501 #7163", "[Improved] Indicator hidden in Pull Requests list when there are no open pull requests - #7258", "[Improved] Manually refresh pull requests instead of having to wait for a fetch - #7027", "[Improved] Accessibility attributes for dialog - #6496. Thanks @HirdayGupta!", "[Improved] Alignment of icons in repository list - #7133", "[Improved] Command line interface warning when using \"github open\" with a remote URL - #7452. Thanks @msztech!", "[Improved] Error message when unable to publish private repository to an organization - #7472", "[Improved] Initiate cloning by pressing \"Enter\" when a repository is selected - #6570. Thanks @Daniel-McCarthy!", "[Improved] Lowercase pronoun in \"Revert this commit\" menu item - #7534", "[Improved] Styles for manual resolution button in \"Resolve Conflicts\" dialog - #7302", "[Improved] Onboarding language for blank slate components - #6638. Thanks @jamesgeorge007!", "[Improved] Explanation for manually conflicted text files in diff viewer - #7611", "[Improved] Visual progress on \"Remove Repository\" and \"Discard Changes\" dialogs - #7015. Thanks @HashimotoYT!", "[Improved] Menu items now aware of force push state and preference to confirm repository removal - #4976 #7138", "[Removed] Branch and pull request filter text persistence - #7437", "[Removed] \"Discard all changes\" context menu item from Changes list - #7394. Thanks @ahuth!" ], "1.7.1-beta1": [ "[Fixed] Tab Bar focus ring outlines clip into other elements - #5802. Thanks @Daniel-McCarthy!", "[Improved] Show explanation for manually conflicted text files in diff viewer - #7611", "[Improved] Alignment of entries in repository list - #7133" ], "1.7.0-beta9": [ "[Fixed] Add warning when renaming a branch with a stash - #7283", "[Fixed] Restore Desktop to main screen when external monitor removed - #7418 #2107. Thanks @say25!", "[Improved] Performance for bringing uncommitted changes to another branch - #7474" ], "1.7.0-beta8": [ "[Added] Accelerator and access key to \"Exit\" menu item - #6507. Thanks @AndreiMaga!", "[Fixed] Pressing \"Shift\" + \"Alt\" in Commit summary moves input-focus to app menu - #6366. Thanks @AndreiMaga!", "[Fixed] Incorrectly encoding URLs affects issue filtering - #7506", "[Improved] Command line interface warns with helpful message when given a remote URL - #7452. Thanks @msztech!", "[Improved] Lowercase pronoun in \"Revert this commit\" menu item - #7534", "[Improved] \"Pull Requests\" list reflects pull requests from GitHub more quickly - #7501", "[Removed] Branch and pull request filter text persistence - #7437" ], "1.7.0-beta7": [ "[Improved] Error message when unable to publish private repository to an organization - #7472", "[Improved] \"Stashed changes\" button accessibility improvements - #7274", "[Improved] Performance improvements for bringing changes to another branch - #7471", "[Improved] Performance improvements for detecting conflicts from a restored stash - #7476" ], "1.7.0-beta6": [ "[Fixed] Stash viewer does not disable restore button when changes present - #7409", "[Fixed] Stash viewer does not center \"no content\" text - #7299", "[Fixed] Stash viewer pane width not remembered between sessions - #7416", "[Fixed] \"Esc\" key does not close Repository or Branch list - #7177. Thanks @roottool!", "[Fixed] Stash not cleaned up when it conflicts with working directory contents - #7383", "[Improved] Branch names remain accurate in dialog when stashing and switching branches - #7402", "[Improved] Moved \"Discard all changes\" to Branch menu to prevent unintentionally discarding all changes - #7394. Thanks @ahuth!", "[Improved] UI responsiveness when using keyboard to choose branch in rebase flow - #7407" ], "1.7.0-beta5": [ "[Fixed] Handle warnings if stash creation encounters file permission issue - #7351", "[Fixed] Add \"View stash entry\" action to suggested next steps - #7353", "[Fixed] Handle and recover from failed rebase flow starts - #7223", "[Fixed] Reverse button order when viewing a stash on macOS - #7273", "[Fixed] Prevent console errors due to underlying component unmounts - #6970", "[Fixed] Rebase success banner always includes base branch name - #7220", "[Improved] Added explanatory text for \"Restore\" button for stashes - #7303", "[Improved] Ask for confirmation before discarding stash - #7348", "[Improved] Order stashed changes files alphabetically - #7327", "[Improved] Clarify \"Overwrite Stash Confirmation\" dialog text - #7361", "[Improved] Message shown in rebase setup when target branch is already rebased - #7343", "[Improved] Update stashing prompt verbiage - #7393.", "[Improved] Update \"Start Rebase\" dialog verbiage - #7391", "[Improved] Changes list now reflects what will be committed when handling rebase conflicts - #7006" ], "1.7.0-beta4": [ "[Fixed] Manual conflict resolution choice not updated when resolving rebase conflicts - #7255", "[Fixed] Menu items don't display the expected verbiage for force push and removing a repository - #4976 #7138" ], "1.7.0-beta3": [ "[New] Users can choose to bring changes with them to a new branch or stash them on the current branch when switching branches - #6107", "[Added] GitHub Desktop keyboard shortcuts available in Help menu - #7184", "[Added] .resx file extension highlighting support - #7235. Thanks @say25!", "[Fixed] Attempting to revert commits not on current branch results in an error - #6300. Thanks @msftrncs!", "[Improved] Warn users before rebase if operation will require a force push after rebase complete - #6963", "[Improved] Do not show the number of pull requests when there are no open pull requests - #7258", "[Improved] Accessibility attributes for dialog - #6496. Thanks @HirdayGupta!", "[Improved] Initiate cloning by pressing \"Enter\" when a repository is selected - #6570. Thanks @Daniel-McCarthy!", "[Improved] Manual Conflicts button styling - #7302", "[Improved] \"Add\" button in repository list should always be visible - #6646" ], "1.7.0-beta2": [ "[New] Rebase your current branch onto another branch using a guided flow - #5953", "[Fixed] Horizontal scroll bar appears unnecessarily when switching branches - #7212", "[Fixed] License templates do not end with newline character - #6999", "[Fixed] Merge/Rebase conflicts banners do not clear when aborting the operation outside Desktop - #7046", "[Fixed] Missing tooltips for change indicators in the sidebar - #7174", "[Fixed] Icon accessibility labels fail when multiple icons are visible at the same time - #7174", "[Improved] Pull requests load faster and PR build status updates automatically - #7163" ], "1.7.0-beta1": [ "[New] Recently opened repositories appear at the top of the repository list - #7132", "[Fixed] Error when selecting diff text while diff is updating - #7131", "[Fixed] Crash when unable to create log file on disk - #7096", "[Fixed] Race condition with remote lookup could cause push to go to incorrect remote - #6986", "[Fixed] Mistaken classification of all crashes being related to launch - #7126", "[Fixed] Prevent menus from being disabled by activity in inactive repositories - #6313", "[Fixed] \"Automatically Switch Theme\" on macOS does not check theme on launch - #7116. Thanks @say25!", "[Fixed] Clicking \"Undo\" doesn't repopulate summary in commit form - #6390. Thanks @humphd!", "[Fixed] Emoji rendering in app broken when account name has special characters - #6909", "[Fixed] Files staged outside Desktop for deletion are incorrectly marked as modified after committing - #4133", "[Improved] Visual feedback on \"Remove Repository\" and \"Discard Changes\" dialogs to show progress - #7015. Thanks @HashimotoYT!", "[Improved] Onboarding language for blank slate components - #6638. Thanks @jamesgeorge007!", "[Improved] Manually refresh pull requests instead of having to wait for a fetch - #7027" ], "1.6.6": [ "[Fixed] Clicking \"Undo\" doesn't repopulate summary in commit form - #6390. Thanks @humphd!", "[Fixed] Handle error when unable to create log file for app - #7096", "[Fixed] Crash when selecting text while the underlying diff changes - #7131" ], "1.6.6-test1": [ "[Fixed] Clicking \"Undo\" doesn't repopulate summary in commit form - #6390. Thanks @humphd!", "[Fixed] Handle error when unable to create log file for app - #7096", "[Fixed] Crash when selecting text while the underlying diff changes - #7131" ], "1.6.5": [ "[Fixed] Publish Repository does not let you publish to an organization on your Enterprise account - #7052" ], "1.6.5-beta2": [ "[Fixed] Publish Repository does not let you choose an organization on your Enterprise account - #7052" ], "1.6.5-beta1": [ "[Fixed] Publish Repository does not let you choose an organization on your Enterprise account - #7052" ], "1.6.4": [ "[Fixed] Embedded Git not working for core.longpath usage in some environments - #7028", "[Fixed] \"Recover missing repository\" can get stuck in a loop - #7038" ], "1.6.4-beta1": [ "[Fixed] Embedded Git not working for core.longpath usage in some environments - #7028", "[Fixed] \"Recover missing repository\" can get stuck in a loop - #7038" ], "1.6.4-beta0": [ "[Removed] Option to discard when files would be overwritten by a checkout - #7016" ], "1.6.3": [ "[New] Display \"pull with rebase\" if a user has set this option in their Git config - #6553 #3422", "[Fixed] Context menu does not open when right clicking on the edges of files in Changes list - #6296. Thanks @JQuinnie!", "[Fixed] Display question mark in image when no commit selected in dark theme - #6915. Thanks @say25!", "[Fixed] No left padding for :emoji:/@user/#issue autocomplete forms. - #6895. Thanks @murrelljenna!", "[Fixed] Reinstate missing image and update illustration in dark theme when no local changes exist - #6894", "[Fixed] Resizing the diff area preserves text selection range - #2677", "[Fixed] Text selection in wrapped diff lines now allows selection of individual lines - #1551", "[Improved] Add option to fetch when a user needs to pull changes from the remote before pushing - #2738 #5451", "[Improved] Enable Git protocol v2 for fetch/push/pull operations - #6142", "[Improved] Moving mouse pointer outside visible diff while selecting a range of lines in a partial commit now automatically scrolls the diff - #658", "[Improved] Sign in form validates both username and password - #6952. Thanks @say25!", "[Improved] Update GitHub logo in \"About\" dialog - #5619. Thanks @HashimotoYT!" ], "1.6.3-beta4": [ "[Improved] Update GitHub logo in \"About\" dialog - #5619. Thanks @HashimotoYT!", "[Improved] Sign in form validates both username and password - #6952. Thanks @say25!" ], "1.6.3-beta3": [ "[New] Display \"pull with rebase\" if a user has set this option in their Git config - #6553 #3422", "[Added] Provide option to discard when files would be overwritten by a checkout - #6755. Thanks @mathieudutour!", "[Fixed] No left padding for :emoji:/@user/#issue autocomplete forms. - #6895. Thanks @murrelljenna!", "[Fixed] Reinstate missing image and fix illustration to work in the dark theme when there are no local changes - #6894", "[Fixed] Display question mark image when there is no commit selected in dark theme - #6915. Thanks @say25!", "[Improved] Group and filter repositories by owner - #6923", "[Improved] Add option to fetch when a user needs to pull changes from the remote before pushing - #2738 #5451" ], "1.6.3-beta2": [ "[Fixed] Text selection in wrapped diff lines now allows selection of individual lines - #1551", "[Fixed] Resizing the diff area preserves text selection range - #2677", "[Improved] Moving the mouse pointer outside of the visible diff while selecting a range of lines in a partial commit will now automatically scroll the diff - #658" ], "1.6.3-beta1": [ "[New] Branches that have been merged and deleted on GitHub.com will now be pruned after two weeks - #750", "[Fixed] Context menu doesn't open when right clicking on the edges of files in Changes list - #6296. Thanks @JQuinnie!", "[Improved] Enable Git protocol v2 for fetch/push/pull operations - #6142", "[Improved] Upgrade to Electron v3 - #6391" ], "1.6.2": [ "[Added] Allow users to also resolve manual conflicts when resolving merge conflicts - #6062", "[Added] Automatic switching between Dark and Light modes on macOS - #5037. Thanks @say25!", "[Added] Crystal and Julia syntax highlighting - #6710. Thanks @KennethSweezy!", "[Added] Lua and Fortran syntax highlighting - #6700. Thanks @SimpleBinary!", "[Fixed] Abbreviated commits are not long enough for large repositories - #6662. Thanks @say25!", "[Fixed] App menu bar visible on hover on Windows when in \"Let’s get started\" mode - #6669", "[Fixed] Fix pointy corners on commit message text area - #6635. Thanks @lisavogtsf!", "[Fixed] Inconsistent \"Reveal in …\" labels for context menus - #6466. Thanks @say25!", "[Fixed] Merge conflict conflict did not ask user to resolve some binary files - #6693", "[Fixed] Prevent concurrent fetches between user and status indicator checks - #6121 #5438 #5328", "[Fixed] Remember scroll positions in History and Changes lists - #5177 #5059. Thanks @Daniel-McCarthy!", "[Improved] Guided merge conflict resolution only commits changes relevant to the merge - #6349", "[Improved] Use higher contrast color for links in \"Merge Conflicts\" dialog - #6758", "[Improved] Add link to all release notes in Release Notes dialog - #6443. Thanks @koralcem!", "[Improved] Arrow for renamed/copied changes when viewing commit - #6519. Thanks @koralcem!", "[Improved] Updated verbiage for ignoring the files - #6689. Thanks @PaulViola!" ], "1.6.2-beta3": [ "[Improved] Guided merge conflict resolution only commits changes relevant to the merge - #6349" ], "1.6.2-beta2": [ "[Added] Allow users to also resolve manual conflicts when resolving merge conflicts - #6062", "[Added] Crystal and Julia syntax highlighting - #6710. Thanks @KennethSweezy!", "[Fixed] Fix pointy corners on commit message text area - #6635. Thanks @lisavogtsf!", "[Fixed] Use higher contrast color for links in \"Merge Conflicts\" dialog - #6758" ], "1.6.2-beta1": [ "[Added] Automatic switching between Dark and Light modes on macOS - #5037. Thanks @say25!", "[Added] Lua and Fortran syntax highlighting - #6700. Thanks @SimpleBinary!", "[Fixed] Abbreviated commits are not long enough for large repositories - #6662. Thanks @say25!", "[Fixed] App menu bar visible on hover on Windows when in \"Let’s get started\" mode - #6669", "[Fixed] Remember scroll positions in History and Changes lists - #5177 #5059. Thanks @Daniel-McCarthy!", "[Fixed] Inconsistent \"Reveal in …\" labels for context menus - #6466. Thanks @say25!", "[Fixed] Prevent concurrent fetches between user and status indicator checks - #6121 #5438 #5328", "[Fixed] Merge conflict conflict did not ask user to resolve some binary files - #6693", "[Improved] Add link to all release notes in Release Notes dialog - #6443. Thanks @koralcem!", "[Improved] Arrow for renamed/copied changes when viewing commit - #6519. Thanks @koralcem!", "[Improved] Menu state updating to address race condition - #6643", "[Improved] Updated verbiage when clicking on changed files to make it more explicit what will occur when you ignore the file(s) - #6689. Thanks @PaulViola!" ], "1.6.2-beta0": [ "[Fixed] Don't show \"No local changes\" view when switching between changed files" ], "1.6.1": [ "[Fixed] Don't show \"No local changes\" view when switching between changed files" ], "1.6.0": [ "[New] Help users add their first repo during onboarding - #6474", "[New] \"No local changes\" view helpfully suggests next actions for you to take - #6445", "[Added] Support JetBrains Webstorm as an external editor - #6077. Thanks @KennethSweezy!", "[Added] Add Visual Basic syntax highlighting - #6461. Thanks @SimpleBinary!", "[Fixed] Automatically locate a missing repository when it cannot be found - #6228. Thanks @msftrncs!", "[Fixed] Don't include untracked files in merge commit - #6411", "[Fixed] Don't show \"Still Conflicted Warning\" when all conflicts are resolved - #6451", "[Fixed] Only execute menu action a single time upon hitting Enter - #5344", "[Fixed] Show autocompletion of GitHub handles and issues properly in commit description field - #6459", "[Improved] Repository list when no repositories found - #5566 #6474", "[Improved] Image diff menu no longer covered by large images - #6520. Thanks @06b!", "[Improved] Enable additional actions during a merge conflict - #6385", "[Improved] Increase contrast on input placeholder color in dark mode - #6556", "[Improved] Don't show merge success banner when attempted merge doesn't complete - #6282", "[Improved] Capitalize menu items appropriately on macOS - #6469" ], "1.6.0-beta3": [ "[Fixed] Autocomplete selection does not overflow text area - #6459", "[Fixed] No local changes views incorrectly rendering ampersands - #6596", "[Improved] Capitalization of menu items on macOS - #6469" ], "1.6.0-beta2": [ "[New] \"No local changes\" view makes it easy to find and accomplish common actions - #6445", "[Fixed] Automatically locate a missing repository when it cannot be found - #6228. Thanks @msftrncs!", "[Improved] Enable additional actions during a merge conflict - #6385", "[Improved] Increase contrast on input placeholder color in dark mode - #6556", "[Improved] Merge success banner no longer shown when attempted merge doesn't complete - #6282" ], "1.6.0-beta1": [ "[New] Help users add their first repo during onboarding - #6474", "[Added] Include ability for users to add new repositories when there are none available - #5566 #6474", "[Added] Support JetBrains Webstorm as an external editor - #6077. Thanks @KennethSweezy!", "[Added] Add Visual Basic syntax highlighting - #6461. Thanks @SimpleBinary!", "[Fixed] Don't include untracked files in merge commit - #6411", "[Fixed] Don't show \"Still Conflicted Warning\" when all conflicts are resolved - #6451", "[Fixed] Enter when using keyboard to navigate app menu executed menu action twice - #5344", "[Improved] Image diff menu no longer covered by large images - #6520. Thanks @06b!" ], "1.5.2-beta0": [], "1.5.1": [ "[Added] Provide keyboard shortcut for getting to commit summary field - #1719. Thanks @bruncun!", "[Added] Add hover states on list items and tabs - #6310", "[Added] Add Dockerfile syntax highlighting - #4533. Thanks @say25!", "[Added] Support Visual SlickEdit as an external editor - #6029. Thanks @texasaggie97!", "[Fixed] Allow repositories to be cloned to empty folders - #5857. Thanks @Daniel-McCarthy!", "[Fixed] Prevent creating branch with detached HEAD from reverting to default branch - #6085", "[Fixed] Fix \"Open In External Editor\" for Atom/VS Code on Windows when paths contain spaces - #6181. Thanks @msftrncs!", "[Fixed] Persist Branch List and Pull Request List filter text - #6002. Thanks @Daniel-McCarthy!", "[Fixed] Retain renamed branches position in recent branches list - #6155. Thanks @gnehcc!", "[Fixed] Prevent avatar duplication when user is co-author and committer - #6135. Thanks @bblarney!", "[Fixed] Provide keyboard selection for the \"Clone a Repository\" dialog - #3596. Thanks @a-golovanov!", "[Fixed] Close License & Open Source Notices dialog upon pressing \"Enter\" in dialog - #6137. Thanks @bblarney!", "[Fixed] Dismiss \"Merge into Branch\" dialog with escape key - #6154. Thanks @altaf933!", "[Fixed] Focus branch selector when comparing to branch from menu - #5600", "[Fixed] Reverse fold/unfold icons for expand/collapse commit summary - #6196. Thanks @HazemAM!", "[Improved] Allow toggling between diff modes - #6231. Thanks @06b!", "[Improved] Show focus around full input field - #6234. Thanks @seokju-na!", "[Improved] Make lists scroll to bring selected items into view - #6279", "[Improved] Consistently order the options for adding a repository - #6396. Thanks @vilanz!", "[Improved] Clear merge conflicts banner after there are no more conflicted files - #6428" ], "1.5.1-beta6": [ "[Improved] Consistently order the options for adding a repository - #6396. Thanks @vilanz!", "[Improved] Clear merge conflicts banner after there are no more conflicted files - #6428" ], "1.5.1-beta5": [ "[Improved] Commit conflicted files warning - #6381", "[Improved] Dismissable merge conflict dialog and associated banner - #6379 #6380", "[Fixed] Fix feature flag for readme overwrite warning so that it shows on beta - #6412" ], "1.5.1-beta4": [ "[Improved] Display warning if existing readme file will be overwritten - #6338. Thanks @Daniel-McCarthy!", "[Improved] Add check for attempts to commit >100 MB files without Git LFS - #997. Thanks @Daniel-McCarthy!", "[Improved] Merge conflicts dialog visual updates - #6377" ], "1.5.1-beta3": [ "[Improved] Maintains state on tabs for different methods of cloning repositories - #5937" ], "1.5.1-beta2": [ "[Improved] Clarified internal documentation - #6348. Thanks @bblarney!" ], "1.5.1-beta1": [ "[Added] Provide keyboard shortcut for getting to commit summary field - #1719. Thanks @bruncun!", "[Added] Add hover states on list items and tabs - #6310", "[Added] Add Dockerfile syntax highlighting - #4533. Thanks @say25!", "[Added] Support Visual SlickEdit as an external editor - #6029. Thanks @texasaggie97!", "[Improved] Allow toggling between diff modes - #6231. Thanks @06b!", "[Improved] Show focus around full input field - #6234. Thanks @seokju-na!", "[Improved] Make lists scroll to bring selected items into view - #6279", "[Fixed] Allow repositories to be cloned to empty folders - #5857. Thanks @Daniel-McCarthy!", "[Fixed] Prevent creating branch with detached HEAD from reverting to default branch - #6085", "[Fixed] Fix 'Open In External Editor' for Atom/VS Code on Windows when paths contain spaces - #6181. Thanks @msftrncs!", "[Fixed] Persist Branch List and Pull Request List filter text - #6002. Thanks @Daniel-McCarthy!", "[Fixed] Retain renamed branches position in recent branches list - #6155. Thanks @gnehcc!", "[Fixed] Prevent avatar duplication when user is co-author and committer - #6135. Thanks @bblarney!", "[Fixed] Provide keyboard selection for the ‘Clone a Repository’ dialog - #3596. Thanks @a-golovanov!", "[Fixed] Close License & Open Source Notices dialog upon pressing \"Enter\" in dialog - #6137. Thanks @bblarney!", "[Fixed] Dismiss \"Merge into Branch\" dialog with escape key - #6154. Thanks @altaf933!", "[Fixed] Focus branch selector when comparing to branch from menu - #5600", "[Fixed] Reverse fold/unfold icons for expand/collapse commit summary - #6196. Thanks @HazemAM!" ], "1.5.1-beta0": [], "1.5.0": [ "[New] Clone, create, or add repositories right from the repository dropdown - #5878", "[New] Drag-and-drop to add local repositories from macOS tray icon - #5048", "[Added] Resolve merge conflicts through a guided flow - #5400", "[Added] Allow merging branches directly from branch dropdown - #5929. Thanks @bruncun!", "[Added] Commit file list now has \"Copy File Path\" context menu action - #2944. Thanks @Amabel!", "[Added] Keyboard shortcut for \"Rename Branch\" menu item - #5964. Thanks @agisilaos!", "[Added] Notify users when a merge is successfully completed - #5851", "[Fixed] \"Compare on GitHub\" menu item enabled when no repository is selected - #6078", "[Fixed] Diff viewer blocks keyboard navigation using reverse tab order - #2794", "[Fixed] Launching Desktop from browser always asks to clone repository - #5913", "[Fixed] Publish dialog displayed on push when repository is already published - #5936", "[Improved] \"Publish Repository\" dialog handles emoji characters - #5980. Thanks @WaleedAshraf!", "[Improved] Avoid repository checks when no path is specified in \"Create Repository\" dialog - #5828. Thanks @JakeHL!", "[Improved] Clarify the direction of merging branches - #5930. Thanks @JQuinnie!", "[Improved] Default commit summary more explanatory and consistent with GitHub.com - #6017. Thanks @Daniel-McCarthy!", "[Improved] Display a more informative message on merge dialog when branch is up to date - #5890", "[Improved] Getting a repository's status only blocks other operations when absolutely necessary - #5952", "[Improved] Display current branch in header of merge dialog - #6027", "[Improved] Sanitize repository name before publishing to GitHub - #3090. Thanks @Daniel-McCarthy!", "[Improved] Show the branch name in \"Update From Default Branch\" menu item - #3018. Thanks @a-golovanov!", "[Improved] Update license and .gitignore templates for initializing a new repository - #6024. Thanks @say25!" ], "1.5.0-beta5": [], "1.5.0-beta4": [ "[Fixed] \"Compare on GitHub\" menu item enabled when no repository is selected - #6078", "[Fixed] Diff viewer blocks keyboard navigation using reverse tab order - #2794", "[Improved] \"Publish Repository\" dialog handles emoji characters - #5980. Thanks @WaleedAshraf!" ], "1.5.0-beta3": [], "1.5.0-beta2": [ "[Added] Resolve merge conflicts through a guided flow - #5400", "[Added] Notify users when a merge is successfully completed - #5851", "[Added] Allow merging branches directly from branch dropdown - #5929. Thanks @bruncun!", "[Improved] Merge dialog displays current branch in header - #6027", "[Improved] Clarify the direction of merging branches - #5930. Thanks @JQuinnie!", "[Improved] Show the branch name in \"Update From Default Branch\" menu item - #3018. Thanks @a-golovanov!", "[Improved] Default commit summary more explanatory and consistent with GitHub.com - #6017. Thanks @Daniel-McCarthy!", "[Improved] Updated license and .gitignore templates for initializing a new repository - #6024. Thanks @say25!" ], "1.5.0-beta1": [ "[New] Repository switcher has a convenient \"Add\" button to add other repositories - #5878", "[New] macOS tray icon now supports drag-and-drop to add local repositories - #5048", "[Added] Keyboard shortcut for \"Rename Branch\" menu item - #5964. Thanks @agisilaos!", "[Added] Commit file list now has \"Copy File Path\" context menu action - #2944. Thanks @Amabel!", "[Fixed] Launching Desktop from browser always asks to clone repository - #5913", "[Fixed] Publish dialog displayed on push when repository is already published - #5936", "[Improved] Sanitize repository name before publishing to GitHub - #3090. Thanks @Daniel-McCarthy!", "[Improved] Getting a repository's status only blocks other operations when absolutely necessary - #5952", "[Improved] Avoid repository checks when no path is specified in \"Create Repository\" dialog - #5828. Thanks @JakeHL!", "[Improved] Display a more informative message on merge dialog when branch is up to date - #5890" ], "1.4.4-beta0": [], "1.4.3": [ "[Added] Add \"Remove Repository\" keyboard shortcut - #5848. Thanks @say25!", "[Added] Add keyboard shortcut to delete a branch - #5018. Thanks @JakeHL!", "[Fixed] Emoji autocomplete not rendering in some situations - #5859", "[Fixed] Release notes text overflowing dialog box - #5854. Thanks @amarsiingh!", "[Improved] Support Python 3 in Desktop CLI on macOS - #5843. Thanks @munir131!", "[Improved] Avoid unnecessarily reloading commit history - #5470", "[Improved] Publish Branch dialog will publish commits when pressing Enter - #5777. Thanks @JKirkYuan!" ], "1.4.3-beta2": [ "[Added] Added keyboard shortcut to delete a branch - #5018. Thanks @JakeHL!", "[Fixed] Fix release notes text overflowing dialog box - #5854. Thanks @amarsiingh!", "[Improved] Avoid unnecessarily reloading commit history - #5470" ], "1.4.3-beta1": [ "[Added] Add \"Remove Repository\" keyboard shortcut - #5848. Thanks @say25!", "[Fixed] Fix emoji autocomplete not rendering in some situations - #5859", "[Fixed] Support Python 3 in Desktop CLI on macOS - #5843. Thanks @munir131!", "[Improved] Publish Branch dialog will publish commits when pressing Enter - #5777. Thanks @JKirkYuan!" ], "1.4.3-beta0": [], "1.4.2": [ "[New] Show resolved conflicts as resolved in Changes pane - #5609", "[Added] Add Terminator, MATE Terminal, and Terminology shells - #5753. Thanks @joaomlneto!", "[Fixed] Update embedded Git to version 2.19.1 for security vulnerability fix", "[Fixed] Always show commit history list when History tab is clicked - #5783. Thanks @JKirkYuan!", "[Fixed] Stop overriding the protocol of a detected GitHub repository - #5721", "[Fixed] Update sign in error message - #5766. Thanks @tiagodenoronha!", "[Fixed] Correct overflowing T&C and License Notices dialogs - #5756. Thanks @amarsiingh!", "[Improved] Add default commit message for single-file commits - #5240. Thanks @lean257!", "[Improved] Refresh commit list faster after reverting commit via UI - #5752", "[Improved] Add repository path to Remove repository dialog - #5805. Thanks @NickCraver!", "[Improved] Display whether user entered incorrect username or email address - #5775. Thanks @tiagodenoronha!", "[Improved] Update Discard Changes dialog text when discarding all changes - #5744. Thanks @Daniel-McCarthy!" ], "1.4.2-beta0": [], "1.4.1-test2": [ "Testing changes to how Desktop performs CI platform checks" ], "1.4.1-test1": [ "Testing changes to how Desktop performs CI platform checks" ], "1.4.1": [ "[Added] Support for opening repository in Cygwin terminal - #5654. Thanks @LordOfTheThunder!", "[Fixed] 'Compare to Branch' menu item not disabled when modal is open - #5673. Thanks @kanishk98!", "[Fixed] Co-author form does not show/hide for newly-added repository - #5490", "[Fixed] Desktop command line always suffixes `.git` to URL when starting a clone - #5529. Thanks @j-f1!", "[Fixed] Dialog styling issue for dark theme users on Windows - #5629. Thanks @cwongmath!", "[Fixed] No message shown when filter returns no results in Clone Repository view - #5637. Thanks @DanielHix!", "[Improved] Branch names cannot start with a '+' character - #5594. Thanks @Daniel-McCarthy!", "[Improved] Clone dialog re-runs filesystem check when re-focusing on Desktop - #5518. Thanks @Daniel-McCarthy!", "[Improved] Commit disabled when commit summary is only spaces - #5677. Thanks @Daniel-McCarthy!", "[Improved] Commit summary expander sometimes shown when not needed - #5700. Thanks @aryyya!", "[Improved] Error handling when looking for merge base of a missing ref - #5612", "[Improved] Warning if branch exists on remote when creating branch - #5141. Thanks @Daniel-McCarthy!" ], "1.4.1-beta1": [ "[Added] Support for opening repository in Cygwin terminal - #5654. Thanks @LordOfTheThunder!", "[Fixed] 'Compare to Branch' menu item not disabled when modal is open - #5673. Thanks @kanishk98!", "[Fixed] No message shown when filter returns no results in Clone Repository view - #5637. Thanks @DanielHix!", "[Fixed] Co-author form does not show/hide for newly-added repository - #5490", "[Fixed] Dialog styling issue for dark theme users on Windows - #5629. Thanks @cwongmath!", "[Fixed] Desktop command line always suffixes `.git` to URL when starting a clone - #5529. Thanks @j-f1!", "[Improved] Commit summary expander sometimes shown when not needed - #5700. Thanks @aryyya!", "[Improved] Commit disabled when commit summary is only spaces - #5677. Thanks @Daniel-McCarthy!", "[Improved] Error handling when looking for merge base of a missing ref - #5612", "[Improved] Clone dialog re-runs filesystem check when re-focusing on Desktop - #5518. Thanks @Daniel-McCarthy!", "[Improved] Branch names cannot start with a '+' character - #5594. Thanks @Daniel-McCarthy!", "[Improved] Warning if branch exists on remote when creating branch - #5141. Thanks @Daniel-McCarthy!" ], "1.4.1-beta0": [], "1.4.0": [ "[New] When an update is available for GitHub Desktop, release notes can be viewed in Desktop - #2774", "[New] Detect merge conflicts when comparing branches - #4588", "[Fixed] Avoid double checkout warning when opening a pull request in Desktop - #5375", "[Fixed] Error when publishing repository is now associated with the right tab - #5422. Thanks @Daniel-McCarthy!", "[Fixed] Disable affected menu items when on detached HEAD - #5500. Thanks @say25!", "[Fixed] Show border when commit description is expanded - #5506. Thanks @aryyya!", "[Fixed] GitLab URL which corresponds to GitHub repository of same name cloned GitHub repository - #4154", "[Fixed] Caret in co-author selector is hidden when dark theme enabled - #5589", "[Fixed] Authenticating to GitHub Enterprise fails when user has no emails defined - #5585", "[Improved] Avoid multiple lookups of default remote - #5399" ], "1.4.0-beta3": [ "[New] When an update is available for GitHub Desktop, the release notes can be viewed in Desktop - #2774", "[New] Detect merge conflicts when comparing branches - #4588", "[Fixed] Avoid double checkout warning when opening a pull request in Desktop - #5375", "[Fixed] Error when publishing repository is now associated with the right tab - #5422. Thanks @Daniel-McCarthy!", "[Fixed] Disable affected menu items when on detached HEAD - #5500. Thanks @say25!", "[Fixed] Show border when commit description is expanded - #5506. Thanks @aryyya!", "[Fixed] GitLab URL which corresponds to GitHub repository of same name cloned GitHub repository - #4154", "[Improved] Avoid multiple lookups of default remote - #5399", "[Improved] Skip optional locks when checking status of repository - #5376" ], "1.4.0-beta2": [ "[New] When an update is available for GitHub Desktop, the release notes can be viewed in Desktop - #2774", "[New] Detect merge conflicts when comparing branches - #4588", "[Fixed] Avoid double checkout warning when opening a pull request in Desktop - #5375", "[Fixed] Error when publishing repository is now associated with the right tab - #5422. Thanks @Daniel-McCarthy!", "[Fixed] Disable affected menu items when on detached HEAD - #5500. Thanks @say25!", "[Fixed] Show border when commit description is expanded - #5506. Thanks @aryyya!", "[Fixed] GitLab URL which corresponds to GitHub repository of same name cloned GitHub repository - #4154", "[Improved] Avoid multiple lookups of default remote - #5399", "[Improved] Skip optional locks when checking status of repository - #5376" ], "1.4.0-beta1": [ "[New] When an update is available for GitHub Desktop, the release notes can be viewed in Desktop - #2774", "[New] Detect merge conflicts when comparing branches - #4588", "[Fixed] Avoid double checkout warning when opening a pull request in Desktop - #5375", "[Fixed] Error when publishing repository is now associated with the right tab - #5422. Thanks @Daniel-McCarthy!", "[Fixed] Disable affected menu items when on detached HEAD - #5500. Thanks @say25!", "[Fixed] Show border when commit description is expanded - #5506. Thanks @aryyya!", "[Fixed] GitLab URL which corresponds to GitHub repository of same name cloned GitHub repository - #4154", "[Improved] Avoid multiple lookups of default remote - #5399", "[Improved] Skip optional locks when checking status of repository - #5376" ], "1.4.0-beta0": [], "1.3.5": [ "[Fixed] Disable delete button while deleting a branch - #5331", "[Fixed] History now avoids calling log.showSignature if set in config - #5466", "[Fixed] Start blocking the ability to add local bare repositories - #4293. Thanks @Daniel-McCarthy!", "[Fixed] Revert workaround for tooltip issue on Windows - #3362. Thanks @divayprakash!", "[Improved] Error message when publishing to missing organisation - #5380. Thanks @Daniel-McCarthy!", "[Improved] Don't hide commit details when commit description is expanded. - #5471. Thanks @aryyya!" ], "1.3.5-beta1": [ "[Fixed] Disable delete button while deleting a branch - #5331", "[Fixed] History now avoids calling log.showSignature if set in config - #5466", "[Fixed] Start blocking the ability to add local bare repositories - #4293. Thanks @Daniel-McCarthy!", "[Fixed] Revert workaround for tooltip issue on Windows - #3362. Thanks @divayprakash!", "[Improved] Error message when publishing to missing organisation - #5380. Thanks @Daniel-McCarthy!", "[Improved] Don't hide commit details when commit summary description is expanded. - #5471. Thanks @aryyya!" ], "1.3.5-beta0": [], "1.3.4": [ "[Improved] Cloning message uses remote repo name not file destination - #5413. Thanks @lisavogtsf!", "[Improved] Support VSCode user scope installation - #5281. Thanks @saschanaz!" ], "1.3.4-beta1": [ "[Improved] Cloning message uses remote repo name not file destination - #5413. Thanks @lisavogtsf!", "[Improved] Support VSCode user scope installation - #5281. Thanks @saschanaz!" ], "1.3.4-beta0": [], "1.3.3": [ "[Fixed] Maximize and restore app on Windows does not fill available space - #5033", "[Fixed] 'Clone repository' menu item label is obscured on Windows - #5348. Thanks @Daniel-McCarthy!", "[Fixed] User can toggle files when commit is in progress - #5341. Thanks @masungwon!", "[Improved] Repository indicator background work - #5317 #5326 #5363 #5241 #5320" ], "1.3.3-beta1": [ "[Fixed] Maximize and restore app on Windows does not fill available space - #5033", "[Fixed] 'Clone repository' menu item label is obscured on Windows - #5348. Thanks @Daniel-McCarthy!", "[Fixed] User can toggle files when commit is in progress - #5341. Thanks @masungwon!", "[Improved] Repository indicator background work - #5317 #5326 #5363 #5241 #5320" ], "1.3.3-test6": ["Testing infrastructure changes"], "1.3.3-test5": ["Testing the new CircleCI config changes"], "1.3.3-test4": ["Testing the new CircleCI config changes"], "1.3.3-test3": ["Testing the new CircleCI config changes"], "1.3.3-test2": ["Testing the new CircleCI config changes"], "1.3.3-test1": ["Testing the new CircleCI config changes"], "1.3.2": [ "[Fixed] Bugfix for background checks not being aware of missing repositories - #5282", "[Fixed] Check the local state of a repository before performing Git operations - #5289", "[Fixed] Switch to history view for default branch when deleting current branch during a compare - #5256", "[Fixed] Handle missing .git directory inside a tracked repository - #5291" ], "1.3.2-beta1": [ "[Fixed] Bugfix for background checks not being aware of missing repositories - #5282", "[Fixed] Check the local state of a repository before performing Git operations - #5289", "[Fixed] Switch to history view for default branch when deleting current branch during a compare - #5256", "[Fixed] Handle missing .git directory inside a tracked repository - #5291" ], "1.3.1": [ "[Fixed] Background Git operations on missing repositories are not handled as expected - #5282" ], "1.3.1-beta1": [ "[Fixed] Background Git operations on missing repositories are not handled as expected - #5282" ], "1.3.1-beta0": [ "[New] Notification displayed in History tab when the base branch moves ahead of the current branch - #4768", "[New] Repository list displays uncommitted changes indicator and ahead/behind information - #2259 #5095", "[Added] Option to move repository to trash when removing from app - #2108. Thanks @say25!", "[Added] Syntax highlighting for PowerShell files - #5081. Thanks @say25!", "[Fixed] \"Discard Changes\" context menu discards correct file when entry is not part of selected group - #4788", "[Fixed] Display local path of selected repository as tooltip - #4922. Thanks @yongdamsh!", "[Fixed] Display root directory name when repository is located at drive root - #4924", "[Fixed] Handle legacy macOS right click gesture - #4942", "[Fixed] History omits latest commit from list - #5243", "[Fixed] Markdown header elements hard to read in dark mode - #5133. Thanks @agisilaos!", "[Fixed] Only perform ahead/behind comparisons when branch selector is open - #5142", "[Fixed] Relax checks for merge commits for GitHub Enterprise repositories - #4329", "[Fixed] Render clickable link in \"squash and merge\" commit message - #5203. Thanks @1pete!", "[Fixed] Return key disabled when no matches found in Compare branch list - #4458", "[Fixed] Selected commit not remembered when switching between History and Changes tabs - #4985", "[Fixed] Selected commit when comparing is reset to latest when Desktop regains focus - #5069", "[Fixed] Support default branch detection for non-GitHub repositories - #4937", "[Improved] Change primary button color to blue for dark theme - #5074", "[Improved] Diff gutter elements should be considered button elements when interacting - #5158", "[Improved] Status parsing significantly more performant when handling thousands of changed files - #2449 #5186" ], "1.3.0": [ "[New] Notification displayed in History tab when the base branch moves ahead of the current branch - #4768", "[New] Repository list displays uncommitted changes indicator and ahead/behind information - #2259 #5095", "[Added] Option to move repository to trash when removing from app - #2108. Thanks @say25!", "[Added] Syntax highlighting for PowerShell files - #5081. Thanks @say25!", "[Fixed] \"Discard Changes\" context menu discards correct file when entry is not part of selected group - #4788", "[Fixed] Display local path of selected repository as tooltip - #4922. Thanks @yongdamsh!", "[Fixed] Display root directory name when repository is located at drive root - #4924", "[Fixed] Handle legacy macOS right click gesture - #4942", "[Fixed] History omits latest commit from list - #5243", "[Fixed] Markdown header elements hard to read in dark mode - #5133. Thanks @agisilaos!", "[Fixed] Only perform ahead/behind comparisons when branch selector is open - #5142", "[Fixed] Relax checks for merge commits for GitHub Enterprise repositories - #4329", "[Fixed] Render clickable link in \"squash and merge\" commit message - #5203. Thanks @1pete!", "[Fixed] Return key disabled when no matches found in Compare branch list - #4458", "[Fixed] Selected commit not remembered when switching between History and Changes tabs - #4985", "[Fixed] Selected commit when comparing is reset to latest when Desktop regains focus - #5069", "[Fixed] Support default branch detection for non-GitHub repositories - #4937", "[Improved] Change primary button color to blue for dark theme - #5074", "[Improved] Diff gutter elements should be considered button elements when interacting - #5158", "[Improved] Status parsing significantly more performant when handling thousands of changed files - #2449 #5186" ], "1.3.0-beta7": [], "1.3.0-beta6": [], "1.3.0-beta5": [ "[Fixed] Ensure commit message is cleared after successful commit - #4046", "[Fixed] History omits latest commit from list - #5243" ], "1.3.0-beta4": [ "[Fixed] Only perform ahead/behind comparisons when branch selector is open - #5142", "[Fixed] Render clickable link in \"squash and merge\" commit message - #5203. Thanks @1pete!", "[Fixed] Selected commit not remembered when switching between History and Changes tabs - #4985", "[Fixed] Selected commit when comparing is reset to latest when Desktop regains focus - #5069" ], "1.3.0-beta3": [ "[Fixed] \"Discard Changes\" context menu discards correct file when entry is not part of selected group - #4788", "[Fixed] Return key disabled when no matches found in Compare branch list - #4458", "[Improved] Status parsing significantly more performant when handling thousands of changed files - #2449 #5186" ], "1.3.0-beta2": [ "[Added] Option to move repository to trash when removing from app - #2108. Thanks @say25!", "[Fixed] Markdown header elements hard to read in dark mode - #5133. Thanks @agisilaos!", "[Improved] Diff gutter elements should be considered button elements when interacting - #5158" ], "1.2.7-test3": ["Test deployment for electron version bump."], "1.3.0-beta1": [ "[New] Notification displayed in History tab when the base branch moves ahead of the current branch - #4768", "[New] Repository list displays uncommitted changes count and ahead/behind information - #2259", "[Added] Syntax highlighting for PowerShell files- #5081. Thanks @say25!", "[Fixed] Display something when repository is located at drive root - #4924", "[Fixed] Relax checks for merge commits for GitHub Enterprise repositories - #4329", "[Fixed] Display local path of selected repository as tooltip - #4922. Thanks @yongdamsh!", "[Fixed] Support default branch detection for non-GitHub repositories - #4937", "[Fixed] Handle legacy macOS right click gesture - #4942", "[Improved] Repository list badge style tweaks and tweaks for dark theme - #5095", "[Improved] Change primary button color to blue for dark theme - #5074" ], "1.2.7-test2": ["Test deployment for electron version bump."], "1.2.7-test1": ["Sanity check deployment for refactored scripts"], "1.2.7-beta0": [ "[Fixed] Visual indicator for upcoming feature should not be shown - #5026" ], "1.2.6": [ "[Fixed] Visual indicator for upcoming feature should not be shown - #5026" ], "1.2.6-beta0": [ "[Fixed] Feature flag for upcoming feature not applied correctly - #5024" ], "1.2.5": [ "[Fixed] Feature flag for upcoming feature not applied correctly - #5024" ], "1.2.4": [ "[New] Dark Theme preview - #4849", "[Added] Syntax highlighting for Cake files - #4935. Thanks @say25!", "[Added] WebStorm support for macOS - #4841. Thanks @mrsimonfletcher!", "[Fixed] Compare tab appends older commits when scrolling to bottom of list - #4964", "[Fixed] Remove temporary directory after Git LFS operation completes - #4414", "[Fixed] Unable to compare when two branches exist - #4947 #4730", "[Fixed] Unhandled errors when refreshing pull requests fails - #4844 #4866", "[Improved] Remove context menu needs to hint if a dialog will be shown - #4975", "[Improved] Upgrade embedded Git LFS - #4602 #4745", "[Improved] Update banner message clarifies that only Desktop needs to be restarted - #4891. Thanks @KennethSweezy!", "[Improved] Discard Changes context menu entry should contain ellipses when user needs to confirm - #4846. Thanks @yongdamsh!", "[Improved] Initializing syntax highlighting components - #4764", "[Improved] Only show overflow shadow when description overflows - #4898", "[Improved] Changes tab displays number of changed files instead of dot - #4772. Thanks @yongdamsh!" ], "1.2.4-beta5": [], "1.2.4-beta4": [ "[Fixed] Compare tab appends older commits when scrolling to bottom of list - #4964", "[Fixed] Remove temporary directory after Git LFS operation completes - #4414", "[Improved] Remove context menu needs to hint if a dialog will be shown - #4975", "[Improved] Upgrade embedded Git LFS - #4602 #4745" ], "1.2.4-test1": [ "Confirming latest Git LFS version addresses reported issues" ], "1.2.4-beta3": [ "[Added] WebStorm support for macOS - #4841. Thanks @mrsimonfletcher!", "[Improved] Update banner message clarifies that only Desktop needs to be restarted - #4891. Thanks @KennethSweezy!" ], "1.2.4-beta2": [], "1.2.4-beta1": [ "[New] Dark Theme preview - #4849", "[Added] Syntax highlighting for Cake files - #4935. Thanks @say25!", "[Fixed] Unable to compare when two branches exist - #4947 #4730", "[Fixed] Unhandled errors when refreshing pull requests fails - #4844 #4866", "[Improved] Discard Changes context menu entry should contain ellipses when user needs to confirm - #4846. Thanks @yongdamsh!", "[Improved] Initializing syntax highlighting components - #4764", "[Improved] Only show overflow shadow when description overflows - #4898", "[Improved] Changes tab displays number of changed files instead of dot - #4772. Thanks @yongdamsh!" ], "1.2.3": [ "[Fixed] No autocomplete when searching for co-authors - #4847", "[Fixed] Error when checking out a PR from a fork - #4842" ], "1.2.3-beta1": [ "[Fixed] No autocomplete when searching for co-authors - #4847", "[Fixed] Error when checking out a PR from a fork - #4842" ], "1.2.3-test1": [ "Confirming switch from uglify-es to babel-minify addresses minification issue - #4871" ], "1.2.2": [ "[Fixed] Make cURL/schannel default to using the Windows certificate store - #4817", "[Fixed] Restore text selection highlighting in diffs - #4818" ], "1.2.2-beta1": [ "[Fixed] Make cURL/schannel default to using the Windows certificate store - #4817", "[Fixed] Text selection highlighting in diffs is back - #4818" ], "1.2.1": [ "[Added] Brackets support for macOS - #4608. Thanks @3raxton!", "[Added] Pull request number and author are included in fuzzy-find filtering - #4653. Thanks @damaneice!", "[Fixed] Decreased the max line length limit - #3740. Thanks @sagaragarwal94!", "[Fixed] Updated embedded Git to 2.17.1 to address upstream security issue - #4791", "[Improved] Display the difference in file size of an image in the diff view - #4380. Thanks @ggajos!" ], "1.2.1-test1": ["Upgraded embedded Git to 2.17.0"], "1.2.1-beta1": [ "[Added] Brackets support for macOS - #4608. Thanks @3raxton!", "[Added] Pull request number and author are included in fuzzy-find filtering - #4653. Thanks @damaneice!", "[Fixed] Decreased the max line length limit - #3740. Thanks @sagaragarwal94!", "[Fixed] Updated embedded Git to 2.17.1 to address upstream security issue - #4791", "[Improved] Display the difference in file size of an image in the diff view - #4380. Thanks @ggajos!" ], "1.2.1-beta0": [], "1.1.2-test6": ["Testing the Webpack v4 output from the project"], "1.2.0": [ "[New] History now has ability to compare to another branch and merge outstanding commits", "[New] Support for selecting more than one file in the changes list - #1712. Thanks @icosamuel!", "[New] Render bitmap images in diffs - #4367. Thanks @MagicMarvMan!", "[Added] Add PowerShell Core support for Windows and macOS - #3791. Thanks @saschanaz!", "[Added] Add MacVim support for macOS - #4532. Thanks @johnelliott!", "[Added] Syntax highlighting for JavaServer Pages (JSP) - #4470. Thanks @damaneice!", "[Added] Syntax highlighting for Haxe files - #4445. Thanks @Gama11!", "[Added] Syntax highlighting for R files - #4455. Thanks @say25!", "[Fixed] 'Open in Shell' on Linux ensures Git is on PATH - #4619. Thanks @ziggy42!", "[Fixed] Pressing 'Enter' on filtered Pull Request does not checkout - #4673", "[Fixed] Alert icon shrinks in rename dialog when branch name is long - #4566", "[Fixed] 'Open in Desktop' performs fetch to ensure branch exists before checkout - #3006", "[Fixed] 'Open in Default Program' on Windows changes the window title - #4446", "[Fixed] Skip fast-forwarding when there are many eligible local branches - #4392", "[Fixed] Image diffs not working for files with upper-case file extension - #4466", "[Fixed] Syntax highlighting not working for files with upper-case file extension - #4462. Thanks @say25!", "[Fixed] Error when creating Git LFS progress causes clone to fail - #4307. Thanks @MagicMarvMan!", "[Fixed] 'Open File in External Editor' always opens a new instance - #4381", "[Fixed] 'Select All' shortcut now works for changes list - #3821", "[Improved] Automatically add valid repository when using command line interface - #4513. Thanks @ggajos!", "[Improved] Always fast-forward the default branch - #4506", "[Improved] Warn when trying to rename a published branch - #4035. Thanks @agisilaos!", "[Improved] Added context menu for files in commit history - #2845. Thanks @crea7or", "[Improved] Discarding all changes always prompts for confirmation - #4459", "[Improved] Getting list of changed files is now more efficient when dealing with thousands of files - #4443", "[Improved] Checking out a Pull Request may skip unnecessary fetch - #4068. Thanks @agisilaos!", "[Improved] Commit summary now has a hint to indicate why committing is disabled - #4429.", "[Improved] Pull request status text now matches format on GitHub - #3521", "[Improved] Add escape hatch to disable hardware acceleration when launching - #3921" ], "1.1.2-beta7": [], "1.1.2-beta6": [ "[Added] Add MacVim support for macOS - #4532. Thanks @johnelliott!", "[Fixed] Open in Shell on Linux ensures Git is available on the user's PATH - #4619. Thanks @ziggy42!", "[Fixed] Keyboard focus issues when navigating Pull Request list - #4673", "[Improved] Automatically add valid repository when using command line interface - #4513. Thanks @ggajos!" ], "1.1.2-test5": ["Actually upgrading fs-extra to v6 in the app"], "1.1.2-test4": ["Upgrading fs-extra to v6"], "1.1.2-beta5": [ "[Added] Syntax highlighting for JavaServer Pages (JSP) - #4470. Thanks @damaneice!", "[Fixed] Prevent icon from shrinking in rename dialog - #4566" ], "1.1.2-beta4": [ "[New] New Compare tab allowing visualization of the relationship between branches", "[New] Support for selecting more than one file in the changes list - #1712. Thanks @icosamuel!", "[Fixed] 'Select All' shortcut now works for changes list - #3821", "[Improved] Always fast-forward the default branch - #4506", "[Improved] Warn when trying to rename a published branch - #4035. Thanks @agisilaos!", "[Improved] Added context menu for files in commit history - #2845. Thanks @crea7or", "[Improved] Discarding all changes always prompts for confirmation - #4459" ], "1.1.2-beta3": [ "[Added] Syntax highlighting for Haxe files - #4445. Thanks @Gama11!", "[Added] Syntax highlighting for R files - #4455. Thanks @say25!", "[Fixed] Fetch to ensure \"Open in Desktop\" has a branch to checkout - #3006", "[Fixed] Handle the click event when opening a binary file - #4446", "[Fixed] Skip fast-forwarding when there are a lot of eligible local branches - #4392", "[Fixed] Image diffs not working for files with upper-case file extension - #4466", "[Fixed] Syntax highlighting not working for files with upper-case file extension - #4462. Thanks @say25!", "[Improved] Getting list of changed files is now more efficient when dealing with thousands of files - #4443", "[Improved] Checking out a Pull Request may skip unnecessary fetch - #4068. Thanks @agisilaos!", "[Improved] Commit summary now has a hint to indicate why committing is disabled - #4429." ], "1.1.2-test3": ["[New] Comparison Branch demo build"], "1.1.2-test2": [ "Refactoring the diff internals to potentially land some SVG improvements" ], "1.1.2-test1": [ "Refactoring the diff internals to potentially land some SVG improvements" ], "1.1.2-beta2": [ "[New] Render bitmap images in diffs - #4367. Thanks @MagicMarvMan!", "[New] Add PowerShell Core support for Windows and macOS - #3791. Thanks @saschanaz!", "[Fixed] Error when creating Git LFS progress causes clone to fail - #4307. Thanks @MagicMarvMan!", "[Fixed] 'Open File in External Editor' does not use existing window - #4381", "[Fixed] Always ask for confirmation when discarding all changes - #4423", "[Improved] Pull request status text now matches format on GitHub - #3521", "[Improved] Add escape hatch to disable hardware acceleration when launching - #3921" ], "1.1.2-beta1": [], "1.1.1": [ "[New] Render WebP images in diffs - #4164. Thanks @agisilaos!", "[Fixed] Edit context menus in commit form input elements - #3886", "[Fixed] Escape behavior for Pull Request list does not match Branch List - #3597", "[Fixed] Keep caret position after inserting completion for emoji/mention - #3835. Thanks @CarlRosell!", "[Fixed] Handle error events when watching files used to get Git LFS output - #4117", "[Fixed] Potential race condition when opening a fork pull request - #4149", "[Fixed] Show placeholder image when no pull requests found - #3973", "[Fixed] Disable commit summary and description inputs while commit in progress - #3893. Thanks @crea7or!", "[Fixed] Ensure pull request cache is cleared after last pull request merged - #4122", "[Fixed] Focus two-factor authentication dialog on input - #4220. Thanks @WaleedAshraf!", "[Fixed] Branches button no longer disabled while on an unborn branch - #4236. Thanks @agisilaos!", "[Fixed] Delete gitignore file when all entries cleared in Repository Settings - #1896", "[Fixed] Add visual indicator that a folder can be dropped on Desktop - #4004. Thanks @agisilaos!", "[Fixed] Attempt to focus the application window on macOS after signing in via the browser - #4126", "[Fixed] Refresh issues when user manually fetches - #4076", "[Improved] Add `Discard All Changes...` to context menu on changed file list - #4197. Thanks @xamm!", "[Improved] Improve contrast for button labels in app toolbar - #4219", "[Improved] Speed up check for submodules when discarding - #4186. Thanks @kmscode!", "[Improved] Make the keychain known issue more clear within Desktop - #4125", "[Improved] Continue past the 'diff too large' message and view the diff - #4050", "[Improved] Repository association might not have expected prefix - #4090. Thanks @mathieudutour!", "[Improved] Add message to gitignore dialog when not on default branch - #3720", "[Improved] Hide Desktop-specific forks in Branch List - #4127", "[Improved] Disregard accidental whitespace when cloning a repository by URL - #4216", "[Improved] Show alert icon in repository list when repository not found on disk - #4254. Thanks @gingerbeardman!", "[Improved] Repository list now closes after removing last repository - #4269. Thanks @agisilaos!", "[Improved] Move forget password link after the password dialog to match expected tab order - #4283. Thanks @iamnapo!", "[Improved] More descriptive text in repository toolbar button when no repositories are tracked - #4268. Thanks @agisilaos!", "[Improved] Context menu in Changes tab now supports opening file in your preferred editor - #4030" ], "1.1.1-beta4": [ "[Improved] Context menu in Changes tab now supports opening file in your preferred editor - #4030" ], "1.1.1-beta3": [], "1.1.1-beta2": [ "[New] Render WebP images in diffs - #4164. Thanks @agisilaos!", "[Fixed] Edit context menus in commit form input elements - #3886", "[Fixed] Escape behavior should match that of Branch List - #3972", "[Fixed] Keep caret position after inserting completion - #3835. Thanks @CarlRosell!", "[Fixed] Handle error events when watching files used to get Git LFS output - #4117", "[Fixed] Potential race condition when opening a fork pull request - #4149", "[Fixed] Show placeholder image when no pull requests found - #3973", "[Fixed] Disable input fields summary and description while commit in progress - #3893. Thanks @crea7or!", "[Fixed] Ensure pull request cache is cleared after last pull request merged - #4122", "[Fixed] Focus two-factor authentication dialog on input - #4220. Thanks @WaleedAshraf!", "[Fixed] Branches button no longer disabled while on an unborn branch - #4236. Thanks @agisilaos!", "[Fixed] Delete gitignore file when entries cleared in Repository Settings - #1896", "[Fixed] Add visual indicator that a folder can be dropped on Desktop - #4004. Thanks @agisilaos!", "[Improved] Add `Discard All Changes...` to context menu on changed file list - #4197. Thanks @xamm!", "[Improved] Improve contrast for button labels in app toolbar - #4219", "[Improved] Speed up check for submodules when discarding - #4186. Thanks @kmscode!", "[Improved] Make the keychain known issue more clear within Desktop - #4125", "[Improved] Continue past the 'diff too large' message and view the diff - #4050", "[Improved] Repository association might not have expected prefix - #4090. Thanks @mathieudutour!", "[Improved] Add message to gitignore dialog when not on default branch - #3720", "[Improved] Hide Desktop-specific forks in Branch List - #4127", "[Improved] Disregard accidental whitespace when cloning a repository by URL - #4216", "[Improved] Show alert icon in repository list when repository not found on disk - #4254. Thanks @gingerbeardman!", "[Improved] Repository list now closes after removing last repository - #4269. Thanks @agisilaos!", "[Improved] Move forget password link to after the password dialog to maintain expected tab order - #4283. Thanks @iamnapo!", "[Improved] More descriptive text in repository toolbar button when no repositories are tracked - #4268. Thanks @agisilaos!" ], "1.1.1-test2": ["[Improved] Electron 1.8.3 upgrade (again)"], "1.1.1-test1": [ "[Improved] Forcing a focus on the window after the OAuth dance is done" ], "1.1.1-beta1": [], "1.1.0": [ "[New] Check out pull requests from collaborators or forks from within Desktop", "[New] View the commit status of the branch when it has an open pull request", "[Added] Add RubyMine support for macOS - #3883. Thanks @gssbzn!", "[Added] Add TextMate support for macOS - #3910. Thanks @caiofbpa!", "[Added] Syntax highlighting for Elixir files - #3774. Thanks @joaovitoras!", "[Fixed] Update layout of branch blankslate image - #4011", "[Fixed] Expanded avatar stack in commit summary gets cut off - #3884", "[Fixed] Clear repository filter when switching tabs - #3787. Thanks @reyronald!", "[Fixed] Avoid crash when unable to launch shell - #3954", "[Fixed] Ensure renames are detected when viewing commit diffs - #3673", "[Fixed] Fetch default remote if it differs from the current - #4056", "[Fixed] Handle Git errors when .gitmodules are malformed - #3912", "[Fixed] Handle error when \"where\" is not on PATH - #3882 #3825", "[Fixed] Ignore action assumes CRLF when core.autocrlf is unset - #3514", "[Fixed] Prevent duplicate entries in co-author autocomplete list - #3887", "[Fixed] Renames not detected when viewing commit diffs - #3673", "[Fixed] Support legacy usernames as co-authors - #3897", "[Improved] Update branch button text from \"New\" to \"New Branch\" - #4032", "[Improved] Add fuzzy search in the repository, branch, PR, and clone FilterLists - #911. Thanks @j-f1!", "[Improved] Tidy up commit summary and description layout in commit list - #3922. Thanks @willnode!", "[Improved] Use smaller default size when rendering Gravatar avatars - #3911", "[Improved] Show fetch progress when initializing remote for fork - #3953", "[Improved] Remove references to Hubot from the user setup page - #4015. Thanks @j-f1!", "[Improved] Error handling around ENOENT - #3954", "[Improved] Clear repository filter text when switching tabs - #3787. Thanks @reyronald!", "[Improved] Allow window to accept single click on focus - #3843", "[Improved] Disable drag-and-drop interaction when a popup is in the foreground - #3996" ], "1.1.0-beta3": [ "[Fixed] Fetch default remote if it differs from the current - #4056" ], "1.1.0-beta2": [ "[Improved] Update embedded Git to improve error handling when using stdin - #4058" ], "1.1.0-beta1": [ "[Improved] Add 'Branch' to 'New' branch button - #4032", "[Improved] Remove references to Hubot from the user setup page - #4015. Thanks @j-f1!" ], "1.0.14-beta5": [ "[Fixed] Improve detection of pull requests associated with current branch - #3991", "[Fixed] Disable drag-and-drop interaction when a popup is in the foreground - #3996", "[Fixed] Branch blank slate image out of position - #4011" ], "1.0.14-beta4": [ "[New] Syntax highlighting for Elixir files - #3774. Thanks @joaovitoras!", "[Fixed] Crash when unable to launch shell - #3954", "[Fixed] Support legacy usernames as co-authors - #3897", "[Improved] Enable fuzzy search in the repository, branch, PR, and clone FilterLists - #911. Thanks @j-f1!", "[Improved] Tidy up commit summary and description layout in commit list - #3922. Thanks @willnode!" ], "1.0.14-test1": ["[Improved] Electron 1.8.2 upgrade"], "1.0.14-beta3": [ "[Added] Add TextMate support for macOS - #3910. Thanks @caiofbpa!", "[Fixed] Handle Git errors when .gitmodules are malformed - #3912", "[Fixed] Clear repository filter when switching tabs - #3787. Thanks @reyronald!", "[Fixed] Prevent duplicate entries in co-author autocomplete list - #3887", "[Improved] Show progress when initializing remote for fork - #3953" ], "1.0.14-beta2": [ "[Added] Add RubyMine support for macOS - #3883. Thanks @gssbzn!", "[Fixed] Allow window to accept single click on focus - #3843", "[Fixed] Expanded avatar list hidden behind commit details - #3884", "[Fixed] Renames not detected when viewing commit diffs - #3673", "[Fixed] Ignore action assumes CRLF when core.autocrlf is unset - #3514", "[Improved] Use smaller default size when rendering Gravatar avatars - #3911" ], "1.0.14-beta1": ["[New] Commit together with co-authors - #3879"], "1.0.13": [ "[New] Commit together with co-authors - #3879", "[New] PhpStorm is now a supported external editor on macOS - #3749. Thanks @hubgit!", "[Improved] Update embedded Git to 2.16.1 - #3617 #3828 #3871", "[Improved] Blank slate view is now more responsive when zoomed - #3777", "[Improved] Documentation fix for Open in Shell resource - #3799. Thanks @saschanaz!", "[Improved] Improved error handling for Linux - #3732", "[Improved] Allow links in unexpanded summary to be clickable - #3719. Thanks @koenpunt!", "[Fixed] Update Electron to 1.7.11 to address security issue - #3846", "[Fixed] Allow double dashes in branch name - #3599. Thanks @JQuinnie!", "[Fixed] Sort the organization list - #3657. Thanks @j-f1!", "[Fixed] Check out PRs from a fork - #3395", "[Fixed] Confirm deleting branch when it has an open PR - #3615", "[Fixed] Defer user/email validation in Preferences - #3722", "[Fixed] Checkout progress did not include branch name - #3780", "[Fixed] Don't block branch switching when in detached HEAD - #3807", "[Fixed] Handle discarding submodule changes properly - #3647", "[Fixed] Show tooltip with additional info about the build status - #3134", "[Fixed] Update placeholders to support Linux distributions - #3150", "[Fixed] Refresh local commit list when switching tabs - #3698" ], "1.0.13-test1": [ "[Improved] Update embedded Git to 2.16.1 - #3617 #3828 #3871", "[Fixed] Update Electron to 1.7.11 to address security issue - #3846", "[Fixed] Allows double dashes in branch name - #3599. Thanks @JQuinnie!", "[Fixed] Pull Request store may not have status defined - #3869", "[Fixed] Render the Pull Request badge when no commit statuses found - #3608" ], "1.0.13-beta1": [ "[New] PhpStorm is now a supported external editor on macOS - #3749. Thanks @hubgit!", "[Improved] Blank slate view is now more responsive when zoomed - #3777", "[Improved] Documentation fix for Open in Shell resource - #3799. Thanks @saschanaz!", "[Improved] Improved error handling for Linux - #3732", "[Improved] Allow links in unexpanded summary to be clickable - #3719. Thanks @koenpunt!", "[Fixed] Sort the organization list - #3657. Thanks @j-f1!", "[Fixed] Check out PRs from a fork - #3395", "[Fixed] Confirm deleting branch when it has an open PR - #3615", "[Fixed] Defer user/email validation in Preferences - #3722", "[Fixed] Checkout progress did not include branch name - #3780", "[Fixed] Don't block branch switching when in detached HEAD - #3807", "[Fixed] Handle discarding submodule changes properly - #3647", "[Fixed] Show tooltip with additional info about the build status - #3134", "[Fixed] Update placeholders to support Linux distributions - #3150", "[Fixed] Refresh local commit list when switching tabs - #3698" ], "1.0.12": [ "[New] Syntax highlighting for Rust files - #3666. Thanks @subnomo!", "[New] Syntax highlighting for Clojure cljc, cljs, and edn files - #3610. Thanks @mtkp!", "[Improved] Prevent creating a branch in the middle of a merge - #3733", "[Improved] Truncate long repo names in panes and modals to fit into a single line - #3598. Thanks @http-request!", "[Improved] Keyboard navigation support in pull request list - #3607", "[Fixed] Inconsistent caret behavior in text boxes when using certain keyboard layouts - #3354", "[Fixed] Only render the organizations list when it has orgs - #1414", "[Fixed] Checkout now handles situations where a ref exists on multiple remotes - #3281", "[Fixed] Retain accounts on desktop when losing connectivity - #3641", "[Fixed] Missing argument in FullScreenInfo that could prevent app from launching - #3727. Thanks @OiYouYeahYou!" ], "1.0.12-beta1": [ "[New] Syntax highlighting for Rust files - #3666. Thanks @subnomo!", "[New] Syntax highlighting for Clojure cljc, cljs, and edn files - #3610. Thanks @mtkp!", "[Improved] Prevent creating a branch in the middle of a merge - #3733", "[Improved] Truncate long repo names in panes and modals to fit into a single line - #3598. Thanks @http-request!", "[Improved] Keyboard navigation support in pull request list - #3607", "[Fixed] Inconsistent caret behavior in text boxes when using certain keyboard layouts - #3354", "[Fixed] Only render the organizations list when it has orgs - #1414", "[Fixed] Checkout now handles situations where a ref exists on multiple remotes - #3281", "[Fixed] Retain accounts on desktop when losing connectivity - #3641", "[Fixed] Missing argument in FullScreenInfo that could prevent app from launching - #3727. Thanks @OiYouYeahYou!" ], "1.0.12-beta0": [ "[New] Highlight substring matches in the \"Branches\" and \"Repositories\" list when filtering - #910. Thanks @JordanMussi!", "[New] Add preview for ico files - #3531. Thanks @serhiivinichuk!", "[New] Fallback to Gravatar for loading avatars - #821", "[New] Provide syntax highlighting for Visual Studio project files - #3552. Thanks @saul!", "[New] Provide syntax highlighting for F# fsx and fsi files - #3544. Thanks @saul!", "[New] Provide syntax highlighting for Kotlin files - #3555. Thanks @ziggy42!", "[New] Provide syntax highlighting for Clojure - #3523. Thanks @mtkp!", "[Improved] Toggle the \"Repository List\" from the menu - #2638. Thanks @JordanMussi!", "[Improved] Prevent saving of disallowed character strings for your name and email - #3204", "[Improved] Error messages now appear at the top of the \"Create a New Repository\" dialog - #3571. Thanks @http-request!", "[Improved] \"Repository List\" header is now \"Github.com\" for consistency - #3567. Thanks @iFun!", "[Improved] Rename the \"Install Update\" button to \"Quit and Install Update\" - #3494. Thanks @say25!", "[Fixed] Fix ordering of commit history when your branch and tracking branch have both changed - #2737", "[Fixed] Prevent creating a branch that starts with a period - #3013. Thanks @JordanMussi!", "[Fixed] Branch names are properly encoded when creating a pull request - #3509", "[Fixed] Re-enable all the menu items after closing a popup - #3533", "[Fixed] Removes option to delete remote branch after it's been deleted - #2964. Thanks @JordanMussi!", "[Fixed] Windows: Detects available editors and shells now works even when the group policy blocks write registry access - #3105 #3405", "[Fixed] Windows: Menu items are no longer truncated - #3547", "[Fixed] Windows: Prevent disabled menu items from being accessed - #3391 #1521", "[Fixed] Preserve the selected pull request when a manual fetch is done - #3524", "[Fixed] Update pull request badge after switching branches or pull requests - #3454", "[Fixed] Restore keyboard arrow navigation for pull request list - #3499" ], "1.0.11": [ "[New] Highlight substring matches in the \"Branches\" and \"Repositories\" list when filtering - #910. Thanks @JordanMussi!", "[New] Add preview for ico files - #3531. Thanks @serhiivinichuk!", "[New] Fallback to Gravatar for loading avatars - #821", "[New] Provide syntax highlighting for Visual Studio project files - #3552. Thanks @saul!", "[New] Provide syntax highlighting for F# fsx and fsi files - #3544. Thanks @saul!", "[New] Provide syntax highlighting for Kotlin files - #3555. Thanks @ziggy42!", "[New] Provide syntax highlighting for Clojure - #3523. Thanks @mtkp!", "[Improved] Toggle the \"Repository List\" from the menu - #2638. Thanks @JordanMussi!", "[Improved] Prevent saving of disallowed character strings for your name and email - #3204", "[Improved] Error messages now appear at the top of the \"Create a New Repository\" dialog - #3571. Thanks @http-request!", "[Improved] \"Repository List\" header is now \"Github.com\" for consistency - #3567. Thanks @iFun!", "[Improved] Rename the \"Install Update\" button to \"Quit and Install Update\" - #3494. Thanks @say25!", "[Fixed] Fix ordering of commit history when your branch and tracking branch have both changed - #2737", "[Fixed] Prevent creating a branch that starts with a period - #3013. Thanks @JordanMussi!", "[Fixed] Branch names are properly encoded when creating a pull request - #3509", "[Fixed] Re-enable all the menu items after closing a popup - #3533", "[Fixed] Removes option to delete remote branch after it's been deleted - #2964. Thanks @JordanMussi!", "[Fixed] Windows: Detects available editors and shells now works even when the group policy blocks write registry access - #3105 #3405", "[Fixed] Windows: Menu items are no longer truncated - #3547", "[Fixed] Windows: Prevent disabled menu items from being accessed - #3391 #1521" ], "1.0.11-test0": [ "[Improved] now with a new major version of electron-packager" ], "1.0.11-beta0": [ "[Improved] Refresh the pull requests list after fetching - #3503", "[Improved] Rename the \"Install Update\" button to \"Quit and Install Update\" - #3494. Thanks @say25!", "[Fixed] URL encode branch names when creating a pull request - #3509", "[Fixed] Windows: detecting available editors and shells now works even when the group policy blocks write registry access - #3105 #3405" ], "1.0.10": [ "[New] ColdFusion Builder is now a supported external editor - #3336 #3321. Thanks @AtomicCons!", "[New] VSCode Insiders build is now a supported external editor - #3441. Thanks @say25!", "[New] BBEdit is now a supported external editor - #3467. Thanks @NiklasBr!", "[New] Hyper is now a supported shell on Windows too - #3455. Thanks @JordanMussi!", "[New] Swift is now syntax highlighted - #3305. Thanks @agisilaos!", "[New] Vue.js is now syntax highlighted - #3368. Thanks @wanecek!", "[New] CoffeeScript is now syntax highlighted - #3356. Thanks @agisilaos!", "[New] Cypher is now syntax highlighted - #3440. Thanks @say25!", "[New] .hpp is now syntax highlighted as C++ - #3420. Thanks @say25!", "[New] ML-like languages are now syntax highlighted - #3401. Thanks @say25!", "[New] Objective-C is now syntax highlighted - #3355. Thanks @koenpunt!", "[New] SQL is now syntax highlighted - #3389. Thanks @say25!", "[Improved] Better message on the 'Publish Branch' button when HEAD is unborn - #3344. Thanks @Venkat5694!", "[Improved] Better error message when trying to push to an archived repository - #3084. Thanks @agisilaos!", "[Improved] Avoid excessive background fetching when switching repositories - #3329", "[Improved] Ignore menu events sent when a modal is shown - #3308", "[Fixed] Parse changed files whose paths include a newline - #3271", "[Fixed] Parse file type changes - #3334", "[Fixed] Windows: 'Open without Git' would present the dialog again instead of actually opening a shell without git - #3290", "[Fixed] Avoid text selection when dragging resizable dividers - #3268", "[Fixed] Windows: Removed the title attribute on the Windows buttons so that they no longer leave their tooltips hanging around - #3348. Thanks @j-f1!", "[Fixed] Windows: Detect VS Code when installed to non-standard locations - #3304", "[Fixed] Hitting Return would select the first item in a filter list when the filter text was empty - #3447", "[Fixed] Add some missing keyboard shortcuts - #3327. Thanks @say25!", "[Fixed] Handle \"304 Not Modified\" responses - #3399", "[Fixed] Don't overwrite an existing .gitattributes when creating a new repository - #3419. Thanks @strafe!" ], "1.0.10-beta3": [ "[New] Change \"Create Pull Request\" to \"Show Pull Request\" when there is already a pull request open for the branch - #2524", "[New] VSCode Insiders build is now a supported external editor - #3441. Thanks @say25!", "[New] BBEdit is now a supported external editor - #3467. Thanks @NiklasBr!", "[New] Hyper is now a supported shell - #3455. Thanks @JordanMussi!", "[New] Cypher is now syntax highlighted - #3440. Thanks @say25!", "[New] .hpp is now syntax highlighted as C++ - #3420. Thanks @say25!", "[New] ML-like languages are now syntax highlighted - #3401. Thanks @say25!", "[Improved] Use the same colors in pull request dropdown as we use on GitHub.com - #3451", "[Improved] Fancy pull request loading animations - #2868", "[Improved] Avoid excessive background fetching when switching repositories - #3329", "[Improved] Refresh the pull request list when the Push/Pull/Fetch button is clicked - #3448", "[Improved] Ignore menu events sent when a modal is shown - #3308", "[Fixed] Hitting Return would select the first item in a filter list when the filter text was empty - #3447", "[Fixed] Add some missing keyboard shortcuts - #3327. Thanks @say25!", "[Fixed] Handle \"304 Not Modified\" responses - #3399", "[Fixed] Don't overwrite an existing .gitattributes when creating a new repository - #3419. Thanks @strafe!" ], "1.0.10-beta2": [ "[New] SQL is now syntax highlighted! - #3389. Thanks @say25!", "[Fixed] Windows: Detect VS Code when installed to non-standard locations - #3304" ], "1.0.10-beta1": [ "[New] Vue.js code is now syntax highlighted! - #3368. Thanks @wanecek!", "[New] CoffeeScript is now syntax highlighted! - #3356. Thanks @agisilaos!", "[New] Highlight .m as Objective-C - #3355. Thanks @koenpunt!", "[Improved] Use smarter middle truncation for branch names - #3357", "[Fixed] Windows: Removed the title attribute on the Windows buttons so that they no longer leave their tooltips hanging around - #3348. Thanks @j-f1!" ], "1.0.10-beta0": [ "[New] ColdFusion Builder is now available as an option for External Editor - #3336 #3321. Thanks @AtomicCons!", "[New] Swift code is now syntax highlighted - #3305. Thanks @agisilaos!", "[Improved] Better message on the 'Publish Branch' button when HEAD is unborn - #3344. Thanks @Venkat5694!", "[Improved] Better error message when trying to push to an archived repository - #3084. Thanks @agisilaos!", "[Fixed] Parse changed files whose paths include a newline - #3271", "[Fixed] Parse file type changes - #3334", "[Fixed] Windows: 'Open without Git' would present the dialog again instead of actually opening a shell without git - #3290", "[Fixed] Avoid text selection when dragging resizable dividers - #3268" ], "1.0.9": [ "[New] ColdFusion Builder is now available as an option for External Editor - #3336 #3321. Thanks @AtomicCons!", "[New] Swift code is now syntax highlighted - #3305. Thanks @agisilaos!", "[Improved] Better message on the 'Publish Branch' button when HEAD is unborn - #3344. Thanks @Venkat5694!", "[Improved] Better error message when trying to push to an archived repository - #3084. Thanks @agisilaos!", "[Fixed] Parse changed files whose paths include a newline - #3271", "[Fixed] Parse file type changes - #3334", "[Fixed] Windows: 'Open without Git' would present the dialog again instead of actually opening a shell without git - #3290", "[Fixed] Avoid text selection when dragging resizable dividers - #3268" ], "1.0.9-beta1": [ "[New] ColdFusion Builder is now available as an option for External Editor - #3336 #3321. Thanks @AtomicCons!", "[New] Swift code is now syntax highlighted - #3305. Thanks @agisilaos!", "[Improved] Better message on the 'Publish Branch' button when HEAD is unborn - #3344. Thanks @Venkat5694!", "[Improved] Better error message when trying to push to an archived repository - #3084. Thanks @agisilaos!", "[Fixed] Parse changed files whose paths include a newline - #3271", "[Fixed] Parse file type changes - #3334", "[Fixed] Windows: 'Open without Git' would present the dialog again instead of actually opening a shell without git - #3290", "[Fixed] Avoid text selection when dragging resizable dividers - #3268" ], "1.0.9-beta0": [ "[Fixed] Crash when rendering diffs for certain types of files - #3249", "[Fixed] Continually being prompted to add the upstream remote, even when it already exists - #3252" ], "1.0.8": [ "[Fixed] Crash when rendering diffs for certain types of files - #3249", "[Fixed] Continually being prompted to add the upstream remote, even when it already exists - #3252" ], "1.0.8-beta0": [ "[New] Syntax highlighted diffs - #3101", "[New] Add upstream to forked repositories - #2364", "[Fixed] Only reset scale of title bar on macOS - #3193", "[Fixed] Filter symbolic refs in the branch list - #3196", "[Fixed] Address path issue with invoking Git Bash - #3186", "[Fixed] Update embedded Git to support repository hooks and better error messages - #3067 #3079", "[Fixed] Provide credentials to LFS repositories when performing checkout - #3167", "[Fixed] Assorted changelog typos - #3174 #3184 #3207. Thanks @strafe, @alanaasmaa and @jt2k!" ], "1.0.7": [ "[New] Syntax highlighted diffs - #3101", "[New] Add upstream to forked repositories - #2364", "[Fixed] Only reset scale of title bar on macOS - #3193", "[Fixed] Filter symbolic refs in the branch list - #3196", "[Fixed] Address path issue with invoking Git Bash - #3186", "[Fixed] Update embedded Git to support repository hooks and better error messages - #3067 #3079", "[Fixed] Provide credentials to LFS repositories when performing checkout - #3167", "[Fixed] Assorted changelog typos - #3174 #3184 #3207. Thanks @strafe, @alanaasmaa and @jt2k!" ], "1.0.7-beta0": [ "[Fixed] The Branches list wouldn't display the branches for non-GitHub repositories - #3169", "[Fixed] Pushing or pulling could error when the temp directory was unavailable - #3046" ], "1.0.6": [ "[Fixed] The Branches list wouldn't display the branches for non-GitHub repositories - #3169", "[Fixed] Pushing or pulling could error when the temp directory was unavailable - #3046" ], "1.0.5": [ "[New] The command line interface now provides some helpful help! - #2372. Thanks @j-f1!", "[New] Create new branches from the Branches foldout - #2784", "[New] Add support for VSCode Insiders - #3012 #3062. Thanks @MSathieu!", "[New] Linux: Add Atom and Sublime Text support - #3133. Thanks @ziggy42!", "[New] Linux: Tilix support - #3117. Thanks @ziggy42!", "[New] Linux: Add Visual Studio Code support - #3122. Thanks @ziggy42!", "[Improved] Report errors when a problem occurs storing tokens - #3159", "[Improved] Bump to Git 2.14.3 - #3146", "[Improved] Don't try to display diffs that could cause the app to hang - #2596", "[Fixed] Handle local user accounts with URL-hostile characters - #3107", "[Fixed] Cloning a repository which uses Git LFS would leave all the files appearing modified - #3146", "[Fixed] Signing in in the Welcome flow could hang - #2769", "[Fixed] Properly replace old Git LFS configuration values - #2984" ], "1.0.5-beta1": [ "[New] Create new branches from the Branches foldout - #2784", "[New] Add support for VSCode Insiders - #3012 #3062. Thanks @MSathieu!", "[New] Linux: Add Atom and Sublime Text support - #3133. Thanks @ziggy42!", "[New] Linux: Tilix support - #3117. Thanks @ziggy42!", "[New] Linux: Add Visual Studio Code support - #3122. Thanks @ziggy42!", "[Improved] Report errors when a problem occurs storing tokens - #3159", "[Improved] Bump to Git 2.14.3 - #3146", "[Improved] Don't try to display diffs that could cause the app to hang - #2596", "[Fixed] Handle local user accounts with URL-hostile characters - #3107", "[Fixed] Cloning a repository which uses Git LFS would leave all the files appearing modified - #3146", "[Fixed] Signing in in the Welcome flow could hang - #2769", "[Fixed] Properly replace old Git LFS configuration values - #2984" ], "1.0.5-test1": [], "1.0.5-test0": [], "1.0.5-beta0": [ "[New] The command line interface now provides some helpful help! - #2372. Thanks @j-f1!" ], "1.0.4": [ "[New] Report Git LFS progress when cloning, pushing, pulling, or reverting - #2226", "[Improved] Increased diff contrast and and line gutter selection - #2586 #2181", "[Improved] Clarify why publishing a branch is disabled in various scenarios - #2773", "[Improved] Improved error message when installing the command Line tool fails - #2979. Thanks @agisilaos!", "[Improved] Format the branch name in \"Create Branch\" like we format branch names elsewhere - #2977. Thanks @j-f1!", "[Fixed] Avatars not updating after signing in - #2911", "[Fixed] Lots of bugs if there was a file named \"HEAD\" in the repository - #3009 #2721 #2938", "[Fixed] Handle duplicate config values when saving user.name and user.email - #2945", "[Fixed] The \"Create without pushing\" button when creating a new pull request wouldn't actually do anything - #2917" ], "1.0.4-beta1": [ "[New] Report Git LFS progress when cloning, pushing, pulling, or reverting - #2226", "[Improved] Increased diff contrast and and line gutter selection - #2586 #2181", "[Improved] Clarify why publishing a branch is disabled in various scenarios - #2773", "[Improved] Improved error message when installing the command Line tool fails - #2979. Thanks @agisilaos!", "[Improved] Format the branch name in \"Create Branch\" like we format branch names elsewhere - #2977. Thanks @j-f1!", "[Fixed] Avatars not updating after signing in - #2911", "[Fixed] Lots of bugs if there was a file named \"HEAD\" in the repository - #3009 #2721 #2938", "[Fixed] Handle duplicate config values when saving user.name and user.email - #2945", "[Fixed] The \"Create without pushing\" button when creating a new pull request wouldn't actually do anything - #2917 #2917" ], "1.0.4-beta0": [ "[Improved] Increase the contrast of the modified file status octicons - #2914", "[Fixed] Showing changed files in Finder/Explorer would open the file - #2909", "[Fixed] macOS: Fix app icon on High Sierra - #2915", "[Fixed] Cloning an empty repository would fail - #2897 #2906", "[Fixed] Catch logging exceptions - #2910" ], "1.0.3": [ "[Improved] Increase the contrast of the modified file status octicons - #2914", "[Fixed] Showing changed files in Finder/Explorer would open the file - #2909", "[Fixed] macOS: Fix app icon on High Sierra - #2915", "[Fixed] Cloning an empty repository would fail - #2897 #2906", "[Fixed] Catch logging exceptions - #2910" ], "1.0.2": [ "[Improved] Better message for GitHub Enterprise users when there is a network error - #2574. Thanks @agisilaos!", "[Improved] Clone error message now suggests networking might be involved - #2872. Thanks @agisilaos!", "[Improved] Include push/pull progress information in the push/pull button tooltip - #2879", "[Improved] Allow publishing a brand new, empty repository - #2773", "[Improved] Make file paths in lists selectable - #2801. Thanks @artivilla!", "[Fixed] Disable LFS hook creation when cloning - #2809", "[Fixed] Use the new URL for the \"Show User Guides\" menu item - #2792. Thanks @db6edr!", "[Fixed] Make the SHA selectable when viewing commit details - #1154", "[Fixed] Windows: Make `github` CLI work in Git Bash - #2712", "[Fixed] Use the initial path provided when creating a new repository - #2883", "[Fixed] Windows: Avoid long path limits when discarding changes - #2833", "[Fixed] Files would get deleted when undoing the first commit - #2764", "[Fixed] Find the repository root before adding it - #2832", "[Fixed] Display warning about an existing folder before cloning - #2777 #2830", "[Fixed] Show contents of directory when showing a repository from Show in Explorer/Finder instead of showing the parent - #2798" ], "1.0.2-beta1": [ "[Improved] Clone error message now suggests networking might be involved - #2872. Thanks @agisilaos!", "[Improved] Include push/pull progress information in the push/pull button tooltip - #2879", "[Improved] Allow publishing a brand new, empty repository - #2773", "[Improved] Make file paths in lists selectable - #2801. Thanks @artivilla!", "[Fixed] Use the initial path provided when creating a new repository - #2883", "[Fixed] Windows: Avoid long path limits when discarding changes - #2833", "[Fixed] Files would get deleted when undoing the first commit - #2764", "[Fixed] Find the repository root before adding it - #2832", "[Fixed] Display warning about an existing folder before cloning - #2777 #2830", "[Fixed] Show contents of directory when showing a repository from Show in Explorer/Finder instead of showing the parent - #2798" ], "1.0.2-beta0": [ "[Improved] Message for GitHub Enterprise users when there is a network error - #2574. Thanks @agisilaos!", "[Fixed] Disable LFS hook creation when cloning - #2809", "[Fixed] Use the new URL for the \"Show User Guides\" menu item - #2792. Thanks @db6edr!", "[Fixed] Make the SHA selectable when viewing commit details - #1154", "[Fixed] Windows: Make `github` CLI work in Git Bash - #2712" ], "1.0.1": [ "[Improved] Message for GitHub Enterprise users when there is a network error - #2574. Thanks @agisilaos!", "[Fixed] Disable LFS hook creation when cloning - #2809", "[Fixed] Use the new URL for the \"Show User Guides\" menu item - #2792. Thanks @db6edr!", "[Fixed] Make the SHA selectable when viewing commit details - #1154", "[Fixed] Windows: Make `github` CLI work in Git Bash - #2712" ], "1.0.1-beta0": [ "[Fixed] Use the loading/disabled state while publishing - #1995", "[Fixed] Lock down menu item states for unborn repositories - #2744 #2573", "[Fixed] Windows: Detecting the available shells and editors when using a language other than English - #2735" ], "1.0.0": [ "[Fixed] Use the loading/disabled state while publishing - #1995", "[Fixed] Lock down menu item states for unborn repositories - #2744 #2573", "[Fixed] Windows: Detecting the available shells and editors when using a language other than English - #2735" ], "1.0.0-beta3": [ "[New] Allow users to create repositories with descriptions - #2719. Thanks @davidcelis!", "[New] Use `lfs clone` for faster cloning of LFS repositories - #2679", "[Improved] Prompt to override existing LFS filters - #2693", "[Fixed] Don't install LFS hooks when checking if a repo uses LFS - #2732", "[Fixed] Ensure nothing is staged as part of undoing the first commit - #2656", "[Fixed] \"Clone with Desktop\" wouldn't include the repository name in the path - #2704" ], "0.9.1": [ "[New] Allow users to create repositories with descriptions - #2719. Thanks @davidcelis!", "[New] Use `lfs clone` for faster cloning of LFS repositories - #2679", "[Improved] Prompt to override existing LFS filters - #2693", "[Fixed] Don't install LFS hooks when checking if a repo uses LFS - #2732", "[Fixed] Ensure nothing is staged as part of undoing the first commit - #2656", "[Fixed] \"Clone with Desktop\" wouldn't include the repository name in the path - #2704" ], "1.0.0-beta2": [ "[New] Allow users to create repositories with descriptions - #2719. Thanks @davidcelis!", "[New] Use `lfs clone` for faster cloning of LFS repositories - #2679", "[Improved] Prompt to override existing LFS filters - #2693", "[Fixed] Don't install LFS hooks when checking if a repo uses LFS - #2732", "[Fixed] Ensure nothing is staged as part of undoing the first commit - #2656", "[Fixed] \"Clone with Desktop\" wouldn't include the repository name in the path - #2704" ], "0.9.0": [ "[New] Allow users to create repositories with descriptions - #2719. Thanks @davidcelis!", "[New] Use `lfs clone` for faster cloning of LFS repositories - #2679", "[Improved] Prompt to override existing LFS filters - #2693", "[Fixed] Don't install LFS hooks when checking if a repo uses LFS - #2732", "[Fixed] Ensure nothing is staged as part of undoing the first commit - #2656", "[Fixed] \"Clone with Desktop\" wouldn't include the repository name in the path - #2704" ], "0.8.2": [ "[New] Ask to install LFS filters when an LFS repository is added - #2227", "[New] Clone GitHub repositories tab - #57", "[New] Option to opt-out of confirming discarding changes - #2681", "[Fixed] Long commit summary truncation - #1742", "[Fixed] Ensure the repository list is always enabled - #2648", "[Fixed] Windows: Detecting the available shells and editors when using a non-ASCII user encoding - #2624", "[Fixed] Clicking the \"Cancel\" button on the Publish Branch dialog - #2646", "[Fixed] Windows: Don't rely on PATH for knowing where to find chcp - #2678", "[Fixed] Relocating a repository now actually does that - #2685", "[Fixed] Clicking autocompletes inserts them - #2674", "[Fixed] Use shift for shortcut chord instead of alt - #2607", "[Fixed] macOS: \"Open in Terminal\" works with repositories with spaces in their path - #2682" ], "1.0.0-beta1": [ "[New] Option to to opt-out of confirming discarding changes - #2681", "[Fixed] Windows: Don't rely on PATH for knowing where to find chcp - #2678", "[Fixed] Relocating a repository now actually does that - #2685", "[Fixed] Clicking autocompletes inserts them - #2674", "[Fixed] Use shift for shortcut chord instead of alt - #2607", "[Fixed] macOS: \"Open in Terminal\" works with repositories with spaces in their path - #2682" ], "1.0.0-beta0": [ "[New] Ask to install LFS filters when an LFS repository is added - #2227", "[New] Clone GitHub repositories tab - #57", "[Fixed] Long commit summary truncation - #1742", "[Fixed] Ensure the repository list is always enabled - #2648", "[Fixed] Windows: Detecting the available shells and editors when using a non-ASCII user encoding - #2624", "[Fixed] Clicking the \"Cancel\" button on the Publish Branch dialog - #2646" ], "0.8.1": [ "[New] 'Open in Shell' now supports multiple shells - #2473", "[New] Windows: Enable adding self-signed certificates - #2581", "[Improved] Enhanced image diffs - #2383", "[Improved] Line diffs - #2461", "[Improved] Octicons updated - #2495", "[Improved] Adds ability to close repository list using shortcut - #2532", "[Improved] Switch default buttons in the Publish Branch dialog - #2515", "[Improved] Bring back \"Contact Support\" - #1472", "[Improved] Persist repository filter text after closing repository list - #2571", "[Improved] Redesigned example commit in the Welcome flow - #2141", "[Improved] Tidy up initial \"external editor\" experience - #2551", "[Fixed] 'Include All' checkbox not in sync with partial selection - #2493", "[Fixed] Copied text from diff removed valid characters - #2499", "[Fixed] Click-focus on Windows would dismiss dialog - #2488", "[Fixed] Branch list not rendered in app - #2531", "[Fixed] Git operations checking certificate store - #2520", "[Fixed] Properly identify repositories whose remotes have a trailing slash - #2584", "[Fixed] Windows: Fix launching the `github` command line tool - #2563", "[Fixed] Use the primary email address if it's public - #2244", "[Fixed] Local branch not checked out after clone - #2561", "[Fixed] Only the most recent 30 issues would autocomplete for GitHub Enterprise repositories - #2541", "[Fixed] Missing \"View on GitHub\" menu item for non-Gitub repositories - #2615", "[Fixed] New tab opened when pressing \"]\" for certain keyboard layouts - #2607", "[Fixed] Windows: Crash when exiting full screen - #1502", "[Fixed] Windows: Detecting the available shells and editors when using a non-ASCII user encoding - #2624", "[Fixed] Ensure the repository list is always accessible - #2648" ], "0.8.1-beta4": [ "[Improved] Persist repository filter text after closing repository list - #2571", "[Improved] Redesigned example commit in the Welcome flow - #2141", "[Improved] Tidy up initial \"external editor\" experience - #2551", "[Fixed] Missing \"View on GitHub\" menu item for non-Gitub repositories - #2615", "[Fixed] New tab opened when pressing \"]\" for certain keyboard layouts - #2607", "[Fixed] Windows: Crash when exiting full screen - #1502" ], "0.8.1-beta3": [ "[New] Windows: Enable adding self-signed certificates - #2581", "[Improved] Adds ability to close repository list using shortcut - #2532", "[Improved] Switch default buttons in the Publish Branch dialog - #2515", "[Improved] Bring back \"Contact Support\" - #1472", "[Fixed] Properly identify repositories whose remotes have a trailing slash - #2584", "[Fixed] Windows: Fix launching the `github` command line tool - #2563", "[Fixed] Use the primary email address if it's public - #2244", "[Fixed] Local branch not checked out after clone - #2561", "[Fixed] Only the most recent 30 issues would autocomplete for GitHub Enterprise repositories - #2541" ], "0.8.1-beta2": [ "[Fixed] Branch list not rendered in app - #2531", "[Fixed] Git operations checking certificate store - #2520" ], "0.8.1-beta1": [ "[New] 'Open in Shell' now supports multiple shells - #2473", "[Improved] Enhanced image diffs - #2383", "[Improved] Line diffs - #2461", "[Improved] Octicons updated - #2495", "[Fixed] 'Include All' checkbox not in sync with partial selection - #2493", "[Fixed] Copied text from diff removed valid characters - #2499", "[Fixed] Click-focus on Windows would dismiss dialog - #2488" ], "0.8.1-beta0": [], "0.8.0": [ "[New] Added commit context menu - #2434", "[New] Added 'Open in External Editor' - #2009", "[New] Can choose whether a branch should be deleted on the remote as well as locally - #2136", "[New] Support authenticating with non-GitHub servers - #852", "[New] Added the ability to revert a commit - #752", "[New] Added a keyboard shortcut for opening the repository in the shell - #2138", "[Improved] Copied diff text no longer includes the line changetype markers - #1499", "[Improved] Fetch if a push fails because they need to pull first - #2431", "[Improved] Discard changes performance - #1889", "[Fixed] Show 'Add Repository' dialog when repository is dragged onto the app - #2442", "[Fixed] Dialog component did not remove event handler - #2469", "[Fixed] Open in External Editor context menu - #2475", "[Fixed] Update to Git 2.14.1 to fix security vulnerability - #2432", "[Fixed] Recent branches disappearing after renaming a branch - #2426", "[Fixed] Changing the default branch on GitHub.com is now reflected in the app - #1489", "[Fixed] Swap around some callouts for no repositories - #2447", "[Fixed] Darker unfocused selection color - #1669", "[Fixed] Increase the max sidebar width - #1588", "[Fixed] Don't say \"Publish this branch to GitHub\" for non-GitHub repositories - #1498", "[Fixed] macOS: Protocol schemes not getting registered - #2429", "[Fixed] Patches which contain the \"no newline\" marker would fail to apply - #2123", "[Fixed] Close the autocompletion popover when it loses focus - #2358", "[Fixed] Clear the selected org when switching Publish Repository tabs - #2386", "[Fixed] 'Create Without Pushing' button throwing an exception while opening a pull request - #2368", "[Fixed] Windows: Don't removing the running app out from under itself when there are updates pending - #2373", "[Fixed] Windows: Respect `core.autocrlf` and `core.safeclrf` when modifying the .gitignore - #1535", "[Fixed] Windows: Fix opening the app from the command line - #2396" ], "0.7.3-beta5": [], "0.7.3-beta4": [], "0.7.3-beta3": [], "0.7.3-beta2": [], "0.7.3-beta1": [], "0.7.3-beta0": [], "0.7.2": ["[Fixed] Issues with auto-updating to 0.7.1."], "0.7.2-beta0": [], "0.7.1": [ "[Improved] Redesigned error and warning dialogs to be clearer - #2277", "[Improved] Create Pull Request dialog shows more feedback while it's working - #2265", "[Improved] Version text is now copiable - #1935", "[Fixed] Preserve existing GitHub API information when API requests fail - #2282", "[Fixed] Pass through error messages as received from the API - #2279", "[Fixed] The Pull and Create Pull Request menu items had the same shortcut - #2274", "[Fixed] Launching the `github` command line tool from a Fish shell - #2299", "[Fixed] Help menu items now work - #2314", "[Fixed] Windows: `github` command line tool not installing after updating - #2312", "[Fixed] Caret position jumping around while changing the path for adding a local repository - #2222", "[Fixed] Error dialogs being closed too easily - #2211", "[Fixed] Windows: Non-ASCII credentials were mangled - #189" ], "0.7.1-beta5": [ "[Improved] Redesigned error and warning dialogs to be clearer - #2277", "[Improved] Create Pull Request dialog shows more feedback while it's working - #2265", "[Fixed] Preserve existing GitHub API information when API requests fail - #2282", "[Fixed] Pass through error messages as received from the API - #2279", "[Fixed] The Pull and Create Pull Request menu items had the same shortcut - #2274", "[Fixed] Launching the `github` command line tool from a Fish shell - #2299", "[Fixed] Help menu items now work - #2314", "[Fixed] Windows: `github` command line tool not installing after updating - #2312", "[Fixed] Caret position jumping around while changing the path for adding a local repository - #2222", "[Fixed] Error dialogs being closed too easily - #2211", "[Fixed] Windows: Non-ASCII credentials were mangled - #189" ], "0.7.1-beta4": [], "0.7.1-beta3": [], "0.7.1-beta2": [], "0.7.1-beta1": [], "0.7.1-beta0": [ "[Improved] Redesigned error and warning dialogs to be clearer - #2277", "[Fixed] Preserve existing GitHub API information when API requests fail - #2282", "[Fixed] Pass through error messages as received from the API - #2279", "[Fixed] The Pull and Create Pull Request menu items had the same shortcut - #2274", "[Fixed] Launching the `github` command line tool from a Fish shell - #2299" ], "0.7.0": [ "[New] Added the Branch > Create Pull Request menu item - #2135", "[New] Added the `github` command line tool - #696", "[Improved] Better error message when publishing a repository fails - #2089", "[Improved] Windows: Don't recreate the desktop shortcut if it's been deleted - #1759", "[Fixed] Cloning a repository's wiki - #1624", "[Fixed] Don't call GitHub Enterprise GitHub.com - #2094", "[Fixed] Don't push after publishing a new repository if the branch is unborn - #2086", "[Fixed] Don't close dialogs when clicking the title bar - #2056", "[Fixed] Windows: Clicking 'Show in Explorer' doesn't bring Explorer to the front - #2127", "[Fixed] Windows: Opening links doesn't bring the browser to the front - #1945", "[Fixed] macOS: Closing the window wouldn't exit fullscreen - #1901", "[Fixed] Scale blankslate images so they look nicer on high resolution displays - #1946", "[Fixed] Windows: Installer not completing or getting stuck in a loop - #1875 #1863", "[Fixed] Move the 'Forgot Password' link to fix the tab order of the sign in view - #2200" ], "0.6.3-beta7": [], "0.6.3-beta6": [], "0.6.3-beta5": [], "0.6.3-beta4": [], "0.6.3-beta3": [], "0.6.3-beta2": [], "0.6.3-beta1": [], "0.6.3-beta0": [], "0.6.2": [ "[New] Link to User Guides from the Help menu - #1963", "[New] Added the 'Open in External Editor' contextual menu item to changed files - #2023", "[New] Added the 'Show' and 'Open Command Prompt' contextual menu items to repositories - #1554", "[New] Windows: Support self-signed or untrusted certificates - #671", "[New] Copy the SHA to the clipboard when clicked - #1501", "[Improved] Provide the option of initializing a new repository when adding a directory that isn't already one - #969", "[Improved] Link to the working directory when there are no changes - #1871", "[Improved] Hitting Enter when selecting a base branch creates the new branch - #1780", "[Improved] Prefix repository names with their owner if they are ambiguous - #1848", "[Fixed] Sort and filter licenses like GitHub.com - #1987", "[Fixed] Long branch names not getting truncated in the Rename Branch dialog - #1891", "[Fixed] Prune old log files - #1540", "[Fixed] Ensure the local path is valid before trying to create a new repository - #1487", "[Fixed] Support cloning repository wikis - #1624", "[Fixed] Disable the Select All checkbox when there are no changes - #1389", "[Fixed] Changed docx files wouldn't show anything in the diff panel - #1990", "[Fixed] Disable the Merge button when there are no commits to merge - #1359", "[Fixed] Username/password authentication not working for GitHub Enterprise - #2064", "[Fixed] Better error messages when an API call fails - #2017", "[Fixed] Create the 'logs' directory if it doesn't exist - #1550", "[Fixed] Enable the 'Remove' menu item for missing repositories - #1776" ], "0.6.1": [ "[Fixed] Properly log stats opt in/out - #1949", "[Fixed] Source maps for exceptions in the main process - #1957", "[Fixed] Styling of the exception dialog - #1956", "[Fixed] Handle ambiguous references - #1947", "[Fixed] Handle non-ASCII text in diffs - #1970", "[Fixed] Uncaught exception when hitting the arrow keys after showing autocompletions - #1971", "[Fixed] Clear the organizations list when publishing a new repository and switching between tabs - #1969", "[Fixed] Push properly when a tracking branch has a different name from the local branch - #1967", "[Improved] Warn when line endings will change - #1906" ], "0.6.0": [ "[Fixed] Issue autocompletion not working for older issues - #1814", "[Fixed] GitHub repository association not working for repositories with some remote URL formats - #1826 #1679", "[Fixed] Don't try to delete a remote branch that no longer exists - #1829", "[Fixed] Tokens created by development builds would be used in production builds but wouldn't work - #1727", "[Fixed] Submodules can now be added - #708", "[Fixed] Properly handle the case where a file is added to the index but removed from the working tree - #1310", "[Fixed] Use a local image for the default avatar - #1621", "[Fixed] Make the file path in diffs selectable - #1768", "[Improved] More logging! - #1823", "[Improved] Better error message when trying to add something that's not a repository - #1747", "[Improved] Copy the shell environment into the app's environment - #1796", "[Improved] Updated to Git 2.13.0 - #1897", "[Improved] Add 'Reveal' to the contextual menu for changed files - #1566", "[Improved] Better handling of large diffs - #1818 #1524", "[Improved] App launch time - #1900" ], "0.5.9": [ "[New] Added Zoom In and Zoom Out - #1217", "[Fixed] Various errors when on an unborn branch - #1450", "[Fixed] Disable push/pull menu items when there is no remote - #1448", "[Fixed] Better error message when the GitHub Enterprise version is too old - #1628", "[Fixed] Error parsing non-JSON responses - #1505 #1522", "[Fixed] Updated the 'Install Git' help documentation link - #1797", "[Fixed] Disable menu items while in the Welcome flow - #1529", "[Fixed] Windows: Fall back to HOME if Document cannot be found - #1825", "[Improved] Close the window when an exception occurs - #1562", "[Improved] Always use merge when pulling - #1627", "[Improved] Move the 'New Branch' menu item into the Branch menu - #1757", "[Improved] Remove Repository's default button is now Cancel - #1751", "[Improved] Only fetch the default remote - #1435", "[Improved] Faster commits with many files - #1405", "[Improved] Measure startup time more reliably - #1798", "[Improved] Prefer the GitHub repository name instead of the name on disk - #664" ], "0.5.8": [ "[Fixed] Switching tabs in Preferences/Settings or Repository Settings would close the dialog - #1724", "[Improved] Standardized colors which improves contrast and readability - #1713" ], "0.5.7": [ "[Fixed] Windows: Handle protocol events which launch the app - #1582", "[Fixed] Opting out of stats reporting in the Welcome flow - #1698", "[Fixed] Commit description text being too light - #1695", "[Fixed] Exception on startup if the app was activated too quickly - #1564", "[Improved] Default directory for cloning now - #1663", "[Improved] Accessibility support - #1289", "[Improved] Lovely blank slate illustrations - #1708" ], "0.5.6": [ "[Fixed] macOS: The buttons in the Untrusted Server dialog not doing anything - #1622", "[Fixed] Better warning in Rename Branch when the branch will be created with a different name than was entered - #1480", "[Fixed] Provide a tooltip for commit summaries in the History list - #1483", "[Fixed] Prevent the Update Available banner from getting squished - #1632", "[Fixed] Title bar not responding to double-clicks - #1590 #1655", "[Improved] Discard All Changes is now accessible by right-clicking the file column header - #1635" ], "0.5.5": [ "[Fixed] Save the default path after creating a new repository - #1486", "[Fixed] Only let the user launch the browser once for the OAuth flow - #1427", "[Fixed] Don't linkify invalid URLs - #1456", "[Fixed] Excessive padding in the Merge Branch dialog - #1577", "[Fixed] Octicon pixel alignment issues - #1584", "[Fixed] Windows: Invoking some menu items would break the window's snapped state - #1603", "[Fixed] macOS: Errors authenticating while pushing - #1514", "[Fixed] Don't linkify links in the History list or in Undo - #1548 #1608 #1474", "[Fixed] Diffs not working when certain git config values were set - #1559" ], "0.5.4": [ "[Fixed] The release notes URL pointed to the wrong page - #1503", "[Fixed] Only create the `logs` directory if it doesn't already exist - #1510", "[Fixed] Uncaught exception creating a new repository if you aren't a member of any orgs - #1507", "[Fixed] Only report the first uncaught exception - #1517", "[Fixed] Include the name of the default branch in the New Branch dialog - #1449", "[Fixed] Uncaught exception if a network error occurred while loading user email addresses - #1522 #1508", "[Fixed] Uncaught exception while performing a contextual menu action - #1532", "[Improved] Move all error logging to the main process - #1473", "[Improved] Stats reporting reliability - #1561" ], "0.5.3": [ "[Fixed] Display of large image diffs - #1494", "[Fixed] Discard Changes spacing - #1495" ], "0.5.2": [ "[Fixed] Display errors that happen while publishing a repository - #1396", "[Fixed] Menu items not updating - #1462", "[Fixed] Always select the first changed file - #1306", "[Fixed] macOS: Use Title Case consistently - #1477 #1481", "[Fixed] Create Branch padding - #1479", "[Fixed] Bottom padding in commit descriptions - #1345", "[Improved] Dialog polish - #1451", "[Improved] Store logs in a logs directory - #1370", "[Improved] New Welcome illustrations - #1471", "[Improved] Request confirmation before removing a repository - #1233", "[Improved] Windows icon polish - #1457" ], "0.5.1": [ "[New] Windows: A nice little gif while installing the app - #1440", "[Fixed] Disable pinch zoom - #1431", "[Fixed] Don't show carriage return indicators in diffs - #1444", "[Fixed] History wouldn't update after switching branches - #1446", "[Improved] Include more information in exception reports - #1429", "[Improved] Updated Terms and Conditions - #1438", "[Improved] Sub-pixel anti-aliasing in some lists - #1452", "[Improved] Windows: A new application identifier, less likely to collide with other apps - #1441" ], "0.5.0": [ "[Added] Menu item for showing the app logs - #1349", "[Fixed] Don't let the two-factor authentication dialog be submitted while it's empty - #1386", "[Fixed] Undo Commit showing the wrong commit - #1373", "[Fixed] Windows: Update the icon used for the installer - #1410", "[Fixed] Undoing the first commit - #1401", "[Fixed] A second window would be opened during the OAuth dance - #1382", "[Fixed] Don't include the comment from the default merge commit message - #1367", "[Fixed] Show progress while committing - #923", "[Fixed] Windows: Merge Branch sizing would be wrong on high DPI monitors - #1210", "[Fixed] Windows: Resize the app from the top left corner - #1424", "[Fixed] Changing the destination path for cloning a repository now appends the repository's name - #1408", "[Fixed] The blank slate view could be visible briefly when the app launched - #1398", "[Improved] Performance updating menu items - #1321", "[Improved] Windows: Dim the title bar when the app loses focus - #1189" ], "0.0.39": ["[Fixed] An uncaught exception when adding a user - #1394"], "0.0.38": [ "[New] Shiny new icon! - #1221", "[New] More helpful blank slate view - #871", "[Fixed] Don't allow Undo while pushing/pulling/fetching - #1047", "[Fixed] Updating the default branch on GitHub wouldn't be reflected in the app - #1028 #1314", "[Fixed] Long repository names would overflow their container - #1331", "[Fixed] Removed development menu items in production builds - #1031 #1251 #1323 #1340", "[Fixed] Create Branch no longer changes as it's animating closed - #1304", "[Fixed] Windows: Cut / Copy / Paste menu items not working - #1379", "[Improved] Show a better error message when the user tries to authenticate with a personal access token - #1313", "[Improved] Link to the repository New Issue page from the Help menu - #1349", "[Improved] Clone in Desktop opens the Clone dialog - #918" ], "0.0.37": [ "[Fixed] Better display of the 'no newline at end of file' indicator - #1253", "[Fixed] macOS: Destructive dialogs now use the expected button order - #1315", "[Fixed] Display of submodule paths - #785", "[Fixed] Incomplete stats submission - #1337", "[Improved] Redesigned welcome flow - #1254", "[Improved] App launch time - #1225", "[Improved] Handle uncaught exceptions - #1106" ], "0.0.36": [ "[Fixed] Bugs around associating an email address with a GitHub user - #975", "[Fixed] Use the correct reference name for an unborn branch - #1283", "[Fixed] Better diffs for renamed files - #980", "[Fixed] Typo in Create Branch - #1303", "[Fixed] Don't allow whitespace-only branch names - #1288", "[Improved] Focus ring polish - #1287", "[Improved] Less intrusive update notifications - #1136", "[Improved] Faster launch time on Windows - #1309", "[Improved] Faster git information refreshing - #1305", "[Improved] More consistent use of sentence case on Windows - #1316", "[Improved] Autocomplete polish - #1241" ], "0.0.35": [ "[New] Show push/pull/fetch progress - #1238", "[Fixed] macOS: Add the Zoom menu item - #1260", "[Fixed] macOS: Don't show the titlebar while full screened - #1247", "[Fixed] Windows: Updates would make the app unresponsive - #1269", "[Fixed] Windows: Keyboard navigation in menus - #1293", "[Fixed] Windows: Repositories list item not working - #1293", "[Fixed] Auto updater errors not being propagated properly - #1266", "[Fixed] Only show the current branch tooltip on the branches button - #1275", "[Fixed] Double path truncation - #1270", "[Fixed] Sometimes toggling a file's checkbox would get undone - #1248", "[Fixed] Uncaught exception when internet connectivity was lost - #1048", "[Fixed] Cloned repositories wouldn't be associated with their GitHub repository - #1285", "[Improved] Better performance on large repositories - #1281", "[Improved] Commit summary is now expandable when the summary is long - #519", "[Improved] The SHA in historical commits is now selectable - #1154", "[Improved] The Create Branch dialog was polished and refined - #1137" ], "0.0.34": [ "[New] macOS: Users can choose whether to accept untrusted certificates - #671", "[New] Windows: Users are prompted to install git when opening a shell if it is not installed - #813", "[New] Checkout progress is shown if branch switching takes a while - #1208", "[New] Commit summary and description are automatically populated for merge conflicts - #1228", "[Fixed] Cloning repositories while not signed in - #1163", "[Fixed] Merge commits are now created as merge commits - #1216", "[Fixed] Display of diffs with /r newline - #1234", "[Fixed] Windows: Maximized windows are no longer positioned slightly off screen - #1202", "[Fixed] JSON parse errors - #1243", "[Fixed] GitHub Enterprise repositories were not associated with the proper Enterprise repository - #1242", "[Fixed] Timestamps in the Branches list would wrap - #1255", "[Fixed] Merges created from pulling wouldn't use the right git author - #1262", "[Improved] Check for update errors are suppressed if they happen in the background - #1104, #1195", "[Improved] The shortcut to show the repositories list is now command or control-T - #1220", "[Improved] Command or control-W now closes open dialogs - #949", "[Improved] Less memory usage while parsing large diffs - #1235" ], "0.0.33": ["[Fixed] Update Now wouldn't update now - #1209"], "0.0.32": [ "[New] You can now disable stats reporting from Preferences > Advanced - #1120", "[New] Acknowledgements are now available from About - #810", "[New] Open pull requests from dot com in the app - #808", "[Fixed] Don't show background fetch errors - #875", "[Fixed] No more surprise and delight - #620", "[Fixed] Can't discard renamed files - #1177", "[Fixed] Logging out of one account would log out of all accounts - #1192", "[Fixed] Renamed files truncation - #695", "[Fixed] Git on Windows now integrates with the system certificate store - #706", "[Fixed] Cloning with an account/repoository shortcut would always fail - #1150", "[Fixed] OS version reporting - #1130", "[Fixed] Publish a new repository would always fail - #1046", "[Fixed] Authentication would fail for the first repository after logging in - #1118", "[Fixed] Don't flood the user with errors if a repository disappears on disk - #1132", "[Improved] The Merge dialog uses the Branches list instead of a drop down menu - #749", "[Improved] Lots of design polish - #1188, #1183, #1170, #1184, #1181, #1179, #1142, #1125" ], "0.0.31": [ "[New] Prompt user to login when authentication error occurs - #903", "[New] Windows application has a new app menu, replaces previous hamburger menu - #991", "[New] Refreshed colours to align with GitHub website scheme - #1077", "[New] Custom about dialog on all platforms - #1102", "[Fixed] Improved error handling when probing for a GitHub Enterprise server - #1026", "[Fixed] User can cancel 2FA flow - #1057", "[Fixed] Tidy up current set of menu items - #1063", "[Fixed] Manually focus the window when a URL action has been received - #1072", "[Fixed] Disable middle-click event to prevent new windows being launched - #1074", "[Fixed] Pre-fill the account name in the Welcome wizard, not login - #1078", "[Fixed] Diffs wouldn't work if an external diff program was configured - #1123", "[Improved] Lots of design polish work - #1113, #1099, #1094, #1077" ], "0.0.30": [ "[Fixed] Crash when invoking menu item due to incorrect method signature - #1041" ], "0.0.29": [ "[New] Commit summary and description fields now display issues and mentions as links for GitHub repositories - #941", "[New] Show placeholder when the repository cannot be found on disk - #946", "[New] New Repository actions moved out of popover and into new menu - #1018", "[Fixed] Display a helpful error message when an unverified user signs into GitHub Desktop - #1010", "[Fixed] Fix kerning issue when access keys displayed - #1033", "[Fixed] Protected branches show a descriptive error when the push is rejected - #1036", "[Fixed] 'Open in shell' on Windows opens to repository location - #1037" ], "0.0.28": ["[Fixed] Bumping release notes to test deployments again"], "0.0.27": [ "[Fixed] 2FA dialog when authenticating has information for SMS authentication - #1009", "[Fixed] Autocomplete for users handles accounts containing `-` - #1008" ], "0.0.26": [ "[Fixed] Address deployment issue by properly documenting release notes" ], "0.0.25": [ "[Added] Autocomplete displays user matches - #942", "[Fixed] Handle Enter key in repository and branch list when no matches exist - #995", "[Fixed] 'Add Repository' button displays in dropdown when repository list empty - #984", "[Fixed] Correct icon displayed for non-GitHub repository - #964 #955", "[Fixed] Enter key when inside dialog submits form - #956", "[Fixed] Updated URL handler entry on macOS - #945", "[Fixed] Commit button is disabled while commit in progress - #940", "[Fixed] Handle index state change when gitginore change is discarded - #935", "[Fixed] 'Create New Branch' view squashes branch list when expanded - #927", "[Fixed] Application creates repository path if it doesn't exist on disk - #925", "[Improved] Preferences sign-in flow updated to standalone dialogs - #961" ], "0.0.24": ["Changed a thing", "Added another thing"] } }
rramatchandran / Big O Performance Java# big-o-performance A simple html app to demonstrate performance costs of data structures. - Clone the project - Navigate to the root of the project in a termina or command prompt - Run 'npm install' - Run 'npm start' - Go to the URL specified in the terminal or command prompt to try out the app. # This app was created from the Create React App NPM. Below are instructions from that project. Below you will find some information on how to perform common tasks. You can find the most recent version of this guide [here](https://github.com/facebookincubator/create-react-app/blob/master/template/README.md). ## Table of Contents - [Updating to New Releases](#updating-to-new-releases) - [Sending Feedback](#sending-feedback) - [Folder Structure](#folder-structure) - [Available Scripts](#available-scripts) - [npm start](#npm-start) - [npm run build](#npm-run-build) - [npm run eject](#npm-run-eject) - [Displaying Lint Output in the Editor](#displaying-lint-output-in-the-editor) - [Installing a Dependency](#installing-a-dependency) - [Importing a Component](#importing-a-component) - [Adding a Stylesheet](#adding-a-stylesheet) - [Post-Processing CSS](#post-processing-css) - [Adding Images and Fonts](#adding-images-and-fonts) - [Adding Bootstrap](#adding-bootstrap) - [Adding Flow](#adding-flow) - [Adding Custom Environment Variables](#adding-custom-environment-variables) - [Integrating with a Node Backend](#integrating-with-a-node-backend) - [Proxying API Requests in Development](#proxying-api-requests-in-development) - [Deployment](#deployment) - [Now](#now) - [Heroku](#heroku) - [Surge](#surge) - [GitHub Pages](#github-pages) - [Something Missing?](#something-missing) ## Updating to New Releases Create React App is divided into two packages: * `create-react-app` is a global command-line utility that you use to create new projects. * `react-scripts` is a development dependency in the generated projects (including this one). You almost never need to update `create-react-app` itself: it’s delegates all the setup to `react-scripts`. When you run `create-react-app`, it always creates the project with the latest version of `react-scripts` so you’ll get all the new features and improvements in newly created apps automatically. To update an existing project to a new version of `react-scripts`, [open the changelog](https://github.com/facebookincubator/create-react-app/blob/master/CHANGELOG.md), find the version you’re currently on (check `package.json` in this folder if you’re not sure), and apply the migration instructions for the newer versions. In most cases bumping the `react-scripts` version in `package.json` and running `npm install` in this folder should be enough, but it’s good to consult the [changelog](https://github.com/facebookincubator/create-react-app/blob/master/CHANGELOG.md) for potential breaking changes. We commit to keeping the breaking changes minimal so you can upgrade `react-scripts` painlessly. ## Sending Feedback We are always open to [your feedback](https://github.com/facebookincubator/create-react-app/issues). ## Folder Structure After creation, your project should look like this: ``` my-app/ README.md index.html favicon.ico node_modules/ package.json src/ App.css App.js index.css index.js logo.svg ``` For the project to build, **these files must exist with exact filenames**: * `index.html` is the page template; * `favicon.ico` is the icon you see in the browser tab; * `src/index.js` is the JavaScript entry point. You can delete or rename the other files. You may create subdirectories inside `src`. For faster rebuilds, only files inside `src` are processed by Webpack. You need to **put any JS and CSS files inside `src`**, or Webpack won’t see them. You can, however, create more top-level directories. They will not be included in the production build so you can use them for things like documentation. ## Available Scripts In the project directory, you can run: ### `npm start` Runs the app in the development mode.<br> Open [http://localhost:3000](http://localhost:3000) to view it in the browser. The page will reload if you make edits.<br> You will also see any lint errors in the console. ### `npm run build` Builds the app for production to the `build` folder.<br> It correctly bundles React in production mode and optimizes the build for the best performance. The build is minified and the filenames include the hashes.<br> Your app is ready to be deployed! ### `npm run eject` **Note: this is a one-way operation. Once you `eject`, you can’t go back!** If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. ## Displaying Lint Output in the Editor >Note: this feature is available with `react-scripts@0.2.0` and higher. Some editors, including Sublime Text, Atom, and Visual Studio Code, provide plugins for ESLint. They are not required for linting. You should see the linter output right in your terminal as well as the browser console. However, if you prefer the lint results to appear right in your editor, there are some extra steps you can do. You would need to install an ESLint plugin for your editor first. >**A note for Atom `linter-eslint` users** >If you are using the Atom `linter-eslint` plugin, make sure that **Use global ESLint installation** option is checked: ><img src="http://i.imgur.com/yVNNHJM.png" width="300"> Then make sure `package.json` of your project ends with this block: ```js { // ... "eslintConfig": { "extends": "./node_modules/react-scripts/config/eslint.js" } } ``` Projects generated with `react-scripts@0.2.0` and higher should already have it. If you don’t need ESLint integration with your editor, you can safely delete those three lines from your `package.json`. Finally, you will need to install some packages *globally*: ```sh npm install -g eslint babel-eslint eslint-plugin-react eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-flowtype ``` We recognize that this is suboptimal, but it is currently required due to the way we hide the ESLint dependency. The ESLint team is already [working on a solution to this](https://github.com/eslint/eslint/issues/3458) so this may become unnecessary in a couple of months. ## Installing a Dependency The generated project includes React and ReactDOM as dependencies. It also includes a set of scripts used by Create React App as a development dependency. You may install other dependencies (for example, React Router) with `npm`: ``` npm install --save <library-name> ``` ## Importing a Component This project setup supports ES6 modules thanks to Babel. While you can still use `require()` and `module.exports`, we encourage you to use [`import` and `export`](http://exploringjs.com/es6/ch_modules.html) instead. For example: ### `Button.js` ```js import React, { Component } from 'react'; class Button extends Component { render() { // ... } } export default Button; // Don’t forget to use export default! ``` ### `DangerButton.js` ```js import React, { Component } from 'react'; import Button from './Button'; // Import a component from another file class DangerButton extends Component { render() { return <Button color="red" />; } } export default DangerButton; ``` Be aware of the [difference between default and named exports](http://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281). It is a common source of mistakes. We suggest that you stick to using default imports and exports when a module only exports a single thing (for example, a component). That’s what you get when you use `export default Button` and `import Button from './Button'`. Named exports are useful for utility modules that export several functions. A module may have at most one default export and as many named exports as you like. Learn more about ES6 modules: * [When to use the curly braces?](http://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281) * [Exploring ES6: Modules](http://exploringjs.com/es6/ch_modules.html) * [Understanding ES6: Modules](https://leanpub.com/understandinges6/read#leanpub-auto-encapsulating-code-with-modules) ## Adding a Stylesheet This project setup uses [Webpack](https://webpack.github.io/) for handling all assets. Webpack offers a custom way of “extending” the concept of `import` beyond JavaScript. To express that a JavaScript file depends on a CSS file, you need to **import the CSS from the JavaScript file**: ### `Button.css` ```css .Button { padding: 20px; } ``` ### `Button.js` ```js import React, { Component } from 'react'; import './Button.css'; // Tell Webpack that Button.js uses these styles class Button extends Component { render() { // You can use them as regular CSS styles return <div className="Button" />; } } ``` **This is not required for React** but many people find this feature convenient. You can read about the benefits of this approach [here](https://medium.com/seek-ui-engineering/block-element-modifying-your-javascript-components-d7f99fcab52b). However you should be aware that this makes your code less portable to other build tools and environments than Webpack. In development, expressing dependencies this way allows your styles to be reloaded on the fly as you edit them. In production, all CSS files will be concatenated into a single minified `.css` file in the build output. If you are concerned about using Webpack-specific semantics, you can put all your CSS right into `src/index.css`. It would still be imported from `src/index.js`, but you could always remove that import if you later migrate to a different build tool. ## Post-Processing CSS This project setup minifies your CSS and adds vendor prefixes to it automatically through [Autoprefixer](https://github.com/postcss/autoprefixer) so you don’t need to worry about it. For example, this: ```css .App { display: flex; flex-direction: row; align-items: center; } ``` becomes this: ```css .App { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-box-align: center; -ms-flex-align: center; align-items: center; } ``` There is currently no support for preprocessors such as Less, or for sharing variables across CSS files. ## Adding Images and Fonts With Webpack, using static assets like images and fonts works similarly to CSS. You can **`import` an image right in a JavaScript module**. This tells Webpack to include that image in the bundle. Unlike CSS imports, importing an image or a font gives you a string value. This value is the final image path you can reference in your code. Here is an example: ```js import React from 'react'; import logo from './logo.png'; // Tell Webpack this JS file uses this image console.log(logo); // /logo.84287d09.png function Header() { // Import result is the URL of your image return <img src={logo} alt="Logo" />; } export default function Header; ``` This works in CSS too: ```css .Logo { background-image: url(./logo.png); } ``` Webpack finds all relative module references in CSS (they start with `./`) and replaces them with the final paths from the compiled bundle. If you make a typo or accidentally delete an important file, you will see a compilation error, just like when you import a non-existent JavaScript module. The final filenames in the compiled bundle are generated by Webpack from content hashes. If the file content changes in the future, Webpack will give it a different name in production so you don’t need to worry about long-term caching of assets. Please be advised that this is also a custom feature of Webpack. **It is not required for React** but many people enjoy it (and React Native uses a similar mechanism for images). However it may not be portable to some other environments, such as Node.js and Browserify. If you prefer to reference static assets in a more traditional way outside the module system, please let us know [in this issue](https://github.com/facebookincubator/create-react-app/issues/28), and we will consider support for this. ## Adding Bootstrap You don’t have to use [React Bootstrap](https://react-bootstrap.github.io) together with React but it is a popular library for integrating Bootstrap with React apps. If you need it, you can integrate it with Create React App by following these steps: Install React Bootstrap and Bootstrap from NPM. React Bootstrap does not include Bootstrap CSS so this needs to be installed as well: ``` npm install react-bootstrap --save npm install bootstrap@3 --save ``` Import Bootstrap CSS and optionally Bootstrap theme CSS in the ```src/index.js``` file: ```js import 'bootstrap/dist/css/bootstrap.css'; import 'bootstrap/dist/css/bootstrap-theme.css'; ``` Import required React Bootstrap components within ```src/App.js``` file or your custom component files: ```js import { Navbar, Jumbotron, Button } from 'react-bootstrap'; ``` Now you are ready to use the imported React Bootstrap components within your component hierarchy defined in the render method. Here is an example [`App.js`](https://gist.githubusercontent.com/gaearon/85d8c067f6af1e56277c82d19fd4da7b/raw/6158dd991b67284e9fc8d70b9d973efe87659d72/App.js) redone using React Bootstrap. ## Adding Flow Flow typing is currently [not supported out of the box](https://github.com/facebookincubator/create-react-app/issues/72) with the default `.flowconfig` generated by Flow. If you run it, you might get errors like this: ```js node_modules/fbjs/lib/Deferred.js.flow:60 60: Promise.prototype.done.apply(this._promise, arguments); ^^^^ property `done`. Property not found in 495: declare class Promise<+R> { ^ Promise. See lib: /private/tmp/flow/flowlib_34952d31/core.js:495 node_modules/fbjs/lib/shallowEqual.js.flow:29 29: return x !== 0 || 1 / (x: $FlowIssue) === 1 / (y: $FlowIssue); ^^^^^^^^^^ identifier `$FlowIssue`. Could not resolve name src/App.js:3 3: import logo from './logo.svg'; ^^^^^^^^^^^^ ./logo.svg. Required module not found src/App.js:4 4: import './App.css'; ^^^^^^^^^^^ ./App.css. Required module not found src/index.js:5 5: import './index.css'; ^^^^^^^^^^^^^ ./index.css. Required module not found ``` To fix this, change your `.flowconfig` to look like this: ```ini [libs] ./node_modules/fbjs/flow/lib [options] esproposal.class_static_fields=enable esproposal.class_instance_fields=enable module.name_mapper='^\(.*\)\.css$' -> 'react-scripts/config/flow/css' module.name_mapper='^\(.*\)\.\(jpg\|png\|gif\|eot\|otf\|webp\|svg\|ttf\|woff\|woff2\|mp4\|webm\)$' -> 'react-scripts/config/flow/file' suppress_type=$FlowIssue suppress_type=$FlowFixMe ``` Re-run flow, and you shouldn’t get any extra issues. If you later `eject`, you’ll need to replace `react-scripts` references with the `<PROJECT_ROOT>` placeholder, for example: ```ini module.name_mapper='^\(.*\)\.css$' -> '<PROJECT_ROOT>/config/flow/css' module.name_mapper='^\(.*\)\.\(jpg\|png\|gif\|eot\|otf\|webp\|svg\|ttf\|woff\|woff2\|mp4\|webm\)$' -> '<PROJECT_ROOT>/config/flow/file' ``` We will consider integrating more tightly with Flow in the future so that you don’t have to do this. ## Adding Custom Environment Variables >Note: this feature is available with `react-scripts@0.2.3` and higher. Your project can consume variables declared in your environment as if they were declared locally in your JS files. By default you will have `NODE_ENV` defined for you, and any other environment variables starting with `REACT_APP_`. These environment variables will be defined for you on `process.env`. For example, having an environment variable named `REACT_APP_SECRET_CODE` will be exposed in your JS as `process.env.REACT_APP_SECRET_CODE`, in addition to `process.env.NODE_ENV`. These environment variables can be useful for displaying information conditionally based on where the project is deployed or consuming sensitive data that lives outside of version control. First, you need to have environment variables defined, which can vary between OSes. For example, let's say you wanted to consume a secret defined in the environment inside a `<form>`: ```jsx render() { return ( <div> <small>You are running this application in <b>{process.env.NODE_ENV}</b> mode.</small> <form> <input type="hidden" defaultValue={process.env.REACT_APP_SECRET_CODE} /> </form> </div> ); } ``` The above form is looking for a variable called `REACT_APP_SECRET_CODE` from the environment. In order to consume this value, we need to have it defined in the environment: ### Windows (cmd.exe) ```cmd set REACT_APP_SECRET_CODE=abcdef&&npm start ``` (Note: the lack of whitespace is intentional.) ### Linux, OS X (Bash) ```bash REACT_APP_SECRET_CODE=abcdef npm start ``` > Note: Defining environment variables in this manner is temporary for the life of the shell session. Setting permanent environment variables is outside the scope of these docs. With our environment variable defined, we start the app and consume the values. Remember that the `NODE_ENV` variable will be set for you automatically. When you load the app in the browser and inspect the `<input>`, you will see its value set to `abcdef`, and the bold text will show the environment provided when using `npm start`: ```html <div> <small>You are running this application in <b>development</b> mode.</small> <form> <input type="hidden" value="abcdef" /> </form> </div> ``` Having access to the `NODE_ENV` is also useful for performing actions conditionally: ```js if (process.env.NODE_ENV !== 'production') { analytics.disable(); } ``` ## Integrating with a Node Backend Check out [this tutorial](https://www.fullstackreact.com/articles/using-create-react-app-with-a-server/) for instructions on integrating an app with a Node backend running on another port, and using `fetch()` to access it. You can find the companion GitHub repository [here](https://github.com/fullstackreact/food-lookup-demo). ## Proxying API Requests in Development >Note: this feature is available with `react-scripts@0.2.3` and higher. People often serve the front-end React app from the same host and port as their backend implementation. For example, a production setup might look like this after the app is deployed: ``` / - static server returns index.html with React app /todos - static server returns index.html with React app /api/todos - server handles any /api/* requests using the backend implementation ``` Such setup is **not** required. However, if you **do** have a setup like this, it is convenient to write requests like `fetch('/api/todos')` without worrying about redirecting them to another host or port during development. To tell the development server to proxy any unknown requests to your API server in development, add a `proxy` field to your `package.json`, for example: ```js "proxy": "http://localhost:4000", ``` This way, when you `fetch('/api/todos')` in development, the development server will recognize that it’s not a static asset, and will proxy your request to `http://localhost:4000/api/todos` as a fallback. Conveniently, this avoids [CORS issues](http://stackoverflow.com/questions/21854516/understanding-ajax-cors-and-security-considerations) and error messages like this in development: ``` Fetch API cannot load http://localhost:4000/api/todos. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. ``` Keep in mind that `proxy` only has effect in development (with `npm start`), and it is up to you to ensure that URLs like `/api/todos` point to the right thing in production. You don’t have to use the `/api` prefix. Any unrecognized request will be redirected to the specified `proxy`. Currently the `proxy` option only handles HTTP requests, and it won’t proxy WebSocket connections. If the `proxy` option is **not** flexible enough for you, alternatively you can: * Enable CORS on your server ([here’s how to do it for Express](http://enable-cors.org/server_expressjs.html)). * Use [environment variables](#adding-custom-environment-variables) to inject the right server host and port into your app. ## Deployment By default, Create React App produces a build assuming your app is hosted at the server root. To override this, specify the `homepage` in your `package.json`, for example: ```js "homepage": "http://mywebsite.com/relativepath", ``` This will let Create React App correctly infer the root path to use in the generated HTML file. ### Now See [this example](https://github.com/xkawi/create-react-app-now) for a zero-configuration single-command deployment with [now](https://zeit.co/now). ### Heroku Use the [Heroku Buildpack for Create React App](https://github.com/mars/create-react-app-buildpack). You can find instructions in [Deploying React with Zero Configuration](https://blog.heroku.com/deploying-react-with-zero-configuration). ### Surge Install the Surge CLI if you haven't already by running `npm install -g surge`. Run the `surge` command and log in you or create a new account. You just need to specify the *build* folder and your custom domain, and you are done. ```sh email: email@domain.com password: ******** project path: /path/to/project/build size: 7 files, 1.8 MB domain: create-react-app.surge.sh upload: [====================] 100%, eta: 0.0s propagate on CDN: [====================] 100% plan: Free users: email@domain.com IP Address: X.X.X.X Success! Project is published and running at create-react-app.surge.sh ``` Note that in order to support routers that use html5 `pushState` API, you may want to rename the `index.html` in your build folder to `200.html` before deploying to Surge. This [ensures that every URL falls back to that file](https://surge.sh/help/adding-a-200-page-for-client-side-routing). ### GitHub Pages >Note: this feature is available with `react-scripts@0.2.0` and higher. Open your `package.json` and add a `homepage` field: ```js "homepage": "http://myusername.github.io/my-app", ``` **The above step is important!** Create React App uses the `homepage` field to determine the root URL in the built HTML file. Now, whenever you run `npm run build`, you will see a cheat sheet with a sequence of commands to deploy to GitHub pages: ```sh git commit -am "Save local changes" git checkout -B gh-pages git add -f build git commit -am "Rebuild website" git filter-branch -f --prune-empty --subdirectory-filter build git push -f origin gh-pages git checkout - ``` You may copy and paste them, or put them into a custom shell script. You may also customize them for another hosting provider. Note that GitHub Pages doesn't support routers that use the HTML5 `pushState` history API under the hood (for example, React Router using `browserHistory`). This is because when there is a fresh page load for a url like `http://user.github.io/todomvc/todos/42`, where `/todos/42` is a frontend route, the GitHub Pages server returns 404 because it knows nothing of `/todos/42`. If you want to add a router to a project hosted on GitHub Pages, here are a couple of solutions: * You could switch from using HTML5 history API to routing with hashes. If you use React Router, you can switch to `hashHistory` for this effect, but the URL will be longer and more verbose (for example, `http://user.github.io/todomvc/#/todos/42?_k=yknaj`). [Read more](https://github.com/reactjs/react-router/blob/master/docs/guides/Histories.md#histories) about different history implementations in React Router. * Alternatively, you can use a trick to teach GitHub Pages to handle 404 by redirecting to your `index.html` page with a special redirect parameter. You would need to add a `404.html` file with the redirection code to the `build` folder before deploying your project, and you’ll need to add code handling the redirect parameter to `index.html`. You can find a detailed explanation of this technique [in this guide](https://github.com/rafrex/spa-github-pages). ## Something Missing? If you have ideas for more “How To” recipes that should be on this page, [let us know](https://github.com/facebookincubator/create-react-app/issues) or [contribute some!](https://github.com/facebookincubator/create-react-app/edit/master/template/README.md)
shinsenter / Defer.php🚀 A PHP library that focuses on minimizing payload size of HTML document and optimizing page speed.
vohidjon123 / Google(function(sttc){/* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ var n;function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a}; function ca(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var da=ca(this),ea="function"===typeof Symbol&&"symbol"===typeof Symbol("x"),p={},fa={};function r(a,b){var c=fa[b];if(null==c)return a[b];c=a[c];return void 0!==c?c:a[b]} function ha(a,b,c){if(b)a:{var d=a.split(".");a=1===d.length;var e=d[0],f;!a&&e in p?f=p:f=da;for(e=0;e<d.length-1;e++){var g=d[e];if(!(g in f))break a;f=f[g]}d=d[d.length-1];c=ea&&"es6"===c?f[d]:null;b=b(c);null!=b&&(a?ba(p,d,{configurable:!0,writable:!0,value:b}):b!==c&&(void 0===fa[d]&&(a=1E9*Math.random()>>>0,fa[d]=ea?da.Symbol(d):"$jscp$"+a+"$"+d),ba(f,fa[d],{configurable:!0,writable:!0,value:b})))}} ha("Symbol",function(a){function b(f){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(f||"")+"_"+e++,f)}function c(f,g){this.h=f;ba(this,"description",{configurable:!0,writable:!0,value:g})}if(a)return a;c.prototype.toString=function(){return this.h};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",e=0;return b},"es6"); ha("Symbol.iterator",function(a){if(a)return a;a=(0,p.Symbol)("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<b.length;c++){var d=da[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&ba(d.prototype,a,{configurable:!0,writable:!0,value:function(){return ia(aa(this))}})}return a},"es6"); function ia(a){a={next:a};a[r(p.Symbol,"iterator")]=function(){return this};return a}function ja(a){return a.raw=a}function u(a){var b="undefined"!=typeof p.Symbol&&r(p.Symbol,"iterator")&&a[r(p.Symbol,"iterator")];return b?b.call(a):{next:aa(a)}}function ka(a){if(!(a instanceof Array)){a=u(a);for(var b,c=[];!(b=a.next()).done;)c.push(b.value);a=c}return a}function la(a,b){return Object.prototype.hasOwnProperty.call(a,b)} var ma=ea&&"function"==typeof r(Object,"assign")?r(Object,"assign"):function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)la(d,e)&&(a[e]=d[e])}return a};ha("Object.assign",function(a){return a||ma},"es6");var na="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},oa; if(ea&&"function"==typeof Object.setPrototypeOf)oa=Object.setPrototypeOf;else{var pa;a:{var qa={a:!0},ra={};try{ra.__proto__=qa;pa=ra.a;break a}catch(a){}pa=!1}oa=pa?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var sa=oa; function v(a,b){a.prototype=na(b.prototype);a.prototype.constructor=a;if(sa)sa(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.Ub=b.prototype}function ta(){for(var a=Number(this),b=[],c=a;c<arguments.length;c++)b[c-a]=arguments[c];return b} ha("Promise",function(a){function b(g){this.h=0;this.j=void 0;this.i=[];this.G=!1;var h=this.l();try{g(h.resolve,h.reject)}catch(k){h.reject(k)}}function c(){this.h=null}function d(g){return g instanceof b?g:new b(function(h){h(g)})}if(a)return a;c.prototype.i=function(g){if(null==this.h){this.h=[];var h=this;this.j(function(){h.m()})}this.h.push(g)};var e=da.setTimeout;c.prototype.j=function(g){e(g,0)};c.prototype.m=function(){for(;this.h&&this.h.length;){var g=this.h;this.h=[];for(var h=0;h<g.length;++h){var k= g[h];g[h]=null;try{k()}catch(l){this.l(l)}}}this.h=null};c.prototype.l=function(g){this.j(function(){throw g;})};b.prototype.l=function(){function g(l){return function(m){k||(k=!0,l.call(h,m))}}var h=this,k=!1;return{resolve:g(this.P),reject:g(this.m)}};b.prototype.P=function(g){if(g===this)this.m(new TypeError("A Promise cannot resolve to itself"));else if(g instanceof b)this.U(g);else{a:switch(typeof g){case "object":var h=null!=g;break a;case "function":h=!0;break a;default:h=!1}h?this.O(g):this.A(g)}}; b.prototype.O=function(g){var h=void 0;try{h=g.then}catch(k){this.m(k);return}"function"==typeof h?this.ga(h,g):this.A(g)};b.prototype.m=function(g){this.C(2,g)};b.prototype.A=function(g){this.C(1,g)};b.prototype.C=function(g,h){if(0!=this.h)throw Error("Cannot settle("+g+", "+h+"): Promise already settled in state"+this.h);this.h=g;this.j=h;2===this.h&&this.R();this.H()};b.prototype.R=function(){var g=this;e(function(){if(g.N()){var h=da.console;"undefined"!==typeof h&&h.error(g.j)}},1)};b.prototype.N= function(){if(this.G)return!1;var g=da.CustomEvent,h=da.Event,k=da.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof g?g=new g("unhandledrejection",{cancelable:!0}):"function"===typeof h?g=new h("unhandledrejection",{cancelable:!0}):(g=da.document.createEvent("CustomEvent"),g.initCustomEvent("unhandledrejection",!1,!0,g));g.promise=this;g.reason=this.j;return k(g)};b.prototype.H=function(){if(null!=this.i){for(var g=0;g<this.i.length;++g)f.i(this.i[g]);this.i=null}};var f=new c; b.prototype.U=function(g){var h=this.l();g.ia(h.resolve,h.reject)};b.prototype.ga=function(g,h){var k=this.l();try{g.call(h,k.resolve,k.reject)}catch(l){k.reject(l)}};b.prototype.then=function(g,h){function k(t,y){return"function"==typeof t?function(F){try{l(t(F))}catch(z){m(z)}}:y}var l,m,q=new b(function(t,y){l=t;m=y});this.ia(k(g,l),k(h,m));return q};b.prototype.catch=function(g){return this.then(void 0,g)};b.prototype.ia=function(g,h){function k(){switch(l.h){case 1:g(l.j);break;case 2:h(l.j); break;default:throw Error("Unexpected state: "+l.h);}}var l=this;null==this.i?f.i(k):this.i.push(k);this.G=!0};b.resolve=d;b.reject=function(g){return new b(function(h,k){k(g)})};b.race=function(g){return new b(function(h,k){for(var l=u(g),m=l.next();!m.done;m=l.next())d(m.value).ia(h,k)})};b.all=function(g){var h=u(g),k=h.next();return k.done?d([]):new b(function(l,m){function q(F){return function(z){t[F]=z;y--;0==y&&l(t)}}var t=[],y=0;do t.push(void 0),y++,d(k.value).ia(q(t.length-1),m),k=h.next(); while(!k.done)})};return b},"es6");ha("Array.prototype.find",function(a){return a?a:function(b,c){a:{var d=this;d instanceof String&&(d=String(d));for(var e=d.length,f=0;f<e;f++){var g=d[f];if(b.call(c,g,f,d)){b=g;break a}}b=void 0}return b}},"es6"); ha("WeakMap",function(a){function b(g){this.h=(f+=Math.random()+1).toString();if(g){g=u(g);for(var h;!(h=g.next()).done;)h=h.value,this.set(h[0],h[1])}}function c(){}function d(g){var h=typeof g;return"object"===h&&null!==g||"function"===h}if(function(){if(!a||!Object.seal)return!1;try{var g=Object.seal({}),h=Object.seal({}),k=new a([[g,2],[h,3]]);if(2!=k.get(g)||3!=k.get(h))return!1;k.delete(g);k.set(h,4);return!k.has(g)&&4==k.get(h)}catch(l){return!1}}())return a;var e="$jscomp_hidden_"+Math.random(), f=0;b.prototype.set=function(g,h){if(!d(g))throw Error("Invalid WeakMap key");if(!la(g,e)){var k=new c;ba(g,e,{value:k})}if(!la(g,e))throw Error("WeakMap key fail: "+g);g[e][this.h]=h;return this};b.prototype.get=function(g){return d(g)&&la(g,e)?g[e][this.h]:void 0};b.prototype.has=function(g){return d(g)&&la(g,e)&&la(g[e],this.h)};b.prototype.delete=function(g){return d(g)&&la(g,e)&&la(g[e],this.h)?delete g[e][this.h]:!1};return b},"es6"); ha("Map",function(a){function b(){var h={};return h.L=h.next=h.head=h}function c(h,k){var l=h.h;return ia(function(){if(l){for(;l.head!=h.h;)l=l.L;for(;l.next!=l.head;)return l=l.next,{done:!1,value:k(l)};l=null}return{done:!0,value:void 0}})}function d(h,k){var l=k&&typeof k;"object"==l||"function"==l?f.has(k)?l=f.get(k):(l=""+ ++g,f.set(k,l)):l="p_"+k;var m=h.i[l];if(m&&la(h.i,l))for(h=0;h<m.length;h++){var q=m[h];if(k!==k&&q.key!==q.key||k===q.key)return{id:l,list:m,index:h,B:q}}return{id:l,list:m, index:-1,B:void 0}}function e(h){this.i={};this.h=b();this.size=0;if(h){h=u(h);for(var k;!(k=h.next()).done;)k=k.value,this.set(k[0],k[1])}}if(function(){if(!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var h=Object.seal({x:4}),k=new a(u([[h,"s"]]));if("s"!=k.get(h)||1!=k.size||k.get({x:4})||k.set({x:4},"t")!=k||2!=k.size)return!1;var l=k.entries(),m=l.next();if(m.done||m.value[0]!=h||"s"!=m.value[1])return!1;m=l.next();return m.done||4!=m.value[0].x|| "t"!=m.value[1]||!l.next().done?!1:!0}catch(q){return!1}}())return a;var f=new p.WeakMap;e.prototype.set=function(h,k){h=0===h?0:h;var l=d(this,h);l.list||(l.list=this.i[l.id]=[]);l.B?l.B.value=k:(l.B={next:this.h,L:this.h.L,head:this.h,key:h,value:k},l.list.push(l.B),this.h.L.next=l.B,this.h.L=l.B,this.size++);return this};e.prototype.delete=function(h){h=d(this,h);return h.B&&h.list?(h.list.splice(h.index,1),h.list.length||delete this.i[h.id],h.B.L.next=h.B.next,h.B.next.L=h.B.L,h.B.head=null,this.size--, !0):!1};e.prototype.clear=function(){this.i={};this.h=this.h.L=b();this.size=0};e.prototype.has=function(h){return!!d(this,h).B};e.prototype.get=function(h){return(h=d(this,h).B)&&h.value};e.prototype.entries=function(){return c(this,function(h){return[h.key,h.value]})};e.prototype.keys=function(){return c(this,function(h){return h.key})};e.prototype.values=function(){return c(this,function(h){return h.value})};e.prototype.forEach=function(h,k){for(var l=this.entries(),m;!(m=l.next()).done;)m=m.value, h.call(k,m[1],m[0],this)};e.prototype[r(p.Symbol,"iterator")]=e.prototype.entries;var g=0;return e},"es6");function ua(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var f=c++;return{value:b(f,a[f]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[r(p.Symbol,"iterator")]=function(){return e};return e} ha("String.prototype.startsWith",function(a){return a?a:function(b,c){if(null==this)throw new TypeError("The 'this' value for String.prototype.startsWith must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype.startsWith must not be a regular expression");var d=this.length,e=b.length;c=Math.max(0,Math.min(c|0,this.length));for(var f=0;f<e&&c<d;)if(this[c++]!=b[f++])return!1;return f>=e}},"es6");ha("globalThis",function(a){return a||da},"es_2020"); ha("Set",function(a){function b(c){this.h=new p.Map;if(c){c=u(c);for(var d;!(d=c.next()).done;)this.add(d.value)}this.size=this.h.size}if(function(){if(!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var c=Object.seal({x:4}),d=new a(u([c]));if(!d.has(c)||1!=d.size||d.add(c)!=d||1!=d.size||d.add({x:4})!=d||2!=d.size)return!1;var e=d.entries(),f=e.next();if(f.done||f.value[0]!=c||f.value[1]!=c)return!1;f=e.next();return f.done||f.value[0]==c||4!=f.value[0].x|| f.value[1]!=f.value[0]?!1:e.next().done}catch(g){return!1}}())return a;b.prototype.add=function(c){c=0===c?0:c;this.h.set(c,c);this.size=this.h.size;return this};b.prototype.delete=function(c){c=this.h.delete(c);this.size=this.h.size;return c};b.prototype.clear=function(){this.h.clear();this.size=0};b.prototype.has=function(c){return this.h.has(c)};b.prototype.entries=function(){return this.h.entries()};b.prototype.values=function(){return r(this.h,"values").call(this.h)};b.prototype.keys=r(b.prototype, "values");b.prototype[r(p.Symbol,"iterator")]=r(b.prototype,"values");b.prototype.forEach=function(c,d){var e=this;this.h.forEach(function(f){return c.call(d,f,f,e)})};return b},"es6");ha("Array.prototype.keys",function(a){return a?a:function(){return ua(this,function(b){return b})}},"es6");ha("Array.prototype.values",function(a){return a?a:function(){return ua(this,function(b,c){return c})}},"es8");ha("Number.isNaN",function(a){return a?a:function(b){return"number"===typeof b&&isNaN(b)}},"es6"); ha("Promise.prototype.finally",function(a){return a?a:function(b){return this.then(function(c){return p.Promise.resolve(b()).then(function(){return c})},function(c){return p.Promise.resolve(b()).then(function(){throw c;})})}},"es9");var w=this||self;function va(a){a=a.split(".");for(var b=w,c=0;c<a.length;c++)if(b=b[a[c]],null==b)return null;return b}function wa(a){var b=typeof a;return"object"!=b?b:a?Array.isArray(a)?"array":b:"null"} function xa(a){var b=wa(a);return"array"==b||"object"==b&&"number"==typeof a.length}function ya(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}function za(a){return Object.prototype.hasOwnProperty.call(a,Aa)&&a[Aa]||(a[Aa]=++Ba)}var Aa="closure_uid_"+(1E9*Math.random()>>>0),Ba=0;function Ca(a,b,c){return a.call.apply(a.bind,arguments)} function Da(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,d);return a.apply(b,e)}}return function(){return a.apply(b,arguments)}}function Ea(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?Ea=Ca:Ea=Da;return Ea.apply(null,arguments)} function Fa(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();d.push.apply(d,arguments);return a.apply(this,d)}}function Ga(a){var b=["__uspapi"],c=w;b[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+b[0]);for(var d;b.length&&(d=b.shift());)b.length||void 0===a?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=a}function Ha(a){return a};var Ia=(new Date).getTime();function Ja(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]} function Ka(a,b){var c=0;a=Ja(String(a)).split(".");b=Ja(String(b)).split(".");for(var d=Math.max(a.length,b.length),e=0;0==c&&e<d;e++){var f=a[e]||"",g=b[e]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];if(0==f[0].length&&0==g[0].length)break;c=La(0==f[1].length?0:parseInt(f[1],10),0==g[1].length?0:parseInt(g[1],10))||La(0==f[2].length,0==g[2].length)||La(f[2],g[2]);f=f[3];g=g[3]}while(0==c)}return c}function La(a,b){return a<b?-1:a>b?1:0};function Ma(){var a=w.navigator;return a&&(a=a.userAgent)?a:""}function x(a){return-1!=Ma().indexOf(a)};function Na(){return x("Trident")||x("MSIE")}function Oa(){return(x("Chrome")||x("CriOS"))&&!x("Edge")||x("Silk")}function Pa(a){var b={};a.forEach(function(c){b[c[0]]=c[1]});return function(c){return b[r(c,"find").call(c,function(d){return d in b})]||""}} function Qa(){var a=Ma();if(Na()){var b=/rv: *([\d\.]*)/.exec(a);if(b&&b[1])a=b[1];else{b="";var c=/MSIE +([\d\.]+)/.exec(a);if(c&&c[1])if(a=/Trident\/(\d.\d)/.exec(a),"7.0"==c[1])if(a&&a[1])switch(a[1]){case "4.0":b="8.0";break;case "5.0":b="9.0";break;case "6.0":b="10.0";break;case "7.0":b="11.0"}else b="7.0";else b=c[1];a=b}return a}c=RegExp("([A-Z][\\w ]+)/([^\\s]+)\\s*(?:\\((.*?)\\))?","g");b=[];for(var d;d=c.exec(a);)b.push([d[1],d[2],d[3]||void 0]);a=Pa(b);return x("Opera")?a(["Version","Opera"]): x("Edge")?a(["Edge"]):x("Edg/")?a(["Edg"]):x("Silk")?a(["Silk"]):Oa()?a(["Chrome","CriOS","HeadlessChrome"]):(a=b[2])&&a[1]||""};function Ra(a,b){for(var c=a.length,d="string"===typeof a?a.split(""):a,e=0;e<c;e++)e in d&&b.call(void 0,d[e],e,a)}function Sa(a,b){for(var c=a.length,d=[],e=0,f="string"===typeof a?a.split(""):a,g=0;g<c;g++)if(g in f){var h=f[g];b.call(void 0,h,g,a)&&(d[e++]=h)}return d}function Ta(a,b){for(var c=a.length,d=Array(c),e="string"===typeof a?a.split(""):a,f=0;f<c;f++)f in e&&(d[f]=b.call(void 0,e[f],f,a));return d} function Ua(a,b){for(var c=a.length,d="string"===typeof a?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a))return!0;return!1}function Va(a,b){a:{for(var c=a.length,d="string"===typeof a?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){b=e;break a}b=-1}return 0>b?null:"string"===typeof a?a.charAt(b):a[b]} function Wa(a,b){a:{for(var c="string"===typeof a?a.split(""):a,d=a.length-1;0<=d;d--)if(d in c&&b.call(void 0,c[d],d,a)){b=d;break a}b=-1}return 0>b?null:"string"===typeof a?a.charAt(b):a[b]}function Xa(a,b){a:if("string"===typeof a)a="string"!==typeof b||1!=b.length?-1:a.indexOf(b,0);else{for(var c=0;c<a.length;c++)if(c in a&&a[c]===b){a=c;break a}a=-1}return 0<=a}function Ya(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};function Za(a){Za[" "](a);return a}Za[" "]=function(){};var $a=Na();!x("Android")||Oa();Oa();!x("Safari")||Oa();var ab={},bb=null;var cb="undefined"!==typeof Uint8Array;var db="function"===typeof p.Symbol&&"symbol"===typeof(0,p.Symbol)()?(0,p.Symbol)(void 0):void 0;function eb(a,b){Object.isFrozen(a)||(db?a[db]|=b:void 0!==a.ma?a.ma|=b:Object.defineProperties(a,{ma:{value:b,configurable:!0,writable:!0,enumerable:!1}}))}function fb(a){var b;db?b=a[db]:b=a.ma;return null==b?0:b}function gb(a){eb(a,1);return a}function hb(a){return Array.isArray(a)?!!(fb(a)&2):!1}function ib(a){if(!Array.isArray(a))throw Error("cannot mark non-array as immutable");eb(a,2)};function jb(a){return null!==a&&"object"===typeof a&&!Array.isArray(a)&&a.constructor===Object}var kb,lb=Object.freeze(gb([]));function mb(a){if(hb(a.v))throw Error("Cannot mutate an immutable Message");}var nb="undefined"!=typeof p.Symbol&&"undefined"!=typeof p.Symbol.hasInstance;function ob(a){return{value:a,configurable:!1,writable:!1,enumerable:!1}};function pb(a){switch(typeof a){case "number":return isFinite(a)?a:String(a);case "object":if(a&&!Array.isArray(a)&&cb&&null!=a&&a instanceof Uint8Array){var b;void 0===b&&(b=0);if(!bb){bb={};for(var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),d=["+/=","+/","-_=","-_.","-_"],e=0;5>e;e++){var f=c.concat(d[e].split(""));ab[e]=f;for(var g=0;g<f.length;g++){var h=f[g];void 0===bb[h]&&(bb[h]=g)}}}b=ab[b];c=Array(Math.floor(a.length/3));d=b[64]||"";for(e=f=0;f<a.length- 2;f+=3){var k=a[f],l=a[f+1];h=a[f+2];g=b[k>>2];k=b[(k&3)<<4|l>>4];l=b[(l&15)<<2|h>>6];h=b[h&63];c[e++]=g+k+l+h}g=0;h=d;switch(a.length-f){case 2:g=a[f+1],h=b[(g&15)<<2]||d;case 1:a=a[f],c[e]=b[a>>2]+b[(a&3)<<4|g>>4]+h+d}return c.join("")}}return a};function qb(a){var b=sb;b=void 0===b?tb:b;return ub(a,b)}function vb(a,b){if(null!=a){if(Array.isArray(a))a=ub(a,b);else if(jb(a)){var c={},d;for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&(c[d]=vb(a[d],b));a=c}else a=b(a);return a}}function ub(a,b){for(var c=a.slice(),d=0;d<c.length;d++)c[d]=vb(c[d],b);Array.isArray(a)&&fb(a)&1&&gb(c);return c}function sb(a){if(a&&"object"==typeof a&&a.toJSON)return a.toJSON();a=pb(a);return Array.isArray(a)?qb(a):a} function tb(a){return cb&&null!=a&&a instanceof Uint8Array?new Uint8Array(a):a};function A(a,b,c){return-1===b?null:b>=a.l?a.i?a.i[b]:void 0:(void 0===c?0:c)&&a.i&&(c=a.i[b],null!=c)?c:a.v[b+a.j]}function B(a,b,c,d,e){d=void 0===d?!1:d;(void 0===e?0:e)||mb(a);b<a.l&&!d?a.v[b+a.j]=c:(a.i||(a.i=a.v[a.l+a.j]={}))[b]=c;return a}function wb(a,b,c,d){c=void 0===c?!0:c;d=void 0===d?!1:d;var e=A(a,b,d);null==e&&(e=lb);if(hb(a.v))c&&(ib(e),Object.freeze(e));else if(e===lb||hb(e))e=gb(e.slice()),B(a,b,e,d);return e}function xb(a,b){a=A(a,b);return null==a?a:!!a} function C(a,b,c){a=A(a,b);return null==a?c:a}function D(a,b,c){a=xb(a,b);return null==a?void 0===c?!1:c:a}function yb(a,b){a=A(a,b);a=null==a?a:+a;return null==a?0:a}function zb(a,b,c){var d=void 0===d?!1:d;return B(a,b,null==c?gb([]):Array.isArray(c)?gb(c):c,d)}function Ab(a,b,c){mb(a);0!==c?B(a,b,c):B(a,b,void 0,!1,!1);return a}function Bb(a,b,c,d){mb(a);(c=Cb(a,c))&&c!==b&&null!=d&&(a.h&&c in a.h&&(a.h[c]=void 0),B(a,c));return B(a,b,d)}function Db(a,b,c){return Cb(a,b)===c?c:-1} function Cb(a,b){for(var c=0,d=0;d<b.length;d++){var e=b[d];null!=A(a,e)&&(0!==c&&B(a,c,void 0,!1,!0),c=e)}return c}function G(a,b,c){if(-1===c)return null;a.h||(a.h={});var d=a.h[c];if(d)return d;var e=A(a,c,!1);if(null==e)return d;b=new b(e);hb(a.v)&&ib(b.v);return a.h[c]=b}function H(a,b,c){a.h||(a.h={});var d=hb(a.v),e=a.h[c];if(!e){var f=wb(a,c,!0,!1);e=[];d=d||hb(f);for(var g=0;g<f.length;g++)e[g]=new b(f[g]),d&&ib(e[g].v);d&&(ib(e),Object.freeze(e));a.h[c]=e}return e} function Eb(a,b,c){var d=void 0===d?!1:d;mb(a);a.h||(a.h={});var e=c?c.v:c;a.h[b]=c;return B(a,b,e,d)}function Fb(a,b,c,d){mb(a);a.h||(a.h={});var e=d?d.v:d;a.h[b]=d;return Bb(a,b,c,e)}function Gb(a,b,c){var d=void 0===d?!1:d;mb(a);if(c){var e=gb([]);for(var f=0;f<c.length;f++)e[f]=c[f].v;a.h||(a.h={});a.h[b]=c}else a.h&&(a.h[b]=void 0),e=lb;return B(a,b,e,d)}function I(a,b){return C(a,b,"")}function Hb(a,b,c){return C(a,Db(a,c,b),0)}function Ib(a,b,c,d){return G(a,b,Db(a,d,c))};function Jb(a,b,c){a||(a=Kb);Kb=null;var d=this.constructor.messageId;a||(a=d?[d]:[]);this.j=(d?0:-1)-(this.constructor.h||0);this.h=void 0;this.v=a;a:{d=this.v.length;a=d-1;if(d&&(d=this.v[a],jb(d))){this.l=a-this.j;this.i=d;break a}void 0!==b&&-1<b?(this.l=Math.max(b,a+1-this.j),this.i=void 0):this.l=Number.MAX_VALUE}if(c)for(b=0;b<c.length;b++)if(a=c[b],a<this.l)a+=this.j,(d=this.v[a])?Array.isArray(d)&&gb(d):this.v[a]=lb;else{d=this.i||(this.i=this.v[this.l+this.j]={});var e=d[a];e?Array.isArray(e)&& gb(e):d[a]=lb}}Jb.prototype.toJSON=function(){var a=this.v;return kb?a:qb(a)};function Lb(a){kb=!0;try{return JSON.stringify(a.toJSON(),Mb)}finally{kb=!1}}function Nb(a,b){if(null==b||""==b)return new a;b=JSON.parse(b);if(!Array.isArray(b))throw Error("Expected to deserialize an Array but got "+wa(b)+": "+b);Kb=b;a=new a(b);Kb=null;return a}function Mb(a,b){return pb(b)}var Kb;function Ob(){Jb.apply(this,arguments)}v(Ob,Jb);if(nb){var Pb={};Object.defineProperties(Ob,(Pb[p.Symbol.hasInstance]=ob(function(){throw Error("Cannot perform instanceof checks for MutableMessage");}),Pb))};function J(){Ob.apply(this,arguments)}v(J,Ob);if(nb){var Qb={};Object.defineProperties(J,(Qb[p.Symbol.hasInstance]=ob(Object[p.Symbol.hasInstance]),Qb))};function Rb(a){J.call(this,a,-1,Sb)}v(Rb,J);function Tb(a){J.call(this,a)}v(Tb,J);var Sb=[2,3];function Ub(a,b){this.i=a===Vb&&b||"";this.h=Wb}var Wb={},Vb={};function Xb(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function Yb(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return!0;return!1}function Zb(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function $b(a){var b={},c;for(c in a)b[c]=a[c];return b};var ac;function bc(){if(void 0===ac){var a=null,b=w.trustedTypes;if(b&&b.createPolicy){try{a=b.createPolicy("goog#html",{createHTML:Ha,createScript:Ha,createScriptURL:Ha})}catch(c){w.console&&w.console.error(c.message)}ac=a}else ac=a}return ac};function cc(a,b){this.h=b===dc?a:""}function ec(a,b){a=fc.exec(gc(a).toString());var c=a[3]||"";return hc(a[1]+ic("?",a[2]||"",b)+ic("#",c))}cc.prototype.toString=function(){return this.h+""};function gc(a){return a instanceof cc&&a.constructor===cc?a.h:"type_error:TrustedResourceUrl"}var fc=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/,dc={};function hc(a){var b=bc();a=b?b.createScriptURL(a):a;return new cc(a,dc)} function ic(a,b,c){if(null==c)return b;if("string"===typeof c)return c?a+encodeURIComponent(c):"";for(var d in c)if(Object.prototype.hasOwnProperty.call(c,d)){var e=c[d];e=Array.isArray(e)?e:[e];for(var f=0;f<e.length;f++){var g=e[f];null!=g&&(b||(b=a),b+=(b.length>a.length?"&":"")+encodeURIComponent(d)+"="+encodeURIComponent(String(g)))}}return b};function jc(a,b){this.h=b===kc?a:""}jc.prototype.toString=function(){return this.h.toString()};var kc={};/* SPDX-License-Identifier: Apache-2.0 */ var lc={};function mc(){}function nc(a){this.h=a}v(nc,mc);nc.prototype.toString=function(){return this.h.toString()};function oc(a){var b,c=null==(b=bc())?void 0:b.createScriptURL(a);return new nc(null!=c?c:a,lc)}function pc(a){if(a instanceof nc)return a.h;throw Error("");};function qc(a){return a instanceof mc?pc(a):gc(a)}function rc(a){return a instanceof jc&&a.constructor===jc?a.h:"type_error:SafeUrl"}function sc(a){return a instanceof mc?pc(a).toString():gc(a).toString()};var tc="alternate author bookmark canonical cite help icon license next prefetch dns-prefetch prerender preconnect preload prev search subresource".split(" ");function uc(a){return function(){return!a.apply(this,arguments)}}function vc(a){var b=!1,c;return function(){b||(c=a(),b=!0);return c}}function wc(a){var b=a;return function(){if(b){var c=b;b=null;c()}}};function xc(a,b,c){a.addEventListener&&a.addEventListener(b,c,!1)}function yc(a,b){a.removeEventListener&&a.removeEventListener("message",b,!1)};function zc(a){return String(a).replace(/\-([a-z])/g,function(b,c){return c.toUpperCase()})};function Ac(a,b,c){function d(h){h&&b.appendChild("string"===typeof h?a.createTextNode(h):h)}for(var e=1;e<c.length;e++){var f=c[e];if(!xa(f)||ya(f)&&0<f.nodeType)d(f);else{a:{if(f&&"number"==typeof f.length){if(ya(f)){var g="function"==typeof f.item||"string"==typeof f.item;break a}if("function"===typeof f){g="function"==typeof f.item;break a}}g=!1}Ra(g?Ya(f):f,d)}}}function Bc(a){this.h=a||w.document||document}n=Bc.prototype;n.getElementsByTagName=function(a,b){return(b||this.h).getElementsByTagName(String(a))}; n.createElement=function(a){var b=this.h;a=String(a);"application/xhtml+xml"===b.contentType&&(a=a.toLowerCase());return b.createElement(a)};n.createTextNode=function(a){return this.h.createTextNode(String(a))};n.append=function(a,b){Ac(9==a.nodeType?a:a.ownerDocument||a.document,a,arguments)}; n.contains=function(a,b){if(!a||!b)return!1;if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a};function Cc(){return!Dc()&&(x("iPod")||x("iPhone")||x("Android")||x("IEMobile"))}function Dc(){return x("iPad")||x("Android")&&!x("Mobile")||x("Silk")};var Ec=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$"),Fc=/#|$/;function Gc(a){var b=a.search(Fc),c;a:{for(c=0;0<=(c=a.indexOf("client",c))&&c<b;){var d=a.charCodeAt(c-1);if(38==d||63==d)if(d=a.charCodeAt(c+6),!d||61==d||38==d||35==d)break a;c+=7}c=-1}if(0>c)return null;d=a.indexOf("&",c);if(0>d||d>b)d=b;c+=7;return decodeURIComponent(a.substr(c,d-c).replace(/\+/g," "))};function Hc(a){try{var b;if(b=!!a&&null!=a.location.href)a:{try{Za(a.foo);b=!0;break a}catch(c){}b=!1}return b}catch(c){return!1}}function Ic(a){return Hc(a.top)?a.top:null} function Lc(a,b){var c=Mc("SCRIPT",a);c.src=qc(b);var d,e;(d=(b=null==(e=(d=(c.ownerDocument&&c.ownerDocument.defaultView||window).document).querySelector)?void 0:e.call(d,"script[nonce]"))?b.nonce||b.getAttribute("nonce")||"":"")&&c.setAttribute("nonce",d);return(a=a.getElementsByTagName("script")[0])&&a.parentNode?(a.parentNode.insertBefore(c,a),c):null}function Nc(a,b){return b.getComputedStyle?b.getComputedStyle(a,null):a.currentStyle} function Oc(a,b){if(!Pc()&&!Qc()){var c=Math.random();if(c<b)return c=Rc(),a[Math.floor(c*a.length)]}return null}function Rc(){if(!p.globalThis.crypto)return Math.random();try{var a=new Uint32Array(1);p.globalThis.crypto.getRandomValues(a);return a[0]/65536/65536}catch(b){return Math.random()}}function Sc(a,b){if(a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b(a[c],c,a)} function Tc(a){var b=a.length;if(0==b)return 0;for(var c=305419896,d=0;d<b;d++)c^=(c<<5)+(c>>2)+a.charCodeAt(d)&4294967295;return 0<c?c:4294967296+c}var Qc=vc(function(){return Ua(["Google Web Preview","Mediapartners-Google","Google-Read-Aloud","Google-Adwords"],Uc)||1E-4>Math.random()});function Vc(a,b){var c=-1;try{a&&(c=parseInt(a.getItem(b),10))}catch(d){return null}return 0<=c&&1E3>c?c:null} function Wc(a,b){var c=Qc()?null:Math.floor(1E3*Rc());var d;if(d=null!=c&&a)a:{var e=String(c);try{if(a){a.setItem(b,e);d=e;break a}}catch(f){}d=null}return d?c:null}var Pc=vc(function(){return Uc("MSIE")});function Uc(a){return-1!=Ma().indexOf(a)}var Xc=/^([0-9.]+)px$/,Yc=/^(-?[0-9.]{1,30})$/;function Zc(a){var b=void 0===b?null:b;if(!Yc.test(a))return b;a=Number(a);return isNaN(a)?b:a}function K(a){return(a=Xc.exec(a))?+a[1]:null} function $c(a,b){for(var c=0;50>c;++c){try{var d=!(!a.frames||!a.frames[b])}catch(g){d=!1}if(d)return a;a:{try{var e=a.parent;if(e&&e!=a){var f=e;break a}}catch(g){}f=null}if(!(a=f))break}return null}var ad=vc(function(){return Cc()?2:Dc()?1:0});function bd(a){Sc({display:"none"},function(b,c){a.style.setProperty(c,b,"important")})}var cd=[];function dd(){var a=cd;cd=[];a=u(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;try{b()}catch(c){}}} function ed(a,b){0!=a.length&&b.head&&a.forEach(function(c){if(c&&c&&b.head){var d=Mc("META");b.head.appendChild(d);d.httpEquiv="origin-trial";d.content=c}})}function fd(a){if("number"!==typeof a.goog_pvsid)try{Object.defineProperty(a,"goog_pvsid",{value:Math.floor(Math.random()*Math.pow(2,52)),configurable:!1})}catch(b){}return Number(a.goog_pvsid)||-1} function gd(a){var b=hd;"complete"===b.readyState||"interactive"===b.readyState?(cd.push(a),1==cd.length&&(p.Promise?p.Promise.resolve().then(dd):window.setImmediate?setImmediate(dd):setTimeout(dd,0))):b.addEventListener("DOMContentLoaded",a)}function Mc(a,b){b=void 0===b?document:b;return b.createElement(String(a).toLowerCase())};var id=null;var hd=document,L=window;var jd=null;function kd(a,b){b=void 0===b?[]:b;var c=!1;w.google_logging_queue||(c=!0,w.google_logging_queue=[]);w.google_logging_queue.push([a,b]);if(a=c){if(null==jd){jd=!1;try{var d=Ic(w);d&&-1!==d.location.hash.indexOf("google_logging")&&(jd=!0);w.localStorage.getItem("google_logging")&&(jd=!0)}catch(e){}}a=jd}a&&(d=w.document,a=new Ub(Vb,"https://pagead2.googlesyndication.com/pagead/js/logging_library.js"),a=hc(a instanceof Ub&&a.constructor===Ub&&a.h===Wb?a.i:"type_error:Const"),Lc(d,a))};function ld(a){a=void 0===a?w:a;var b=a.context||a.AMP_CONTEXT_DATA;if(!b)try{b=a.parent.context||a.parent.AMP_CONTEXT_DATA}catch(c){}try{if(b&&b.pageViewId&&b.canonicalUrl)return b}catch(c){}return null}function md(a){return(a=a||ld())?Hc(a.master)?a.master:null:null};function nd(a){var b=ta.apply(1,arguments);if(0===b.length)return oc(a[0]);for(var c=[a[0]],d=0;d<b.length;d++)c.push(encodeURIComponent(b[d])),c.push(a[d+1]);return oc(c.join(""))};function od(a){var b=void 0===b?1:b;a=md(ld(a))||a;a.google_unique_id=(a.google_unique_id||0)+b;return a.google_unique_id}function pd(a){a=a.google_unique_id;return"number"===typeof a?a:0}function qd(){var a=void 0===a?L:a;if(!a)return!1;try{return!(!a.navigator.standalone&&!a.top.navigator.standalone)}catch(b){return!1}}function rd(a){if(!a)return"";a=a.toLowerCase();"ca-"!=a.substring(0,3)&&(a="ca-"+a);return a};function sd(){this.i=new td(this);this.h=0}sd.prototype.resolve=function(a){ud(this);this.h=1;this.l=a;vd(this.i)};sd.prototype.reject=function(a){ud(this);this.h=2;this.j=a;vd(this.i)};function ud(a){if(0!=a.h)throw Error("Already resolved/rejected.");}function td(a){this.h=a}td.prototype.then=function(a,b){if(this.i)throw Error("Then functions already set.");this.i=a;this.j=b;vd(this)}; function vd(a){switch(a.h.h){case 0:break;case 1:a.i&&a.i(a.h.l);break;case 2:a.j&&a.j(a.h.j);break;default:throw Error("Unhandled deferred state.");}};function wd(a){this.h=a.slice(0)}n=wd.prototype;n.forEach=function(a){var b=this;this.h.forEach(function(c,d){return void a(c,d,b)})};n.filter=function(a){return new wd(Sa(this.h,a))};n.apply=function(a){return new wd(a(this.h.slice(0)))};n.sort=function(a){return new wd(this.h.slice(0).sort(a))};n.get=function(a){return this.h[a]};n.add=function(a){var b=this.h.slice(0);b.push(a);return new wd(b)};function xd(a,b){for(var c=[],d=a.length,e=0;e<d;e++)c.push(a[e]);c.forEach(b,void 0)};function yd(){this.h={};this.i={}}yd.prototype.set=function(a,b){var c=zd(a);this.h[c]=b;this.i[c]=a};yd.prototype.get=function(a,b){a=zd(a);return void 0!==this.h[a]?this.h[a]:b};yd.prototype.clear=function(){this.h={};this.i={}};function zd(a){return a instanceof Object?String(za(a)):a+""};function Ad(a,b){this.h=a;this.i=b}function Bd(a){return null!=a.h?a.h.value:null}function Cd(a,b){null!=a.h&&b(a.h.value);return a}Ad.prototype.map=function(a){return null!=this.h?(a=a(this.h.value),a instanceof Ad?a:Dd(a)):this};function Ed(a,b){null!=a.h||b(a.i);return a}function Dd(a){return new Ad({value:a},null)}function Fd(a){return new Ad(null,a)}function Gd(a){try{return Dd(a())}catch(b){return Fd(b)}};function Hd(a){this.h=new yd;if(a)for(var b=0;b<a.length;++b)this.add(a[b])}Hd.prototype.add=function(a){this.h.set(a,!0)};Hd.prototype.contains=function(a){return void 0!==this.h.h[zd(a)]};function Id(){this.h=new yd}Id.prototype.set=function(a,b){var c=this.h.get(a);c||(c=new Hd,this.h.set(a,c));c.add(b)};function Jd(a){J.call(this,a,-1,Kd)}v(Jd,J);Jd.prototype.getId=function(){return A(this,3)};var Kd=[4];function Ld(a){var b=void 0===a.Ga?void 0:a.Ga,c=void 0===a.gb?void 0:a.gb,d=void 0===a.Ra?void 0:a.Ra;this.h=void 0===a.bb?void 0:a.bb;this.l=new wd(b||[]);this.j=d;this.i=c};function Md(a){var b=[],c=a.l;c&&c.h.length&&b.push({X:"a",ca:Nd(c)});null!=a.h&&b.push({X:"as",ca:a.h});null!=a.i&&b.push({X:"i",ca:String(a.i)});null!=a.j&&b.push({X:"rp",ca:String(a.j)});b.sort(function(d,e){return d.X.localeCompare(e.X)});b.unshift({X:"t",ca:"aa"});return b}function Nd(a){a=a.h.slice(0).map(Od);a=JSON.stringify(a);return Tc(a)}function Od(a){var b={};null!=A(a,7)&&(b.q=A(a,7));null!=A(a,2)&&(b.o=A(a,2));null!=A(a,5)&&(b.p=A(a,5));return b};function Pd(a){J.call(this,a)}v(Pd,J);Pd.prototype.setLocation=function(a){return B(this,1,a)};function Qd(a,b){this.Ja=a;this.Qa=b}function Rd(a){var b=[].slice.call(arguments).filter(uc(function(e){return null===e}));if(!b.length)return null;var c=[],d={};b.forEach(function(e){c=c.concat(e.Ja||[]);d=r(Object,"assign").call(Object,d,e.Qa)});return new Qd(c,d)} function Sd(a){switch(a){case 1:return new Qd(null,{google_ad_semantic_area:"mc"});case 2:return new Qd(null,{google_ad_semantic_area:"h"});case 3:return new Qd(null,{google_ad_semantic_area:"f"});case 4:return new Qd(null,{google_ad_semantic_area:"s"});default:return null}} function Td(a){if(null==a)a=null;else{var b=Md(a);a=[];b=u(b);for(var c=b.next();!c.done;c=b.next()){c=c.value;var d=String(c.ca);a.push(c.X+"."+(20>=d.length?d:d.slice(0,19)+"_"))}a=new Qd(null,{google_placement_id:a.join("~")})}return a};var Ud={},Vd=new Qd(["google-auto-placed"],(Ud.google_reactive_ad_format=40,Ud.google_tag_origin="qs",Ud));function Wd(a){J.call(this,a)}v(Wd,J);function Xd(a){J.call(this,a)}v(Xd,J);Xd.prototype.getName=function(){return A(this,4)};function Yd(a){J.call(this,a)}v(Yd,J);function Zd(a){J.call(this,a)}v(Zd,J);function $d(a){J.call(this,a)}v($d,J);var ae=[1,2,3];function be(a){J.call(this,a)}v(be,J);function ce(a){J.call(this,a,-1,de)}v(ce,J);var de=[6,7,9,10,11];function ee(a){J.call(this,a,-1,fe)}v(ee,J);function ge(a){J.call(this,a)}v(ge,J);function he(a){J.call(this,a)}v(he,J);var fe=[1],ie=[1,2];function je(a){J.call(this,a,-1,ke)}v(je,J);function le(a){J.call(this,a)}v(le,J);function me(a){J.call(this,a,-1,ne)}v(me,J);function oe(a){J.call(this,a)}v(oe,J);function pe(a){J.call(this,a)}v(pe,J);function qe(a){J.call(this,a)}v(qe,J);function re(a){J.call(this,a)}v(re,J);var ke=[1,2,5,7],ne=[2,5,6,11];function se(a){J.call(this,a)}v(se,J);function te(a){if(1!=a.nodeType)var b=!1;else if(b="INS"==a.tagName)a:{b=["adsbygoogle-placeholder"];a=a.className?a.className.split(/\s+/):[];for(var c={},d=0;d<a.length;++d)c[a[d]]=!0;for(d=0;d<b.length;++d)if(!c[b[d]]){b=!1;break a}b=!0}return b};function ue(a,b,c){switch(c){case 0:b.parentNode&&b.parentNode.insertBefore(a,b);break;case 3:if(c=b.parentNode){var d=b.nextSibling;if(d&&d.parentNode!=c)for(;d&&8==d.nodeType;)d=d.nextSibling;c.insertBefore(a,d)}break;case 1:b.insertBefore(a,b.firstChild);break;case 2:b.appendChild(a)}te(b)&&(b.setAttribute("data-init-display",b.style.display),b.style.display="block")};function M(a,b){this.h=a;this.defaultValue=void 0===b?!1:b}function N(a,b){this.h=a;this.defaultValue=void 0===b?0:b}function ve(a,b){b=void 0===b?[]:b;this.h=a;this.defaultValue=b};var we=new M(1084),xe=new M(1082,!0),ye=new N(62,.001),ze=new N(1130,100),Ae=new function(a,b){this.h=a;this.defaultValue=void 0===b?"":b}(14),Be=new N(1114,1),Ce=new N(1110),De=new N(1111),Ee=new N(1112),Fe=new N(1113),Ge=new N(1104),He=new N(1108),Ie=new N(1106),Je=new N(1107),Ke=new N(1105),Le=new N(1115,1),Me=new M(1121),Ne=new M(1144),Oe=new M(1143),Pe=new M(316),Qe=new M(313),Re=new M(369),Se=new M(1093),Te=new N(1098),Ue=new M(1129),Ve=new M(1128),We=new M(1026),Xe=new M(1090),Ye=new M(1053, !0),Ze=new M(1162),$e=new M(1120),af=new M(1100,!0),bf=new N(1046),cf=new M(1102,!0),df=new M(218),ef=new M(217),ff=new M(227),gf=new M(208),hf=new M(282),jf=new M(1086),kf=new N(1079,5),lf=new M(1141),mf=new ve(1939),nf=new ve(1934,["A8FHS1NmdCwGqD9DwOicnHHY+y27kdWfxKa0YHSGDfv0CSpDKRHTQdQmZVPDUdaFWUsxdgVxlwAd6o+dhJykPA0AAACWeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiQ29udmVyc2lvbk1lYXN1cmVtZW50IiwiZXhwaXJ5IjoxNjQzMTU1MTk5LCJpc1N1YmRvbWFpbiI6dHJ1ZSwiaXNUaGlyZFBhcnR5Ijp0cnVlLCJ1c2FnZSI6InN1YnNldCJ9", "A8zdXi6dr1hwXEUjQrYiyYQGlU3557y5QWDnN0Lwgj9ePt66XMEvNkVWOEOWPd7TP9sBQ25X0Q15Lr1Nn4oGFQkAAACceyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiQ29udmVyc2lvbk1lYXN1cmVtZW50IiwiZXhwaXJ5IjoxNjQzMTU1MTk5LCJpc1N1YmRvbWFpbiI6dHJ1ZSwiaXNUaGlyZFBhcnR5Ijp0cnVlLCJ1c2FnZSI6InN1YnNldCJ9","A4/Htern2udN9w3yJK9QgWQxQFruxOXsXL7cW60DyCl0EZFGCSme/J33Q/WzF7bBkVvhEWDlcBiUyZaim5CpFQwAAACceyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXRhZ3NlcnZpY2VzLmNvbTo0NDMiLCJmZWF0dXJlIjoiQ29udmVyc2lvbk1lYXN1cmVtZW50IiwiZXhwaXJ5IjoxNjQzMTU1MTk5LCJpc1N1YmRvbWFpbiI6dHJ1ZSwiaXNUaGlyZFBhcnR5Ijp0cnVlLCJ1c2FnZSI6InN1YnNldCJ9"]), of=new M(203),pf=new M(434462125),qf=new M(84),rf=new M(1928),sf=new M(1941),tf=new M(370946349),uf=new M(392736476,!0),vf=new N(406149835),wf=new ve(1932,["AxujKG9INjsZ8/gUq8+dTruNvk7RjZQ1oFhhgQbcTJKDnZfbzSTE81wvC2Hzaf3TW4avA76LTZEMdiedF1vIbA4AAABueyJvcmlnaW4iOiJodHRwczovL2ltYXNkay5nb29nbGVhcGlzLmNvbTo0NDMiLCJmZWF0dXJlIjoiVHJ1c3RUb2tlbnMiLCJleHBpcnkiOjE2NTI3NzQ0MDAsImlzVGhpcmRQYXJ0eSI6dHJ1ZX0=","Azuce85ORtSnWe1MZDTv68qpaW3iHyfL9YbLRy0cwcCZwVnePnOmkUJlG8HGikmOwhZU22dElCcfrfX2HhrBPAkAAAB7eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiVHJ1c3RUb2tlbnMiLCJleHBpcnkiOjE2NTI3NzQ0MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9", "A16nvcdeoOAqrJcmjLRpl1I6f3McDD8EfofAYTt/P/H4/AWwB99nxiPp6kA0fXoiZav908Z8etuL16laFPUdfQsAAACBeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXRhZ3NlcnZpY2VzLmNvbTo0NDMiLCJmZWF0dXJlIjoiVHJ1c3RUb2tlbnMiLCJleHBpcnkiOjE2NTI3NzQ0MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9","AxBHdr0J44vFBQtZUqX9sjiqf5yWZ/OcHRcRMN3H9TH+t90V/j3ENW6C8+igBZFXMJ7G3Pr8Dd13632aLng42wgAAACBeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiVHJ1c3RUb2tlbnMiLCJleHBpcnkiOjE2NTI3NzQ0MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9", "A88BWHFjcawUfKU3lIejLoryXoyjooBXLgWmGh+hNcqMK44cugvsI5YZbNarYvi3roc1fYbHA1AVbhAtuHZflgEAAAB2eyJvcmlnaW4iOiJodHRwczovL2dvb2dsZS5jb206NDQzIiwiZmVhdHVyZSI6IlRydXN0VG9rZW5zIiwiZXhwaXJ5IjoxNjUyNzc0NDAwLCJpc1N1YmRvbWFpbiI6dHJ1ZSwiaXNUaGlyZFBhcnR5Ijp0cnVlfQ=="]),xf=new N(1935);function O(a){var b="sa";if(a.sa&&a.hasOwnProperty(b))return a.sa;b=new a;return a.sa=b};function yf(){var a={};this.i=function(b,c){return null!=a[b]?a[b]:c};this.j=function(b,c){return null!=a[b]?a[b]:c};this.l=function(b,c){return null!=a[b]?a[b]:c};this.h=function(b,c){return null!=a[b]?a[b]:c};this.m=function(){}}function P(a){return O(yf).i(a.h,a.defaultValue)}function Q(a){return O(yf).j(a.h,a.defaultValue)}function zf(){return O(yf).l(Ae.h,Ae.defaultValue)};function Af(a,b,c){function d(f){f=Bf(f);return null==f?!1:c>f}function e(f){f=Bf(f);return null==f?!1:c<f}switch(b){case 0:return{init:Cf(a.previousSibling,e),ja:function(f){return Cf(f.previousSibling,e)},na:0};case 2:return{init:Cf(a.lastChild,e),ja:function(f){return Cf(f.previousSibling,e)},na:0};case 3:return{init:Cf(a.nextSibling,d),ja:function(f){return Cf(f.nextSibling,d)},na:3};case 1:return{init:Cf(a.firstChild,d),ja:function(f){return Cf(f.nextSibling,d)},na:3}}throw Error("Un-handled RelativePosition: "+ b);}function Bf(a){return a.hasOwnProperty("google-ama-order-assurance")?a["google-ama-order-assurance"]:null}function Cf(a,b){return a&&b(a)?a:null};var Df={rectangle:1,horizontal:2,vertical:4};function Ef(a,b){a.google_image_requests||(a.google_image_requests=[]);var c=Mc("IMG",a.document);c.src=b;a.google_image_requests.push(c)}function Ff(a){var b="https://pagead2.googlesyndication.com/pagead/gen_204?id=dtt_err";Sc(a,function(c,d){c&&(b+="&"+d+"="+encodeURIComponent(c))});Gf(b)}function Gf(a){var b=window;b.fetch?b.fetch(a,{keepalive:!0,credentials:"include",redirect:"follow",method:"get",mode:"no-cors"}):Ef(b,a)};function Hf(){this.j="&";this.i={};this.l=0;this.h=[]}function If(a,b){var c={};c[a]=b;return[c]}function Jf(a,b,c,d,e){var f=[];Sc(a,function(g,h){(g=Kf(g,b,c,d,e))&&f.push(h+"="+g)});return f.join(b)} function Kf(a,b,c,d,e){if(null==a)return"";b=b||"&";c=c||",$";"string"==typeof c&&(c=c.split(""));if(a instanceof Array){if(d=d||0,d<c.length){for(var f=[],g=0;g<a.length;g++)f.push(Kf(a[g],b,c,d+1,e));return f.join(c[d])}}else if("object"==typeof a)return e=e||0,2>e?encodeURIComponent(Jf(a,b,c,d,e+1)):"...";return encodeURIComponent(String(a))} function Lf(a,b){var c="https://pagead2.googlesyndication.com"+b,d=Mf(a)-b.length;if(0>d)return"";a.h.sort(function(m,q){return m-q});b=null;for(var e="",f=0;f<a.h.length;f++)for(var g=a.h[f],h=a.i[g],k=0;k<h.length;k++){if(!d){b=null==b?g:b;break}var l=Jf(h[k],a.j,",$");if(l){l=e+l;if(d>=l.length){d-=l.length;c+=l;e=a.j;break}b=null==b?g:b}}a="";null!=b&&(a=e+"trn="+b);return c+a}function Mf(a){var b=1,c;for(c in a.i)b=c.length>b?c.length:b;return 3997-b-a.j.length-1};function Nf(){this.h=Math.random()}function Of(){var a=Pf,b=w.google_srt;0<=b&&1>=b&&(a.h=b)}function Qf(a,b,c,d,e){if((d?a.h:Math.random())<(e||.01))try{if(c instanceof Hf)var f=c;else f=new Hf,Sc(c,function(h,k){var l=f,m=l.l++;h=If(k,h);l.h.push(m);l.i[m]=h});var g=Lf(f,"/pagead/gen_204?id="+b+"&");g&&Ef(w,g)}catch(h){}};var Rf={overlays:1,interstitials:2,vignettes:2,inserts:3,immersives:4,list_view:5};function Sf(){this.wasPlaTagProcessed=!1;this.wasReactiveAdConfigReceived={};this.adCount={};this.wasReactiveAdVisible={};this.stateForType={};this.reactiveTypeEnabledInAsfe={};this.wasReactiveTagRequestSent=!1;this.reactiveTypeDisabledByPublisher={};this.tagSpecificState={};this.messageValidationEnabled=!1;this.floatingAdsStacking=new Tf;this.sideRailProcessedFixedElements=new p.Set;this.sideRailAvailableSpace=new p.Map} function Uf(a){a.google_reactive_ads_global_state?(null==a.google_reactive_ads_global_state.sideRailProcessedFixedElements&&(a.google_reactive_ads_global_state.sideRailProcessedFixedElements=new p.Set),null==a.google_reactive_ads_global_state.sideRailAvailableSpace&&(a.google_reactive_ads_global_state.sideRailAvailableSpace=new p.Map)):a.google_reactive_ads_global_state=new Sf;return a.google_reactive_ads_global_state} function Tf(){this.maxZIndexRestrictions={};this.nextRestrictionId=0;this.maxZIndexListeners=[]};function Vf(a){a=a.document;var b={};a&&(b="CSS1Compat"==a.compatMode?a.documentElement:a.body);return b||{}}function Wf(a){return Vf(a).clientWidth};function Xf(a){return null!==a&&void 0!==a}function Yf(a,b){if(!b(a))throw Error(String(a));};function Zf(a){return"string"===typeof a}function $f(a){return void 0===a};function ag(a){J.call(this,a,-1,bg)}v(ag,J);var bg=[2,8],cg=[3,4,5],dg=[6,7];var eg;eg={Kb:0,Ya:3,Za:4,$a:5};var fg=eg.Ya,gg=eg.Za,hg=eg.$a;function ig(a){return null!=a?!a:a}function jg(a,b){for(var c=!1,d=0;d<a.length;d++){var e=a[d]();if(e===b)return e;null==e&&(c=!0)}if(!c)return!b}function kg(a,b){var c=H(a,ag,2);if(!c.length)return lg(a,b);a=C(a,1,0);if(1===a)return ig(kg(c[0],b));c=Ta(c,function(d){return function(){return kg(d,b)}});switch(a){case 2:return jg(c,!1);case 3:return jg(c,!0)}} function lg(a,b){var c=Cb(a,cg);a:{switch(c){case fg:var d=Hb(a,3,cg);break a;case gg:d=Hb(a,4,cg);break a;case hg:d=Hb(a,5,cg);break a}d=void 0}if(d&&(b=(b=b[c])&&b[d])){try{var e=b.apply(null,ka(wb(a,8)))}catch(f){return}b=C(a,1,0);if(4===b)return!!e;d=null!=e;if(5===b)return d;if(12===b)a=I(a,Db(a,dg,7));else a:{switch(c){case gg:a=yb(a,Db(a,dg,6));break a;case hg:a=I(a,Db(a,dg,7));break a}a=void 0}if(null!=a){if(6===b)return e===a;if(9===b)return null!=e&&0===Ka(String(e),a);if(d)switch(b){case 7:return e< a;case 8:return e>a;case 12:return Zf(a)&&Zf(e)&&(new RegExp(a)).test(e);case 10:return null!=e&&-1===Ka(String(e),a);case 11:return null!=e&&1===Ka(String(e),a)}}}}function mg(a,b){return!a||!(!b||!kg(a,b))};function ng(a){J.call(this,a,-1,og)}v(ng,J);var og=[4];function pg(a){J.call(this,a)}v(pg,J);function qg(a){J.call(this,a,-1,rg)}v(qg,J);var rg=[5],sg=[1,2,3,6,7];function tg(a){a.Sa.apply(a,ka(ta.apply(1,arguments).map(function(b){return{Xa:4,message:b}})))}function ug(a){a.Sa.apply(a,ka(ta.apply(1,arguments).map(function(b){return{Xa:7,message:b}})))};function vg(a){return function(){var b=ta.apply(0,arguments);try{return a.apply(this,b)}catch(c){}}}var wg=vg(function(a){var b=[],c={};a=u(a);for(var d=a.next();!d.done;c={ea:c.ea},d=a.next())c.ea=d.value,vg(function(e){return function(){b.push('[{"'+e.ea.Xa+'":'+Lb(e.ea.message)+"}]")}}(c))();return"[["+b.join(",")+"]]"});function xg(a,b){if(p.globalThis.fetch)p.globalThis.fetch(a,{method:"POST",body:b,keepalive:65536>b.length,credentials:"omit",mode:"no-cors",redirect:"follow"});else{var c=new XMLHttpRequest;c.open("POST",a,!0);c.send(b)}};function yg(a){var b=void 0===b?xg:b;this.l=void 0===a?1E3:a;this.j=b;this.i=[];this.h=null}yg.prototype.Sa=function(){var a=ta.apply(0,arguments),b=this;vg(function(){b.i.push.apply(b.i,ka(a));var c=vg(function(){var d=wg(b.i);b.j("https://pagead2.googlesyndication.com/pagead/ping?e=1",d);b.i=[];b.h=null});100<=b.i.length?(null!==b.h&&clearTimeout(b.h),b.h=setTimeout(c,0)):null===b.h&&(b.h=setTimeout(c,b.l))})()};function zg(a){J.call(this,a,-1,Ag)}v(zg,J);function Bg(a,b){return Eb(a,1,b)}function Cg(a,b){return Gb(a,2,b)}function Dg(a,b){return zb(a,4,b)}function Eg(a,b){return Gb(a,5,b)}function Fg(a,b){return Ab(a,6,b)}function Gg(a){J.call(this,a)}v(Gg,J);Gg.prototype.V=function(){return C(this,1,0)};function Hg(a,b){return Ab(a,1,b)}function Ig(a,b){return Ab(a,2,b)}function Jg(a){J.call(this,a)}v(Jg,J);var Ag=[2,4,5],Kg=[1,2];function Lg(a){J.call(this,a,-1,Mg)}v(Lg,J);function Ng(a){J.call(this,a,-1,Og)}v(Ng,J);var Mg=[2,3],Og=[5],Pg=[1,2,3,4];function Qg(a){J.call(this,a)}v(Qg,J);Qg.prototype.getTagSessionCorrelator=function(){return C(this,2,0)};function Rg(a){var b=new Qg;return Fb(b,4,Sg,a)}var Sg=[4,5,7];function Tg(a,b,c){var d=void 0===d?new yg(b):d;this.i=a;this.m=c;this.j=d;this.h=[];this.l=0<this.i&&Rc()<1/this.i}function Yg(a,b,c,d,e,f){var g=Ig(Hg(new Gg,b),c);b=Fg(Cg(Bg(Eg(Dg(new zg,d),e),g),a.h),f);b=Rg(b);a.l&&tg(a.j,Zg(a,b));if(1===f||3===f||4===f&&!a.h.some(function(h){return h.V()===g.V()&&C(h,2,0)===c}))a.h.push(g),100<a.h.length&&a.h.shift()}function $g(a,b,c,d){if(a.m){var e=new Lg;b=Gb(e,2,b);c=Gb(b,3,c);d&&Ab(c,1,d);d=new Qg;d=Fb(d,7,Sg,c);a.l&&tg(a.j,Zg(a,d))}} function Zg(a,b){b=Ab(b,1,Date.now());var c=fd(window);b=Ab(b,2,c);return Ab(b,6,a.i)};function ah(){var a={};this.h=(a[fg]={},a[gg]={},a[hg]={},a)};var bh=/^true$/.test("false");function ch(a,b){switch(b){case 1:return Hb(a,1,sg);case 2:return Hb(a,2,sg);case 3:return Hb(a,3,sg);case 6:return Hb(a,6,sg);default:return null}}function dh(a,b){if(!a)return null;switch(b){case 1:return D(a,1);case 7:return I(a,3);case 2:return yb(a,2);case 3:return I(a,3);case 6:return wb(a,4);default:return null}}var eh=vc(function(){if(!bh)return{};try{var a=window.sessionStorage&&window.sessionStorage.getItem("GGDFSSK");if(a)return JSON.parse(a)}catch(b){}return{}}); function fh(a,b,c,d){var e=d=void 0===d?0:d,f,g;O(gh).j[e]=null!=(g=null==(f=O(gh).j[e])?void 0:f.add(b))?g:(new p.Set).add(b);e=eh();if(null!=e[b])return e[b];b=hh(d)[b];if(!b)return c;b=new qg(b);b=ih(b);a=dh(b,a);return null!=a?a:c}function ih(a){var b=O(ah).h;if(b){var c=Wa(H(a,pg,5),function(d){return mg(G(d,ag,1),b)});if(c)return G(c,ng,2)}return G(a,ng,4)}function gh(){this.i={};this.l=[];this.j={};this.h=new p.Map}function jh(a,b,c){return!!fh(1,a,void 0===b?!1:b,c)} function kh(a,b,c){b=void 0===b?0:b;a=Number(fh(2,a,b,c));return isNaN(a)?b:a}function lh(a,b,c){return fh(3,a,void 0===b?"":b,c)}function mh(a,b,c){b=void 0===b?[]:b;return fh(6,a,b,c)}function hh(a){return O(gh).i[a]||(O(gh).i[a]={})}function nh(a,b){var c=hh(b);Sc(a,function(d,e){return c[e]=d})} function oh(a,b,c,d,e){e=void 0===e?!1:e;var f=[],g=[];Ra(b,function(h){var k=hh(h);Ra(a,function(l){var m=Cb(l,sg),q=ch(l,m);if(q){var t,y,F;var z=null!=(F=null==(t=O(gh).h.get(h))?void 0:null==(y=t.get(q))?void 0:y.slice(0))?F:[];a:{t=new Ng;switch(m){case 1:Bb(t,1,Pg,q);break;case 2:Bb(t,2,Pg,q);break;case 3:Bb(t,3,Pg,q);break;case 6:Bb(t,4,Pg,q);break;default:m=void 0;break a}zb(t,5,z);m=t}if(z=m){var E;z=!(null==(E=O(gh).j[h])||!E.has(q))}z&&f.push(m);if(E=m){var S;E=!(null==(S=O(gh).h.get(h))|| !S.has(q))}E&&g.push(m);e||(S=O(gh),S.h.has(h)||S.h.set(h,new p.Map),S.h.get(h).has(q)||S.h.get(h).set(q,[]),d&&S.h.get(h).get(q).push(d));k[q]=l.toJSON()}})});(f.length||g.length)&&$g(c,f,g,null!=d?d:void 0)}function ph(a,b){var c=hh(b);Ra(a,function(d){var e=new qg(d),f=Cb(e,sg);(e=ch(e,f))&&(c[e]||(c[e]=d))})}function qh(){return Ta(r(Object,"keys").call(Object,O(gh).i),function(a){return Number(a)})}function rh(a){Xa(O(gh).l,a)||nh(hh(4),a)};function sh(a){this.methodName=a}var th=new sh(1),uh=new sh(16),vh=new sh(15),wh=new sh(2),xh=new sh(3),yh=new sh(4),zh=new sh(5),Ah=new sh(6),Bh=new sh(7),Ch=new sh(8),Dh=new sh(9),Eh=new sh(10),Fh=new sh(11),Gh=new sh(12),Hh=new sh(13),Ih=new sh(14);function Jh(a,b,c){c.hasOwnProperty(a.methodName)||Object.defineProperty(c,String(a.methodName),{value:b})}function Kh(a,b,c){return b[a.methodName]||c||function(){}} function Lh(a){Jh(zh,jh,a);Jh(Ah,kh,a);Jh(Bh,lh,a);Jh(Ch,mh,a);Jh(Hh,ph,a);Jh(vh,rh,a)}function Mh(a){Jh(yh,function(b){O(ah).h=b},a);Jh(Dh,function(b,c){var d=O(ah);d.h[fg][b]||(d.h[fg][b]=c)},a);Jh(Eh,function(b,c){var d=O(ah);d.h[gg][b]||(d.h[gg][b]=c)},a);Jh(Fh,function(b,c){var d=O(ah);d.h[hg][b]||(d.h[hg][b]=c)},a);Jh(Ih,function(b){for(var c=O(ah),d=u([fg,gg,hg]),e=d.next();!e.done;e=d.next())e=e.value,r(Object,"assign").call(Object,c.h[e],b[e])},a)} function Nh(a){a.hasOwnProperty("init-done")||Object.defineProperty(a,"init-done",{value:!0})};function Oh(){this.l=function(){};this.i=function(){};this.j=function(){};this.h=function(){return[]}}function Ph(a,b,c){a.l=Kh(th,b,function(){});a.j=function(d){Kh(wh,b,function(){return[]})(d,c)};a.h=function(){return Kh(xh,b,function(){return[]})(c)};a.i=function(d){Kh(uh,b,function(){})(d,c)}};function Qh(a,b){var c=void 0===c?{}:c;this.error=a;this.context=b.context;this.msg=b.message||"";this.id=b.id||"jserror";this.meta=c}function Rh(a){return!!(a.error&&a.meta&&a.id)};var Sh=RegExp("^https?://(\\w|-)+\\.cdn\\.ampproject\\.(net|org)(\\?|/|$)");function Th(a,b){this.h=a;this.i=b}function Uh(a,b,c){this.url=a;this.u=b;this.La=!!c;this.depth=null};var Vh=null;function Wh(){if(null===Vh){Vh="";try{var a="";try{a=w.top.location.hash}catch(c){a=w.location.hash}if(a){var b=a.match(/\bdeid=([\d,]+)/);Vh=b?b[1]:""}}catch(c){}}return Vh};function Xh(){var a=void 0===a?w:a;return(a=a.performance)&&a.now&&a.timing?Math.floor(a.now()+a.timing.navigationStart):Date.now()}function Yh(){var a=void 0===a?w:a;return(a=a.performance)&&a.now?a.now():null};function Zh(a,b){var c=Yh()||Xh();this.label=a;this.type=b;this.value=c;this.duration=0;this.uniqueId=Math.random();this.slotId=void 0};var $h=w.performance,ai=!!($h&&$h.mark&&$h.measure&&$h.clearMarks),bi=vc(function(){var a;if(a=ai)a=Wh(),a=!!a.indexOf&&0<=a.indexOf("1337");return a});function ci(){this.i=[];this.j=w||w;var a=null;w&&(w.google_js_reporting_queue=w.google_js_reporting_queue||[],this.i=w.google_js_reporting_queue,a=w.google_measure_js_timing);this.h=bi()||(null!=a?a:1>Math.random())} function di(a){a&&$h&&bi()&&($h.clearMarks("goog_"+a.label+"_"+a.uniqueId+"_start"),$h.clearMarks("goog_"+a.label+"_"+a.uniqueId+"_end"))}ci.prototype.start=function(a,b){if(!this.h)return null;a=new Zh(a,b);b="goog_"+a.label+"_"+a.uniqueId+"_start";$h&&bi()&&$h.mark(b);return a};ci.prototype.end=function(a){if(this.h&&"number"===typeof a.value){a.duration=(Yh()||Xh())-a.value;var b="goog_"+a.label+"_"+a.uniqueId+"_end";$h&&bi()&&$h.mark(b);!this.h||2048<this.i.length||this.i.push(a)}};function ei(){var a=fi;this.m=Pf;this.i=null;this.l=this.I;this.h=void 0===a?null:a;this.j=!1}n=ei.prototype;n.Ua=function(a){this.l=a};n.Ta=function(a){this.i=a};n.Va=function(a){this.j=a};n.oa=function(a,b,c){try{if(this.h&&this.h.h){var d=this.h.start(a.toString(),3);var e=b();this.h.end(d)}else e=b()}catch(h){b=!0;try{di(d),b=this.l(a,new Qh(h,{message:gi(h)}),void 0,c)}catch(k){this.I(217,k)}if(b){var f,g;null==(f=window.console)||null==(g=f.error)||g.call(f,h)}else throw h;}return e}; n.Oa=function(a,b){var c=this;return function(){var d=ta.apply(0,arguments);return c.oa(a,function(){return b.apply(void 0,d)})}}; n.I=function(a,b,c,d,e){e=e||"jserror";try{var f=new Hf;f.h.push(1);f.i[1]=If("context",a);Rh(b)||(b=new Qh(b,{message:gi(b)}));if(b.msg){var g=b.msg.substring(0,512);f.h.push(2);f.i[2]=If("msg",g)}var h=b.meta||{};if(this.i)try{this.i(h)}catch(Jc){}if(d)try{d(h)}catch(Jc){}b=[h];f.h.push(3);f.i[3]=b;d=w;b=[];g=null;do{var k=d;if(Hc(k)){var l=k.location.href;g=k.document&&k.document.referrer||null}else l=g,g=null;b.push(new Uh(l||"",k));try{d=k.parent}catch(Jc){d=null}}while(d&&k!=d);l=0;for(var m= b.length-1;l<=m;++l)b[l].depth=m-l;k=w;if(k.location&&k.location.ancestorOrigins&&k.location.ancestorOrigins.length==b.length-1)for(m=1;m<b.length;++m){var q=b[m];q.url||(q.url=k.location.ancestorOrigins[m-1]||"",q.La=!0)}var t=new Uh(w.location.href,w,!1);k=null;var y=b.length-1;for(q=y;0<=q;--q){var F=b[q];!k&&Sh.test(F.url)&&(k=F);if(F.url&&!F.La){t=F;break}}F=null;var z=b.length&&b[y].url;0!=t.depth&&z&&(F=b[y]);var E=new Th(t,F);if(E.i){var S=E.i.url||"";f.h.push(4);f.i[4]=If("top",S)}var rb= {url:E.h.url||""};if(E.h.url){var Kc=E.h.url.match(Ec),Ug=Kc[1],Vg=Kc[3],Wg=Kc[4];t="";Ug&&(t+=Ug+":");Vg&&(t+="//",t+=Vg,Wg&&(t+=":"+Wg));var Xg=t}else Xg="";rb=[rb,{url:Xg}];f.h.push(5);f.i[5]=rb;Qf(this.m,e,f,this.j,c)}catch(Jc){try{Qf(this.m,e,{context:"ecmserr",rctx:a,msg:gi(Jc),url:E&&E.h.url},this.j,c)}catch(zp){}}return!0};n.Pa=function(a,b){var c=this;b.catch(function(d){d=d?d:"unknown rejection";c.I(a,d instanceof Error?d:Error(d))})}; function gi(a){var b=a.toString();a.name&&-1==b.indexOf(a.name)&&(b+=": "+a.name);a.message&&-1==b.indexOf(a.message)&&(b+=": "+a.message);if(a.stack){a=a.stack;try{-1==a.indexOf(b)&&(a=b+"\n"+a);for(var c;a!=c;)c=a,a=a.replace(/((https?:\/..*\/)[^\/:]*:\d+(?:.|\n)*)\2/,"$1");b=a.replace(/\n */g,"\n")}catch(d){}}return b};var hi=ja(["https://www.googletagservices.com/console/host/host.js"]),ii=ja(["https://www.googletagservices.com/console/panel/index.html"]),ji=ja(["https://www.googletagservices.com/console/overlay/index.html"]);nd(hi);nd(ii);nd(ji);function ki(a,b){do{var c=Nc(a,b);if(c&&"fixed"==c.position)return!1}while(a=a.parentElement);return!0};function li(a,b){for(var c=["width","height"],d=0;d<c.length;d++){var e="google_ad_"+c[d];if(!b.hasOwnProperty(e)){var f=K(a[c[d]]);f=null===f?null:Math.round(f);null!=f&&(b[e]=f)}}}function mi(a,b){return!((Yc.test(b.google_ad_width)||Xc.test(a.style.width))&&(Yc.test(b.google_ad_height)||Xc.test(a.style.height)))}function ni(a,b){return(a=oi(a,b))?a.y:0} function oi(a,b){try{var c=b.document.documentElement.getBoundingClientRect(),d=a.getBoundingClientRect();return{x:d.left-c.left,y:d.top-c.top}}catch(e){return null}}function pi(a){var b=0,c;for(c in Df)-1!=a.indexOf(c)&&(b|=Df[c]);return b} function qi(a,b,c,d,e){if(a!==a.top)return Ic(a)?3:16;if(!(488>Wf(a)))return 4;if(!(a.innerHeight>=a.innerWidth))return 5;var f=Wf(a);if(!f||(f-c)/f>d)a=6;else{if(c="true"!=e.google_full_width_responsive)a:{c=Wf(a);for(b=b.parentElement;b;b=b.parentElement)if((d=Nc(b,a))&&(e=K(d.width))&&!(e>=c)&&"visible"!=d.overflow){c=!0;break a}c=!1}a=c?7:!0}return a} function ri(a,b,c,d){var e=qi(b,c,a,.3,d);!0!==e?a=e:"true"==d.google_full_width_responsive||ki(c,b)?(b=Wf(b),a=b-a,a=b&&0<=a?!0:b?-10>a?11:0>a?14:12:10):a=9;return a}function si(a,b,c){a=a.style;"rtl"==b?a.marginRight=c:a.marginLeft=c} function ti(a,b){if(3==b.nodeType)return/\S/.test(b.data);if(1==b.nodeType){if(/^(script|style)$/i.test(b.nodeName))return!1;try{var c=Nc(b,a)}catch(d){}return!c||"none"!=c.display&&!("absolute"==c.position&&("hidden"==c.visibility||"collapse"==c.visibility))}return!1}function ui(a,b,c){a=oi(b,a);return"rtl"==c?-a.x:a.x} function vi(a,b){var c;c=(c=b.parentElement)?(c=Nc(c,a))?c.direction:"":"";if(c){b.style.border=b.style.borderStyle=b.style.outline=b.style.outlineStyle=b.style.transition="none";b.style.borderSpacing=b.style.padding="0";si(b,c,"0px");b.style.width=Wf(a)+"px";if(0!==ui(a,b,c)){si(b,c,"0px");var d=ui(a,b,c);si(b,c,-1*d+"px");a=ui(a,b,c);0!==a&&a!==d&&si(b,c,d/(a-d)*d+"px")}b.style.zIndex=30}};function wi(a,b){this.l=a;this.j=b}wi.prototype.minWidth=function(){return this.l};wi.prototype.height=function(){return this.j};wi.prototype.h=function(a){return 300<a&&300<this.j?this.l:Math.min(1200,Math.round(a))};wi.prototype.i=function(){};function xi(a,b,c,d){d=void 0===d?function(f){return f}:d;var e;return a.style&&a.style[c]&&d(a.style[c])||(e=Nc(a,b))&&e[c]&&d(e[c])||null}function yi(a){return function(b){return b.minWidth()<=a}}function zi(a,b,c,d){var e=a&&Ai(c,b),f=Bi(b,d);return function(g){return!(e&&g.height()>=f)}}function Ci(a){return function(b){return b.height()<=a}}function Ai(a,b){return ni(a,b)<Vf(b).clientHeight-100} function Di(a,b){var c=xi(b,a,"height",K);if(c)return c;var d=b.style.height;b.style.height="inherit";c=xi(b,a,"height",K);b.style.height=d;if(c)return c;c=Infinity;do(d=b.style&&K(b.style.height))&&(c=Math.min(c,d)),(d=xi(b,a,"maxHeight",K))&&(c=Math.min(c,d));while((b=b.parentElement)&&"HTML"!=b.tagName);return c}function Bi(a,b){var c=0==pd(a);return b&&c?Math.max(250,2*Vf(a).clientHeight/3):250};var R={},Ei=(R.google_ad_channel=!0,R.google_ad_client=!0,R.google_ad_host=!0,R.google_ad_host_channel=!0,R.google_adtest=!0,R.google_tag_for_child_directed_treatment=!0,R.google_tag_for_under_age_of_consent=!0,R.google_tag_partner=!0,R.google_restrict_data_processing=!0,R.google_page_url=!0,R.google_debug_params=!0,R.google_adbreak_test=!0,R.google_ad_frequency_hint=!0,R.google_admob_interstitial_slot=!0,R.google_admob_rewarded_slot=!0,R.google_max_ad_content_rating=!0,R.google_traffic_source=!0, R),Fi=RegExp("(^| )adsbygoogle($| )");function Gi(a,b){for(var c=0;c<b.length;c++){var d=b[c],e=zc(d.Rb);a[e]=d.value}};function Hi(a,b,c,d){this.l=a;this.i=b;this.j=c;this.h=d}function Ii(a,b){var c=[];try{c=b.querySelectorAll(a.l)}catch(g){}if(!c.length)return[];b=Ya(c);b=Ji(a,b);"number"===typeof a.i&&(c=a.i,0>c&&(c+=b.length),b=0<=c&&c<b.length?[b[c]]:[]);if("number"===typeof a.j){c=[];for(var d=0;d<b.length;d++){var e=Ki(b[d]),f=a.j;0>f&&(f+=e.length);0<=f&&f<e.length&&c.push(e[f])}b=c}return b} Hi.prototype.toString=function(){return JSON.stringify({nativeQuery:this.l,occurrenceIndex:this.i,paragraphIndex:this.j,ignoreMode:this.h})};function Ji(a,b){if(null==a.h)return b;switch(a.h){case 1:return b.slice(1);case 2:return b.slice(0,b.length-1);case 3:return b.slice(1,b.length-1);case 0:return b;default:throw Error("Unknown ignore mode: "+a.h);}}function Ki(a){var b=[];xd(a.getElementsByTagName("p"),function(c){100<=Li(c)&&b.push(c)});return b} function Li(a){if(3==a.nodeType)return a.length;if(1!=a.nodeType||"SCRIPT"==a.tagName)return 0;var b=0;xd(a.childNodes,function(c){b+=Li(c)});return b}function Mi(a){return 0==a.length||isNaN(a[0])?a:"\\"+(30+parseInt(a[0],10))+" "+a.substring(1)};function Ni(a){if(!a)return null;var b=A(a,7);if(A(a,1)||a.getId()||0<wb(a,4).length){var c=a.getId();b=wb(a,4);var d=A(a,1),e="";d&&(e+=d);c&&(e+="#"+Mi(c));if(b)for(c=0;c<b.length;c++)e+="."+Mi(b[c]);a=(b=e)?new Hi(b,A(a,2),A(a,5),Oi(A(a,6))):null}else a=b?new Hi(b,A(a,2),A(a,5),Oi(A(a,6))):null;return a}var Pi={1:1,2:2,3:3,0:0};function Oi(a){return null==a?a:Pi[a]}var Qi={1:0,2:1,3:2,4:3};function Ri(a){return a.google_ama_state=a.google_ama_state||{}} function Si(a){a=Ri(a);return a.optimization=a.optimization||{}};function Ti(a){switch(A(a,8)){case 1:case 2:if(null==a)var b=null;else b=G(a,Jd,1),null==b?b=null:(a=A(a,2),b=null==a?null:new Ld({Ga:[b],Ra:a}));return null!=b?Dd(b):Fd(Error("Missing dimension when creating placement id"));case 3:return Fd(Error("Missing dimension when creating placement id"));default:return Fd(Error("Invalid type: "+A(a,8)))}};function T(a){a=void 0===a?"":a;var b=Error.call(this);this.message=b.message;"stack"in b&&(this.stack=b.stack);this.name="TagError";this.message=a?"adsbygoogle.push() error: "+a:"";Error.captureStackTrace?Error.captureStackTrace(this,T):this.stack=Error().stack||""}v(T,Error);var Pf,Ui,fi=new ci;function Vi(a){null!=a&&(w.google_measure_js_timing=a);w.google_measure_js_timing||(a=fi,a.h=!1,a.i!=a.j.google_js_reporting_queue&&(bi()&&Ra(a.i,di),a.i.length=0))}(function(a){Pf=a||new Nf;"number"!==typeof w.google_srt&&(w.google_srt=Math.random());Of();Ui=new ei;Ui.Va(!0);"complete"==w.document.readyState?Vi():fi.h&&xc(w,"load",function(){Vi()})})();function Wi(a,b,c){return Ui.oa(a,b,c)}function Xi(a,b){return Ui.Oa(a,b)} function Yi(a,b,c){var d=O(Oh).h();!b.eid&&d.length&&(b.eid=d.toString());Qf(Pf,a,b,!0,c)}function Zi(a,b){Ui.Pa(a,b)}function $i(a,b,c,d){var e;Rh(b)?e=b.msg||gi(b.error):e=gi(b);return 0==e.indexOf("TagError")?(c=b instanceof Qh?b.error:b,c.pbr||(c.pbr=!0,Ui.I(a,b,.1,d,"puberror")),!1):Ui.I(a,b,c,d)};function aj(a){a=void 0===a?window:a;a=a.googletag;return(null==a?0:a.apiReady)?a:void 0};function bj(a){var b=aj(a);return b?Sa(Ta(b.pubads().getSlots(),function(c){return a.document.getElementById(c.getSlotElementId())}),function(c){return null!=c}):null}function cj(a,b){return Ya(a.document.querySelectorAll(b))}function dj(a){var b=[];a=u(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;for(var d=!0,e=0;e<b.length;e++){var f=b[e];if(f.contains(c)){d=!1;break}if(c.contains(f)){d=!1;b[e]=c;break}}d&&b.push(c)}return b};function ej(a,b){function c(){d.push({anchor:e.anchor,position:e.position});return e.anchor==b.anchor&&e.position==b.position}for(var d=[],e=a;e;){switch(e.position){case 1:if(c())return d;e.position=2;case 2:if(c())return d;if(e.anchor.firstChild){e={anchor:e.anchor.firstChild,position:1};continue}else e.position=3;case 3:if(c())return d;e.position=4;case 4:if(c())return d}for(;e&&!e.anchor.nextSibling&&e.anchor.parentNode!=e.anchor.ownerDocument.body;){e={anchor:e.anchor.parentNode,position:3}; if(c())return d;e.position=4;if(c())return d}e&&e.anchor.nextSibling?e={anchor:e.anchor.nextSibling,position:1}:e=null}return d};function fj(a,b){this.i=a;this.h=b} function gj(a,b){var c=new Id,d=new Hd;b.forEach(function(e){if(Ib(e,Yd,1,ae)){e=Ib(e,Yd,1,ae);if(G(e,Wd,1)&&G(G(e,Wd,1),Jd,1)&&G(e,Wd,2)&&G(G(e,Wd,2),Jd,1)){var f=hj(a,G(G(e,Wd,1),Jd,1)),g=hj(a,G(G(e,Wd,2),Jd,1));if(f&&g)for(f=u(ej({anchor:f,position:A(G(e,Wd,1),2)},{anchor:g,position:A(G(e,Wd,2),2)})),g=f.next();!g.done;g=f.next())g=g.value,c.set(za(g.anchor),g.position)}G(e,Wd,3)&&G(G(e,Wd,3),Jd,1)&&(f=hj(a,G(G(e,Wd,3),Jd,1)))&&c.set(za(f),A(G(e,Wd,3),2))}else Ib(e,Zd,2,ae)?ij(a,Ib(e,Zd,2,ae), c):Ib(e,$d,3,ae)&&jj(a,Ib(e,$d,3,ae),d)});return new fj(c,d)}function ij(a,b,c){G(b,Jd,1)&&(a=kj(a,G(b,Jd,1)))&&a.forEach(function(d){d=za(d);c.set(d,1);c.set(d,4);c.set(d,2);c.set(d,3)})}function jj(a,b,c){G(b,Jd,1)&&(a=kj(a,G(b,Jd,1)))&&a.forEach(function(d){c.add(za(d))})}function hj(a,b){return(a=kj(a,b))&&0<a.length?a[0]:null}function kj(a,b){return(b=Ni(b))?Ii(b,a):null};function lj(){this.h=new p.Set}function mj(a){a=nj(a);return a.has("all")||a.has("after")}function oj(a){a=nj(a);return a.has("all")||a.has("before")}function pj(a,b,c){switch(c){case 2:case 3:break;case 1:case 4:b=b.parentElement;break;default:throw Error("Unknown RelativePosition: "+c);}for(c=[];b;){if(qj(b))return!0;if(a.h.has(b))break;c.push(b);b=b.parentElement}c.forEach(function(d){return a.h.add(d)});return!1} function qj(a){var b=nj(a);return a&&("AUTO-ADS-EXCLUSION-AREA"===a.tagName||b.has("inside")||b.has("all"))}function nj(a){return(a=a&&a.getAttribute("data-no-auto-ads"))?new p.Set(a.split("|")):new p.Set};function rj(a,b){if(!a)return!1;a=Nc(a,b);if(!a)return!1;a=a.cssFloat||a.styleFloat;return"left"==a||"right"==a}function sj(a){for(a=a.previousSibling;a&&1!=a.nodeType;)a=a.previousSibling;return a?a:null}function tj(a){return!!a.nextSibling||!!a.parentNode&&tj(a.parentNode)};function uj(a){var b={};a&&wb(a,6).forEach(function(c){b[c]=!0});return b}function vj(a,b,c,d,e){this.h=a;this.H=b;this.j=c;this.m=e||null;this.A=(this.C=d)?gj(a.document,H(d,Xd,5)):gj(a.document,[]);this.G=new lj;this.i=0;this.l=!1} function wj(a,b){if(a.l)return!0;a.l=!0;var c=H(a.j,ce,1);a.i=0;var d=uj(a.C);var e=a.h;try{var f=e.localStorage.getItem("google_ama_settings");var g=f?Nb(se,f):null}catch(S){g=null}var h=null!==g&&D(g,2,!1);g=Ri(e);h&&(g.eatf=!0,kd(7,[!0,0,!1]));var k=P(Ve)||P(Ue);f=P(Ue);if(k){b:{var l={fb:!1},m=cj(e,".google-auto-placed"),q=cj(e,'ins.adsbygoogle[data-anchor-shown="true"]'),t=cj(e,"ins.adsbygoogle[data-ad-format=autorelaxed]");var y=(bj(e)||cj(e,"div[id^=div-gpt-ad]")).concat(cj(e,"iframe[id^=google_ads_iframe]")); var F=cj(e,"div.trc_related_container,div.OUTBRAIN,div[id^=rcjsload],div[id^=ligatusframe],div[id^=crt-],iframe[id^=cto_iframe],div[id^=yandex_], div[id^=Ya_sync],iframe[src*=adnxs],div.advertisement--appnexus,div[id^=apn-ad],div[id^=amzn-native-ad],iframe[src*=amazon-adsystem],iframe[id^=ox_],iframe[src*=openx],img[src*=openx],div[class*=adtech],div[id^=adtech],iframe[src*=adtech],div[data-content-ad-placement=true],div.wpcnt div[id^=atatags-]"),z=cj(e,"ins.adsbygoogle-ablated-ad-slot"),E=cj(e,"div.googlepublisherpluginad"); k=[].concat(cj(e,"iframe[id^=aswift_],iframe[id^=google_ads_frame]"),cj(e,"ins.adsbygoogle"));h=[];l=u([[l.Mb,m],[l.fb,q],[l.Pb,t],[l.Nb,y],[l.Qb,F],[l.Lb,z],[l.Ob,E]]);for(m=l.next();!m.done;m=l.next())q=u(m.value),m=q.next().value,q=q.next().value,!1===m?h=h.concat(q):k=k.concat(q);k=dj(k);l=dj(h);h=k.slice(0);k=u(l);for(l=k.next();!l.done;l=k.next())for(l=l.value,m=0;m<h.length;m++)(l.contains(h[m])||h[m].contains(l))&&h.splice(m,1);e=Vf(e).clientHeight;for(k=0;k<h.length;k++)if(l=h[k].getBoundingClientRect(), !(0===l.height&&!f||l.top>e)){e=!0;break b}e=!1}g=e?g.eatfAbg=!0:!1}else g=h;if(g)return!0;g=new Hd([2]);for(e=0;e<c.length;e++){f=a;k=c[e];h=e;l=b;if(!G(k,Pd,4)||!g.contains(A(G(k,Pd,4),1))||1!==A(k,8)||k&&null!=A(k,4)&&d[A(G(k,Pd,4),2)])f=null;else{f.i++;if(k=xj(f,k,l,d))l=Ri(f.h),l.numAutoAdsPlaced||(l.numAutoAdsPlaced=0),null==l.placed&&(l.placed=[]),l.numAutoAdsPlaced++,l.placed.push({index:h,element:k.ha}),kd(7,[!1,f.i,!0]);f=k}if(f)return!0}kd(7,[!1,a.i,!1]);return!1} function xj(a,b,c,d){if(b&&null!=A(b,4)&&d[A(G(b,Pd,4),2)]||1!=A(b,8))return null;d=G(b,Jd,1);if(!d)return null;d=Ni(d);if(!d)return null;d=Ii(d,a.h.document);if(0==d.length)return null;d=d[0];var e=Qi[A(b,2)];e=void 0===e?null:e;var f;if(!(f=null==e)){a:{f=a.h;switch(e){case 0:f=rj(sj(d),f);break a;case 3:f=rj(d,f);break a;case 2:var g=d.lastChild;f=rj(g?1==g.nodeType?g:sj(g):null,f);break a}f=!1}if(c=!f&&!(!c&&2==e&&!tj(d)))c=1==e||2==e?d:d.parentNode,c=!(c&&!te(c)&&0>=c.offsetWidth);f=!c}if(!(c= f)){c=a.A;f=A(b,2);g=za(d);g=c.i.h.get(g);if(!(g=g?g.contains(f):!1))a:{if(c.h.contains(za(d)))switch(f){case 2:case 3:g=!0;break a;default:g=!1;break a}for(f=d.parentElement;f;){if(c.h.contains(za(f))){g=!0;break a}f=f.parentElement}g=!1}c=g}if(!c){c=a.G;f=A(b,2);a:switch(f){case 1:g=mj(d.previousElementSibling)||oj(d);break a;case 4:g=mj(d)||oj(d.nextElementSibling);break a;case 2:g=oj(d.firstElementChild);break a;case 3:g=mj(d.lastElementChild);break a;default:throw Error("Unknown RelativePosition: "+ f);}c=g||pj(c,d,f)}if(c)return null;c=G(b,be,3);f={};c&&(f.Wa=A(c,1),f.Ha=A(c,2),f.cb=!!xb(c,3));c=G(b,Pd,4)&&A(G(b,Pd,4),2)?A(G(b,Pd,4),2):null;c=Sd(c);g=null!=A(b,12)?A(b,12):null;g=null==g?null:new Qd(null,{google_ml_rank:g});b=yj(a,b);b=Rd(a.m,c,g,b);c=a.h;a=a.H;var h=c.document,k=f.cb||!1;g=(new Bc(h)).createElement("DIV");var l=g.style;l.width="100%";l.height="auto";l.clear=k?"both":"none";k=g.style;k.textAlign="center";f.lb&&Gi(k,f.lb);h=(new Bc(h)).createElement("INS");k=h.style;k.display= "block";k.margin="auto";k.backgroundColor="transparent";f.Wa&&(k.marginTop=f.Wa);f.Ha&&(k.marginBottom=f.Ha);f.ab&&Gi(k,f.ab);g.appendChild(h);f={ra:g,ha:h};f.ha.setAttribute("data-ad-format","auto");g=[];if(h=b&&b.Ja)f.ra.className=h.join(" ");h=f.ha;h.className="adsbygoogle";h.setAttribute("data-ad-client",a);g.length&&h.setAttribute("data-ad-channel",g.join("+"));a:{try{var m=f.ra;var q=void 0===q?0:q;if(P(Qe)){q=void 0===q?0:q;var t=Af(d,e,q);if(t.init){var y=t.init;for(d=y;d=t.ja(d);)y=d;var F= {anchor:y,position:t.na}}else F={anchor:d,position:e};m["google-ama-order-assurance"]=q;ue(m,F.anchor,F.position)}else ue(m,d,e);b:{var z=f.ha;z.dataset.adsbygoogleStatus="reserved";z.className+=" adsbygoogle-noablate";m={element:z};var E=b&&b.Qa;if(z.hasAttribute("data-pub-vars")){try{E=JSON.parse(z.getAttribute("data-pub-vars"))}catch(S){break b}z.removeAttribute("data-pub-vars")}E&&(m.params=E);(c.adsbygoogle=c.adsbygoogle||[]).push(m)}}catch(S){(z=f.ra)&&z.parentNode&&(E=z.parentNode,E.removeChild(z), te(E)&&(E.style.display=E.getAttribute("data-init-display")||"none"));z=!1;break a}z=!0}return z?f:null}function yj(a,b){return Bd(Ed(Ti(b).map(Td),function(c){Ri(a.h).exception=c}))};function zj(a){if(P(Pe))var b=null;else try{b=a.getItem("google_ama_config")}catch(d){b=null}try{var c=b?Nb(je,b):null}catch(d){c=null}return c};function Aj(a){J.call(this,a)}v(Aj,J);function Bj(a){try{var b=a.localStorage.getItem("google_auto_fc_cmp_setting")||null}catch(d){b=null}var c=b;return c?Gd(function(){return Nb(Aj,c)}):Dd(null)};function Cj(){this.S={}}function Dj(){if(Ej)return Ej;var a=md()||window,b=a.google_persistent_state_async;return null!=b&&"object"==typeof b&&null!=b.S&&"object"==typeof b.S?Ej=b:a.google_persistent_state_async=Ej=new Cj}function Fj(a){return Gj[a]||"google_ps_"+a}function Hj(a,b,c){b=Fj(b);a=a.S;var d=a[b];return void 0===d?a[b]=c:d}var Ej=null,Ij={},Gj=(Ij[8]="google_prev_ad_formats_by_region",Ij[9]="google_prev_ad_slotnames_by_region",Ij);function Jj(a){this.h=a||{cookie:""}} Jj.prototype.set=function(a,b,c){var d=!1;if("object"===typeof c){var e=c.Sb;d=c.Tb||!1;var f=c.domain||void 0;var g=c.path||void 0;var h=c.jb}if(/[;=\s]/.test(a))throw Error('Invalid cookie name "'+a+'"');if(/[;\r\n]/.test(b))throw Error('Invalid cookie value "'+b+'"');void 0===h&&(h=-1);this.h.cookie=a+"="+b+(f?";domain="+f:"")+(g?";path="+g:"")+(0>h?"":0==h?";expires="+(new Date(1970,1,1)).toUTCString():";expires="+(new Date(Date.now()+1E3*h)).toUTCString())+(d?";secure":"")+(null!=e?";samesite="+ e:"")};Jj.prototype.get=function(a,b){for(var c=a+"=",d=(this.h.cookie||"").split(";"),e=0,f;e<d.length;e++){f=Ja(d[e]);if(0==f.lastIndexOf(c,0))return f.substr(c.length);if(f==a)return""}return b};Jj.prototype.isEmpty=function(){return!this.h.cookie}; Jj.prototype.clear=function(){for(var a=(this.h.cookie||"").split(";"),b=[],c=[],d,e,f=0;f<a.length;f++)e=Ja(a[f]),d=e.indexOf("="),-1==d?(b.push(""),c.push(e)):(b.push(e.substring(0,d)),c.push(e.substring(d+1)));for(a=b.length-1;0<=a;a--)c=b[a],this.get(c),this.set(c,"",{jb:0,path:void 0,domain:void 0})};function Kj(a){J.call(this,a)}v(Kj,J);function Lj(a){var b=new Kj;return B(b,5,a)};function Mj(){this.A=this.A;this.G=this.G}Mj.prototype.A=!1;Mj.prototype.j=function(){if(this.G)for(;this.G.length;)this.G.shift()()};function Nj(a){void 0!==a.addtlConsent&&"string"!==typeof a.addtlConsent&&(a.addtlConsent=void 0);void 0!==a.gdprApplies&&"boolean"!==typeof a.gdprApplies&&(a.gdprApplies=void 0);return void 0!==a.tcString&&"string"!==typeof a.tcString||void 0!==a.listenerId&&"number"!==typeof a.listenerId?2:a.cmpStatus&&"error"!==a.cmpStatus?0:3}function Oj(a,b){b=void 0===b?500:b;Mj.call(this);this.h=a;this.i=null;this.m={};this.H=0;this.C=b;this.l=null}v(Oj,Mj); Oj.prototype.j=function(){this.m={};this.l&&(yc(this.h,this.l),delete this.l);delete this.m;delete this.h;delete this.i;Mj.prototype.j.call(this)};function Pj(a){return"function"===typeof a.h.__tcfapi||null!=Qj(a)} Oj.prototype.addEventListener=function(a){function b(f,g){clearTimeout(e);f?(c=f,c.internalErrorState=Nj(c),g&&0===c.internalErrorState||(c.tcString="tcunavailable",g||(c.internalErrorState=3))):(c.tcString="tcunavailable",c.internalErrorState=3);a(c)}var c={},d=wc(function(){return a(c)}),e=0;-1!==this.C&&(e=setTimeout(function(){c.tcString="tcunavailable";c.internalErrorState=1;d()},this.C));try{Rj(this,"addEventListener",b)}catch(f){c.tcString="tcunavailable",c.internalErrorState=3,e&&(clearTimeout(e), e=0),d()}};Oj.prototype.removeEventListener=function(a){a&&a.listenerId&&Rj(this,"removeEventListener",null,a.listenerId)};function Rj(a,b,c,d){c||(c=function(){});if("function"===typeof a.h.__tcfapi)a=a.h.__tcfapi,a(b,2,c,d);else if(Qj(a)){Sj(a);var e=++a.H;a.m[e]=c;a.i&&(c={},a.i.postMessage((c.__tcfapiCall={command:b,version:2,callId:e,parameter:d},c),"*"))}else c({},!1)}function Qj(a){if(a.i)return a.i;a.i=$c(a.h,"__tcfapiLocator");return a.i} function Sj(a){a.l||(a.l=function(b){try{var c=("string"===typeof b.data?JSON.parse(b.data):b.data).__tcfapiReturn;a.m[c.callId](c.returnValue,c.success)}catch(d){}},xc(a.h,"message",a.l))};function Tj(a){var b=a.u,c=a.ta,d=a.Ia;a=Uj({u:b,Z:a.Z,ka:void 0===a.ka?!1:a.ka,la:void 0===a.la?!1:a.la});null!=a.h||"tcunav"!=a.i.message?d(a):Vj(b,c).then(function(e){return e.map(Wj)}).then(function(e){return e.map(function(f){return Xj(b,f)})}).then(d)} function Uj(a){var b=a.u,c=a.Z,d=void 0===a.ka?!1:a.ka;if(!(a=!(void 0===a.la?0:a.la)&&Pj(new Oj(b)))){if(d=!d){if(c){c=Bj(b);if(null==c.h)Ui.I(806,c.i,void 0,void 0),c=!1;else if((c=c.h.value)&&null!=A(c,1))b:switch(c=A(c,1),c){case 1:c=!0;break b;default:throw Error("Unhandled AutoGdprFeatureStatus: "+c);}else c=!1;c=!c}d=c}a=d}if(!a)return Xj(b,Lj(!0));c=Dj();return(c=Hj(c,24))?Xj(b,Wj(c)):Fd(Error("tcunav"))}function Vj(a,b){return p.Promise.race([Yj(),Zj(a,b)])} function Yj(){return(new p.Promise(function(a){var b=Dj();a={resolve:a};var c=Hj(b,25,[]);c.push(a);b.S[Fj(25)]=c})).then(ak)}function Zj(a,b){return new p.Promise(function(c){a.setTimeout(c,b,Fd(Error("tcto")))})}function ak(a){return a?Dd(a):Fd(Error("tcnull"))} function Wj(a){var b=void 0===b?!1:b;if(!1===a.gdprApplies)var c=!0;else void 0===a.internalErrorState&&(a.internalErrorState=Nj(a)),c="error"===a.cmpStatus||0!==a.internalErrorState||"loaded"===a.cmpStatus&&("tcloaded"===a.eventStatus||"useractioncomplete"===a.eventStatus)?!0:!1;if(c)if(!1===a.gdprApplies||"tcunavailable"===a.tcString||void 0===a.gdprApplies&&!b||"string"!==typeof a.tcString||!a.tcString.length)a=!0;else{var d=void 0===d?"755":d;b:{if(a.publisher&&a.publisher.restrictions&&(b=a.publisher.restrictions["1"], void 0!==b)){b=b[void 0===d?"755":d];break b}b=void 0}0===b?a=!1:a.purpose&&a.vendor?(b=a.vendor.consents,(d=!(!b||!b[void 0===d?"755":d]))&&a.purposeOneTreatment&&"CH"===a.publisherCC?a=!0:(d&&(a=a.purpose.consents,d=!(!a||!a["1"])),a=d)):a=!0}else a=!1;return Lj(a)}function Xj(a,b){a:{a=void 0===a?window:a;if(xb(b,5))try{var c=a.localStorage;break a}catch(d){}c=null}return(b=c)?Dd(b):Fd(Error("unav"))};function bk(a){J.call(this,a)}v(bk,J);function ck(a){J.call(this,a,-1,dk)}v(ck,J);var dk=[1,2];function ek(a){this.exception=a}function fk(a,b,c){this.j=a;this.h=b;this.i=c}fk.prototype.start=function(){this.l()};fk.prototype.l=function(){try{switch(this.j.document.readyState){case "complete":case "interactive":wj(this.h,!0);gk(this);break;default:wj(this.h,!1)?gk(this):this.j.setTimeout(Ea(this.l,this),100)}}catch(a){gk(this,a)}};function gk(a,b){try{var c=a.i,d=c.resolve,e=a.h;Ri(e.h);H(e.j,ce,1);d.call(c,new ek(b))}catch(f){a.i.reject(f)}};function hk(a){J.call(this,a,-1,ik)}v(hk,J);function jk(a){J.call(this,a)}v(jk,J);function kk(a){J.call(this,a)}v(kk,J);var ik=[7];function lk(a){a=(a=(new Jj(a)).get("FCCDCF",""))?a:null;try{return a?Nb(hk,a):null}catch(b){return null}};Zb({Gb:0,Fb:1,Cb:2,xb:3,Db:4,yb:5,Eb:6,Ab:7,Bb:8,wb:9,zb:10}).map(function(a){return Number(a)});Zb({Ib:0,Jb:1,Hb:2}).map(function(a){return Number(a)});function mk(a){function b(){if(!a.frames.__uspapiLocator)if(c.body){var d=Mc("IFRAME",c);d.style.display="none";d.style.width="0px";d.style.height="0px";d.style.border="none";d.style.zIndex="-1000";d.style.left="-1000px";d.style.top="-1000px";d.name="__uspapiLocator";c.body.appendChild(d)}else a.setTimeout(b,5)}var c=a.document;b()};function nk(a){this.h=a;this.i=a.document;this.j=(a=(a=lk(this.i))?G(a,kk,5)||null:null)?A(a,2):null;(a=lk(this.i))&&G(a,jk,4);(a=lk(this.i))&&G(a,jk,4)}function ok(){var a=window;a.__uspapi||a.frames.__uspapiLocator||(a=new nk(a),pk(a))}function pk(a){!a.j||a.h.__uspapi||a.h.frames.__uspapiLocator||(a.h.__uspapiManager="fc",mk(a.h),Ga(function(){return a.l.apply(a,ka(ta.apply(0,arguments)))}))} nk.prototype.l=function(a,b,c){"function"===typeof c&&"getUSPData"===a&&c({version:1,uspString:this.j},!0)};function qk(a){J.call(this,a)}v(qk,J);qk.prototype.getWidth=function(){return C(this,1,0)};qk.prototype.getHeight=function(){return C(this,2,0)};function rk(a){J.call(this,a)}v(rk,J);function sk(a){J.call(this,a)}v(sk,J);var tk=[4,5];function uk(a){var b=/[a-zA-Z0-9._~-]/,c=/%[89a-zA-Z]./;return a.replace(/(%[a-zA-Z0-9]{2})/g,function(d){if(!d.match(c)){var e=decodeURIComponent(d);if(e.match(b))return e}return d.toUpperCase()})}function vk(a){for(var b="",c=/[/%?&=]/,d=0;d<a.length;++d){var e=a[d];b=e.match(c)?b+e:b+encodeURIComponent(e)}return b};function wk(a,b){a=vk(uk(a.location.pathname)).replace(/(^\/)|(\/$)/g,"");var c=Tc(a),d=xk(a);return r(b,"find").call(b,function(e){var f=null!=A(e,7)?A(G(e,oe,7),1):A(e,1);e=null!=A(e,7)?A(G(e,oe,7),2):2;if("number"!==typeof f)return!1;switch(e){case 1:return f==c;case 2:return d[f]||!1}return!1})||null}function xk(a){for(var b={};;){b[Tc(a)]=!0;if(!a)return b;a=a.substring(0,a.lastIndexOf("/"))}};var yk={},zk=(yk.google_ad_channel=!0,yk.google_ad_host=!0,yk);function Ak(a,b){a.location.href&&a.location.href.substring&&(b.url=a.location.href.substring(0,200));Yi("ama",b,.01)}function Bk(a){var b={};Sc(zk,function(c,d){d in a&&(b[d]=a[d])});return b};function Ck(a){a=G(a,le,3);return!a||A(a,1)<=Date.now()?!1:!0}function Dk(a){return(a=zj(a))?Ck(a)?a:null:null}function Ek(a,b){try{b.removeItem("google_ama_config")}catch(c){Ak(a,{lserr:1})}};function Fk(a){J.call(this,a)}v(Fk,J);function Gk(a){J.call(this,a,-1,Hk)}v(Gk,J);var Hk=[1];function Ik(a){J.call(this,a,-1,Jk)}v(Ik,J);Ik.prototype.getId=function(){return C(this,1,0)};Ik.prototype.V=function(){return C(this,7,0)};var Jk=[2];function Kk(a){J.call(this,a,-1,Lk)}v(Kk,J);Kk.prototype.V=function(){return C(this,5,0)};var Lk=[2];function Mk(a){J.call(this,a,-1,Nk)}v(Mk,J);function Ok(a){J.call(this,a,-1,Pk)}v(Ok,J);Ok.prototype.V=function(){return C(this,1,0)};function Qk(a){J.call(this,a)}v(Qk,J);var Nk=[1,4,2,3],Pk=[2];function Rk(a){J.call(this,a,-1,Sk)}v(Rk,J);function Tk(a){return Ib(a,Gk,14,Uk)}var Sk=[19],Uk=[13,14];var Vk=void 0;function Wk(){Yf(Vk,Xf);return Vk}function Xk(a){Yf(Vk,$f);Vk=a};function Yk(a,b,c,d){c=void 0===c?"":c;return 1===b&&Zk(c,void 0===d?null:d)?!0:$k(a,c,function(e){return Ua(H(e,Tb,2),function(f){return A(f,1)===b})})}function Zk(a,b){return b?13===Cb(b,Uk)?D(Ib(b,Fk,13,Uk),1):14===Cb(b,Uk)&&""!==a&&1===wb(Tk(b),1).length&&wb(Tk(b),1)[0]===a?D(G(Tk(b),Fk,2),1):!1:!1}function al(a,b){b=C(b,18,0);-1!==b&&(a.tmod=b)}function bl(a){var b=void 0===b?"":b;var c=Ic(L)||L;return cl(c,a)?!0:$k(L,b,function(d){return Ua(wb(d,3),function(e){return e===a})})} function dl(a){return $k(w,void 0===a?"":a,function(){return!0})}function cl(a,b){a=(a=(a=a.location&&a.location.hash)&&a.match(/forced_clientside_labs=([\d,]+)/))&&a[1];return!!a&&Xa(a.split(","),b.toString())}function $k(a,b,c){a=Ic(a)||a;var d=el(a);b&&(b=rd(String(b)));return Yb(d,function(e,f){return Object.prototype.hasOwnProperty.call(d,f)&&(!b||b===f)&&c(e)})}function el(a){a=fl(a);var b={};Sc(a,function(c,d){try{var e=new Rb(c);b[d]=e}catch(f){}});return b} function fl(a){return P(xe)?(a=Uj({u:a,Z:Wk()}),null!=a.h?(gl("ok"),a=hl(a.h.value)):(gl(a.i.message),a={}),a):hl(a.localStorage)}function hl(a){try{var b=a.getItem("google_adsense_settings");if(!b)return{};var c=JSON.parse(b);return c!==Object(c)?{}:Xb(c,function(d,e){return Object.prototype.hasOwnProperty.call(c,e)&&"string"===typeof e&&Array.isArray(d)})}catch(d){return{}}}function gl(a){P(we)&&Yi("abg_adsensesettings_lserr",{s:a,g:P(xe),c:Wk(),r:.01},.01)};function il(a,b,c,d){jl(new kl(a,b,c,d))}function kl(a,b,c,d){this.u=a;this.i=b;this.j=c;this.h=d}function jl(a){Ed(Cd(Uj({u:a.u,Z:D(a.i,6)}),function(b){ll(a,b,!0)}),function(){ml(a)})}function ll(a,b,c){Ed(Cd(nl(b),function(d){ol("ok");a.h(d)}),function(){Ek(a.u,b);c?ml(a):a.h(null)})}function ml(a){Ed(Cd(pl(a),a.h),function(){ql(a)})}function ql(a){Tj({u:a.u,Z:D(a.i,6),ta:50,Ia:function(b){rl(a,b)}})}function nl(a){return(a=Dk(a))?Dd(a):Fd(Error("invlocst"))} function pl(a){a:{var b=a.u;var c=a.j;a=a.i;if(13===Cb(a,Uk))b=(b=G(G(Ib(a,Fk,13,Uk),bk,2),ck,2))&&0<H(b,ce,1).length?b:null;else{if(14===Cb(a,Uk)){var d=wb(Tk(a),1),e=G(G(G(Tk(a),Fk,2),bk,2),ck,2);if(1===d.length&&d[0]===c&&e&&0<H(e,ce,1).length&&I(a,17)===b.location.host){b=e;break a}}b=null}}b?(c=new je,a=H(b,ce,1),c=Gb(c,1,a),b=H(b,me,2),b=Gb(c,7,b),b=Dd(b)):b=Fd(Error("invtag"));return b}function rl(a,b){Ed(Cd(b,function(c){ll(a,c,!1)}),function(c){ol(c.message);a.h(null)})} function ol(a){Yi("abg::amalserr",{status:a,guarding:"true",timeout:50,rate:.01},.01)};function sl(a){Ak(a,{atf:1})}function tl(a,b){(a.google_ama_state=a.google_ama_state||{}).exception=b;Ak(a,{atf:0})};function U(a){a.google_ad_modifications||(a.google_ad_modifications={});return a.google_ad_modifications}function ul(a){a=U(a);var b=a.space_collapsing||"none";return a.remove_ads_by_default?{Fa:!0,tb:b,qa:a.ablation_viewport_offset}:null}function vl(a,b){a=U(a);a.had_ads_ablation=!0;a.remove_ads_by_default=!0;a.space_collapsing="slot";a.ablation_viewport_offset=b}function wl(a){U(L).allow_second_reactive_tag=a} function xl(){var a=U(window);a.afg_slotcar_vars||(a.afg_slotcar_vars={});return a.afg_slotcar_vars};function yl(a,b){if(!a)return!1;a=a.hash;if(!a||!a.indexOf)return!1;if(-1!=a.indexOf(b))return!0;b=zl(b);return"go"!=b&&-1!=a.indexOf(b)?!0:!1}function zl(a){var b="";Sc(a.split("_"),function(c){b+=c.substr(0,2)});return b};$a||!x("Safari")||Oa();function Al(){var a=this;this.promise=new p.Promise(function(b,c){a.resolve=b;a.reject=c})};function Bl(){var a=new Al;return{promise:a.promise,resolve:a.resolve}};function Cl(a){a=void 0===a?function(){}:a;w.google_llp||(w.google_llp={});var b=w.google_llp,c=b[7];if(c)return c;c=Bl();b[7]=c;a();return c}function Dl(a){return Cl(function(){Lc(w.document,a)}).promise};function El(a){var b={};return{enable_page_level_ads:(b.pltais=!0,b),google_ad_client:a}};function Fl(a){if(w.google_apltlad||w!==w.top||!a.google_ad_client)return null;w.google_apltlad=!0;var b=El(a.google_ad_client),c=b.enable_page_level_ads;Sc(a,function(d,e){Ei[e]&&"google_ad_client"!==e&&(c[e]=d)});c.google_pgb_reactive=7;if("google_ad_section"in a||"google_ad_region"in a)c.google_ad_section=a.google_ad_section||a.google_ad_region;return b}function Gl(a){return ya(a.enable_page_level_ads)&&7===a.enable_page_level_ads.google_pgb_reactive};function Hl(a,b){this.h=w;this.i=a;this.j=b}function Il(a){P(lf)?il(a.h,a.j,a.i.google_ad_client||"",function(b){var c=a.h,d=a.i;U(L).ama_ran_on_page||b&&Jl(c,d,b)}):Tj({u:a.h,Z:D(a.j,6),ta:50,Ia:function(b){return Kl(a,b)}})}function Kl(a,b){Ed(Cd(b,function(c){Ll("ok");var d=a.h,e=a.i;if(!U(L).ama_ran_on_page){var f=Dk(c);f?Jl(d,e,f):Ek(d,c)}}),function(c){return Ll(c.message)})}function Ll(a){Yi("abg::amalserr",{status:a,guarding:!0,timeout:50,rate:.01},.01)} function Jl(a,b,c){if(null!=A(c,24)){var d=Si(a);d.availableAbg=!0;var e,f;d.ablationFromStorage=!!(null==(e=G(c,ee,24))?0:null==(f=G(e,ge,3))?0:Ib(f,he,2,ie))}if(Gl(b)&&(d=wk(a,H(c,me,7)),!d||!xb(d,8)))return;U(L).ama_ran_on_page=!0;var g;if(null==(g=G(c,re,15))?0:xb(g,23))U(a).enable_overlap_observer=!0;if((g=G(c,pe,13))&&1===A(g,1)){var h=0,k=G(g,qe,6);k&&A(k,3)&&(h=A(k,3)||0);vl(a,h)}else if(null==(h=G(c,ee,24))?0:null==(k=G(h,ge,3))?0:Ib(k,he,2,ie))Si(a).ablatingThisPageview=!0,vl(a,1);kd(3, [c.toJSON()]);var l=b.google_ad_client||"";b=Bk(ya(b.enable_page_level_ads)?b.enable_page_level_ads:{});var m=Rd(Vd,new Qd(null,b));Wi(782,function(){var q=m;try{var t=wk(a,H(c,me,7)),y;if(y=t)a:{var F=wb(t,2);if(F)for(var z=0;z<F.length;z++)if(1==F[z]){y=!0;break a}y=!1}if(y){if(A(t,4)){y={};var E=new Qd(null,(y.google_package=A(t,4),y));q=Rd(q,E)}var S=new vj(a,l,c,t,q),rb=new sd;(new fk(a,S,rb)).start();rb.i.then(Fa(sl,a),Fa(tl,a))}}catch(Kc){Ak(a,{atf:-1})}})};/* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ var Ml=ja(["https://fonts.googleapis.com/css2?family=Google+Material+Icons:wght@400;500;700"]);function Nl(a,b){return a instanceof HTMLScriptElement&&b.test(a.src)?0:1}function Ol(a){var b=L.document;if(b.currentScript)return Nl(b.currentScript,a);b=u(b.scripts);for(var c=b.next();!c.done;c=b.next())if(0===Nl(c.value,a))return 0;return 1};function Pl(a,b){var c={},d={},e={},f={};return f[fg]=(c[55]=function(){return 0===a},c[23]=function(g){return Yk(L,Number(g))},c[24]=function(g){return bl(Number(g))},c[61]=function(){return D(b,6)},c[63]=function(){return D(b,6)||".google.ch"===I(b,8)},c),f[gg]=(d[7]=function(g){try{var h=window.localStorage}catch(l){h=null}g=Number(g);g=void 0===g?0:g;g=0!==g?"google_experiment_mod"+g:"google_experiment_mod";var k=Vc(h,g);h=null===k?Wc(h,g):k;return null!=h?h:void 0},d),f[hg]=(e[6]=function(){return I(b, 15)},e),f};function Ql(a){a=void 0===a?w:a;return a.ggeac||(a.ggeac={})};function Rl(a,b){try{var c=a.split(".");a=w;for(var d=0,e;null!=a&&d<c.length;d++)e=a,a=a[c[d]],"function"===typeof a&&(a=e[c[d]]());var f=a;if(typeof f===b)return f}catch(g){}} function Sl(){var a={};this[fg]=(a[8]=function(b){try{return null!=va(b)}catch(c){}},a[9]=function(b){try{var c=va(b)}catch(d){return}if(b="function"===typeof c)c=c&&c.toString&&c.toString(),b="string"===typeof c&&-1!=c.indexOf("[native code]");return b},a[10]=function(){return window==window.top},a[6]=function(b){return Xa(O(Oh).h(),parseInt(b,10))},a[27]=function(b){b=Rl(b,"boolean");return void 0!==b?b:void 0},a[60]=function(b){try{return!!w.document.querySelector(b)}catch(c){}},a);a={};this[gg]= (a[3]=function(){return ad()},a[6]=function(b){b=Rl(b,"number");return void 0!==b?b:void 0},a[11]=function(b){b=void 0===b?"":b;var c=w;b=void 0===b?"":b;c=void 0===c?window:c;b=(c=(c=c.location.href.match(Ec)[3]||null)?decodeURI(c):c)?Tc(c+b):null;return null==b?void 0:b%1E3},a);a={};this[hg]=(a[2]=function(){return window.location.href},a[3]=function(){try{return window.top.location.hash}catch(b){return""}},a[4]=function(b){b=Rl(b,"string");return void 0!==b?b:void 0},a[10]=function(){try{var b= w.document;return b.visibilityState||b.webkitVisibilityState||b.mozVisibilityState||""}catch(c){return""}},a[11]=function(){try{var b,c,d,e,f;return null!=(f=null==(d=null==(b=va("google_tag_data"))?void 0:null==(c=b.uach)?void 0:c.fullVersionList)?void 0:null==(e=r(d,"find").call(d,function(g){return"Google Chrome"===g.brand}))?void 0:e.version)?f:""}catch(g){return""}},a)};var Tl=[12,13,20];function Ul(){}Ul.prototype.init=function(a,b,c,d){var e=this;d=void 0===d?{}:d;var f=void 0===d.Ka?!1:d.Ka,g=void 0===d.kb?{}:d.kb;d=void 0===d.mb?[]:d.mb;this.l=a;this.A={};this.G=f;this.m=g;a={};this.i=(a[b]=[],a[4]=[],a);this.j={};(b=Wh())&&Ra(b.split(",")||[],function(h){(h=parseInt(h,10))&&(e.j[h]=!0)});Ra(d,function(h){e.j[h]=!0});this.h=c;return this}; function Vl(a,b,c){var d=[],e=Wl(a.l,b),f;if(f=9!==b)a.A[b]?f=!0:(a.A[b]=!0,f=!1);if(f){var g;null==(g=a.h)||Yg(g,b,c,d,[],4);return d}if(!e.length){var h;null==(h=a.h)||Yg(h,b,c,d,[],3);return d}var k=Xa(Tl,b),l=[];Ra(e,function(q){var t=new Jg;if(q=Xl(a,q,c,t))0!==Cb(t,Kg)&&l.push(t),t=q.getId(),d.push(t),Yl(a,t,k?4:c),(q=H(q,qg,2))&&(k?oh(q,qh(),a.h,t):oh(q,[c],a.h,t))});var m;null==(m=a.h)||Yg(m,b,c,d,l,1);return d}function Yl(a,b,c){a.i[c]||(a.i[c]=[]);a=a.i[c];Xa(a,b)||a.push(b)} function Zl(a,b){a.l.push.apply(a.l,ka(Sa(Ta(b,function(c){return new Ok(c)}),function(c){return!Xa(Tl,c.V())})))} function Xl(a,b,c,d){var e=O(ah).h;if(!mg(G(b,ag,3),e))return null;var f=H(b,Ik,2),g=C(b,6,0);if(g){Bb(d,1,Kg,g);f=e[gg];switch(c){case 2:var h=f[8];break;case 1:h=f[7]}c=void 0;if(h)try{c=h(g),Ab(d,3,c)}catch(k){}return(b=$l(b,c))?am(a,[b],1):null}if(g=C(b,10,0)){Bb(d,2,Kg,g);h=null;switch(c){case 1:h=e[gg][9];break;case 2:h=e[gg][10];break;default:return null}c=h?h(String(g)):void 0;if(void 0===c&&1===C(b,11,0))return null;void 0!==c&&Ab(d,3,c);return(b=$l(b,c))?am(a,[b],1):null}d=e?Sa(f,function(k){return mg(G(k, ag,3),e)}):f;if(!d.length)return null;c=d.length*C(b,1,0);return(b=C(b,4,0))?bm(a,b,c,d):am(a,d,c/1E3)}function bm(a,b,c,d){var e=null!=a.m[b]?a.m[b]:1E3;if(0>=e)return null;d=am(a,d,c/e);a.m[b]=d?0:e-c;return d}function am(a,b,c){var d=a.j,e=Va(b,function(f){return!!d[f.getId()]});return e?e:a.G?null:Oc(b,c)} function cm(a,b){Jh(th,function(c){a.j[c]=!0},b);Jh(wh,function(c,d){return Vl(a,c,d)},b);Jh(xh,function(c){return(a.i[c]||[]).concat(a.i[4])},b);Jh(Gh,function(c){return Zl(a,c)},b);Jh(uh,function(c,d){return Yl(a,c,d)},b)}function Wl(a,b){return(a=Va(a,function(c){return c.V()==b}))&&H(a,Kk,2)||[]}function $l(a,b){var c=H(a,Ik,2),d=c.length,e=C(a,8,0);a=d*C(a,1,0)-1;b=void 0!==b?b:Math.floor(1E3*Rc());d=(b-e)%d;if(b<e||b-e-d>=a)return null;c=c[d];e=O(ah).h;return!c||e&&!mg(G(c,ag,3),e)?null:c};function dm(){this.h=function(){}}function em(a){O(dm).h(a)};var fm,gm,hm,im,jm,km; function lm(a,b,c,d){var e=1;d=void 0===d?Ql():d;e=void 0===e?0:e;var f=void 0===f?new Tg(null!=(im=null==(fm=G(a,Qk,5))?void 0:C(fm,2,0))?im:0,null!=(jm=null==(gm=G(a,Qk,5))?void 0:C(gm,4,0))?jm:0,null!=(km=null==(hm=G(a,Qk,5))?void 0:D(hm,3))?km:!1):f;d.hasOwnProperty("init-done")?(Kh(Gh,d)(Ta(H(a,Ok,2),function(g){return g.toJSON()})),Kh(Hh,d)(Ta(H(a,qg,1),function(g){return g.toJSON()}),e),b&&Kh(Ih,d)(b),mm(d,e)):(cm(O(Ul).init(H(a,Ok,2),e,f,c),d),Lh(d),Mh(d),Nh(d),mm(d,e),oh(H(a,qg,1),[e],f, void 0,!0),bh=bh||!(!c||!c.hb),em(O(Sl)),b&&em(b))}function mm(a,b){a=void 0===a?Ql():a;b=void 0===b?0:b;var c=a,d=b;d=void 0===d?0:d;Ph(O(Oh),c,d);nm(a,b);O(dm).h=Kh(Ih,a);O(yf).m()}function nm(a,b){var c=O(yf);c.i=function(d,e){return Kh(zh,a,function(){return!1})(d,e,b)};c.j=function(d,e){return Kh(Ah,a,function(){return 0})(d,e,b)};c.l=function(d,e){return Kh(Bh,a,function(){return""})(d,e,b)};c.h=function(d,e){return Kh(Ch,a,function(){return[]})(d,e,b)};c.m=function(){Kh(vh,a)(b)}};function om(a,b,c){var d=U(a);if(d.plle)mm(Ql(a),1);else{d.plle=!0;try{var e=a.localStorage}catch(f){e=null}d=e;null==Vc(d,"goog_pem_mod")&&Wc(d,"goog_pem_mod");d=G(b,Mk,12);e=D(b,9);lm(d,Pl(c,b),{Ka:e&&!!a.google_disable_experiments,hb:e},Ql(a));if(c=I(b,15))c=Number(c),O(Oh).l(c);if(c=I(b,10))c=Number(c),O(Oh).i(c);b=u(wb(b,19));for(c=b.next();!c.done;c=b.next())c=c.value,O(Oh).i(c);O(Oh).j(12);O(Oh).j(10);a=Ic(a)||a;yl(a.location,"google_mc_lab")&&O(Oh).i(44738307)}};function pm(a,b,c){a=a.style;a.border="none";a.height=c+"px";a.width=b+"px";a.margin=0;a.padding=0;a.position="relative";a.visibility="visible";a.backgroundColor="transparent"};var qm={"120x90":!0,"160x90":!0,"180x90":!0,"200x90":!0,"468x15":!0,"728x15":!0};function rm(a,b){if(15==b){if(728<=a)return 728;if(468<=a)return 468}else if(90==b){if(200<=a)return 200;if(180<=a)return 180;if(160<=a)return 160;if(120<=a)return 120}return null};function V(a,b,c,d){d=void 0===d?!1:d;wi.call(this,a,b);this.da=c;this.ib=d}v(V,wi);V.prototype.pa=function(){return this.da};V.prototype.i=function(a,b,c){b.google_ad_resize||(c.style.height=this.height()+"px",b.rpe=!0)};function sm(a){return function(b){return!!(b.da&a)}};var tm={},um=(tm.image_stacked=1/1.91,tm.image_sidebyside=1/3.82,tm.mobile_banner_image_sidebyside=1/3.82,tm.pub_control_image_stacked=1/1.91,tm.pub_control_image_sidebyside=1/3.82,tm.pub_control_image_card_stacked=1/1.91,tm.pub_control_image_card_sidebyside=1/3.74,tm.pub_control_text=0,tm.pub_control_text_card=0,tm),vm={},wm=(vm.image_stacked=80,vm.image_sidebyside=0,vm.mobile_banner_image_sidebyside=0,vm.pub_control_image_stacked=80,vm.pub_control_image_sidebyside=0,vm.pub_control_image_card_stacked= 85,vm.pub_control_image_card_sidebyside=0,vm.pub_control_text=80,vm.pub_control_text_card=80,vm),xm={},ym=(xm.pub_control_image_stacked=100,xm.pub_control_image_sidebyside=200,xm.pub_control_image_card_stacked=150,xm.pub_control_image_card_sidebyside=250,xm.pub_control_text=100,xm.pub_control_text_card=150,xm); function zm(a){var b=0;a.T&&b++;a.J&&b++;a.K&&b++;if(3>b)return{M:"Tags data-matched-content-ui-type, data-matched-content-columns-num and data-matched-content-rows-num should be set together."};b=a.T.split(",");var c=a.K.split(",");a=a.J.split(",");if(b.length!==c.length||b.length!==a.length)return{M:'Lengths of parameters data-matched-content-ui-type, data-matched-content-columns-num and data-matched-content-rows-num must match. Example: \n data-matched-content-rows-num="4,2"\ndata-matched-content-columns-num="1,6"\ndata-matched-content-ui-type="image_stacked,image_card_sidebyside"'}; if(2<b.length)return{M:"The parameter length of attribute data-matched-content-ui-type, data-matched-content-columns-num and data-matched-content-rows-num is too long. At most 2 parameters for each attribute are needed: one for mobile and one for desktop, while you are providing "+(b.length+' parameters. Example: \n data-matched-content-rows-num="4,2"\ndata-matched-content-columns-num="1,6"\ndata-matched-content-ui-type="image_stacked,image_card_sidebyside".')};for(var d=[],e=[],f=0;f<b.length;f++){var g= Number(c[f]);if(r(Number,"isNaN").call(Number,g)||0===g)return{M:"Wrong value '"+c[f]+"' for data-matched-content-rows-num."};d.push(g);g=Number(a[f]);if(r(Number,"isNaN").call(Number,g)||0===g)return{M:"Wrong value '"+a[f]+"' for data-matched-content-columns-num."};e.push(g)}return{K:d,J:e,Na:b}} function Am(a){return 1200<=a?{width:1200,height:600}:850<=a?{width:a,height:Math.floor(.5*a)}:550<=a?{width:a,height:Math.floor(.6*a)}:468<=a?{width:a,height:Math.floor(.7*a)}:{width:a,height:Math.floor(3.44*a)}};var Bm=Za("script");function Cm(a,b,c,d,e,f,g,h,k,l,m,q){this.A=a;this.U=b;this.da=void 0===c?null:c;this.h=void 0===d?null:d;this.P=void 0===e?null:e;this.i=void 0===f?null:f;this.j=void 0===g?null:g;this.H=void 0===h?null:h;this.N=void 0===k?null:k;this.l=void 0===l?null:l;this.m=void 0===m?null:m;this.O=void 0===q?null:q;this.R=this.C=this.G=null}Cm.prototype.size=function(){return this.U}; function Dm(a,b,c){null!=a.da&&(c.google_responsive_formats=a.da);null!=a.P&&(c.google_safe_for_responsive_override=a.P);null!=a.i&&(!0===a.i?c.google_full_width_responsive_allowed=!0:(c.google_full_width_responsive_allowed=!1,c.gfwrnwer=a.i));null!=a.j&&!0!==a.j&&(c.gfwrnher=a.j);var d=a.m||c.google_ad_width;null!=d&&(c.google_resizing_width=d);d=a.l||c.google_ad_height;null!=d&&(c.google_resizing_height=d);d=a.size().h(b);var e=a.size().height();if(!c.google_ad_resize){c.google_ad_width=d;c.google_ad_height= e;var f=a.size();b=f.h(b)+"x"+f.height();c.google_ad_format=b;c.google_responsive_auto_format=a.A;null!=a.h&&(c.armr=a.h);c.google_ad_resizable=!0;c.google_override_format=1;c.google_loader_features_used=128;!0===a.i&&(c.gfwrnh=a.size().height()+"px")}null!=a.H&&(c.gfwroml=a.H);null!=a.N&&(c.gfwromr=a.N);null!=a.l&&(c.gfwroh=a.l);null!=a.m&&(c.gfwrow=a.m);null!=a.O&&(c.gfwroz=a.O);null!=a.G&&(c.gml=a.G);null!=a.C&&(c.gmr=a.C);null!=a.R&&(c.gzi=a.R);b=Ic(window)||window;yl(b.location,"google_responsive_dummy_ad")&& (Xa([1,2,3,4,5,6,7,8],a.A)||1===a.h)&&2!==a.h&&(a=JSON.stringify({googMsgType:"adpnt",key_value:[{key:"qid",value:"DUMMY_AD"}]}),c.dash="<"+Bm+">window.top.postMessage('"+a+"', '*');\n </"+Bm+'>\n <div id="dummyAd" style="width:'+d+"px;height:"+e+'px;\n background:#ddd;border:3px solid #f00;box-sizing:border-box;\n color:#000;">\n <p>Requested size:'+d+"x"+e+"</p>\n <p>Rendered size:"+d+"x"+e+"</p>\n </div>")};var Em=["google_content_recommendation_ui_type","google_content_recommendation_columns_num","google_content_recommendation_rows_num"];function Fm(a,b){wi.call(this,a,b)}v(Fm,wi);Fm.prototype.h=function(a){return Math.min(1200,Math.max(this.minWidth(),Math.round(a)))}; function Gm(a,b){Hm(a,b);if("pedestal"==b.google_content_recommendation_ui_type)return new Cm(9,new Fm(a,Math.floor(a*b.google_phwr)));var c=Cc();468>a?c?(c=a-8-8,c=Math.floor(c/1.91+70)+Math.floor(11*(c*um.mobile_banner_image_sidebyside+wm.mobile_banner_image_sidebyside)+96),a={aa:a,$:c,J:1,K:12,T:"mobile_banner_image_sidebyside"}):(a=Am(a),a={aa:a.width,$:a.height,J:1,K:13,T:"image_sidebyside"}):(a=Am(a),a={aa:a.width,$:a.height,J:4,K:2,T:"image_stacked"});Im(b,a);return new Cm(9,new Fm(a.aa,a.$))} function Jm(a,b){Hm(a,b);var c=zm({K:b.google_content_recommendation_rows_num,J:b.google_content_recommendation_columns_num,T:b.google_content_recommendation_ui_type});if(c.M)a={aa:0,$:0,J:0,K:0,T:"image_stacked",M:c.M};else{var d=2===c.Na.length&&468<=a?1:0;var e=c.Na[d];e=0===e.indexOf("pub_control_")?e:"pub_control_"+e;var f=ym[e];for(var g=c.J[d];a/g<f&&1<g;)g--;f=g;c=c.K[d];d=Math.floor(((a-8*f-8)/f*um[e]+wm[e])*c+8*c+8);a=1500<a?{width:0,height:0,rb:"Calculated slot width is too large: "+a}: 1500<d?{width:0,height:0,rb:"Calculated slot height is too large: "+d}:{width:a,height:d};a={aa:a.width,$:a.height,J:f,K:c,T:e}}if(a.M)throw new T(a.M);Im(b,a);return new Cm(9,new Fm(a.aa,a.$))}function Hm(a,b){if(0>=a)throw new T("Invalid responsive width from Matched Content slot "+b.google_ad_slot+": "+a+". Please ensure to put this Matched Content slot into a non-zero width div container.");} function Im(a,b){a.google_content_recommendation_ui_type=b.T;a.google_content_recommendation_columns_num=b.J;a.google_content_recommendation_rows_num=b.K};function Km(a,b){wi.call(this,a,b)}v(Km,wi);Km.prototype.h=function(){return this.minWidth()};Km.prototype.i=function(a,b,c){vi(a,c);b.google_ad_resize||(c.style.height=this.height()+"px",b.rpe=!0)};var Lm={"image-top":function(a){return 600>=a?284+.414*(a-250):429},"image-middle":function(a){return 500>=a?196-.13*(a-250):164+.2*(a-500)},"image-side":function(a){return 500>=a?205-.28*(a-250):134+.21*(a-500)},"text-only":function(a){return 500>=a?187-.228*(a-250):130},"in-article":function(a){return 420>=a?a/1.2:460>=a?a/1.91+130:800>=a?a/4:200}};function Mm(a,b){wi.call(this,a,b)}v(Mm,wi);Mm.prototype.h=function(){return Math.min(1200,this.minWidth())}; function Nm(a,b,c,d,e){var f=e.google_ad_layout||"image-top";if("in-article"==f){var g=a;if("false"==e.google_full_width_responsive)a=g;else if(a=qi(b,c,g,.2,e),!0!==a)e.gfwrnwer=a,a=g;else if(a=Wf(b))if(e.google_full_width_responsive_allowed=!0,c.parentElement){b:{g=c;for(var h=0;100>h&&g.parentElement;++h){for(var k=g.parentElement.childNodes,l=0;l<k.length;++l){var m=k[l];if(m!=g&&ti(b,m))break b}g=g.parentElement;g.style.width="100%";g.style.height="auto"}}vi(b,c)}else a=g;else a=g}if(250>a)throw new T("Fluid responsive ads must be at least 250px wide: availableWidth="+ a);a=Math.min(1200,Math.floor(a));if(d&&"in-article"!=f){f=Math.ceil(d);if(50>f)throw new T("Fluid responsive ads must be at least 50px tall: height="+f);return new Cm(11,new wi(a,f))}if("in-article"!=f&&(d=e.google_ad_layout_key)){f=""+d;b=Math.pow(10,3);if(d=(c=f.match(/([+-][0-9a-z]+)/g))&&c.length){e=[];for(g=0;g<d;g++)e.push(parseInt(c[g],36)/b);b=e}else b=null;if(!b)throw new T("Invalid data-ad-layout-key value: "+f);f=(a+-725)/1E3;c=0;d=1;e=b.length;for(g=0;g<e;g++)c+=b[g]*d,d*=f;f=Math.ceil(1E3* c- -725+10);if(isNaN(f))throw new T("Invalid height: height="+f);if(50>f)throw new T("Fluid responsive ads must be at least 50px tall: height="+f);if(1200<f)throw new T("Fluid responsive ads must be at most 1200px tall: height="+f);return new Cm(11,new wi(a,f))}d=Lm[f];if(!d)throw new T("Invalid data-ad-layout value: "+f);c=Ai(c,b);b=Wf(b);b="in-article"!==f||c||a!==b?Math.ceil(d(a)):Math.ceil(1.25*d(a));return new Cm(11,"in-article"==f?new Mm(a,b):new wi(a,b))};function Om(a){return function(b){for(var c=a.length-1;0<=c;--c)if(!a[c](b))return!1;return!0}}function Pm(a,b){for(var c=Qm.slice(0),d=c.length,e=null,f=0;f<d;++f){var g=c[f];if(a(g)){if(!b||b(g))return g;null===e&&(e=g)}}return e};var W=[new V(970,90,2),new V(728,90,2),new V(468,60,2),new V(336,280,1),new V(320,100,2),new V(320,50,2),new V(300,600,4),new V(300,250,1),new V(250,250,1),new V(234,60,2),new V(200,200,1),new V(180,150,1),new V(160,600,4),new V(125,125,1),new V(120,600,4),new V(120,240,4),new V(120,120,1,!0)],Qm=[W[6],W[12],W[3],W[0],W[7],W[14],W[1],W[8],W[10],W[4],W[15],W[2],W[11],W[5],W[13],W[9],W[16]];function Rm(a,b,c,d,e){"false"==e.google_full_width_responsive?c={D:a,F:1}:"autorelaxed"==b&&e.google_full_width_responsive||Sm(b)||e.google_ad_resize?(b=ri(a,c,d,e),c=!0!==b?{D:a,F:b}:{D:Wf(c)||a,F:!0}):c={D:a,F:2};b=c.F;return!0!==b?{D:a,F:b}:d.parentElement?{D:c.D,F:b}:{D:a,F:b}} function Tm(a,b,c,d,e){var f=Wi(247,function(){return Rm(a,b,c,d,e)}),g=f.D;f=f.F;var h=!0===f,k=K(d.style.width),l=K(d.style.height),m=Um(g,b,c,d,e,h);g=m.Y;h=m.W;var q=m.pa;m=m.Ma;var t=Vm(b,q),y,F=(y=xi(d,c,"marginLeft",K))?y+"px":"",z=(y=xi(d,c,"marginRight",K))?y+"px":"";y=xi(d,c,"zIndex")||"";return new Cm(t,g,q,null,m,f,h,F,z,l,k,y)}function Sm(a){return"auto"==a||/^((^|,) *(horizontal|vertical|rectangle) *)+$/.test(a)} function Um(a,b,c,d,e,f){b="auto"==b?.25>=a/Math.min(1200,Wf(c))?4:3:pi(b);var g=!1,h=!1;if(488>Wf(c)){var k=ki(d,c);var l=Ai(d,c);g=!l&&k;h=l&&k}l=[yi(a),sm(b)];l.push(zi(488>Wf(c),c,d,h));null!=e.google_max_responsive_height&&l.push(Ci(e.google_max_responsive_height));var m=[function(t){return!t.ib}];if(g||h)g=Di(c,d),m.push(Ci(g));var q=Pm(Om(l),Om(m));if(!q)throw new T("No slot size for availableWidth="+a);l=Wi(248,function(){var t;a:if(f){if(e.gfwrnh&&(t=K(e.gfwrnh))){t={Y:new Km(a,t),W:!0}; break a}t=a/1.2;var y=Math;var F=y.min;if(e.google_resizing_allowed||"true"==e.google_full_width_responsive)var z=Infinity;else{z=d;var E=Infinity;do{var S=xi(z,c,"height",K);S&&(E=Math.min(E,S));(S=xi(z,c,"maxHeight",K))&&(E=Math.min(E,S))}while((z=z.parentElement)&&"HTML"!=z.tagName);z=E}y=F.call(y,t,z);if(y<.5*t||100>y)y=t;P(hf)&&!Ai(d,c)&&(y=Math.max(y,.5*Vf(c).clientHeight));t={Y:new Km(a,Math.floor(y)),W:y<t?102:!0}}else t={Y:q,W:100};return t});g=l.Y;l=l.W;return"in-article"===e.google_ad_layout&& Wm(c)?{Y:Xm(a,c,d,g,e),W:!1,pa:b,Ma:k}:{Y:g,W:l,pa:b,Ma:k}}function Vm(a,b){if("auto"==a)return 1;switch(b){case 2:return 2;case 1:return 3;case 4:return 4;case 3:return 5;case 6:return 6;case 5:return 7;case 7:return 8}throw Error("bad mask");}function Xm(a,b,c,d,e){var f=e.google_ad_height||xi(c,b,"height",K);b=Nm(a,b,c,f,e).size();return b.minWidth()*b.height()>a*d.height()?new V(b.minWidth(),b.height(),1):d}function Wm(a){return P(ff)||a.location&&"#hffwroe2etoq"==a.location.hash};function Ym(a,b,c,d,e){var f;(f=Wf(b))?488>Wf(b)?b.innerHeight>=b.innerWidth?(e.google_full_width_responsive_allowed=!0,vi(b,c),f={D:f,F:!0}):f={D:a,F:5}:f={D:a,F:4}:f={D:a,F:10};var g=f;f=g.D;g=g.F;if(!0!==g||a==f)return new Cm(12,new wi(a,d),null,null,!0,g,100);a=Um(f,"auto",b,c,e,!0);return new Cm(1,a.Y,a.pa,2,!0,g,a.W)};function Zm(a,b){var c=b.google_ad_format;if("autorelaxed"==c){a:{if("pedestal"!=b.google_content_recommendation_ui_type)for(a=u(Em),c=a.next();!c.done;c=a.next())if(null!=b[c.value]){b=!0;break a}b=!1}return b?9:5}if(Sm(c))return 1;if("link"===c)return 4;if("fluid"==c){if(c="in-article"===b.google_ad_layout)c=P(gf)||P(ff)||a.location&&("#hffwroe2etop"==a.location.hash||"#hffwroe2etoq"==a.location.hash);return c?($m(b),1):8}if(27===b.google_reactive_ad_format)return $m(b),1} function an(a,b,c,d,e){e=b.offsetWidth||(c.google_ad_resize||(void 0===e?!1:e))&&xi(b,d,"width",K)||c.google_ad_width||0;4===a&&(c.google_ad_format="auto",a=1);var f=(f=bn(a,e,b,c,d))?f:Tm(e,c.google_ad_format,d,b,c);f.size().i(d,c,b);Dm(f,e,c);1!=a&&(a=f.size().height(),b.style.height=a+"px")} function bn(a,b,c,d,e){var f=d.google_ad_height||xi(c,e,"height",K);switch(a){case 5:return f=Wi(247,function(){return Rm(b,d.google_ad_format,e,c,d)}),a=f.D,f=f.F,!0===f&&b!=a&&vi(e,c),!0===f?d.google_full_width_responsive_allowed=!0:(d.google_full_width_responsive_allowed=!1,d.gfwrnwer=f),Gm(a,d);case 9:return Jm(b,d);case 8:return Nm(b,e,c,f,d);case 10:return Ym(b,e,c,f,d)}}function $m(a){a.google_ad_format="auto";a.armr=3};function cn(a,b){var c=Ic(b);if(c){c=Wf(c);var d=Nc(a,b)||{},e=d.direction;if("0px"===d.width&&"none"!==d.cssFloat)return-1;if("ltr"===e&&c)return Math.floor(Math.min(1200,c-a.getBoundingClientRect().left));if("rtl"===e&&c)return a=b.document.body.getBoundingClientRect().right-a.getBoundingClientRect().right,Math.floor(Math.min(1200,c-a-Math.floor((c-b.document.body.clientWidth)/2)))}return-1};var dn=ja(["https://pagead2.googlesyndication.com/pagead/managed/js/adsense/","/slotcar_library",".js"]),en=ja(["https://googleads.g.doubleclick.net/pagead/html/","/","/zrt_lookup.html"]),fn=ja(["https://pagead2.googlesyndication.com/pagead/managed/js/adsense/","/show_ads_impl",".js"]),gn=ja(["https://pagead2.googlesyndication.com/pagead/managed/js/adsense/","/show_ads_impl_with_ama",".js"]),hn=ja(["https://pagead2.googlesyndication.com/pagead/managed/js/adsense/","/show_ads_impl_instrumented",".js"]);function jn(a){Ui.Ta(function(b){b.shv=String(a);b.mjsv="m202204040101";var c=O(Oh).h(),d=U(w);d.eids||(d.eids=[]);b.eid=c.concat(d.eids).join(",")})};function kn(a){var b=a.nb;return a.eb||("dev"===b?"dev":"")};var ln={},mn=(ln.google_ad_modifications=!0,ln.google_analytics_domain_name=!0,ln.google_analytics_uacct=!0,ln.google_pause_ad_requests=!0,ln.google_user_agent_client_hint=!0,ln);function nn(a){return(a=a.innerText||a.innerHTML)&&(a=a.replace(/^\s+/,"").split(/\r?\n/,1)[0].match(/^\x3c!--+(.*?)(?:--+>)?\s*$/))&&RegExp("google_ad_client").test(a[1])?a[1]:null} function on(a){if(a=a.innerText||a.innerHTML)if(a=a.replace(/^\s+|\s+$/g,"").replace(/\s*(\r?\n)+\s*/g,";"),(a=a.match(/^\x3c!--+(.*?)(?:--+>)?$/)||a.match(/^\/*\s*<!\[CDATA\[(.*?)(?:\/*\s*\]\]>)?$/i))&&RegExp("google_ad_client").test(a[1]))return a[1];return null} function pn(a){switch(a){case "true":return!0;case "false":return!1;case "null":return null;case "undefined":break;default:try{var b=a.match(/^(?:'(.*)'|"(.*)")$/);if(b)return b[1]||b[2]||"";if(/^[-+]?\d*(\.\d+)?$/.test(a)){var c=parseFloat(a);return c===c?c:void 0}}catch(d){}}};function qn(a){if(a.google_ad_client)return String(a.google_ad_client);var b,c,d,e,f;if(null!=(e=null!=(d=null==(b=U(a).head_tag_slot_vars)?void 0:b.google_ad_client)?d:null==(c=a.document.querySelector(".adsbygoogle[data-ad-client]"))?void 0:c.getAttribute("data-ad-client")))b=e;else{b:{b=a.document.getElementsByTagName("script");a=a.navigator&&a.navigator.userAgent||"";a=RegExp("appbankapppuzdradb|daumapps|fban|fbios|fbav|fb_iab|gsa/|messengerforios|naver|niftyappmobile|nonavigation|pinterest|twitter|ucbrowser|yjnewsapp|youtube", "i").test(a)||/i(phone|pad|pod)/i.test(a)&&/applewebkit/i.test(a)&&!/version|safari/i.test(a)&&!qd()?nn:on;for(c=b.length-1;0<=c;c--)if(d=b[c],!d.google_parsed_script_for_pub_code&&(d.google_parsed_script_for_pub_code=!0,d=a(d))){b=d;break b}b=null}if(b){a=/(google_\w+) *= *(['"]?[\w.-]+['"]?) *(?:;|$)/gm;for(c={};d=a.exec(b);)c[d[1]]=pn(d[2]);b=c.google_ad_client?c.google_ad_client:""}else b=""}return null!=(f=b)?f:""};var rn="undefined"===typeof sttc?void 0:sttc;function sn(a){var b=Ui;try{return Yf(a,Zf),new Rk(JSON.parse(a))}catch(c){b.I(838,c instanceof Error?c:Error(String(c)),void 0,function(d){d.jspb=String(a)})}return new Rk};var tn=O(yf).h(mf.h,mf.defaultValue);function un(){var a=L.document;a=void 0===a?window.document:a;ed(tn,a)};var vn=O(yf).h(nf.h,nf.defaultValue);function wn(){var a=L.document;a=void 0===a?window.document:a;ed(vn,a)};var xn=ja(["https://pagead2.googlesyndication.com/pagead/js/err_rep.js"]);function yn(){this.h=null;this.j=!1;this.l=Math.random();this.i=this.I;this.m=null}n=yn.prototype;n.Ta=function(a){this.h=a};n.Va=function(a){this.j=a};n.Ua=function(a){this.i=a}; n.I=function(a,b,c,d,e){if((this.j?this.l:Math.random())>(void 0===c?.01:c))return!1;Rh(b)||(b=new Qh(b,{context:a,id:void 0===e?"jserror":e}));if(d||this.h)b.meta={},this.h&&this.h(b.meta),d&&d(b.meta);w.google_js_errors=w.google_js_errors||[];w.google_js_errors.push(b);if(!w.error_rep_loaded){a=nd(xn);var f;Lc(w.document,null!=(f=this.m)?f:hc(qc(a).toString()));w.error_rep_loaded=!0}return!1};n.oa=function(a,b,c){try{return b()}catch(d){if(!this.i(a,d,.01,c,"jserror"))throw d;}}; n.Oa=function(a,b){var c=this;return function(){var d=ta.apply(0,arguments);return c.oa(a,function(){return b.apply(void 0,d)})}};n.Pa=function(a,b){var c=this;b.catch(function(d){d=d?d:"unknown rejection";c.I(a,d instanceof Error?d:Error(d))})};function zn(a,b,c){var d=window;return function(){var e=Yh(),f=3;try{var g=b.apply(this,arguments)}catch(h){f=13;if(c)return c(a,h),g;throw h;}finally{d.google_measure_js_timing&&e&&(e={label:a.toString(),value:e,duration:(Yh()||0)-e,type:f},f=d.google_js_reporting_queue=d.google_js_reporting_queue||[],2048>f.length&&f.push(e))}return g}}function An(a,b){return zn(a,b,function(c,d){(new yn).I(c,d)})};function Bn(a,b){return null==b?"&"+a+"=null":"&"+a+"="+Math.floor(b)}function Cn(a,b){return"&"+a+"="+b.toFixed(3)}function Dn(){var a=new p.Set,b=aj();try{if(!b)return a;for(var c=b.pubads(),d=u(c.getSlots()),e=d.next();!e.done;e=d.next())a.add(e.value.getSlotId().getDomId())}catch(f){}return a}function En(a){a=a.id;return null!=a&&(Dn().has(a)||r(a,"startsWith").call(a,"google_ads_iframe_")||r(a,"startsWith").call(a,"aswift"))} function Fn(a,b,c){if(!a.sources)return!1;switch(Gn(a)){case 2:var d=Hn(a);if(d)return c.some(function(f){return In(d,f)});case 1:var e=Jn(a);if(e)return b.some(function(f){return In(e,f)})}return!1}function Gn(a){if(!a.sources)return 0;a=a.sources.filter(function(b){return b.previousRect&&b.currentRect});if(1<=a.length){a=a[0];if(a.previousRect.top<a.currentRect.top)return 2;if(a.previousRect.top>a.currentRect.top)return 1}return 0}function Jn(a){return Kn(a,function(b){return b.currentRect})} function Hn(a){return Kn(a,function(b){return b.previousRect})}function Kn(a,b){return a.sources.reduce(function(c,d){d=b(d);return c?d&&0!==d.width*d.height?d.top<c.top?d:c:c:d},null)} function Ln(){Mj.call(this);this.i=this.h=this.P=this.O=this.H=0;this.Ba=this.ya=Number.NEGATIVE_INFINITY;this.ua=this.wa=this.xa=this.za=this.Ea=this.m=this.Da=this.U=0;this.va=!1;this.R=this.N=this.C=0;var a=document.querySelector("[data-google-query-id]");this.Ca=a?a.getAttribute("data-google-query-id"):null;this.l=null;this.Aa=!1;this.ga=function(){}}v(Ln,Mj); function Mn(){var a=new Ln;if(P(of)){var b=window;if(!b.google_plmetrics&&window.PerformanceObserver){b.google_plmetrics=!0;b=u(["layout-shift","largest-contentful-paint","first-input","longtask"]);for(var c=b.next();!c.done;c=b.next())c=c.value,Nn(a).observe({type:c,buffered:!0});On(a)}}} function Nn(a){a.l||(a.l=new PerformanceObserver(An(640,function(b){var c=Pn!==window.scrollX||Qn!==window.scrollY?[]:Rn,d=Sn();b=u(b.getEntries());for(var e=b.next();!e.done;e=b.next())switch(e=e.value,e.entryType){case "layout-shift":var f=a;if(!e.hadRecentInput){f.H+=Number(e.value);Number(e.value)>f.O&&(f.O=Number(e.value));f.P+=1;var g=Fn(e,c,d);g&&(f.m+=e.value,f.za++);if(5E3<e.startTime-f.ya||1E3<e.startTime-f.Ba)f.ya=e.startTime,f.h=0,f.i=0;f.Ba=e.startTime;f.h+=e.value;g&&(f.i+=e.value); f.h>f.U&&(f.U=f.h,f.Ea=f.i,f.Da=e.startTime+e.duration)}break;case "largest-contentful-paint":a.xa=Math.floor(e.renderTime||e.loadTime);a.wa=e.size;break;case "first-input":a.ua=Number((e.processingStart-e.startTime).toFixed(3));a.va=!0;break;case "longtask":e=Math.max(0,e.duration-50),a.C+=e,a.N=Math.max(a.N,e),a.R+=1}})));return a.l} function On(a){var b=An(641,function(){var d=document;2==(d.prerendering?3:{visible:1,hidden:2,prerender:3,preview:4,unloaded:5}[d.visibilityState||d.webkitVisibilityState||d.mozVisibilityState||""]||0)&&Tn(a)}),c=An(641,function(){return void Tn(a)});document.addEventListener("visibilitychange",b);document.addEventListener("unload",c);a.ga=function(){document.removeEventListener("visibilitychange",b);document.removeEventListener("unload",c);Nn(a).disconnect()}} Ln.prototype.j=function(){Mj.prototype.j.call(this);this.ga()}; function Tn(a){if(!a.Aa){a.Aa=!0;Nn(a).takeRecords();var b="https://pagead2.googlesyndication.com/pagead/gen_204?id=plmetrics";window.LayoutShift&&(b+=Cn("cls",a.H),b+=Cn("mls",a.O),b+=Bn("nls",a.P),window.LayoutShiftAttribution&&(b+=Cn("cas",a.m),b+=Bn("nas",a.za)),b+=Cn("wls",a.U),b+=Cn("tls",a.Da),window.LayoutShiftAttribution&&(b+=Cn("was",a.Ea)));window.LargestContentfulPaint&&(b+=Bn("lcp",a.xa),b+=Bn("lcps",a.wa));window.PerformanceEventTiming&&a.va&&(b+=Bn("fid",a.ua));window.PerformanceLongTaskTiming&& (b+=Bn("cbt",a.C),b+=Bn("mbt",a.N),b+=Bn("nlt",a.R));for(var c=0,d=u(document.getElementsByTagName("iframe")),e=d.next();!e.done;e=d.next())En(e.value)&&c++;b+=Bn("nif",c);b+=Bn("ifi",pd(window));c=O(Oh).h();b+="&eid="+encodeURIComponent(c.join());b+="&top="+(w===w.top?1:0);b+=a.Ca?"&qqid="+encodeURIComponent(a.Ca):Bn("pvsid",fd(w));window.googletag&&(b+="&gpt=1");window.fetch(b,{keepalive:!0,credentials:"include",redirect:"follow",method:"get",mode:"no-cors"});a.A||(a.A=!0,a.j())}} function In(a,b){var c=Math.min(a.right,b.right)-Math.max(a.left,b.left);a=Math.min(a.bottom,b.bottom)-Math.max(a.top,b.top);return 0>=c||0>=a?!1:50<=100*c*a/((b.right-b.left)*(b.bottom-b.top))} function Sn(){var a=[].concat(ka(document.getElementsByTagName("iframe"))).filter(En),b=[].concat(ka(Dn())).map(function(c){return document.getElementById(c)}).filter(function(c){return null!==c});Pn=window.scrollX;Qn=window.scrollY;return Rn=[].concat(ka(a),ka(b)).map(function(c){return c.getBoundingClientRect()})}var Pn=void 0,Qn=void 0,Rn=[];var X={issuerOrigin:"https://attestation.android.com",issuancePath:"/att/i",redemptionPath:"/att/r"},Y={issuerOrigin:"https://pagead2.googlesyndication.com",issuancePath:"/dtt/i",redemptionPath:"/dtt/r",getStatePath:"/dtt/s"};var Un=O(yf).h(wf.h,wf.defaultValue); function Vn(a,b,c){Mj.call(this);var d=this;this.i=a;this.h=[];b&&Wn()&&this.h.push(X);c&&this.h.push(Y);if(document.hasTrustToken&&!P(tf)){var e=new p.Map;this.h.forEach(function(f){e.set(f.issuerOrigin,{issuerOrigin:f.issuerOrigin,state:d.i?1:12,hasRedemptionRecord:!1})});window.goog_tt_state_map=window.goog_tt_state_map&&window.goog_tt_state_map instanceof p.Map?new p.Map([].concat(ka(e),ka(window.goog_tt_state_map))):e;window.goog_tt_promise_map&&window.goog_tt_promise_map instanceof p.Map||(window.goog_tt_promise_map= new p.Map)}}v(Vn,Mj);function Wn(){var a=void 0===a?window:a;a=a.navigator.userAgent;var b=/Chrome/.test(a);return/Android/.test(a)&&b}function Xn(){var a=void 0===a?window.document:a;ed(Un,a)}function Yn(a,b){return a||".google.ch"===b||"function"===typeof L.__tcfapi}function Z(a,b,c){var d,e=null==(d=window.goog_tt_state_map)?void 0:d.get(a);e&&(e.state=b,void 0!=c&&(e.hasRedemptionRecord=c))} function Zn(){var a=X.issuerOrigin+X.redemptionPath,b={keepalive:!0,trustToken:{type:"token-redemption",issuer:X.issuerOrigin,refreshPolicy:"none"}};Z(X.issuerOrigin,2);return window.fetch(a,b).then(function(c){if(!c.ok)throw Error(c.status+": Network response was not ok!");Z(X.issuerOrigin,6,!0)}).catch(function(c){c&&"NoModificationAllowedError"===c.name?Z(X.issuerOrigin,6,!0):Z(X.issuerOrigin,5)})} function $n(){var a=X.issuerOrigin+X.issuancePath;Z(X.issuerOrigin,8);return window.fetch(a,{keepalive:!0,trustToken:{type:"token-request"}}).then(function(b){if(!b.ok)throw Error(b.status+": Network response was not ok!");Z(X.issuerOrigin,10);return Zn()}).catch(function(b){if(b&&"NoModificationAllowedError"===b.name)return Z(X.issuerOrigin,10),Zn();Z(X.issuerOrigin,9)})}function ao(){Z(X.issuerOrigin,13);return document.hasTrustToken(X.issuerOrigin).then(function(a){return a?Zn():$n()})} function bo(){Z(Y.issuerOrigin,13);if(p.Promise){var a=document.hasTrustToken(Y.issuerOrigin).then(function(e){return e}).catch(function(e){return p.Promise.reject({state:19,error:e})}),b=Y.issuerOrigin+Y.redemptionPath,c={keepalive:!0,trustToken:{type:"token-redemption",refreshPolicy:"none"}};Z(Y.issuerOrigin,16);a=a.then(function(e){return window.fetch(b,c).then(function(f){if(!f.ok)throw Error(f.status+": Network response was not ok!");Z(Y.issuerOrigin,18,!0)}).catch(function(f){if(f&&"NoModificationAllowedError"=== f.name)Z(Y.issuerOrigin,18,!0);else{if(e)return p.Promise.reject({state:17,error:f});Z(Y.issuerOrigin,17)}})}).then(function(){return document.hasTrustToken(Y.issuerOrigin).then(function(e){return e}).catch(function(e){return p.Promise.reject({state:19,error:e})})}).then(function(e){var f=Y.issuerOrigin+Y.getStatePath;Z(Y.issuerOrigin,20);return window.fetch(f+"?ht="+e,{trustToken:{type:"send-redemption-record",issuers:[Y.issuerOrigin]}}).then(function(g){if(!g.ok)throw Error(g.status+": Network response was not ok!"); Z(Y.issuerOrigin,22);return g.text().then(function(h){return JSON.parse(h)})}).catch(function(g){return p.Promise.reject({state:21,error:g})})});var d=fd(window);return a.then(function(e){var f=Y.issuerOrigin+Y.issuancePath;return e&&e.srqt&&e.cs?(Z(Y.issuerOrigin,23),window.fetch(f+"?cs="+e.cs+"&correlator="+d,{keepalive:!0,trustToken:{type:"token-request"}}).then(function(g){if(!g.ok)throw Error(g.status+": Network response was not ok!");Z(Y.issuerOrigin,25);return e}).catch(function(g){return p.Promise.reject({state:24, error:g})})):e}).then(function(e){if(e&&e.srdt&&e.cs)return Z(Y.issuerOrigin,26),window.fetch(b+"?cs="+e.cs+"&correlator="+d,{keepalive:!0,trustToken:{type:"token-redemption",refreshPolicy:"refresh"}}).then(function(f){if(!f.ok)throw Error(f.status+": Network response was not ok!");Z(Y.issuerOrigin,28,!0)}).catch(function(f){return p.Promise.reject({state:27,error:f})})}).then(function(){Z(Y.issuerOrigin,29)}).catch(function(e){if(e instanceof Object&&e.hasOwnProperty("state")&&e.hasOwnProperty("error"))if("number"=== typeof e.state&&e.error instanceof Error){Z(Y.issuerOrigin,e.state);var f=Q(vf);Math.random()<=f&&Ff({state:e.state,err:e.error.toString()})}else throw Error(e);else throw e;})}} function co(a){if(document.hasTrustToken&&!P(tf)&&a.i){var b=window.goog_tt_promise_map;if(b&&b instanceof p.Map){var c=[];if(a.h.some(function(e){return e.issuerOrigin===X.issuerOrigin})){var d=b.get(X.issuerOrigin);d||(d=ao(),b.set(X.issuerOrigin,d));c.push(d)}a.h.some(function(e){return e.issuerOrigin===Y.issuerOrigin})&&(a=b.get(Y.issuerOrigin),a||(a=bo(),b.set(Y.issuerOrigin,a)),c.push(a));if(0<c.length&&p.Promise&&p.Promise.all)return p.Promise.all(c)}}};function eo(a){J.call(this,a,-1,fo)}v(eo,J);function go(a,b){return B(a,2,b)}function ho(a,b){return B(a,3,b)}function io(a,b){return B(a,4,b)}function jo(a,b){return B(a,5,b)}function ko(a,b){return B(a,9,b)}function lo(a,b){return Gb(a,10,b)}function mo(a,b){return B(a,11,b)}function no(a,b){return B(a,1,b)}function oo(a){J.call(this,a)}v(oo,J);oo.prototype.getVersion=function(){return I(this,2)};var fo=[10,6];var po="platform platformVersion architecture model uaFullVersion bitness fullVersionList wow64".split(" ");function qo(){var a;return null!=(a=L.google_tag_data)?a:L.google_tag_data={}} function ro(){var a,b;if("function"!==typeof(null==(a=L.navigator)?void 0:null==(b=a.userAgentData)?void 0:b.getHighEntropyValues))return null;var c=qo();if(c.uach_promise)return c.uach_promise;a=L.navigator.userAgentData.getHighEntropyValues(po).then(function(d){null!=c.uach||(c.uach=d);return d});return c.uach_promise=a} function so(a){var b;return mo(lo(ko(jo(io(ho(go(no(new eo,a.platform||""),a.platformVersion||""),a.architecture||""),a.model||""),a.uaFullVersion||""),a.bitness||""),(null==(b=a.fullVersionList)?void 0:b.map(function(c){var d=new oo;d=B(d,1,c.brand);return B(d,2,c.version)}))||[]),a.wow64||!1)} function to(){if(P(pf)){var a,b;return null!=(b=null==(a=ro())?void 0:a.then(function(f){return so(f)}))?b:null}var c,d;if("function"!==typeof(null==(c=L.navigator)?void 0:null==(d=c.userAgentData)?void 0:d.getHighEntropyValues))return null;var e;return null!=(e=L.navigator.userAgentData.getHighEntropyValues(po).then(function(f){return so(f)}))?e:null};function uo(a,b){b.google_ad_host||(a=vo(a))&&(b.google_ad_host=a)}function wo(a,b,c){c=void 0===c?"":c;L.google_sa_impl&&!L.document.getElementById("google_shimpl")&&(delete L.google_sa_queue,delete L.google_sa_impl);L.google_sa_queue||(L.google_sa_queue=[],L.google_process_slots=Xi(215,function(){return xo(L.google_sa_queue)}),a=yo(c,a,b),Lc(L.document,a).id="google_shimpl")} function xo(a){var b=a.shift();"function"===typeof b&&Wi(216,b);a.length&&w.setTimeout(Xi(215,function(){return xo(a)}),0)}function zo(a,b,c){a.google_sa_queue=a.google_sa_queue||[];a.google_sa_impl?c(b):a.google_sa_queue.push(b)} function yo(a,b,c){var d=Math.random()<Q(bf)?hc(qc(b.pb).toString()):null;b=D(c,4)?b.ob:b.qb;d=d?d:hc(qc(b).toString());b={};a:{if(D(c,4)){if(c=a||qn(L)){var e={};c=(e.client=c,e.plah=L.location.host,e);break a}throw Error("PublisherCodeNotFoundForAma");}c={}}Ao(c,b);a:{if(P($e)||P(Oe)){a=a||qn(L);var f;var g=(c=null==(g=U(L))?void 0:null==(f=g.head_tag_slot_vars)?void 0:f.google_ad_host)?c:vo(L);if(a){f={};g=(f.client=a,f.plah=L.location.host,f.ama_t="adsense",f.asntp=Q(Ge),f.asntpv=Q(Ke),f.asntpl= Q(Ie),f.asntpm=Q(Je),f.asntpc=Q(He),f.asna=Q(Ce),f.asnd=Q(De),f.asnp=Q(Ee),f.asns=Q(Fe),f.asmat=Q(Be),f.asptt=Q(Le),f.easpi=P($e),f.asro=P(Me),f.host=g,f.easai=P(Ze),f);break a}}g={}}Ao(g,b);Ao(zf()?{bust:zf()}:{},b);return ec(d,b)}function Ao(a,b){Sc(a,function(c,d){void 0===b[d]&&(b[d]=c)})}function vo(a){if(a=a.document.querySelector('meta[name="google-adsense-platform-account"]'))return a.getAttribute("content")} function Bo(a){a:{var b=void 0===b?!1:b;var c=void 0===c?1024:c;for(var d=[w.top],e=[],f=0,g;g=d[f++];){b&&!Hc(g)||e.push(g);try{if(g.frames)for(var h=0;h<g.frames.length&&d.length<c;++h)d.push(g.frames[h])}catch(l){}}for(b=0;b<e.length;b++)try{var k=e[b].frames.google_esf;if(k){id=k;break a}}catch(l){}id=null}if(id)return null;e=Mc("IFRAME");e.id="google_esf";e.name="google_esf";e.src=sc(a.vb);e.style.display="none";return e} function Co(a,b,c,d){Do(a,b,c,d,function(e,f){e=e.document;for(var g=void 0,h=0;!g||e.getElementById(g+"_anchor");)g="aswift_"+h++;e=g;g=Number(f.google_ad_width||0);f=Number(f.google_ad_height||0);h=Mc("INS");h.id=e+"_anchor";pm(h,g,f);h.style.display="block";var k=Mc("INS");k.id=e+"_expand";pm(k,g,f);k.style.display="inline-table";k.appendChild(h);c.appendChild(k);return e})} function Do(a,b,c,d,e){e=e(a,b);Eo(a,c,b);c=Ia;var f=(new Date).getTime();b.google_lrv=I(d,2);b.google_async_iframe_id=e;b.google_start_time=c;b.google_bpp=f>c?f-c:1;a.google_sv_map=a.google_sv_map||{};a.google_sv_map[e]=b;d=a.document.getElementById(e+"_anchor")?function(h){return h()}:function(h){return window.setTimeout(h,0)};var g={pubWin:a,vars:b};zo(a,function(){var h=a.google_sa_impl(g);h&&h.catch&&Zi(911,h)},d)} function Eo(a,b,c){var d=c.google_ad_output,e=c.google_ad_format,f=c.google_ad_width||0,g=c.google_ad_height||0;e||"html"!=d&&null!=d||(e=f+"x"+g);d=!c.google_ad_slot||c.google_override_format||!qm[c.google_ad_width+"x"+c.google_ad_height]&&"aa"==c.google_loader_used;e&&d?e=e.toLowerCase():e="";c.google_ad_format=e;if("number"!==typeof c.google_reactive_sra_index||!c.google_ad_unit_key){e=[c.google_ad_slot,c.google_orig_ad_format||c.google_ad_format,c.google_ad_type,c.google_orig_ad_width||c.google_ad_width, c.google_orig_ad_height||c.google_ad_height];d=[];f=0;for(g=b;g&&25>f;g=g.parentNode,++f)9===g.nodeType?d.push(""):d.push(g.id);(d=d.join())&&e.push(d);c.google_ad_unit_key=Tc(e.join(":")).toString();var h=void 0===h?!1:h;e=[];for(d=0;b&&25>d;++d){f="";void 0!==h&&h||(f=(f=9!==b.nodeType&&b.id)?"/"+f:"");a:{if(b&&b.nodeName&&b.parentElement){g=b.nodeName.toString().toLowerCase();for(var k=b.parentElement.childNodes,l=0,m=0;m<k.length;++m){var q=k[m];if(q.nodeName&&q.nodeName.toString().toLowerCase()=== g){if(b===q){g="."+l;break a}++l}}}g=""}e.push((b.nodeName&&b.nodeName.toString().toLowerCase())+f+g);b=b.parentElement}h=e.join()+":";b=[];if(a)try{var t=a.parent;for(e=0;t&&t!==a&&25>e;++e){var y=t.frames;for(d=0;d<y.length;++d)if(a===y[d]){b.push(d);break}a=t;t=a.parent}}catch(F){}c.google_ad_dom_fingerprint=Tc(h+b.join()).toString()}}function Fo(){var a=Ic(w);a&&(a=Uf(a),a.tagSpecificState[1]||(a.tagSpecificState[1]={debugCard:null,debugCardRequested:!1}))} function Go(a){Xn();Yn(Wk(),I(a,8))||Xi(779,function(){var b=window;b=void 0===b?window:b;b=P(b.PeriodicSyncManager?rf:sf);var c=P(uf);b=new Vn(!0,b,c);0<Q(xf)?L.google_trust_token_operation_promise=co(b):co(b)})();a=to();null!=a&&a.then(function(b){L.google_user_agent_client_hint=Lb(b)});wn();un()};function Ho(a,b){switch(a){case "google_reactive_ad_format":return a=parseInt(b,10),isNaN(a)?0:a;case "google_allow_expandable_ads":return/^true$/.test(b);default:return b}} function Io(a,b){if(a.getAttribute("src")){var c=a.getAttribute("src")||"";(c=Gc(c))&&(b.google_ad_client=Ho("google_ad_client",c))}a=a.attributes;c=a.length;for(var d=0;d<c;d++){var e=a[d];if(/data-/.test(e.name)){var f=Ja(e.name.replace("data-matched-content","google_content_recommendation").replace("data","google").replace(/-/g,"_"));b.hasOwnProperty(f)||(e=Ho(f,e.value),null!==e&&(b[f]=e))}}} function Jo(a){if(a=ld(a))switch(a.data&&a.data.autoFormat){case "rspv":return 13;case "mcrspv":return 15;default:return 14}else return 12} function Ko(a,b,c,d){Io(a,b);if(c.document&&c.document.body&&!Zm(c,b)&&!b.google_reactive_ad_format){var e=parseInt(a.style.width,10),f=cn(a,c);if(0<f&&e>f){var g=parseInt(a.style.height,10);e=!!qm[e+"x"+g];var h=f;if(e){var k=rm(f,g);if(k)h=k,b.google_ad_format=k+"x"+g+"_0ads_al";else throw new T("No slot size for availableWidth="+f);}b.google_ad_resize=!0;b.google_ad_width=h;e||(b.google_ad_format=null,b.google_override_format=!0);f=h;a.style.width=f+"px";g=Tm(f,"auto",c,a,b);h=f;g.size().i(c,b, a);Dm(g,h,b);g=g.size();b.google_responsive_formats=null;g.minWidth()>f&&!e&&(b.google_ad_width=g.minWidth(),a.style.width=g.minWidth()+"px")}}e=a.offsetWidth||xi(a,c,"width",K)||b.google_ad_width||0;f=Fa(Tm,e,"auto",c,a,b,!1,!0);if(!P(Xe)&&488>Wf(c)){g=Ic(c)||c;h=b.google_ad_client;d=g.location&&"#ftptohbh"===g.location.hash?2:yl(g.location,"google_responsive_slot_preview")||P(ef)?1:P(df)?2:Yk(g,1,h,d)?1:0;if(g=0!==d)b:if(b.google_reactive_ad_format||Zm(c,b)||mi(a,b))g=!1;else{for(g=a;g;g=g.parentElement){h= Nc(g,c);if(!h){b.gfwrnwer=18;g=!1;break b}if(!Xa(["static","relative"],h.position)){b.gfwrnwer=17;g=!1;break b}}g=qi(c,a,e,.3,b);!0!==g?(b.gfwrnwer=g,g=!1):g=c===c.top?!0:!1}g?(b.google_resizing_allowed=!0,b.ovlp=!0,2===d?(d={},Dm(f(),e,d),b.google_resizing_width=d.google_ad_width,b.google_resizing_height=d.google_ad_height,b.iaaso=!1):(b.google_ad_format="auto",b.iaaso=!0,b.armr=1),d=!0):d=!1}else d=!1;if(e=Zm(c,b))an(e,a,b,c,d);else{if(mi(a,b)){if(d=Nc(a,c))a.style.width=d.width,a.style.height= d.height,li(d,b);b.google_ad_width||(b.google_ad_width=a.offsetWidth);b.google_ad_height||(b.google_ad_height=a.offsetHeight);b.google_loader_features_used=256;b.google_responsive_auto_format=Jo(c)}else li(a.style,b);c.location&&"#gfwmrp"==c.location.hash||12==b.google_responsive_auto_format&&"true"==b.google_full_width_responsive?an(10,a,b,c,!1):.01>Math.random()&&12===b.google_responsive_auto_format&&(a=ri(a.offsetWidth||parseInt(a.style.width,10)||b.google_ad_width,c,a,b),!0!==a?(b.efwr=!1,b.gfwrnwer= a):b.efwr=!0)}};function Lo(a){this.j=new p.Set;this.u=md()||window;this.h=Q(ze);var b=0<this.h&&Rc()<1/this.h;this.A=(this.i=!!Hj(Dj(),30,b))?fd(this.u):0;this.m=this.i?qn(this.u):"";this.l=null!=a?a:new yg(100)}function Mo(){var a=O(Lo);var b=new qk;b=B(b,1,Vf(a.u).scrollWidth);b=B(b,2,Vf(a.u).scrollHeight);var c=new qk;c=B(c,1,Wf(a.u));c=B(c,2,Vf(a.u).clientHeight);var d=new sk;d=B(d,1,a.A);d=B(d,2,a.m);d=B(d,3,a.h);var e=new rk;b=Eb(e,2,b);b=Eb(b,1,c);b=Fb(d,4,tk,b);a.i&&!a.j.has(1)&&(a.j.add(1),ug(a.l,b))};function No(a){var b=window;var c=void 0===c?null:c;xc(b,"message",function(d){try{var e=JSON.parse(d.data)}catch(f){return}!e||"sc-cnf"!==e.googMsgType||c&&/[:|%3A]javascript\(/i.test(d.data)&&!c(e,d)||a(e,d)})};function Oo(a,b){b=void 0===b?500:b;Mj.call(this);this.i=a;this.ta=b;this.h=null;this.m={};this.l=null}v(Oo,Mj);Oo.prototype.j=function(){this.m={};this.l&&(yc(this.i,this.l),delete this.l);delete this.m;delete this.i;delete this.h;Mj.prototype.j.call(this)};function Po(a){Mj.call(this);this.h=a;this.i=null;this.l=!1}v(Po,Mj);var Qo=null,Ro=[],So=new p.Map,To=-1;function Uo(a){return Fi.test(a.className)&&"done"!=a.dataset.adsbygoogleStatus}function Vo(a,b,c){a.dataset.adsbygoogleStatus="done";Wo(a,b,c)} function Wo(a,b,c){var d=window;d.google_spfd||(d.google_spfd=Ko);var e=b.google_reactive_ads_config;e||Ko(a,b,d,c);uo(d,b);if(!Xo(a,b,d)){e||(d.google_lpabyc=ni(a,d)+xi(a,d,"height",K));if(e){e=e.page_level_pubvars||{};if(U(L).page_contains_reactive_tag&&!U(L).allow_second_reactive_tag){if(e.pltais){wl(!1);return}throw new T("Only one 'enable_page_level_ads' allowed per page.");}U(L).page_contains_reactive_tag=!0;wl(7===e.google_pgb_reactive)}b.google_unique_id=od(d);Sc(mn,function(f,g){b[g]=b[g]|| d[g]});b.google_loader_used="aa";b.google_reactive_tag_first=1===(U(L).first_tag_on_page||0);Wi(164,function(){Co(d,b,a,c)})}} function Xo(a,b,c){var d=b.google_reactive_ads_config,e="string"===typeof a.className&&RegExp("(\\W|^)adsbygoogle-noablate(\\W|$)").test(a.className),f=ul(c);if(f&&f.Fa&&"on"!=b.google_adtest&&!e){e=ni(a,c);var g=Vf(c).clientHeight;if(!f.qa||f.qa&&((0==g?null:e/g)||0)>=f.qa)return a.className+=" adsbygoogle-ablated-ad-slot",c=c.google_sv_map=c.google_sv_map||{},d=za(a),b.google_element_uid=d,c[b.google_element_uid]=b,a.setAttribute("google_element_uid",d),"slot"==f.tb&&(null!==Zc(a.getAttribute("width"))&& a.setAttribute("width",0),null!==Zc(a.getAttribute("height"))&&a.setAttribute("height",0),a.style.width="0px",a.style.height="0px"),!0}if((f=Nc(a,c))&&"none"==f.display&&!("on"==b.google_adtest||0<b.google_reactive_ad_format||d))return c.document.createComment&&a.appendChild(c.document.createComment("No ad requested because of display:none on the adsbygoogle tag")),!0;a=null==b.google_pgb_reactive||3===b.google_pgb_reactive;return 1!==b.google_reactive_ad_format&&8!==b.google_reactive_ad_format|| !a?!1:(w.console&&w.console.warn("Adsbygoogle tag with data-reactive-ad-format="+b.google_reactive_ad_format+" is deprecated. Check out page-level ads at https://www.google.com/adsense"),!0)}function Yo(a){var b=document.getElementsByTagName("INS");for(var c=0,d=b[c];c<b.length;d=b[++c]){var e=d;if(Uo(e)&&"reserved"!=e.dataset.adsbygoogleStatus&&(!a||d.id==a))return d}return null} function Zo(a,b,c){if(a&&a.shift)for(var d=20;0<a.length&&0<d;){try{$o(a.shift(),b,c)}catch(e){setTimeout(function(){throw e;})}--d}}function ap(){var a=Mc("INS");a.className="adsbygoogle";a.className+=" adsbygoogle-noablate";bd(a);return a} function bp(a,b){var c={};Sc(Rf,function(f,g){!1===a.enable_page_level_ads?c[g]=!1:a.hasOwnProperty(g)&&(c[g]=a[g])});ya(a.enable_page_level_ads)&&(c.page_level_pubvars=a.enable_page_level_ads);var d=ap();hd.body.appendChild(d);var e={};e=(e.google_reactive_ads_config=c,e.google_ad_client=a.google_ad_client,e);e.google_pause_ad_requests=!!U(L).pause_ad_requests;Vo(d,e,b)} function cp(a,b){function c(){return bp(a,b)}Uf(w).wasPlaTagProcessed=!0;var d=w.document;if(d.body||"complete"==d.readyState||"interactive"==d.readyState)c();else{var e=wc(Xi(191,c));xc(d,"DOMContentLoaded",e);(new w.MutationObserver(function(f,g){d.body&&(e(),g.disconnect())})).observe(d,{childList:!0,subtree:!0})}} function $o(a,b,c){var d={};Wi(165,function(){dp(a,d,b,c)},function(e){e.client=e.client||d.google_ad_client||a.google_ad_client;e.slotname=e.slotname||d.google_ad_slot;e.tag_origin=e.tag_origin||d.google_tag_origin})}function ep(a){delete a.google_checked_head;Sc(a,function(b,c){Ei[c]||(delete a[c],w.console.warn("AdSense head tag doesn't support "+c.replace("google","data").replace(/_/g,"-")+" attribute."))})} function fp(a,b){var c=L.document.querySelector('script[src*="/pagead/js/adsbygoogle.js?client="]:not([data-checked-head])')||L.document.querySelector('script[src*="/pagead/js/adsbygoogle.js"][data-ad-client]:not([data-checked-head])');if(c){c.setAttribute("data-checked-head","true");var d=U(window);if(d.head_tag_slot_vars)gp(c);else{var e={};Io(c,e);ep(e);var f=$b(e);d.head_tag_slot_vars=f;c={google_ad_client:e.google_ad_client,enable_page_level_ads:e};L.adsbygoogle||(L.adsbygoogle=[]);d=L.adsbygoogle; d.loaded?d.push(c):d.splice(0,0,c);var g;e.google_adbreak_test||(null==(g=Ib(b,Fk,13,Uk))?0:D(g,3))&&P(jf)?hp(f,a):No(function(){hp(f,a)})}}}function gp(a){var b=U(window).head_tag_slot_vars,c=a.getAttribute("src")||"";if((a=Gc(c)||a.getAttribute("data-ad-client")||"")&&a!==b.google_ad_client)throw new T("Warning: Do not add multiple property codes with AdSense tag to avoid seeing unexpected behavior. These codes were found on the page "+a+", "+b.google_ad_client);} function ip(a){if("object"===typeof a&&null!=a){if("string"===typeof a.type)return 2;if("string"===typeof a.sound||"string"===typeof a.preloadAdBreaks)return 3}return 0} function dp(a,b,c,d){if(null==a)throw new T("push() called with no parameters.");14===Cb(d,Uk)&&jp(a,wb(Tk(d),1),I(d,2));var e=ip(a);if(0!==e)P(af)&&(d=xl(),d.first_slotcar_request_processing_time||(d.first_slotcar_request_processing_time=Date.now(),d.adsbygoogle_execution_start_time=Ia)),null==Qo?(kp(a),Ro.push(a)):3===e?Wi(787,function(){Qo.handleAdConfig(a)}):Zi(730,Qo.handleAdBreak(a));else{Ia=(new Date).getTime();wo(c,d,lp(a));mp();a:{if(void 0!=a.enable_page_level_ads){if("string"===typeof a.google_ad_client){e= !0;break a}throw new T("'google_ad_client' is missing from the tag config.");}e=!1}if(e)np(a,d);else if((e=a.params)&&Sc(e,function(g,h){b[h]=g}),"js"===b.google_ad_output)console.warn("Ads with google_ad_output='js' have been deprecated and no longer work. Contact your AdSense account manager or switch to standard AdSense ads.");else{e=op(a.element);Io(e,b);c=U(w).head_tag_slot_vars||{};Sc(c,function(g,h){b.hasOwnProperty(h)||(b[h]=g)});if(e.hasAttribute("data-require-head")&&!U(w).head_tag_slot_vars)throw new T("AdSense head tag is missing. AdSense body tags don't work without the head tag. You can copy the head tag from your account on https://adsense.com."); if(!b.google_ad_client)throw new T("Ad client is missing from the slot.");b.google_apsail=dl(b.google_ad_client);var f=(c=0===(U(L).first_tag_on_page||0)&&Fl(b))&&Gl(c);c&&!f&&(np(c,d),U(L).skip_next_reactive_tag=!0);0===(U(L).first_tag_on_page||0)&&(U(L).first_tag_on_page=2);b.google_pause_ad_requests=!!U(L).pause_ad_requests;Vo(e,b,d);c&&f&&pp(c)}}}var qp=!1;function jp(a,b,c){P(Ye)&&!qp&&(qp=!0,a=lp(a)||qn(L),Yi("predictive_abg",{a_c:a,p_c:b,b_v:c},.01))} function lp(a){return a.google_ad_client?a.google_ad_client:(a=a.params)&&a.google_ad_client?a.google_ad_client:""}function mp(){if(P(Re)){var a=ul(L);if(!(a=a&&a.Fa)){try{var b=L.localStorage}catch(c){b=null}b=b?zj(b):null;a=!(b&&Ck(b)&&b)}a||vl(L,1)}}function pp(a){gd(function(){Uf(w).wasPlaTagProcessed||w.adsbygoogle&&w.adsbygoogle.push(a)})} function np(a,b){if(U(L).skip_next_reactive_tag)U(L).skip_next_reactive_tag=!1;else{0===(U(L).first_tag_on_page||0)&&(U(L).first_tag_on_page=1);if(a.tag_partner){var c=a.tag_partner,d=U(w);d.tag_partners=d.tag_partners||[];d.tag_partners.push(c)}U(L).ama_ran_on_page||Il(new Hl(a,b));cp(a,b)}} function op(a){if(a){if(!Uo(a)&&(a.id?a=Yo(a.id):a=null,!a))throw new T("'element' has already been filled.");if(!("innerHTML"in a))throw new T("'element' is not a good DOM element.");}else if(a=Yo(),!a)throw new T("All ins elements in the DOM with class=adsbygoogle already have ads in them.");return a} function rp(){var a=new Oj(L),b=new Oo(L),c=new Po(L),d=L.__cmp?1:0;a=Pj(a)?1:0;var e,f;(f="function"===typeof(null==(e=b.i)?void 0:e.__uspapi))||(b.h?b=b.h:(b.h=$c(b.i,"__uspapiLocator"),b=b.h),f=null!=b);c.l||(c.i||(c.i=c.h.googlefc?c.h:$c(c.h,"googlefcPresent")),c.l=!0);Yi("cmpMet",{tcfv1:d,tcfv2:a,usp:f?1:0,fc:c.i?1:0,ptt:9},Q(ye))}function sp(a){a={value:D(a,16)};var b=.01;Q(Te)&&(a.eid=Q(Te),b=1);a.frequency=b;Yi("new_abg_tag",a,b)}function tp(a){Dj().S[Fj(26)]=!!Number(a)} function up(a){Number(a)?U(L).pause_ad_requests=!0:(U(L).pause_ad_requests=!1,a=function(){if(!U(L).pause_ad_requests){var b=void 0===b?{}:b;if("function"===typeof window.CustomEvent)var c=new CustomEvent("adsbygoogle-pub-unpause-ad-requests-event",b);else c=document.createEvent("CustomEvent"),c.initCustomEvent("adsbygoogle-pub-unpause-ad-requests-event",!!b.bubbles,!!b.cancelable,b.detail);L.dispatchEvent(c)}},w.setTimeout(a,0),w.setTimeout(a,1E3))} function vp(a){Yi("adsenseGfpKnob",{value:a,ptt:9},.1);switch(a){case 0:case 2:a=!0;break;case 1:a=!1;break;default:throw Error("Illegal value of cookieOptions: "+a);}L._gfp_a_=a}function wp(a){a&&a.call&&"function"===typeof a&&window.setTimeout(a,0)} function hp(a,b){b=Dl(ec(hc(qc(b.sb).toString()),zf()?{bust:zf()}:{})).then(function(c){null==Qo&&(c.init(a),Qo=c,xp())});Zi(723,b);r(b,"finally").call(b,function(){Ro.length=0;Yi("slotcar",{event:"api_ld",time:Date.now()-Ia,time_pr:Date.now()-To})})} function xp(){for(var a=u(r(So,"keys").call(So)),b=a.next();!b.done;b=a.next()){b=b.value;var c=So.get(b);-1!==c&&(w.clearTimeout(c),So.delete(b))}a={};for(b=0;b<Ro.length;a={fa:a.fa,ba:a.ba},b++)So.has(b)||(a.ba=Ro[b],a.fa=ip(a.ba),Wi(723,function(d){return function(){3===d.fa?Qo.handleAdConfig(d.ba):2===d.fa&&Zi(730,Qo.handleAdBreakBeforeReady(d.ba))}}(a)))} function kp(a){var b=Ro.length;if(2===ip(a)&&"preroll"===a.type&&null!=a.adBreakDone){-1===To&&(To=Date.now());var c=w.setTimeout(function(){try{(0,a.adBreakDone)({breakType:"preroll",breakName:a.name,breakFormat:"preroll",breakStatus:"timeout"}),So.set(b,-1),Yi("slotcar",{event:"pr_to",source:"adsbygoogle"})}catch(d){console.error("[Ad Placement API] adBreakDone callback threw an error:",d instanceof Error?d:Error(String(d)))}},1E3*Q(kf));So.set(b,c)}} function yp(){if(P(Ne)&&!P(Me)){var a=L.document,b=a.createElement("LINK"),c=nd(Ml);if(c instanceof cc||c instanceof mc)b.href=sc(c);else{if(-1===tc.indexOf("stylesheet"))throw Error('TrustedResourceUrl href attribute required with rel="stylesheet"');b.href=rc(c)}b.rel="stylesheet";a.head.appendChild(b)}};(function(a,b,c,d){d=void 0===d?function(){}:d;Ui.Ua($i);Wi(166,function(){var e=sn(b);jn(I(e,2));Xk(D(e,6));d();kd(16,[1,e.toJSON()]);var f=md(ld(L))||L,g=c(kn({eb:a,nb:I(e,2)}),e);P(cf)&&al(f,e);om(f,e,null===L.document.currentScript?1:Ol(g.ub));Mo();if((!Na()||0<=Ka(Qa(),11))&&(null==(L.Prototype||{}).Version||!P(We))){Vi(P(qf));Go(e);ok();try{Mn()}catch(q){}Fo();fp(g,e);f=window;var h=f.adsbygoogle;if(!h||!h.loaded){if(P(Se)&&!D(e,16))try{if(L.document.querySelector('script[src*="/pagead/js/adsbygoogle.js?client="]'))return}catch(q){}yp(); sp(e);Q(ye)&&rp();var k={push:function(q){$o(q,g,e)},loaded:!0};try{Object.defineProperty(k,"requestNonPersonalizedAds",{set:tp}),Object.defineProperty(k,"pauseAdRequests",{set:up}),Object.defineProperty(k,"cookieOptions",{set:vp}),Object.defineProperty(k,"onload",{set:wp})}catch(q){}if(h)for(var l=u(["requestNonPersonalizedAds","pauseAdRequests","cookieOptions"]),m=l.next();!m.done;m=l.next())m=m.value,void 0!==h[m]&&(k[m]=h[m]);"_gfp_a_"in window||(window._gfp_a_=!0);Zo(h,g,e);f.adsbygoogle=k;h&& (k.onload=h.onload);(f=Bo(g))&&document.documentElement.appendChild(f)}}})})("m202204040101",rn,function(a,b){var c=2012<C(b,1,0)?"_fy"+C(b,1,0):"",d=I(b,3),e=I(b,2);b=nd(dn,a,c);d=nd(en,e,d);return{sb:b,qb:nd(fn,a,c),ob:nd(gn,a,c),pb:nd(hn,a,c),vb:d,ub:/^(?:https?:)?\/\/(?:pagead2\.googlesyndication\.com|securepubads\.g\.doubleclick\.net)\/pagead\/(?:js\/)?(?:show_ads|adsbygoogle)\.js(?:[?#].*)?$/}}); }).call(this,"[2019,\"r20220406\",\"r20190131\",null,null,null,null,\".google.co.uz\",null,null,null,[[[1082,null,null,[1]],[null,62,null,[null,0.001]],[383,null,null,[1]],[null,1130,null,[null,100]],[null,1126,null,[null,5000]],[1132,null,null,[1]],[1131,null,null,[1]],[null,1142,null,[null,2]],[null,1165,null,[null,1000]],[null,1114,null,[null,1]],[null,1116,null,[null,300]],[null,1117,null,[null,100]],[null,1115,null,[null,1]],[null,1159,null,[null,500]],[1145,null,null,[1]],[1021,null,null,[1]],[null,66,null,[null,-1]],[null,65,null,[null,-1]],[1087,null,null,[1]],[1053,null,null,[1]],[1100,null,null,[1]],[1102,null,null,[1]],[1149,null,null,[1]],[null,1072,null,[null,0.75]],[1101,null,null,[1]],[1036,null,null,[1]],[null,1085,null,[null,5]],[null,63,null,[null,30]],[null,1080,null,[null,5]],[1054,null,null,[1]],[null,1027,null,[null,10]],[null,57,null,[null,120]],[null,1079,null,[null,5]],[null,1050,null,[null,30]],[null,58,null,[null,120]],[381914117,null,null,[1]],[null,null,null,[null,null,null,[\"A8FHS1NmdCwGqD9DwOicnHHY+y27kdWfxKa0YHSGDfv0CSpDKRHTQdQmZVPDUdaFWUsxdgVxlwAd6o+dhJykPA0AAACWeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiQ29udmVyc2lvbk1lYXN1cmVtZW50IiwiZXhwaXJ5IjoxNjQzMTU1MTk5LCJpc1N1YmRvbWFpbiI6dHJ1ZSwiaXNUaGlyZFBhcnR5Ijp0cnVlLCJ1c2FnZSI6InN1YnNldCJ9\",\"A8zdXi6dr1hwXEUjQrYiyYQGlU3557y5QWDnN0Lwgj9ePt66XMEvNkVWOEOWPd7TP9sBQ25X0Q15Lr1Nn4oGFQkAAACceyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiQ29udmVyc2lvbk1lYXN1cmVtZW50IiwiZXhwaXJ5IjoxNjQzMTU1MTk5LCJpc1N1YmRvbWFpbiI6dHJ1ZSwiaXNUaGlyZFBhcnR5Ijp0cnVlLCJ1c2FnZSI6InN1YnNldCJ9\",\"A4\/Htern2udN9w3yJK9QgWQxQFruxOXsXL7cW60DyCl0EZFGCSme\/J33Q\/WzF7bBkVvhEWDlcBiUyZaim5CpFQwAAACceyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXRhZ3NlcnZpY2VzLmNvbTo0NDMiLCJmZWF0dXJlIjoiQ29udmVyc2lvbk1lYXN1cmVtZW50IiwiZXhwaXJ5IjoxNjQzMTU1MTk5LCJpc1N1YmRvbWFpbiI6dHJ1ZSwiaXNUaGlyZFBhcnR5Ijp0cnVlLCJ1c2FnZSI6InN1YnNldCJ9\"]],null,1934],[1953,null,null,[1]],[1947,null,null,[1]],[434462125,null,null,[1]],[1938,null,null,[1]],[1948,null,null,[1]],[392736476,null,null,[1]],[null,null,null,[null,null,null,[\"AxujKG9INjsZ8\/gUq8+dTruNvk7RjZQ1oFhhgQbcTJKDnZfbzSTE81wvC2Hzaf3TW4avA76LTZEMdiedF1vIbA4AAABueyJvcmlnaW4iOiJodHRwczovL2ltYXNkay5nb29nbGVhcGlzLmNvbTo0NDMiLCJmZWF0dXJlIjoiVHJ1c3RUb2tlbnMiLCJleHBpcnkiOjE2NTI3NzQ0MDAsImlzVGhpcmRQYXJ0eSI6dHJ1ZX0=\",\"Azuce85ORtSnWe1MZDTv68qpaW3iHyfL9YbLRy0cwcCZwVnePnOmkUJlG8HGikmOwhZU22dElCcfrfX2HhrBPAkAAAB7eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiVHJ1c3RUb2tlbnMiLCJleHBpcnkiOjE2NTI3NzQ0MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9\",\"A16nvcdeoOAqrJcmjLRpl1I6f3McDD8EfofAYTt\/P\/H4\/AWwB99nxiPp6kA0fXoiZav908Z8etuL16laFPUdfQsAAACBeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXRhZ3NlcnZpY2VzLmNvbTo0NDMiLCJmZWF0dXJlIjoiVHJ1c3RUb2tlbnMiLCJleHBpcnkiOjE2NTI3NzQ0MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9\",\"AxBHdr0J44vFBQtZUqX9sjiqf5yWZ\/OcHRcRMN3H9TH+t90V\/j3ENW6C8+igBZFXMJ7G3Pr8Dd13632aLng42wgAAACBeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiVHJ1c3RUb2tlbnMiLCJleHBpcnkiOjE2NTI3NzQ0MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9\",\"A88BWHFjcawUfKU3lIejLoryXoyjooBXLgWmGh+hNcqMK44cugvsI5YZbNarYvi3roc1fYbHA1AVbhAtuHZflgEAAAB2eyJvcmlnaW4iOiJodHRwczovL2dvb2dsZS5jb206NDQzIiwiZmVhdHVyZSI6IlRydXN0VG9rZW5zIiwiZXhwaXJ5IjoxNjUyNzc0NDAwLCJpc1N1YmRvbWFpbiI6dHJ1ZSwiaXNUaGlyZFBhcnR5Ijp0cnVlfQ==\"]],null,1932],[null,397907552,null,[null,500]],[432938498,null,null,[1]]],[[10,[[1,[[21066108],[21066109,[[316,null,null,[1]]]]],null,null,null,34,18,1],[1,[[21066110],[21066111]],null,null,null,34,18,1],[1,[[42530528],[42530529,[[368,null,null,[1]]]],[42530530,[[369,null,null,[1]],[368,null,null,[1]]]]]],[1,[[42531496],[42531497,[[1161,null,null,[1]]]]]],[1,[[42531513],[42531514,[[316,null,null,[1]]]]]],[1,[[44719338],[44719339,[[334,null,null,[1]],[null,54,null,[null,100]],[null,66,null,[null,10]],[null,65,null,[null,1000]]]]]],[200,[[44760474],[44760475,[[1129,null,null,[1]]]]]],[10,[[44760911],[44760912,[[1160,null,null,[1]]]]]],[100,[[44761043],[44761044]]],[1,[[44752536,[[1122,null,null,[1]],[1033,null,null,[1]]]],[44753656]]],[null,[[44755592],[44755593,[[1122,null,null,[1]],[1033,null,null,[1]]]],[44755594,[[1122,null,null,[1]],[1033,null,null,[1]]]],[44755653,[[1122,null,null,[1]],[1033,null,null,[1]]]]]],[10,[[44762453],[44762454,[[1122,null,null,[1]],[1033,null,null,[1]]]]]],[20,[[182982000,[[218,null,null,[1]]],[1,[[12,null,null,null,2,null,\"\\\\.wiki(dogs|how)(-fun)?\\\\.\"]]]],[182982100,[[217,null,null,[1]]],[1,[[12,null,null,null,2,null,\"\\\\.wiki(dogs|how)(-fun)?\\\\.\"]]]]],null,null,null,36,8,1],[20,[[182982200,null,[1,[[12,null,null,null,2,null,\"\\\\.wiki(dogs|how)(-fun)?\\\\.\"]]]],[182982300,null,[1,[[12,null,null,null,2,null,\"\\\\.wiki(dogs|how)(-fun)?\\\\.\"]]]]],null,null,null,36,8,1],[10,[[182984000,null,[4,null,23,null,null,null,null,[\"1\"]]],[182984100,[[218,null,null,[1]]],[4,null,23,null,null,null,null,[\"1\"]]]],null,null,null,36,10,101],[10,[[182984200,null,[4,null,23,null,null,null,null,[\"1\"]]],[182984300,null,[4,null,23,null,null,null,null,[\"1\"]]]],null,null,null,36,10,101],[10,[[21066428],[21066429]]],[10,[[21066430],[21066431],[21066432],[21066433]],null,null,null,44,22],[10,[[21066434],[21066435]],null,null,null,44,null,500],[10,[[31065342],[31065343,[[1147,null,null,[1]]]]]],[50,[[31065544],[31065545,[[1154,null,null,[1]]]]]],[50,[[31065741],[31065742,[[1134,null,null,[1]]]]]],[1,[[31065944,[[null,1103,null,[null,31065944]],[1121,null,null,[1]],[null,1119,null,[null,300]]]],[31065945,[[null,1103,null,[null,31065945]],[1121,null,null,[1]],[1143,null,null,[1]],[null,1119,null,[null,300]]]],[31065946,[[null,1103,null,[null,31065946]],[1121,null,null,[1]],[null,1119,null,[null,300]],[1120,null,null,[1]]]],[31065950,[[null,1103,null,[null,31065950]],[null,1114,null,[null,0.9]],[null,1112,null,[null,5]],[null,1113,null,[null,5]],[null,1104,null,[null,100]],[null,1115,null,[null,0.8]],[1121,null,null,[1]],[null,1119,null,[null,300]],[1120,null,null,[1]]]],[31065951,[[null,1103,null,[null,31065951]],[null,1114,null,[null,0.9]],[null,1110,null,[null,1]],[null,1104,null,[null,100]],[null,1115,null,[null,0.8]],[1121,null,null,[1]],[null,1119,null,[null,300]],[1120,null,null,[1]]]],[31065952,[[null,1103,null,[null,31065952]],[null,1114,null,[null,0.9]],[null,1110,null,[null,5]],[null,1104,null,[null,100]],[null,1115,null,[null,0.8]],[1121,null,null,[1]],[null,1119,null,[null,300]],[1120,null,null,[1]]]],[31065953,[[null,1103,null,[null,31065953]],[null,1114,null,[null,0.9]],[null,1110,null,[null,5]],[null,1111,null,[null,5]],[null,1112,null,[null,5]],[null,1113,null,[null,5]],[null,1104,null,[null,100]],[null,1115,null,[null,0.8]],[1121,null,null,[1]],[null,1119,null,[null,300]],[1120,null,null,[1]]]],[44762492,[[null,1103,null,[null,44762492]],[null,1114,null,[null,0.9]],[null,1104,null,[null,100]],[null,1106,null,[null,10]],[null,1107,null,[null,10]],[null,1105,null,[null,10]],[null,1115,null,[null,-1]],[1121,null,null,[1]],[null,1119,null,[null,300]],[1120,null,null,[1]]]]],[6,null,null,3,null,2],49],[1,[[31066496,[[null,1103,null,[null,31066496]],[1121,null,null,[1]],[null,1119,null,[null,300]]]],[31066497,[[null,1158,null,[null,45]],[null,1157,null,[null,400]],[null,1103,null,[null,31066497]],[null,1114,null,[null,-1]],[null,1104,null,[null,100]],[null,1106,null,[null,10]],[null,1107,null,[null,10]],[null,1105,null,[null,10]],[null,1115,null,[null,-1]],[1121,null,null,[1]],[null,1119,null,[null,300]],[1162,null,null,[1]],[1155,null,null,[1]],[1120,null,null,[1]]]]],null,49],[1000,[[31067051,[[null,null,14,[null,null,\"31067051\"]]],[6,null,null,null,6,null,\"31067051\"]],[31067052,[[null,null,14,[null,null,\"31067052\"]]],[6,null,null,null,6,null,\"31067052\"]]],[4,null,55]],[1000,[[31067063,[[null,null,14,[null,null,\"31067063\"]]],[6,null,null,null,6,null,\"31067063\"]],[31067064,[[null,null,14,[null,null,\"31067064\"]]],[6,null,null,null,6,null,\"31067064\"]]],[4,null,55]],[10,[[31067067],[31067068,[[1148,null,null,[1]]]]]],[1000,[[31067083,[[null,null,14,[null,null,\"31067083\"]]],[6,null,null,null,6,null,\"31067083\"]],[31067084,[[null,null,14,[null,null,\"31067084\"]]],[6,null,null,null,6,null,\"31067084\"]]],[4,null,55]],[1,[[44736076],[44736077,[[null,1046,null,[null,0.1]]]]]],[1,[[44761631,[[null,1103,null,[null,44761631]]]],[44761632,[[null,1103,null,[null,44761632]],[1143,null,null,[1]]]],[44761633,[[null,1142,null,[null,2]],[null,1103,null,[null,44761633]],[null,1119,null,[null,300]],[1120,null,null,[1]]]],[44761634,[[null,1142,null,[null,2]],[null,1103,null,[null,44761634]],[null,1114,null,[null,0.9]],[null,1104,null,[null,100]],[null,1115,null,[null,0.8]],[null,1119,null,[null,300]],[1120,null,null,[1]]]],[44761635,[[null,1142,null,[null,2]],[null,1103,null,[null,44761635]],[null,1114,null,[null,0.9]],[null,1106,null,[null,10]],[null,1115,null,[null,0.8]],[null,1119,null,[null,300]],[1120,null,null,[1]]]],[44761636,[[null,1142,null,[null,2]],[null,1103,null,[null,44761636]],[null,1114,null,[null,0.9]],[null,1107,null,[null,10]],[null,1115,null,[null,0.8]],[null,1119,null,[null,300]],[1120,null,null,[1]]]],[44761637,[[null,1142,null,[null,2]],[null,1103,null,[null,44761637]],[null,1114,null,[null,0.9]],[null,1105,null,[null,10]],[null,1115,null,[null,0.8]],[null,1119,null,[null,300]],[1120,null,null,[1]]]],[44762110,[[null,1142,null,[null,2]],[null,1103,null,[null,44762110]],[null,1114,null,[null,0.9]],[null,1104,null,[null,100]],[null,1115,null,[null,-1]],[null,1119,null,[null,300]],[1120,null,null,[1]]]]],[6,null,null,3,null,2],49],[500,[[44761838,[[null,1142,null,[null,2]],[null,1103,null,[null,44761838]],[null,1114,null,[null,0.9]],[null,1104,null,[null,100]],[null,1115,null,[null,-1]],[null,1119,null,[null,300]],[1120,null,null,[1]]]]],[2,[[6,null,null,3,null,2],[12,null,null,null,2,null,\"smitmehta\\\\.com\/\"]]],49],[null,[[44762338],[44762339,[[380254521,null,null,[1]]]]],[1,[[4,null,63]]],null,null,56],[150,[[31061760],[31063913,[[null,1126,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]],[null,1032,null,[null,200],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,500]]]]]],[31065341,[[1150,null,null,[1]],[null,1126,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]],[null,1032,null,[null,200],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,500]]]]]]],[3,[[4,null,8,null,null,null,null,[\"gmaSdk.getQueryInfo\"]],[4,null,8,null,null,null,null,[\"webkit.messageHandlers.getGmaQueryInfo.postMessage\"]],[4,null,8,null,null,null,null,[\"webkit.messageHandlers.getGmaSig.postMessage\"]]]],15],[50,[[31061761,[[null,1126,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]],[null,1032,null,[null,200],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,500]]]]]],[31062202,[[null,1126,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]],[null,1032,null,[null,200],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,500]]]]]],[31063912],[44756455,[[null,1126,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]],[null,1032,null,[null,200],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,500]]]]]]],[3,[[4,null,8,null,null,null,null,[\"gmaSdk.getQueryInfo\"]],[4,null,8,null,null,null,null,[\"webkit.messageHandlers.getGmaQueryInfo.postMessage\"]],[4,null,8,null,null,null,null,[\"webkit.messageHandlers.getGmaSig.postMessage\"]]]],15],[null,[[31063202,[[null,1126,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]],[null,1032,null,[null,200],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,500]]]]]]],[3,[[4,null,8,null,null,null,null,[\"gmaSdk.getQueryInfo\"]],[4,null,8,null,null,null,null,[\"webkit.messageHandlers.getGmaQueryInfo.postMessage\"]],[4,null,8,null,null,null,null,[\"webkit.messageHandlers.getGmaSig.postMessage\"]]]],15],[null,[[44753753,[[null,1126,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]],[null,1032,null,[null,200],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,500]]]]]]],[3,[[4,null,8,null,null,null,null,[\"gmaSdk.getQueryInfo\"]],[4,null,8,null,null,null,null,[\"webkit.messageHandlers.getGmaQueryInfo.postMessage\"]],[4,null,8,null,null,null,null,[\"webkit.messageHandlers.getGmaSig.postMessage\"]]]],15]]],[20,[[50,[[31062930],[31062931,[[380025941,null,null,[1]]]]],null,null,null,null,null,101,null,102]]],[13,[[10,[[44759847],[44759848,[[1947,null,null,[]]]]]],[10,[[44759849],[44759850]]],[1,[[31065824],[31065825,[[424117738,null,null,[1]]]]]],[10,[[31066184],[31066185,[[436251930,null,null,[1]]]]]],[1000,[[21067496]],[4,null,9,null,null,null,null,[\"document.hasTrustToken\"]]],[1000,[[31060475,null,[2,[[1,[[4,null,9,null,null,null,null,[\"window.PeriodicSyncManager\"]]]],[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]]]]]]],[500,[[31061692],[31061693,[[77,null,null,[1]],[78,null,null,[1]],[85,null,null,[1]],[80,null,null,[1]],[76,null,null,[1]]]]],[4,null,6,null,null,null,null,[\"31061691\"]]],[1,[[31062890],[31062891,[[397841828,null,null,[1]]]]]],[1,[[31062946]],[4,null,27,null,null,null,null,[\"document.prerendering\"]]],[1,[[31062947]],[1,[[4,null,27,null,null,null,null,[\"document.prerendering\"]]]]],[50,[[31064018],[31064019,[[1961,null,null,[1]]]]]],[1,[[31065981,null,[2,[[6,null,null,3,null,0],[12,null,null,null,4,null,\"Chrome\/(9[23456789]|\\\\d{3,})\",[\"navigator.userAgent\"]],[4,null,27,null,null,null,null,[\"crossOriginIsolated\"]]]]]]]]],[11,[[10,[[44760494],[44760495,[[1957,null,null,[1]]]]],null,48],[1,[[44760496],[44760497,[[1957,null,null,[1]]]],[44760498,[[1957,null,null,[1]]]]],null,48],[2,[[44761535],[44761536,[[1957,null,null,[1]],[1963,null,null,[1]]]],[44761537,[[1957,null,null,[1]],[1964,null,null,[1]]]],[44761538,[[1957,null,null,[1]],[1965,null,null,[1]]]],[44761539,[[1957,null,null,[1]]]]],null,48]]],[17,[[10,[[31060047]],null,null,null,44,null,900],[10,[[31060048],[31060049]],null,null,null,null,null,null,null,101],[10,[[31060566]]]]],[12,[[50,[[31061828],[31061829,[[null,1126,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]],[null,1032,null,[null,200],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,500]]]],[360245597,null,null,[1]],[null,494,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]]]],[31065659,[[1150,null,null,[1]],[null,1126,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]],[null,1032,null,[null,10000]],[427841102,null,null,[1]],[360245597,null,null,[1]],[null,494,null,[null,5000],[[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[null,5500]]]]]],[31065787]],null,15],[20,[[21065724],[21065725,[[203,null,null,[1]]]]],[4,null,9,null,null,null,null,[\"LayoutShift\"]]],[50,[[31060006,null,[2,[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[12,null,null,null,4,null,\"Chrome\/(89|9\\\\d|\\\\d{3,})\",[\"navigator.userAgent\"]],[4,null,9,null,null,null,null,[\"window.PeriodicSyncManager\"]]]]],[31060007,[[1928,null,null,[1]]],[2,[[12,null,null,null,4,null,\"Android\",[\"navigator.userAgent\"]],[12,null,null,null,4,null,\"Chrome\/(89|9\\\\d|\\\\d{3,})\",[\"navigator.userAgent\"]],[4,null,9,null,null,null,null,[\"window.PeriodicSyncManager\"]]]]]],null,21],[10,[[31060032],[31060033,[[1928,null,null,[1]]]]],null,21],[10,[[31061690],[31061691,[[83,null,null,[1]],[84,null,null,[1]]]]]],[1,[[31065721],[31065722,[[432946749,null,null,[1]]]]]]]]],null,null,[0.001,\"1000\",1,\"1000\"]],[null,[]],null,null,1,\"github.com\",309779023,[44759876,44759927,44759842]]");
Parda11 / Bug FrogeJVM info: Oracle Corporation - 1.8.0_301 - 25.301-b09 java.net.preferIPv4Stack=true Found java version 1.8.0_301 Extracting json Considering minecraft client jar Downloading libraries Considering library cpw.mods:securejarhandler:0.9.46 File exists: Checksum validated. Considering library org.ow2.asm:asm:9.1 File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.1 File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.1 File exists: Checksum validated. Considering library org.ow2.asm:asm-util:9.1 File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.1 File exists: Checksum validated. Considering library net.minecraftforge:accesstransformers:8.0.4 File exists: Checksum validated. Considering library org.antlr:antlr4-runtime:4.9.1 File exists: Checksum validated. Considering library net.minecraftforge:eventbus:5.0.3 File exists: Checksum validated. Considering library net.minecraftforge:forgespi:4.0.9 File exists: Checksum validated. Considering library net.minecraftforge:coremods:5.0.1 File exists: Checksum validated. Considering library cpw.mods:modlauncher:9.0.7 File exists: Checksum validated. Considering library net.minecraftforge:unsafe:0.2.0 File exists: Checksum validated. Considering library com.electronwill.night-config:core:3.6.3 File exists: Checksum validated. Considering library com.electronwill.night-config:toml:3.6.3 File exists: Checksum validated. Considering library org.apache.maven:maven-artifact:3.6.3 File exists: Checksum validated. Considering library org.apache.commons:commons-lang3:3.8.1 File exists: Checksum validated. Considering library net.jodah:typetools:0.8.3 File exists: Checksum validated. Considering library org.apache.logging.log4j:log4j-api:2.14.1 File exists: Checksum validated. Considering library org.apache.logging.log4j:log4j-core:2.14.1 File exists: Checksum validated. Considering library net.minecrell:terminalconsoleappender:1.2.0 File exists: Checksum validated. Considering library org.jline:jline-reader:3.12.1 File exists: Checksum validated. Considering library org.jline:jline-terminal:3.12.1 File exists: Checksum validated. Considering library net.sf.jopt-simple:jopt-simple:5.0.4 File exists: Checksum validated. Considering library org.openjdk.nashorn:nashorn-core:15.1.1 File exists: Checksum validated. Considering library com.google.guava:guava:21.0 File exists: Checksum validated. Considering library com.google.code.gson:gson:2.8.0 File exists: Checksum validated. Considering library cpw.mods:bootstraplauncher:0.1.17 File exists: Checksum validated. Considering library net.minecraftforge:fmlloader:1.17.1-37.0.58 File exists: Checksum validated. Considering library com.github.jponge:lzma-java:1.3 File exists: Checksum validated. Considering library com.google.code.findbugs:jsr305:3.0.2 File exists: Checksum validated. Considering library com.google.code.gson:gson:2.8.7 File exists: Checksum validated. Considering library com.google.errorprone:error_prone_annotations:2.1.3 File exists: Checksum validated. Considering library com.google.errorprone:error_prone_annotations:2.3.4 File exists: Checksum validated. Considering library com.google.guava:failureaccess:1.0.1 File exists: Checksum validated. Considering library com.google.guava:guava:20.0 File exists: Checksum validated. Considering library com.google.guava:guava:25.1-jre File exists: Checksum validated. Considering library com.google.guava:guava:30.1-android File exists: Checksum validated. Considering library com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava File exists: Checksum validated. Considering library com.google.j2objc:j2objc-annotations:1.1 File exists: Checksum validated. Considering library com.google.j2objc:j2objc-annotations:1.3 File exists: Checksum validated. Considering library com.google.jimfs:jimfs:1.2 File exists: Checksum validated. Considering library com.nothome:javaxdelta:2.0.1 File exists: Checksum validated. Considering library com.opencsv:opencsv:4.4 File exists: Checksum validated. Considering library commons-beanutils:commons-beanutils:1.9.3 File exists: Checksum validated. Considering library commons-collections:commons-collections:3.2.2 File exists: Checksum validated. Considering library commons-io:commons-io:2.4 File exists: Checksum validated. Considering library commons-logging:commons-logging:1.2 File exists: Checksum validated. Considering library de.oceanlabs.mcp:mcp_config:1.17.1-20210706.113038@zip File exists: Checksum validated. Considering library de.siegmar:fastcsv:2.0.0 File exists: Checksum validated. Considering library net.md-5:SpecialSource:1.10.0 File exists: Checksum validated. Considering library net.minecraftforge.lex:vignette:0.2.0.16 File exists: Checksum validated. Considering library net.minecraftforge:binarypatcher:1.0.12 File exists: Checksum validated. Considering library net.minecraftforge:fmlcore:1.17.1-37.0.58 File exists: Checksum validated. Considering library net.minecraftforge:fmlloader:1.17.1-37.0.58 File exists: Checksum validated. Considering library net.minecraftforge:forge:1.17.1-37.0.58:universal File exists: Checksum validated. Considering library net.minecraftforge:installertools:1.2.7 File exists: Checksum validated. Considering library net.minecraftforge:jarsplitter:1.1.4 File exists: Checksum validated. Considering library net.minecraftforge:javafmllanguage:1.17.1-37.0.58 File exists: Checksum validated. Considering library net.minecraftforge:mclanguage:1.17.1-37.0.58 File exists: Checksum validated. Considering library net.minecraftforge:srgutils:0.4.3 File exists: Checksum validated. Considering library net.sf.jopt-simple:jopt-simple:5.0.4 File exists: Checksum validated. Considering library org.apache.commons:commons-collections4:4.2 File exists: Checksum validated. Considering library org.apache.commons:commons-lang3:3.8.1 File exists: Checksum validated. Considering library org.apache.commons:commons-text:1.3 File exists: Checksum validated. Considering library org.cadixdev:atlas:0.2.2 File exists: Checksum validated. Considering library org.cadixdev:bombe-asm:0.3.5 File exists: Checksum validated. Considering library org.cadixdev:bombe:0.3.5 File exists: Checksum validated. Considering library org.cadixdev:lorenz-asm:0.5.7 File exists: Checksum validated. Considering library org.cadixdev:lorenz:0.5.7 File exists: Checksum validated. Considering library org.checkerframework:checker-compat-qual:2.5.5 File exists: Checksum validated. Considering library org.checkerframework:checker-qual:2.0.0 File exists: Checksum validated. Considering library org.codehaus.mojo:animal-sniffer-annotations:1.14 File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.1 File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.1 File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.1 File exists: Checksum validated. Considering library org.ow2.asm:asm:9.1 File exists: Checksum validated. Considering library trove:trove:1.0.2 File exists: Checksum validated. Created Temporary Directory: C:\Users\USER-PC\AppData\Local\Temp\forge_installer8166668735222705055 Extracting: /data/client.lzma Building Processors =============================================================================== MainClass: net.minecraftforge.installertools.ConsoleTool Classpath: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraftforge\installertools\1.2.7\installertools-1.2.7.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\md-5\SpecialSource\1.10.0\SpecialSource-1.10.0.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.8.7\gson-2.8.7.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\siegmar\fastcsv\2.0.0\fastcsv-2.0.0.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraftforge\srgutils\0.4.3\srgutils-0.4.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-commons\9.1\asm-commons-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\20.0\guava-20.0.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\opencsv\opencsv\4.4\opencsv-4.4.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-analysis\9.1\asm-analysis-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-tree\9.1\asm-tree-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\9.1\asm-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-text\1.3\commons-text-1.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-collections4\4.2\commons-collections4-4.2.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\commons-logging\commons-logging\1.2\commons-logging-1.2.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar Args: --task, MCP_DATA, --input, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.17.1-20210706.113038\mcp_config-1.17.1-20210706.113038.zip, --output, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.17.1-20210706.113038\mcp_config-1.17.1-20210706.113038-mappings.txt, --key, mappings Task: MCP_DATA Input: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.17.1-20210706.113038\mcp_config-1.17.1-20210706.113038.zip Output: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.17.1-20210706.113038\mcp_config-1.17.1-20210706.113038-mappings.txt Key: mappings Extracting: config/joined.tsrg =============================================================================== MainClass: net.minecraftforge.installertools.ConsoleTool Classpath: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraftforge\installertools\1.2.7\installertools-1.2.7.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\md-5\SpecialSource\1.10.0\SpecialSource-1.10.0.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.8.7\gson-2.8.7.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\siegmar\fastcsv\2.0.0\fastcsv-2.0.0.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraftforge\srgutils\0.4.3\srgutils-0.4.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-commons\9.1\asm-commons-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\20.0\guava-20.0.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\opencsv\opencsv\4.4\opencsv-4.4.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-analysis\9.1\asm-analysis-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-tree\9.1\asm-tree-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\9.1\asm-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-text\1.3\commons-text-1.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-collections4\4.2\commons-collections4-4.2.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\commons-logging\commons-logging\1.2\commons-logging-1.2.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar Args: --task, DOWNLOAD_MOJMAPS, --version, 1.17.1, --side, client, --output, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-mappings.txt Task: DOWNLOAD_MOJMAPS MC Version: 1.17.1 Side: client Output: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-mappings.txt Downloaded Mojang mappings for 1.17.1 =============================================================================== MainClass: net.minecraftforge.installertools.ConsoleTool Classpath: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraftforge\installertools\1.2.7\installertools-1.2.7.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\md-5\SpecialSource\1.10.0\SpecialSource-1.10.0.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.8.7\gson-2.8.7.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\siegmar\fastcsv\2.0.0\fastcsv-2.0.0.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraftforge\srgutils\0.4.3\srgutils-0.4.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-commons\9.1\asm-commons-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\20.0\guava-20.0.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\opencsv\opencsv\4.4\opencsv-4.4.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-analysis\9.1\asm-analysis-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-tree\9.1\asm-tree-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\9.1\asm-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-text\1.3\commons-text-1.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-collections4\4.2\commons-collections4-4.2.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\commons-logging\commons-logging\1.2\commons-logging-1.2.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar Args: --task, MERGE_MAPPING, --left, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.17.1-20210706.113038\mcp_config-1.17.1-20210706.113038-mappings.txt, --right, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-mappings.txt, --output, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.17.1-20210706.113038\mcp_config-1.17.1-20210706.113038-mappings-merged.txt, --classes, --reverse-right Task: MERGE_MAPPING Left: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.17.1-20210706.113038\mcp_config-1.17.1-20210706.113038-mappings.txt Reversed=false null Right: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-mappings.txt Reversed=true null Classes: true Fields: false Methods: false Params: false Output: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.17.1-20210706.113038\mcp_config-1.17.1-20210706.113038-mappings-merged.txt =============================================================================== Cache: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-slim.jar Validated: b8de6b6dc0fc88232d974bdaaf085c56145277b1 C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-extra.jar Validated: 483cfeb6029f2d180f740af4ea7ecb3613182772 Cache Hit! =============================================================================== MainClass: org.cadixdev.vignette.VignetteMain Classpath: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraftforge\lex\vignette\0.2.0.16\vignette-0.2.0.16.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\cadixdev\atlas\0.2.2\atlas-0.2.2.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\cadixdev\lorenz-asm\0.5.7\lorenz-asm-0.5.7.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\cadixdev\lorenz\0.5.7\lorenz-0.5.7.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\cadixdev\bombe-asm\0.3.5\bombe-asm-0.3.5.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-commons\9.1\asm-commons-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\jimfs\jimfs\1.2\jimfs-1.2.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\cadixdev\bombe\0.3.5\bombe-0.3.5.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-analysis\9.1\asm-analysis-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-tree\9.1\asm-tree-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\9.1\asm-9.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\30.1-android\guava-30.1-android.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\checkerframework\checker-compat-qual\2.5.5\checker-compat-qual-2.5.5.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\errorprone\error_prone_annotations\2.3.4\error_prone_annotations-2.3.4.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar Args: --jar-in, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-slim.jar, --jar-out, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-srg.jar, --mapping-format, tsrg2, --mappings, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.17.1-20210706.113038\mcp_config-1.17.1-20210706.113038-mappings-merged.txt, --create-inits, --fix-param-annotations, --fernflower-meta Input: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-slim.jar Output: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-srg.jar Format: tsrg2 Mappings: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.17.1-20210706.113038\mcp_config-1.17.1-20210706.113038-mappings-merged.txt Constructors Parameter Annotations Found extra RuntimeVisibleParameterAnnotations entries in <init>(Lnet/minecraft/world/entity/animal/Fox;Ljava/lang/Class;ZZLjava/util/function/Predicate;)V in net/minecraft/world/entity/animal/Fox$DefendTrustedTargetGoal: removing 1 Found extra RuntimeVisibleParameterAnnotations entries in <init>(Lnet/minecraft/server/ServerFunctionManager;Lnet/minecraft/server/ServerFunctionManager$TraceCallbacks;)V in net/minecraft/server/ServerFunctionManager$ExecutionContext: removing 1 Found extra RuntimeVisibleParameterAnnotations entries in <init>(Ljava/lang/String;ILjava/lang/String;CILjava/lang/Integer;)V in net/minecraft/ChatFormatting: removing 2 Found extra RuntimeVisibleParameterAnnotations entries in <init>(Ljava/lang/String;ILjava/lang/String;CZILjava/lang/Integer;)V in net/minecraft/ChatFormatting: removing 2 Found extra RuntimeVisibleParameterAnnotations entries in <init>(Lnet/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk;DLnet/minecraft/client/renderer/chunk/RenderChunkRegion;)V in net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk$RebuildTask: removing 1 Found extra RuntimeVisibleParameterAnnotations entries in <init>(Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Ljava/util/List;ILnet/minecraft/client/renderer/texture/TextureAtlasSprite$InterpolationData;)V in net/minecraft/client/renderer/texture/TextureAtlasSprite$AnimatedTexture: removing 1 Found extra RuntimeVisibleParameterAnnotations entries in <init>(Lnet/minecraft/client/gui/screens/worldselection/EditGameRulesScreen;Ljava/util/List;)V in net/minecraft/client/gui/screens/worldselection/EditGameRulesScreen$RuleEntry: removing 1 Found extra RuntimeVisibleParameterAnnotations entries in <init>(Lnet/minecraft/client/gui/screens/worldselection/EditGameRulesScreen;Ljava/util/List;Lnet/minecraft/network/chat/Component;)V in net/minecraft/client/gui/screens/worldselection/EditGameRulesScreen$GameRuleEntry: removing 1 Processing Complete =============================================================================== MainClass: net.minecraftforge.binarypatcher.ConsoleTool Classpath: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraftforge\binarypatcher\1.0.12\binarypatcher-1.0.12.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\25.1-jre\guava-25.1-jre.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\github\jponge\lzma-java\1.3\lzma-java-1.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\nothome\javaxdelta\2.0.1\javaxdelta-2.0.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\checkerframework\checker-qual\2.0.0\checker-qual-2.0.0.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\errorprone\error_prone_annotations\2.1.3\error_prone_annotations-2.1.3.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\org\codehaus\mojo\animal-sniffer-annotations\1.14\animal-sniffer-annotations-1.14.jar C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\trove\trove\1.0.2\trove-1.0.2.jar Args: --clean, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-srg.jar, --output, C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.17.1-37.0.58\forge-1.17.1-37.0.58-client.jar, --apply, C:\Users\USER-PC\AppData\Local\Temp\forge_installer8166668735222705055\data\client.lzma Applying: Clean: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-srg.jar Output: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraftforge\forge\1.17.1-37.0.58\forge-1.17.1-37.0.58-client.jar KeepData: false Unpatched: false Patches: C:\Users\USER-PC\AppData\Local\Temp\forge_installer8166668735222705055\data\client.lzma Loading patches file: C:\Users\USER-PC\AppData\Local\Temp\forge_installer8166668735222705055\data\client.lzma Reading patch com.mojang.blaze3d.pipeline.RenderTarget.binpatch Checksum: 8f3f6c4b Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$BlendState.binpatch Checksum: 6cbbfe90 Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$BooleanState.binpatch Checksum: cb7ab7c3 Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$ColorLogicState.binpatch Checksum: 2780f447 Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$ColorMask.binpatch Checksum: 1f2a9fd5 Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$CullState.binpatch Checksum: 4b92ec43 Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$DepthState.binpatch Checksum: 5a09f3dc Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$DestFactor.binpatch Checksum: bd8087b Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$LogicOp.binpatch Checksum: ca78b1af Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$PolygonOffsetState.binpatch Checksum: d6d40128 Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$ScissorState.binpatch Checksum: 2d7eeaeb Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$SourceFactor.binpatch Checksum: 5a6b1bfb Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$StencilFunc.binpatch Checksum: 655d9abd Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$StencilState.binpatch Checksum: 651c00ac Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$TextureState.binpatch Checksum: 556e9542 Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager$Viewport.binpatch Checksum: 46e3d556 Exists: true Reading patch com.mojang.blaze3d.platform.GlStateManager.binpatch Checksum: 206dab28 Exists: true Reading patch com.mojang.blaze3d.platform.Window$WindowInitFailed.binpatch Checksum: 7e1d9170 Exists: true Reading patch com.mojang.blaze3d.platform.Window.binpatch Checksum: 690694d9 Exists: true Reading patch com.mojang.blaze3d.vertex.BufferBuilder$1.binpatch Checksum: 5fda1e Exists: true Reading patch com.mojang.blaze3d.vertex.BufferBuilder$DrawState.binpatch Checksum: ed3a207e Exists: true Reading patch com.mojang.blaze3d.vertex.BufferBuilder$SortState.binpatch Checksum: 201738a6 Exists: true Reading patch com.mojang.blaze3d.vertex.BufferBuilder.binpatch Checksum: 6efa401b Exists: true Reading patch com.mojang.blaze3d.vertex.VertexConsumer.binpatch Checksum: 920a3efc Exists: true Reading patch com.mojang.blaze3d.vertex.VertexFormat$1.binpatch Checksum: 8e4900e8 Exists: true Reading patch com.mojang.blaze3d.vertex.VertexFormat$IndexType.binpatch Checksum: 864fb259 Exists: true Reading patch com.mojang.blaze3d.vertex.VertexFormat$Mode.binpatch Checksum: 1f7e22f9 Exists: true Reading patch com.mojang.blaze3d.vertex.VertexFormat.binpatch Checksum: 181519e3 Exists: true Reading patch com.mojang.blaze3d.vertex.VertexFormatElement$Type.binpatch Checksum: 8f5a1ee5 Exists: true Reading patch com.mojang.blaze3d.vertex.VertexFormatElement$Usage$ClearState.binpatch Checksum: 46b9819f Exists: true Reading patch com.mojang.blaze3d.vertex.VertexFormatElement$Usage$SetupState.binpatch Checksum: cd3982cd Exists: true Reading patch com.mojang.blaze3d.vertex.VertexFormatElement$Usage.binpatch Checksum: 3abe08a1 Exists: true Reading patch com.mojang.blaze3d.vertex.VertexFormatElement.binpatch Checksum: b7ee9aee Exists: true Reading patch com.mojang.math.Matrix3f.binpatch Checksum: 23afa4ec Exists: true Reading patch com.mojang.math.Matrix4f.binpatch Checksum: 77ad308e Exists: true Reading patch com.mojang.math.Transformation.binpatch Checksum: 6ff206d8 Exists: true Reading patch com.mojang.math.Vector3f.binpatch Checksum: 179df1cf Exists: true Reading patch com.mojang.math.Vector4f.binpatch Checksum: 8ca56d31 Exists: true Reading patch com.mojang.realmsclient.gui.screens.RealmsGenericErrorScreen.binpatch Checksum: 1de1b50e Exists: true Reading patch net.minecraft.CrashReport.binpatch Checksum: 7fa52623 Exists: true Reading patch net.minecraft.CrashReportCategory$Entry.binpatch Checksum: 8affa101 Exists: true Reading patch net.minecraft.CrashReportCategory.binpatch Checksum: 266ad5e2 Exists: true Reading patch net.minecraft.SharedConstants.binpatch Checksum: 15d17650 Exists: true Reading patch net.minecraft.Util$1.binpatch Checksum: aca18af Exists: true Reading patch net.minecraft.Util$2.binpatch Checksum: 0 Exists: false Reading patch net.minecraft.Util$3.binpatch Checksum: ffdfdb49 Exists: true Reading patch net.minecraft.Util$4.binpatch Checksum: 7a779c78 Exists: true Reading patch net.minecraft.Util$5.binpatch Checksum: 1f40648b Exists: true Reading patch net.minecraft.Util$6.binpatch Checksum: 90c75f57 Exists: true Reading patch net.minecraft.Util$7.binpatch Checksum: fb2dd34a Exists: true Reading patch net.minecraft.Util$8.binpatch Checksum: d8acd9b4 Exists: true Reading patch net.minecraft.Util$9.binpatch Checksum: 6f911bed Exists: true Reading patch net.minecraft.Util$IdentityStrategy.binpatch Checksum: c125b0d2 Exists: true Reading patch net.minecraft.Util$OS$1.binpatch Checksum: b356a333 Exists: true Reading patch net.minecraft.Util$OS$2.binpatch Checksum: e00c961e Exists: true Reading patch net.minecraft.Util$OS.binpatch Checksum: 5df440af Exists: true Reading patch net.minecraft.Util.binpatch Checksum: 5303977e Exists: true Reading patch net.minecraft.advancements.Advancement$Builder.binpatch Checksum: 942a3059 Exists: true Reading patch net.minecraft.advancements.Advancement.binpatch Checksum: b7800be0 Exists: true Reading patch net.minecraft.advancements.AdvancementList$Listener.binpatch Checksum: febd6078 Exists: true Reading patch net.minecraft.advancements.AdvancementList.binpatch Checksum: 1265bab1 Exists: true Reading patch net.minecraft.advancements.AdvancementRewards$Builder.binpatch Checksum: c83bdd63 Exists: true Reading patch net.minecraft.advancements.AdvancementRewards.binpatch Checksum: 90b4b0c5 Exists: true Reading patch net.minecraft.advancements.critereon.ItemPredicate$Builder.binpatch Checksum: 13f6d38c Exists: true Reading patch net.minecraft.advancements.critereon.ItemPredicate.binpatch Checksum: abf58349 Exists: true Reading patch net.minecraft.client.Camera$NearPlane.binpatch Checksum: 565f5c60 Exists: true Reading patch net.minecraft.client.Camera.binpatch Checksum: b2f67ded Exists: true Reading patch net.minecraft.client.ClientBrandRetriever.binpatch Checksum: a2f2826a Exists: true Reading patch net.minecraft.client.KeyMapping.binpatch Checksum: ff185f76 Exists: true Reading patch net.minecraft.client.KeyboardHandler$1.binpatch Checksum: 27cdc3b6 Exists: true Reading patch net.minecraft.client.KeyboardHandler.binpatch Checksum: 5af5db71 Exists: true Reading patch net.minecraft.client.Minecraft$1.binpatch Checksum: 870ac6a2 Exists: true Reading patch net.minecraft.client.Minecraft$ChatStatus$1.binpatch Checksum: 7cc9b899 Exists: true Reading patch net.minecraft.client.Minecraft$ChatStatus$2.binpatch Checksum: 8e79b8ab Exists: true Reading patch net.minecraft.client.Minecraft$ChatStatus$3.binpatch Checksum: a772b8d6 Exists: true Reading patch net.minecraft.client.Minecraft$ChatStatus$4.binpatch Checksum: afecb8e0 Exists: true Reading patch net.minecraft.client.Minecraft$ChatStatus.binpatch Checksum: 4fafe55a Exists: true Reading patch net.minecraft.client.Minecraft$ExperimentalDialogType.binpatch Checksum: cf0e6aed Exists: true Reading patch net.minecraft.client.Minecraft$ServerStem.binpatch Checksum: 3e0f8923 Exists: true Reading patch net.minecraft.client.Minecraft.binpatch Checksum: 8e33b54 Exists: true Reading patch net.minecraft.client.MouseHandler.binpatch Checksum: 52bd3e16 Exists: true Reading patch net.minecraft.client.Options$1.binpatch Checksum: d7ef802a Exists: true Reading patch net.minecraft.client.Options$2.binpatch Checksum: 60fbace Exists: true Reading patch net.minecraft.client.Options$3.binpatch Checksum: ce3a3a99 Exists: true Reading patch net.minecraft.client.Options$4.binpatch Checksum: cbb7a8f1 Exists: true Reading patch net.minecraft.client.Options$FieldAccess.binpatch Checksum: 6f483eb4 Exists: true Reading patch net.minecraft.client.Options.binpatch Checksum: 116f951d Exists: true Reading patch net.minecraft.client.Screenshot.binpatch Checksum: b37a803 Exists: true Reading patch net.minecraft.client.ToggleKeyMapping.binpatch Checksum: 73ca44eb Exists: true Reading patch net.minecraft.client.User$Type.binpatch Checksum: ef0a439d Exists: true Reading patch net.minecraft.client.User.binpatch Checksum: 3d7d1eb2 Exists: true Reading patch net.minecraft.client.color.block.BlockColors.binpatch Checksum: 837be8d1 Exists: true Reading patch net.minecraft.client.color.item.ItemColors.binpatch Checksum: 1e96dcb9 Exists: true Reading patch net.minecraft.client.gui.Gui$HeartType.binpatch Checksum: 486191da Exists: true Reading patch net.minecraft.client.gui.Gui.binpatch Checksum: 9cab203a Exists: true Reading patch net.minecraft.client.gui.MapRenderer$MapInstance.binpatch Checksum: 10a752a9 Exists: true Reading patch net.minecraft.client.gui.MapRenderer.binpatch Checksum: c88c0d08 Exists: true Reading patch net.minecraft.client.gui.components.AbstractSelectionList$Entry.binpatch Checksum: ed26be71 Exists: true Reading patch net.minecraft.client.gui.components.AbstractSelectionList$SelectionDirection.binpatch Checksum: af469f93 Exists: true Reading patch net.minecraft.client.gui.components.AbstractSelectionList$TrackedList.binpatch Checksum: 49f69fff Exists: true Reading patch net.minecraft.client.gui.components.AbstractSelectionList.binpatch Checksum: 2ab5db75 Exists: true Reading patch net.minecraft.client.gui.components.AbstractWidget.binpatch Checksum: e8c233c7 Exists: true Reading patch net.minecraft.client.gui.components.BossHealthOverlay$1.binpatch Checksum: 65efbef6 Exists: true Reading patch net.minecraft.client.gui.components.BossHealthOverlay.binpatch Checksum: ad260478 Exists: true Reading patch net.minecraft.client.gui.components.DebugScreenOverlay$1.binpatch Checksum: 5909c1c5 Exists: true Reading patch net.minecraft.client.gui.components.DebugScreenOverlay.binpatch Checksum: 4c931f3e Exists: true Reading patch net.minecraft.client.gui.screens.DeathScreen.binpatch Checksum: deeafafc Exists: true Reading patch net.minecraft.client.gui.screens.LanguageSelectScreen$LanguageSelectionList$Entry.binpatch Checksum: f823a775 Exists: true Reading patch net.minecraft.client.gui.screens.LanguageSelectScreen$LanguageSelectionList.binpatch Checksum: 467a46cc Exists: true Reading patch net.minecraft.client.gui.screens.LanguageSelectScreen.binpatch Checksum: a3ee977a Exists: true Reading patch net.minecraft.client.gui.screens.LoadingOverlay$LogoTexture.binpatch Checksum: 69233ce4 Exists: true Reading patch net.minecraft.client.gui.screens.LoadingOverlay.binpatch Checksum: 3196d576 Exists: true Reading patch net.minecraft.client.gui.screens.MenuScreens$ScreenConstructor.binpatch Checksum: 9bbe50e1 Exists: true Reading patch net.minecraft.client.gui.screens.MenuScreens.binpatch Checksum: 78926b5e Exists: true Reading patch net.minecraft.client.gui.screens.OptionsScreen.binpatch Checksum: d361303c Exists: true Reading patch net.minecraft.client.gui.screens.Screen$NarratableSearchResult.binpatch Checksum: 92be4176 Exists: true Reading patch net.minecraft.client.gui.screens.Screen.binpatch Checksum: 298a30b3 Exists: true Reading patch net.minecraft.client.gui.screens.TitleScreen$1.binpatch Checksum: ee4bd107 Exists: true Reading patch net.minecraft.client.gui.screens.TitleScreen.binpatch Checksum: e7e89b78 Exists: true Reading patch net.minecraft.client.gui.screens.advancements.AdvancementTab.binpatch Checksum: 21ff095a Exists: true Reading patch net.minecraft.client.gui.screens.advancements.AdvancementTabType$1.binpatch Checksum: 514cd7ea Exists: true Reading patch net.minecraft.client.gui.screens.advancements.AdvancementTabType.binpatch Checksum: 6876f30e Exists: true Reading patch net.minecraft.client.gui.screens.advancements.AdvancementsScreen.binpatch Checksum: 65d93c22 Exists: true Reading patch net.minecraft.client.gui.screens.controls.ControlList$CategoryEntry$1.binpatch Checksum: a28f4d51 Exists: true Reading patch net.minecraft.client.gui.screens.controls.ControlList$CategoryEntry.binpatch Checksum: 548c5b65 Exists: true Reading patch net.minecraft.client.gui.screens.controls.ControlList$Entry.binpatch Checksum: f4cfea14 Exists: true Reading patch net.minecraft.client.gui.screens.controls.ControlList$KeyEntry$1.binpatch Checksum: c9e0cb9f Exists: true Reading patch net.minecraft.client.gui.screens.controls.ControlList$KeyEntry$2.binpatch Checksum: 7c356fe5 Exists: true Reading patch net.minecraft.client.gui.screens.controls.ControlList$KeyEntry.binpatch Checksum: d82121eb Exists: true Reading patch net.minecraft.client.gui.screens.controls.ControlList.binpatch Checksum: 9916048a Exists: true Reading patch net.minecraft.client.gui.screens.controls.ControlsScreen.binpatch Checksum: 9eca5d79 Exists: true Reading patch net.minecraft.client.gui.screens.inventory.AbstractContainerScreen.binpatch Checksum: 791371d4 Exists: true Reading patch net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen$CustomCreativeSlot.binpatch Checksum: acf66ba4 Exists: true Reading patch net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen$ItemPickerMenu.binpatch Checksum: d3f9a1ed Exists: true Reading patch net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen$SlotWrapper.binpatch Checksum: 1cbfb097 Exists: true Reading patch net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen.binpatch Checksum: b112e9b9 Exists: true Reading patch net.minecraft.client.gui.screens.inventory.EffectRenderingInventoryScreen.binpatch Checksum: 620c6a40 Exists: true Reading patch net.minecraft.client.gui.screens.inventory.EnchantmentScreen.binpatch Checksum: 11bff49e Exists: true Reading patch net.minecraft.client.gui.screens.multiplayer.JoinMultiplayerScreen.binpatch Checksum: 7003d498 Exists: true Reading patch net.minecraft.client.gui.screens.multiplayer.ServerSelectionList$Entry.binpatch Checksum: 8727f112 Exists: true Reading patch net.minecraft.client.gui.screens.multiplayer.ServerSelectionList$LANHeader.binpatch Checksum: fc0ce2a9 Exists: true Reading patch net.minecraft.client.gui.screens.multiplayer.ServerSelectionList$NetworkServerEntry.binpatch Checksum: 7703a9ba Exists: true Reading patch net.minecraft.client.gui.screens.multiplayer.ServerSelectionList$OnlineServerEntry.binpatch Checksum: e60e9136 Exists: true Reading patch net.minecraft.client.gui.screens.multiplayer.ServerSelectionList.binpatch Checksum: 983dd759 Exists: true Reading patch net.minecraft.client.gui.screens.packs.PackSelectionModel$Entry.binpatch Checksum: 1bb75b06 Exists: true Reading patch net.minecraft.client.gui.screens.packs.PackSelectionModel$EntryBase.binpatch Checksum: ebffd8bb Exists: true Reading patch net.minecraft.client.gui.screens.packs.PackSelectionModel$SelectedPackEntry.binpatch Checksum: 1b746ca5 Exists: true Reading patch net.minecraft.client.gui.screens.packs.PackSelectionModel$UnselectedPackEntry.binpatch Checksum: c211712d Exists: true Reading patch net.minecraft.client.gui.screens.packs.PackSelectionModel.binpatch Checksum: 60579288 Exists: true Reading patch net.minecraft.client.gui.screens.packs.PackSelectionScreen$1.binpatch Checksum: f7532412 Exists: true Reading patch net.minecraft.client.gui.screens.packs.PackSelectionScreen$Watcher.binpatch Checksum: f32d5ef3 Exists: true Reading patch net.minecraft.client.gui.screens.packs.PackSelectionScreen.binpatch Checksum: 74d0f112 Exists: true Reading patch net.minecraft.client.gui.screens.recipebook.RecipeBookComponent.binpatch Checksum: 15ab7c53 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.CreateWorldScreen$1.binpatch Checksum: 62153186 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.CreateWorldScreen$OperationFailedException.binpatch Checksum: 8e1aba9a Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.CreateWorldScreen$SelectedGameMode.binpatch Checksum: 995f6739 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.CreateWorldScreen.binpatch Checksum: 2c40b596 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldGenSettingsComponent.binpatch Checksum: 8828fcb8 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldPreset$1.binpatch Checksum: fa8a6221 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldPreset$2.binpatch Checksum: b8c06b9 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldPreset$3.binpatch Checksum: 5b006251 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldPreset$4.binpatch Checksum: a7f96192 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldPreset$5.binpatch Checksum: d7659007 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldPreset$6.binpatch Checksum: e3c8d389 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldPreset$7.binpatch Checksum: bb6d9061 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldPreset$8.binpatch Checksum: cad6ac56 Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldPreset$PresetEditor.binpatch Checksum: 8c14a05a Exists: true Reading patch net.minecraft.client.gui.screens.worldselection.WorldPreset.binpatch Checksum: 7697886 Exists: true Reading patch net.minecraft.client.main.Main$1.binpatch Checksum: 3400c30c Exists: true Reading patch net.minecraft.client.main.Main$2.binpatch Checksum: eca4ff94 Exists: true Reading patch net.minecraft.client.main.Main$3.binpatch Checksum: c072312c Exists: true Reading patch net.minecraft.client.main.Main.binpatch Checksum: 23c4b73d Exists: true Reading patch net.minecraft.client.model.geom.LayerDefinitions.binpatch Checksum: 15240bf8 Exists: true Reading patch net.minecraft.client.multiplayer.ClientChunkCache$Storage.binpatch Checksum: 801b466f Exists: true Reading patch net.minecraft.client.multiplayer.ClientChunkCache.binpatch Checksum: b1ec8ea5 Exists: true Reading patch net.minecraft.client.multiplayer.ClientHandshakePacketListenerImpl.binpatch Checksum: fe9113ee Exists: true Reading patch net.minecraft.client.multiplayer.ClientLevel$1.binpatch Checksum: 9cd4cc49 Exists: true Reading patch net.minecraft.client.multiplayer.ClientLevel$ClientLevelData.binpatch Checksum: 26cd407c Exists: true Reading patch net.minecraft.client.multiplayer.ClientLevel$EntityCallbacks.binpatch Checksum: 56d02d2f Exists: true Reading patch net.minecraft.client.multiplayer.ClientLevel$MarkerParticleStatus.binpatch Checksum: 12da73ce Exists: true Reading patch net.minecraft.client.multiplayer.ClientLevel.binpatch Checksum: 4c2357db Exists: true Reading patch net.minecraft.client.multiplayer.ClientPacketListener$1.binpatch Checksum: f8aa3a2e Exists: true Reading patch net.minecraft.client.multiplayer.ClientPacketListener.binpatch Checksum: 6f4c1d21 Exists: true Reading patch net.minecraft.client.multiplayer.MultiPlayerGameMode.binpatch Checksum: 74c2e35 Exists: true Reading patch net.minecraft.client.multiplayer.PlayerInfo.binpatch Checksum: 1d81d15d Exists: true Reading patch net.minecraft.client.multiplayer.ServerData$ServerPackStatus.binpatch Checksum: e6968aa5 Exists: true Reading patch net.minecraft.client.multiplayer.ServerData.binpatch Checksum: f788b38f Exists: true Reading patch net.minecraft.client.multiplayer.ServerStatusPinger$1.binpatch Checksum: 10239f24 Exists: true Reading patch net.minecraft.client.multiplayer.ServerStatusPinger$2$1.binpatch Checksum: e4de6199 Exists: true Reading patch net.minecraft.client.multiplayer.ServerStatusPinger$2.binpatch Checksum: e9f28b11 Exists: true Reading patch net.minecraft.client.multiplayer.ServerStatusPinger.binpatch Checksum: b1cfc897 Exists: true Reading patch net.minecraft.client.particle.Particle.binpatch Checksum: 3593a45c Exists: true Reading patch net.minecraft.client.particle.ParticleEngine$MutableSpriteSet.binpatch Checksum: 291a02a9 Exists: true Reading patch net.minecraft.client.particle.ParticleEngine$SpriteParticleRegistration.binpatch Checksum: c588e59b Exists: true Reading patch net.minecraft.client.particle.ParticleEngine.binpatch Checksum: 87cb8f7e Exists: true Reading patch net.minecraft.client.particle.TerrainParticle$Provider.binpatch Checksum: bcf785d2 Exists: true Reading patch net.minecraft.client.particle.TerrainParticle.binpatch Checksum: b3112a8a Exists: true Reading patch net.minecraft.client.player.AbstractClientPlayer.binpatch Checksum: da612183 Exists: true Reading patch net.minecraft.client.player.LocalPlayer.binpatch Checksum: 8ec21436 Exists: true Reading patch net.minecraft.client.player.RemotePlayer.binpatch Checksum: dc863de7 Exists: true Reading patch net.minecraft.client.renderer.DimensionSpecialEffects$EndEffects.binpatch Checksum: 54c56098 Exists: true Reading patch net.minecraft.client.renderer.DimensionSpecialEffects$NetherEffects.binpatch Checksum: 9b611ee9 Exists: true Reading patch net.minecraft.client.renderer.DimensionSpecialEffects$OverworldEffects.binpatch Checksum: 21aa5ea4 Exists: true Reading patch net.minecraft.client.renderer.DimensionSpecialEffects$SkyType.binpatch Checksum: 48cf7c16 Exists: true Reading patch net.minecraft.client.renderer.DimensionSpecialEffects.binpatch Checksum: 9005201e Exists: true Reading patch net.minecraft.client.renderer.EffectInstance.binpatch Checksum: 408204a9 Exists: true Reading patch net.minecraft.client.renderer.FogRenderer$FogMode.binpatch Checksum: 37a24f0d Exists: true Reading patch net.minecraft.client.renderer.FogRenderer.binpatch Checksum: 4281582f Exists: true Reading patch net.minecraft.client.renderer.GameRenderer.binpatch Checksum: f4a6cf2b Exists: true Reading patch net.minecraft.client.renderer.ItemBlockRenderTypes.binpatch Checksum: 3a44fe6b Exists: true Reading patch net.minecraft.client.renderer.ItemInHandRenderer$1.binpatch Checksum: aa1bd4a5 Exists: true Reading patch net.minecraft.client.renderer.ItemInHandRenderer$HandRenderSelection.binpatch Checksum: d154c75 Exists: true Reading patch net.minecraft.client.renderer.ItemInHandRenderer.binpatch Checksum: 62e67716 Exists: true Reading patch net.minecraft.client.renderer.ItemModelShaper.binpatch Checksum: 9d503807 Exists: true Reading patch net.minecraft.client.renderer.LevelRenderer$RenderChunkInfo.binpatch Checksum: 41ccda3c Exists: true Reading patch net.minecraft.client.renderer.LevelRenderer$RenderInfoMap.binpatch Checksum: 767fed9d Exists: true Reading patch net.minecraft.client.renderer.LevelRenderer$TransparencyShaderException.binpatch Checksum: f0fdb3fe Exists: true Reading patch net.minecraft.client.renderer.LevelRenderer.binpatch Checksum: 96b1c877 Exists: true Reading patch net.minecraft.client.renderer.LightTexture.binpatch Checksum: fa6fe6f5 Exists: true Reading patch net.minecraft.client.renderer.PostChain.binpatch Checksum: 62e20b13 Exists: true Reading patch net.minecraft.client.renderer.ScreenEffectRenderer.binpatch Checksum: b3ec498d Exists: true Reading patch net.minecraft.client.renderer.ShaderInstance$1.binpatch Checksum: da7c2777 Exists: true Reading patch net.minecraft.client.renderer.ShaderInstance.binpatch Checksum: 557a85a9 Exists: true Reading patch net.minecraft.client.renderer.Sheets$1.binpatch Checksum: 618cce91 Exists: true Reading patch net.minecraft.client.renderer.Sheets.binpatch Checksum: af9a742 Exists: true Reading patch net.minecraft.client.renderer.block.BlockModelShaper.binpatch Checksum: 3b959dcc Exists: true Reading patch net.minecraft.client.renderer.block.BlockRenderDispatcher$1.binpatch Checksum: 14edc830 Exists: true Reading patch net.minecraft.client.renderer.block.BlockRenderDispatcher.binpatch Checksum: da6fd3a9 Exists: true Reading patch net.minecraft.client.renderer.block.LiquidBlockRenderer.binpatch Checksum: 45c048b5 Exists: true Reading patch net.minecraft.client.renderer.block.ModelBlockRenderer$1.binpatch Checksum: 6f78d396 Exists: true Reading patch net.minecraft.client.renderer.block.ModelBlockRenderer$AdjacencyInfo.binpatch Checksum: d4f09be Exists: true Reading patch net.minecraft.client.renderer.block.ModelBlockRenderer$AmbientOcclusionFace.binpatch Checksum: 86d64314 Exists: true Reading patch net.minecraft.client.renderer.block.ModelBlockRenderer$AmbientVertexRemap.binpatch Checksum: c7f9bddb Exists: true Reading patch net.minecraft.client.renderer.block.ModelBlockRenderer$Cache$1.binpatch Checksum: 7cc0fbb0 Exists: true Reading patch net.minecraft.client.renderer.block.ModelBlockRenderer$Cache$2.binpatch Checksum: d657fc94 Exists: true Reading patch net.minecraft.client.renderer.block.ModelBlockRenderer$Cache.binpatch Checksum: 76a29d19 Exists: true Reading patch net.minecraft.client.renderer.block.ModelBlockRenderer$SizeInfo.binpatch Checksum: 694ace9c Exists: true Reading patch net.minecraft.client.renderer.block.ModelBlockRenderer.binpatch Checksum: 8f049d1a Exists: true Reading patch net.minecraft.client.renderer.block.model.BakedQuad.binpatch Checksum: db24251d Exists: true Reading patch net.minecraft.client.renderer.block.model.BlockModel$Deserializer.binpatch Checksum: 1f889501 Exists: true Reading patch net.minecraft.client.renderer.block.model.BlockModel$GuiLight.binpatch Checksum: 80ec8257 Exists: true Reading patch net.minecraft.client.renderer.block.model.BlockModel$LoopException.binpatch Checksum: 1df9998a Exists: true Reading patch net.minecraft.client.renderer.block.model.BlockModel.binpatch Checksum: 6cb80e42 Exists: true Reading patch net.minecraft.client.renderer.block.model.FaceBakery$1.binpatch Checksum: 2955c822 Exists: true Reading patch net.minecraft.client.renderer.block.model.FaceBakery.binpatch Checksum: 5af72d32 Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemModelGenerator$1.binpatch Checksum: 2fe4fd3e Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemModelGenerator$Span.binpatch Checksum: cffa57e7 Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemModelGenerator$SpanFacing.binpatch Checksum: a63469aa Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemModelGenerator.binpatch Checksum: fad6656e Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemOverrides$BakedOverride.binpatch Checksum: 117599d9 Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemOverrides$PropertyMatcher.binpatch Checksum: 849e9e20 Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemOverrides.binpatch Checksum: 370c6b4e Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemTransform$Deserializer.binpatch Checksum: b9d04c64 Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemTransform.binpatch Checksum: b41314e4 Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemTransforms$1.binpatch Checksum: aff3d0e Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemTransforms$Deserializer.binpatch Checksum: a7a11824 Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemTransforms$TransformType.binpatch Checksum: 58413c3 Exists: true Reading patch net.minecraft.client.renderer.block.model.ItemTransforms.binpatch Checksum: 467c27d3 Exists: true Reading patch net.minecraft.client.renderer.block.model.MultiVariant$Deserializer.binpatch Checksum: e94a09ba Exists: true Reading patch net.minecraft.client.renderer.block.model.MultiVariant.binpatch Checksum: 9def7bf3 Exists: true Reading patch net.minecraft.client.renderer.blockentity.BlockEntityRenderers.binpatch Checksum: b2682dfb Exists: true Reading patch net.minecraft.client.renderer.blockentity.ChestRenderer.binpatch Checksum: ae9cd6f8 Exists: true Reading patch net.minecraft.client.renderer.blockentity.PistonHeadRenderer.binpatch Checksum: 8329ad48 Exists: true Reading patch net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$ChunkTaskResult.binpatch Checksum: 49d697d2 Exists: true Reading patch net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$CompiledChunk$1.binpatch Checksum: efecdd72 Exists: true Reading patch net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$CompiledChunk.binpatch Checksum: b4a6b225 Exists: true Reading patch net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$RenderChunk$ChunkCompileTask.binpatch Checksum: f078965e Exists: true Reading patch net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$RenderChunk$RebuildTask.binpatch Checksum: d36d9ee5 Exists: true Reading patch net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$RenderChunk$ResortTransparencyTask.binpatch Checksum: a16e23a3 Exists: true Reading patch net.minecraft.client.renderer.chunk.ChunkRenderDispatcher$RenderChunk.binpatch Checksum: 506efdc7 Exists: true Reading patch net.minecraft.client.renderer.chunk.ChunkRenderDispatcher.binpatch Checksum: b9b32fe2 Exists: true Reading patch net.minecraft.client.renderer.entity.BoatRenderer.binpatch Checksum: c61d512 Exists: true Reading patch net.minecraft.client.renderer.entity.EntityRenderDispatcher.binpatch Checksum: 89447f22 Exists: true Reading patch net.minecraft.client.renderer.entity.EntityRenderer.binpatch Checksum: 96fec266 Exists: true Reading patch net.minecraft.client.renderer.entity.FallingBlockRenderer.binpatch Checksum: 618d8aa9 Exists: true Reading patch net.minecraft.client.renderer.entity.ItemEntityRenderer.binpatch Checksum: f11f8a7a Exists: true Reading patch net.minecraft.client.renderer.entity.ItemFrameRenderer.binpatch Checksum: 9f46447a Exists: true Reading patch net.minecraft.client.renderer.entity.ItemRenderer.binpatch Checksum: 96712aad Exists: true Reading patch net.minecraft.client.renderer.entity.LivingEntityRenderer$1.binpatch Checksum: 6057552a Exists: true Reading patch net.minecraft.client.renderer.entity.LivingEntityRenderer.binpatch Checksum: 99989648 Exists: true Reading patch net.minecraft.client.renderer.entity.layers.ElytraLayer.binpatch Checksum: 490124b0 Exists: true Reading patch net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer$1.binpatch Checksum: 376bd7b8 Exists: true Reading patch net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.binpatch Checksum: b0b4b36a Exists: true Reading patch net.minecraft.client.renderer.entity.player.PlayerRenderer.binpatch Checksum: 115a8315 Exists: true Reading patch net.minecraft.client.renderer.item.ItemProperties$1.binpatch Checksum: 1464a196 Exists: true Reading patch net.minecraft.client.renderer.item.ItemProperties$2.binpatch Checksum: 1d817c30 Exists: true Reading patch net.minecraft.client.renderer.item.ItemProperties$CompassWobble.binpatch Checksum: 4f67dcc5 Exists: true Reading patch net.minecraft.client.renderer.item.ItemProperties.binpatch Checksum: dfe29193 Exists: true Reading patch net.minecraft.client.renderer.texture.AbstractTexture.binpatch Checksum: 8d9dd939 Exists: true Reading patch net.minecraft.client.renderer.texture.Stitcher$Holder.binpatch Checksum: 2d40ac33 Exists: true Reading patch net.minecraft.client.renderer.texture.Stitcher$Region.binpatch Checksum: efdc3165 Exists: true Reading patch net.minecraft.client.renderer.texture.Stitcher$SpriteLoader.binpatch Checksum: 89ce9fa7 Exists: true Reading patch net.minecraft.client.renderer.texture.Stitcher.binpatch Checksum: 557fa10a Exists: true Reading patch net.minecraft.client.renderer.texture.TextureAtlas$Preparations.binpatch Checksum: 7e5561b6 Exists: true Reading patch net.minecraft.client.renderer.texture.TextureAtlas.binpatch Checksum: 592d7c66 Exists: true Reading patch net.minecraft.client.renderer.texture.TextureAtlasSprite$AnimatedTexture.binpatch Checksum: 6118bb0 Exists: true Reading patch net.minecraft.client.renderer.texture.TextureAtlasSprite$FrameInfo.binpatch Checksum: 2ccc9891 Exists: true Reading patch net.minecraft.client.renderer.texture.TextureAtlasSprite$Info.binpatch Checksum: cbd72e5d Exists: true Reading patch net.minecraft.client.renderer.texture.TextureAtlasSprite$InterpolationData.binpatch Checksum: c132c7d4 Exists: true Reading patch net.minecraft.client.renderer.texture.TextureAtlasSprite.binpatch Checksum: 4fedc34 Exists: true Reading patch net.minecraft.client.renderer.texture.TextureManager.binpatch Checksum: 2413e0c5 Exists: true Reading patch net.minecraft.client.resources.language.ClientLanguage.binpatch Checksum: fc42c11 Exists: true Reading patch net.minecraft.client.resources.language.I18n.binpatch Checksum: fa6a4d0 Exists: true Reading patch net.minecraft.client.resources.language.LanguageInfo.binpatch Checksum: f75cb78d Exists: true Reading patch net.minecraft.client.resources.language.LanguageManager.binpatch Checksum: a41de958 Exists: true Reading patch net.minecraft.client.resources.model.BakedModel.binpatch Checksum: aba02d47 Exists: true Reading patch net.minecraft.client.resources.model.ModelBakery$BlockStateDefinitionException.binpatch Checksum: 9201a817 Exists: true Reading patch net.minecraft.client.resources.model.ModelBakery$ModelGroupKey.binpatch Checksum: b752e44e Exists: true Reading patch net.minecraft.client.resources.model.ModelBakery.binpatch Checksum: bd102809 Exists: true Reading patch net.minecraft.client.resources.model.ModelManager.binpatch Checksum: 2e024f5a Exists: true Reading patch net.minecraft.client.resources.model.ModelResourceLocation.binpatch Checksum: 179fd231 Exists: true Reading patch net.minecraft.client.resources.model.ModelState.binpatch Checksum: 805a6e55 Exists: true Reading patch net.minecraft.client.resources.model.MultiPartBakedModel$Builder.binpatch Checksum: eb094f42 Exists: true Reading patch net.minecraft.client.resources.model.MultiPartBakedModel.binpatch Checksum: 786b8143 Exists: true Reading patch net.minecraft.client.resources.model.SimpleBakedModel$Builder.binpatch Checksum: a9967407 Exists: true Reading patch net.minecraft.client.resources.model.SimpleBakedModel.binpatch Checksum: deb94c2a Exists: true Reading patch net.minecraft.client.resources.model.UnbakedModel.binpatch Checksum: 57e52bd2 Exists: true Reading patch net.minecraft.client.resources.model.WeightedBakedModel$Builder.binpatch Checksum: 8af03117 Exists: true Reading patch net.minecraft.client.resources.model.WeightedBakedModel.binpatch Checksum: fe525acf Exists: true Reading patch net.minecraft.client.searchtree.SearchRegistry$Key.binpatch Checksum: 8687a1d3 Exists: true Reading patch net.minecraft.client.searchtree.SearchRegistry.binpatch Checksum: be69bb0f Exists: true Reading patch net.minecraft.client.server.IntegratedServer.binpatch Checksum: 13e56fd8 Exists: true Reading patch net.minecraft.client.sounds.SoundEngine.binpatch Checksum: 3e4fd007 Exists: true Reading patch net.minecraft.commands.Commands$CommandSelection.binpatch Checksum: fdb97cd1 Exists: true Reading patch net.minecraft.commands.Commands$ParseFunction.binpatch Checksum: b9617f5e Exists: true Reading patch net.minecraft.commands.Commands.binpatch Checksum: 313ad14c Exists: true Reading patch net.minecraft.commands.arguments.selector.EntitySelectorParser.binpatch Checksum: 2b6dcc6d Exists: true Reading patch net.minecraft.commands.synchronization.ArgumentTypes$Entry.binpatch Checksum: 3d7a845 Exists: true Reading patch net.minecraft.commands.synchronization.ArgumentTypes.binpatch Checksum: d248fee6 Exists: true Reading patch net.minecraft.core.Direction$1.binpatch Checksum: b3000da3 Exists: true Reading patch net.minecraft.core.Direction$Axis$1.binpatch Checksum: 9280d974 Exists: true Reading patch net.minecraft.core.Direction$Axis$2.binpatch Checksum: 5d93d970 Exists: true Reading patch net.minecraft.core.Direction$Axis$3.binpatch Checksum: 6d7fd9a3 Exists: true Reading patch net.minecraft.core.Direction$Axis.binpatch Checksum: 93294179 Exists: true Reading patch net.minecraft.core.Direction$AxisDirection.binpatch Checksum: 3a9aba01 Exists: true Reading patch net.minecraft.core.Direction$Plane.binpatch Checksum: 4e913afc Exists: true Reading patch net.minecraft.core.Direction.binpatch Checksum: 845fee74 Exists: true Reading patch net.minecraft.core.MappedRegistry$RegistryEntry.binpatch Checksum: 5abf1fb1 Exists: true Reading patch net.minecraft.core.MappedRegistry.binpatch Checksum: 17ef44e Exists: true Reading patch net.minecraft.core.Registry.binpatch Checksum: db741aa Exists: true Reading patch net.minecraft.core.RegistryAccess$RegistryData.binpatch Checksum: 589639b5 Exists: true Reading patch net.minecraft.core.RegistryAccess$RegistryHolder.binpatch Checksum: 1f5c95af Exists: true Reading patch net.minecraft.core.RegistryAccess.binpatch Checksum: 16f784aa Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$1.binpatch Checksum: 4387bc79 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$10.binpatch Checksum: 8dd84d39 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$11.binpatch Checksum: abd37312 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$12.binpatch Checksum: 7753afff Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$13.binpatch Checksum: 6ddf977e Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$14.binpatch Checksum: 38b90e5f Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$15.binpatch Checksum: e966e943 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$16.binpatch Checksum: 85c764fd Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$17.binpatch Checksum: 7f3bafb7 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$18.binpatch Checksum: 9edc9c3e Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$19.binpatch Checksum: ac430114 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$2.binpatch Checksum: bebd55c Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$20.binpatch Checksum: 855ae109 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$21.binpatch Checksum: b5b11cd1 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$22.binpatch Checksum: d939a90 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$23.binpatch Checksum: 9453cc23 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$24.binpatch Checksum: 297c363a Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$25.binpatch Checksum: 27447368 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$26.binpatch Checksum: b946ab3 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$3.binpatch Checksum: 39cac3b8 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$4.binpatch Checksum: 148c73b Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$5.binpatch Checksum: 7254c658 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$6.binpatch Checksum: 2edaf67a Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$7$1.binpatch Checksum: f3fc6f97 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$7.binpatch Checksum: f5a3088a Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$8$1.binpatch Checksum: 4ec36ff6 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$8.binpatch Checksum: 2fc308e6 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior$9.binpatch Checksum: 634363f1 Exists: true Reading patch net.minecraft.core.dispenser.DispenseItemBehavior.binpatch Checksum: c9e69ec4 Exists: true Reading patch net.minecraft.core.particles.BlockParticleOption$1.binpatch Checksum: 5a073ead Exists: true Reading patch net.minecraft.core.particles.BlockParticleOption.binpatch Checksum: 459595fd Exists: true Reading patch net.minecraft.core.particles.ItemParticleOption$1.binpatch Checksum: cd126f40 Exists: true Reading patch net.minecraft.core.particles.ItemParticleOption.binpatch Checksum: 90ec5b77 Exists: true Reading patch net.minecraft.core.particles.ParticleType.binpatch Checksum: 33b0aaf4 Exists: true Reading patch net.minecraft.core.particles.ParticleTypes$1.binpatch Checksum: 99db0607 Exists: true Reading patch net.minecraft.core.particles.ParticleTypes.binpatch Checksum: eae29565 Exists: true Reading patch net.minecraft.data.BuiltinRegistries.binpatch Checksum: 213b81d8 Exists: true Reading patch net.minecraft.data.DataGenerator.binpatch Checksum: ff2d9db4 Exists: true Reading patch net.minecraft.data.HashCache.binpatch Checksum: 839631ff Exists: true Reading patch net.minecraft.data.Main.binpatch Checksum: c41a9213 Exists: true Reading patch net.minecraft.data.loot.BlockLoot.binpatch Checksum: 5ed3fcfe Exists: true Reading patch net.minecraft.data.loot.EntityLoot.binpatch Checksum: 360fa12a Exists: true Reading patch net.minecraft.data.loot.LootTableProvider.binpatch Checksum: 1c71b120 Exists: true Reading patch net.minecraft.data.recipes.RecipeProvider.binpatch Checksum: efa0c58b Exists: true Reading patch net.minecraft.data.tags.BlockTagsProvider.binpatch Checksum: 5f5a860d Exists: true Reading patch net.minecraft.data.tags.EntityTypeTagsProvider.binpatch Checksum: 8429b2ff Exists: true Reading patch net.minecraft.data.tags.FluidTagsProvider.binpatch Checksum: aae24249 Exists: true Reading patch net.minecraft.data.tags.GameEventTagsProvider.binpatch Checksum: b3927621 Exists: true Reading patch net.minecraft.data.tags.ItemTagsProvider.binpatch Checksum: e9c801e9 Exists: true Reading patch net.minecraft.data.tags.TagsProvider$TagAppender.binpatch Checksum: fadf743a Exists: true Reading patch net.minecraft.data.tags.TagsProvider.binpatch Checksum: 5ceae59a Exists: true Reading patch net.minecraft.data.worldgen.biome.Biomes.binpatch Checksum: a3e590a0 Exists: true Reading patch net.minecraft.locale.Language$1.binpatch Checksum: 44f3ddbf Exists: true Reading patch net.minecraft.locale.Language.binpatch Checksum: 76cb1aa7 Exists: true Reading patch net.minecraft.nbt.CompoundTag$1.binpatch Checksum: 849df90d Exists: true Reading patch net.minecraft.nbt.CompoundTag.binpatch Checksum: f3d07b36 Exists: true Reading patch net.minecraft.nbt.NbtAccounter$1.binpatch Checksum: 805f6323 Exists: true Reading patch net.minecraft.nbt.NbtAccounter.binpatch Checksum: ac144223 Exists: true Reading patch net.minecraft.nbt.NbtIo.binpatch Checksum: 3eb9e44f Exists: true Reading patch net.minecraft.nbt.StringTag$1.binpatch Checksum: 29c08ac1 Exists: true Reading patch net.minecraft.nbt.StringTag.binpatch Checksum: fc2c0bcd Exists: true Reading patch net.minecraft.network.CompressionEncoder.binpatch Checksum: 869e0ccc Exists: true Reading patch net.minecraft.network.Connection$1.binpatch Checksum: 3c0ea12c Exists: true Reading patch net.minecraft.network.Connection$2.binpatch Checksum: edff4550 Exists: true Reading patch net.minecraft.network.Connection$PacketHolder.binpatch Checksum: 30c1a6da Exists: true Reading patch net.minecraft.network.Connection.binpatch Checksum: c927465e Exists: true Reading patch net.minecraft.network.FriendlyByteBuf.binpatch Checksum: 9787cbe9 Exists: true Reading patch net.minecraft.network.PacketEncoder.binpatch Checksum: e2441096 Exists: true Reading patch net.minecraft.network.chat.Style$1.binpatch Checksum: 82c2c8a1 Exists: true Reading patch net.minecraft.network.chat.Style$Serializer.binpatch Checksum: 1ca4888a Exists: true Reading patch net.minecraft.network.chat.Style.binpatch Checksum: 6bdfa583 Exists: true Reading patch net.minecraft.network.chat.TranslatableComponent.binpatch Checksum: 7a84d759 Exists: true Reading patch net.minecraft.network.protocol.game.ClientboundCommandsPacket$Entry.binpatch Checksum: c53a3d99 Exists: true Reading patch net.minecraft.network.protocol.game.ClientboundCommandsPacket.binpatch Checksum: eca4bb47 Exists: true Reading patch net.minecraft.network.protocol.game.ClientboundCustomPayloadPacket.binpatch Checksum: b2779efb Exists: true Reading patch net.minecraft.network.protocol.game.ClientboundUpdateAttributesPacket$AttributeSnapshot.binpatch Checksum: c462dd40 Exists: true Reading patch net.minecraft.network.protocol.game.ClientboundUpdateAttributesPacket.binpatch Checksum: f70bfaa9 Exists: true Reading patch net.minecraft.network.protocol.game.ServerboundContainerClickPacket.binpatch Checksum: f05723ad Exists: true Reading patch net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket.binpatch Checksum: 4f2beff7 Exists: true Reading patch net.minecraft.network.protocol.game.ServerboundSetCreativeModeSlotPacket.binpatch Checksum: 94b93e0f Exists: true Reading patch net.minecraft.network.protocol.handshake.ClientIntentionPacket.binpatch Checksum: a2e2590 Exists: true Reading patch net.minecraft.network.protocol.login.ClientboundCustomQueryPacket.binpatch Checksum: 2eaf0719 Exists: true Reading patch net.minecraft.network.protocol.login.ServerboundCustomQueryPacket.binpatch Checksum: 1f2fca4d Exists: true Reading patch net.minecraft.network.protocol.status.ClientboundStatusResponsePacket.binpatch Checksum: c3b5b0a Exists: true Reading patch net.minecraft.network.protocol.status.ServerStatus$Players$Serializer.binpatch Checksum: 4737191b Exists: true Reading patch net.minecraft.network.protocol.status.ServerStatus$Players.binpatch Checksum: a8e7f780 Exists: true Reading patch net.minecraft.network.protocol.status.ServerStatus$Serializer.binpatch Checksum: 27e5575f Exists: true Reading patch net.minecraft.network.protocol.status.ServerStatus$Version$Serializer.binpatch Checksum: f0ccdac8 Exists: true Reading patch net.minecraft.network.protocol.status.ServerStatus$Version.binpatch Checksum: f998d3d7 Exists: true Reading patch net.minecraft.network.protocol.status.ServerStatus.binpatch Checksum: 12bc4057 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$1.binpatch Checksum: 292d76e Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$10.binpatch Checksum: 986e919 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$11.binpatch Checksum: 10d31177 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$12.binpatch Checksum: 71af0973 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$13.binpatch Checksum: f27c33bd Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$14.binpatch Checksum: 39d405a9 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$15.binpatch Checksum: 407ef65 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$16.binpatch Checksum: 366f12cb Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$17.binpatch Checksum: ae58277d Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$18.binpatch Checksum: fd6c1ca7 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$19.binpatch Checksum: 656e14e6 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$2.binpatch Checksum: 8eecedbe Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$3.binpatch Checksum: 53f3de4d Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$4.binpatch Checksum: 17c0eab9 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$5.binpatch Checksum: a4812821 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$6.binpatch Checksum: 9b7d59a3 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$7.binpatch Checksum: 3bf82ad6 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$8.binpatch Checksum: a2d0924e Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers$9.binpatch Checksum: 3beaed69 Exists: true Reading patch net.minecraft.network.syncher.EntityDataSerializers.binpatch Checksum: 5d646e64 Exists: true Reading patch net.minecraft.network.syncher.SynchedEntityData$DataItem.binpatch Checksum: cae64a16 Exists: true Reading patch net.minecraft.network.syncher.SynchedEntityData.binpatch Checksum: 1a5b835f Exists: true Reading patch net.minecraft.recipebook.PlaceRecipe.binpatch Checksum: d745d490 Exists: true Reading patch net.minecraft.resources.RegistryReadOps$1.binpatch Checksum: 2181e1d7 Exists: true Reading patch net.minecraft.resources.RegistryReadOps$ReadCache.binpatch Checksum: 29f01ecc Exists: true Reading patch net.minecraft.resources.RegistryReadOps$ResourceAccess$1.binpatch Checksum: bced0e6c Exists: true Reading patch net.minecraft.resources.RegistryReadOps$ResourceAccess$MemoryMap.binpatch Checksum: 6a31072f Exists: true Reading patch net.minecraft.resources.RegistryReadOps$ResourceAccess.binpatch Checksum: b700be59 Exists: true Reading patch net.minecraft.resources.RegistryReadOps.binpatch Checksum: f73f5a23 Exists: true Reading patch net.minecraft.resources.ResourceKey.binpatch Checksum: 1448c2f8 Exists: true Reading patch net.minecraft.resources.ResourceLocation$Serializer.binpatch Checksum: 286ae72d Exists: true Reading patch net.minecraft.resources.ResourceLocation.binpatch Checksum: db9af97b Exists: true Reading patch net.minecraft.server.Bootstrap$1.binpatch Checksum: 62df2f51 Exists: true Reading patch net.minecraft.server.Bootstrap.binpatch Checksum: c77fe539 Exists: true Reading patch net.minecraft.server.Main$1.binpatch Checksum: b75cc17 Exists: true Reading patch net.minecraft.server.Main.binpatch Checksum: 565516b9 Exists: true Reading patch net.minecraft.server.MinecraftServer$1.binpatch Checksum: c5288844 Exists: true Reading patch net.minecraft.server.MinecraftServer$2.binpatch Checksum: 115a97b8 Exists: true Reading patch net.minecraft.server.MinecraftServer$TimeProfiler$1.binpatch Checksum: 19e9f041 Exists: true Reading patch net.minecraft.server.MinecraftServer$TimeProfiler.binpatch Checksum: 508b0c58 Exists: true Reading patch net.minecraft.server.MinecraftServer.binpatch Checksum: 2a8cb056 Exists: true Reading patch net.minecraft.server.PlayerAdvancements$1.binpatch Checksum: ed5cbf66 Exists: true Reading patch net.minecraft.server.PlayerAdvancements.binpatch Checksum: da0ca6b7 Exists: true Reading patch net.minecraft.server.ServerAdvancementManager.binpatch Checksum: 61afad5e Exists: true Reading patch net.minecraft.server.ServerResources.binpatch Checksum: 4114c3d4 Exists: true Reading patch net.minecraft.server.commands.LocateCommand.binpatch Checksum: 95c90dfa Exists: true Reading patch net.minecraft.server.commands.SpreadPlayersCommand$Position.binpatch Checksum: a129916f Exists: true Reading patch net.minecraft.server.commands.SpreadPlayersCommand.binpatch Checksum: cf3f23a8 Exists: true Reading patch net.minecraft.server.commands.TeleportCommand$LookAt.binpatch Checksum: c6de961c Exists: true Reading patch net.minecraft.server.commands.TeleportCommand.binpatch Checksum: b6ab11b4 Exists: true Reading patch net.minecraft.server.dedicated.DedicatedServer$1.binpatch Checksum: 91c1faf0 Exists: true Reading patch net.minecraft.server.dedicated.DedicatedServer.binpatch Checksum: ea2b4f86 Exists: true Reading patch net.minecraft.server.dedicated.ServerWatchdog$1.binpatch Checksum: f0b0c5b7 Exists: true Reading patch net.minecraft.server.dedicated.ServerWatchdog.binpatch Checksum: 607cd907 Exists: true Reading patch net.minecraft.server.dedicated.Settings$MutableValue.binpatch Checksum: ad28e66 Exists: true Reading patch net.minecraft.server.dedicated.Settings.binpatch Checksum: b2f58754 Exists: true Reading patch net.minecraft.server.gui.MinecraftServerGui$1.binpatch Checksum: c0f1b9be Exists: true Reading patch net.minecraft.server.gui.MinecraftServerGui$2.binpatch Checksum: de18d193 Exists: true Reading patch net.minecraft.server.gui.MinecraftServerGui.binpatch Checksum: 9a973221 Exists: true Reading patch net.minecraft.server.level.ChunkHolder$1.binpatch Checksum: a945a87d Exists: true Reading patch net.minecraft.server.level.ChunkHolder$ChunkLoadingFailure$1.binpatch Checksum: c7e2a7a5 Exists: true Reading patch net.minecraft.server.level.ChunkHolder$ChunkLoadingFailure.binpatch Checksum: 16df90d1 Exists: true Reading patch net.minecraft.server.level.ChunkHolder$ChunkSaveDebug.binpatch Checksum: bafdeb7c Exists: true Reading patch net.minecraft.server.level.ChunkHolder$FullChunkStatus.binpatch Checksum: f6d6b560 Exists: true Reading patch net.minecraft.server.level.ChunkHolder$LevelChangeListener.binpatch Checksum: 195ba371 Exists: true Reading patch net.minecraft.server.level.ChunkHolder$PlayerProvider.binpatch Checksum: c13fa4ce Exists: true Reading patch net.minecraft.server.level.ChunkHolder.binpatch Checksum: b8140982 Exists: true Reading patch net.minecraft.server.level.ChunkMap$1.binpatch Checksum: 9a2ae268 Exists: true Reading patch net.minecraft.server.level.ChunkMap$2.binpatch Checksum: cd866905 Exists: true Reading patch net.minecraft.server.level.ChunkMap$DistanceManager.binpatch Checksum: ea7bc649 Exists: true Reading patch net.minecraft.server.level.ChunkMap$TrackedEntity.binpatch Checksum: 10adee06 Exists: true Reading patch net.minecraft.server.level.ChunkMap.binpatch Checksum: 7d8a75bd Exists: true Reading patch net.minecraft.server.level.DistanceManager$ChunkTicketTracker.binpatch Checksum: 53f17e4b Exists: true Reading patch net.minecraft.server.level.DistanceManager$FixedPlayerDistanceChunkTracker.binpatch Checksum: ec39c980 Exists: true Reading patch net.minecraft.server.level.DistanceManager$PlayerTicketTracker.binpatch Checksum: bb3145f Exists: true Reading patch net.minecraft.server.level.DistanceManager.binpatch Checksum: ab307c76 Exists: true Reading patch net.minecraft.server.level.ServerChunkCache$MainThreadExecutor.binpatch Checksum: b0a53137 Exists: true Reading patch net.minecraft.server.level.ServerChunkCache.binpatch Checksum: 55f1dd24 Exists: true Reading patch net.minecraft.server.level.ServerEntity.binpatch Checksum: dfb99bb3 Exists: true Reading patch net.minecraft.server.level.ServerLevel$EntityCallbacks.binpatch Checksum: ecac9ee7 Exists: true Reading patch net.minecraft.server.level.ServerLevel.binpatch Checksum: f62da266 Exists: true Reading patch net.minecraft.server.level.ServerPlayer$1.binpatch Checksum: 46729277 Exists: true Reading patch net.minecraft.server.level.ServerPlayer$2.binpatch Checksum: 201774ae Exists: true Reading patch net.minecraft.server.level.ServerPlayer$3.binpatch Checksum: 6cd7c45c Exists: true Reading patch net.minecraft.server.level.ServerPlayer.binpatch Checksum: 6a6432f5 Exists: true Reading patch net.minecraft.server.level.ServerPlayerGameMode.binpatch Checksum: 702ac65c Exists: true Reading patch net.minecraft.server.level.Ticket.binpatch Checksum: b6638e21 Exists: true Reading patch net.minecraft.server.network.MemoryServerHandshakePacketListenerImpl.binpatch Checksum: 9916ea19 Exists: true Reading patch net.minecraft.server.network.ServerConnectionListener$1.binpatch Checksum: db59f11a Exists: true Reading patch net.minecraft.server.network.ServerConnectionListener$2.binpatch Checksum: 54e15eba Exists: true Reading patch net.minecraft.server.network.ServerConnectionListener$LatencySimulator$DelayedMessage.binpatch Checksum: 4163fcc1 Exists: true Reading patch net.minecraft.server.network.ServerConnectionListener$LatencySimulator.binpatch Checksum: ea798160 Exists: true Reading patch net.minecraft.server.network.ServerConnectionListener.binpatch Checksum: 431b9e13 Exists: true Reading patch net.minecraft.server.network.ServerGamePacketListenerImpl$1.binpatch Checksum: bb1842e8 Exists: true Reading patch net.minecraft.server.network.ServerGamePacketListenerImpl$2.binpatch Checksum: 73e6e41d Exists: true Reading patch net.minecraft.server.network.ServerGamePacketListenerImpl$EntityInteraction.binpatch Checksum: 42cab319 Exists: true Reading patch net.minecraft.server.network.ServerGamePacketListenerImpl.binpatch Checksum: d39f03f6 Exists: true Reading patch net.minecraft.server.network.ServerHandshakePacketListenerImpl$1.binpatch Checksum: 139c569 Exists: true Reading patch net.minecraft.server.network.ServerHandshakePacketListenerImpl.binpatch Checksum: 89f5bf77 Exists: true Reading patch net.minecraft.server.network.ServerLoginPacketListenerImpl$1.binpatch Checksum: 8076a98b Exists: true Reading patch net.minecraft.server.network.ServerLoginPacketListenerImpl$State.binpatch Checksum: 800c700 Exists: true Reading patch net.minecraft.server.network.ServerLoginPacketListenerImpl.binpatch Checksum: 7a4d02cf Exists: true Reading patch net.minecraft.server.packs.PackResources.binpatch Checksum: f854e9c Exists: true Reading patch net.minecraft.server.packs.VanillaPackResources$1.binpatch Checksum: 7818fbfb Exists: true Reading patch net.minecraft.server.packs.VanillaPackResources.binpatch Checksum: bd41b79b Exists: true Reading patch net.minecraft.server.packs.repository.Pack$PackConstructor.binpatch Checksum: 2499ba38 Exists: true Reading patch net.minecraft.server.packs.repository.Pack$Position.binpatch Checksum: cc710d72 Exists: true Reading patch net.minecraft.server.packs.repository.Pack.binpatch Checksum: 51b0f094 Exists: true Reading patch net.minecraft.server.packs.repository.PackRepository.binpatch Checksum: 5486f6c5 Exists: true Reading patch net.minecraft.server.packs.resources.FallbackResourceManager$LeakedResourceWarningInputStream.binpatch Checksum: 8cc19522 Exists: true Reading patch net.minecraft.server.packs.resources.FallbackResourceManager.binpatch Checksum: 57c0b0c3 Exists: true Reading patch net.minecraft.server.packs.resources.ResourceManager$Empty.binpatch Checksum: e729e9ec Exists: true Reading patch net.minecraft.server.packs.resources.ResourceManager.binpatch Checksum: f1e398cc Exists: true Reading patch net.minecraft.server.packs.resources.ResourceManagerReloadListener.binpatch Checksum: b9096cd8 Exists: true Reading patch net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener.binpatch Checksum: dc1c7b2c Exists: true Reading patch net.minecraft.server.packs.resources.SimpleReloadableResourceManager$FailingReloadInstance.binpatch Checksum: 1eec0b40 Exists: true Reading patch net.minecraft.server.packs.resources.SimpleReloadableResourceManager$ResourcePackLoadingFailure.binpatch Checksum: 9d6b3aa0 Exists: true Reading patch net.minecraft.server.packs.resources.SimpleReloadableResourceManager.binpatch Checksum: 7cc5dab4 Exists: true Reading patch net.minecraft.server.players.PlayerList$1.binpatch Checksum: edae6b7c Exists: true Reading patch net.minecraft.server.players.PlayerList.binpatch Checksum: f8ee484d Exists: true Reading patch net.minecraft.server.rcon.RconConsoleSource.binpatch Checksum: 2af1f4ff Exists: true Reading patch net.minecraft.server.rcon.thread.RconClient.binpatch Checksum: 9b0fb0e7 Exists: true Reading patch net.minecraft.sounds.SoundEvent.binpatch Checksum: 3d861666 Exists: true Reading patch net.minecraft.sounds.SoundEvents.binpatch Checksum: 40bd797b Exists: true Reading patch net.minecraft.stats.StatType.binpatch Checksum: 77cc640f Exists: true Reading patch net.minecraft.tags.BlockTags.binpatch Checksum: 1c84a8b Exists: true Reading patch net.minecraft.tags.EntityTypeTags.binpatch Checksum: 20e0b1fc Exists: true Reading patch net.minecraft.tags.FluidTags.binpatch Checksum: ed8cbef8 Exists: true Reading patch net.minecraft.tags.GameEventTags.binpatch Checksum: 1e2d13ad Exists: true Reading patch net.minecraft.tags.ItemTags.binpatch Checksum: ef17bc8d Exists: true Reading patch net.minecraft.tags.StaticTagHelper$OptionalNamedTag.binpatch Checksum: 0 Exists: false Reading patch net.minecraft.tags.StaticTagHelper$Wrapper.binpatch Checksum: 6bcb3135 Exists: true Reading patch net.minecraft.tags.StaticTagHelper.binpatch Checksum: 14d84b7c Exists: true Reading patch net.minecraft.tags.StaticTags.binpatch Checksum: 5dcf6239 Exists: true Reading patch net.minecraft.tags.Tag$Builder.binpatch Checksum: da56c833 Exists: true Reading patch net.minecraft.tags.Tag$BuilderEntry.binpatch Checksum: dd987ff1 Exists: true Reading patch net.minecraft.tags.Tag$ElementEntry.binpatch Checksum: c0d4636b Exists: true Reading patch net.minecraft.tags.Tag$Entry.binpatch Checksum: 4c3509f9 Exists: true Reading patch net.minecraft.tags.Tag$Named.binpatch Checksum: 666371fa Exists: true Reading patch net.minecraft.tags.Tag$OptionalElementEntry.binpatch Checksum: 861a5a63 Exists: true Reading patch net.minecraft.tags.Tag$OptionalTagEntry.binpatch Checksum: 5846d868 Exists: true Reading patch net.minecraft.tags.Tag$TagEntry.binpatch Checksum: e2c47e06 Exists: true Reading patch net.minecraft.tags.Tag.binpatch Checksum: f3dc537b Exists: true Reading patch net.minecraft.tags.TagContainer$1.binpatch Checksum: 7586274e Exists: true Reading patch net.minecraft.tags.TagContainer$Builder.binpatch Checksum: 84775329 Exists: true Reading patch net.minecraft.tags.TagContainer$CollectionConsumer.binpatch Checksum: 4544c15a Exists: true Reading patch net.minecraft.tags.TagContainer.binpatch Checksum: d2f70cc8 Exists: true Reading patch net.minecraft.tags.TagManager$LoaderInfo.binpatch Checksum: 74e26317 Exists: true Reading patch net.minecraft.tags.TagManager.binpatch Checksum: 3d80f516 Exists: true Reading patch net.minecraft.world.effect.MobEffect.binpatch Checksum: 506431e0 Exists: true Reading patch net.minecraft.world.effect.MobEffectCategory.binpatch Checksum: 589a051 Exists: true Reading patch net.minecraft.world.effect.MobEffectInstance.binpatch Checksum: 5dd7bb36 Exists: true Reading patch net.minecraft.world.effect.MobEffects$1.binpatch Checksum: 452c1c7d Exists: true Reading patch net.minecraft.world.effect.MobEffects.binpatch Checksum: 84c824c1 Exists: true Reading patch net.minecraft.world.entity.Entity$1.binpatch Checksum: 8d8816e9 Exists: true Reading patch net.minecraft.world.entity.Entity$MoveFunction.binpatch Checksum: 29926be7 Exists: true Reading patch net.minecraft.world.entity.Entity$MovementEmission.binpatch Checksum: 3351b64e Exists: true Reading patch net.minecraft.world.entity.Entity$RemovalReason.binpatch Checksum: 3e3eb132 Exists: true Reading patch net.minecraft.world.entity.Entity.binpatch Checksum: 855a9c39 Exists: true Reading patch net.minecraft.world.entity.EntityType$1.binpatch Checksum: 972e48f9 Exists: true Reading patch net.minecraft.world.entity.EntityType$Builder.binpatch Checksum: d9ecb073 Exists: true Reading patch net.minecraft.world.entity.EntityType$EntityFactory.binpatch Checksum: 2341be9f Exists: true Reading patch net.minecraft.world.entity.EntityType.binpatch Checksum: c9c472f2 Exists: true Reading patch net.minecraft.world.entity.ExperienceOrb.binpatch Checksum: 6780a8e0 Exists: true Reading patch net.minecraft.world.entity.FlyingMob.binpatch Checksum: a364b0a6 Exists: true Reading patch net.minecraft.world.entity.LightningBolt.binpatch Checksum: 93d1b20d Exists: true Reading patch net.minecraft.world.entity.LivingEntity$1.binpatch Checksum: e1f53f17 Exists: true Reading patch net.minecraft.world.entity.LivingEntity.binpatch Checksum: 6f07beba Exists: true Reading patch net.minecraft.world.entity.Mob$1.binpatch Checksum: 44232200 Exists: true Reading patch net.minecraft.world.entity.Mob.binpatch Checksum: c9eee74 Exists: true Reading patch net.minecraft.world.entity.MobCategory.binpatch Checksum: 6288edc2 Exists: true Reading patch net.minecraft.world.entity.Shearable.binpatch Checksum: 671d32ef Exists: true Reading patch net.minecraft.world.entity.SpawnPlacements$Data.binpatch Checksum: d898eaad Exists: true Reading patch net.minecraft.world.entity.SpawnPlacements$SpawnPredicate.binpatch Checksum: 3efc2bbf Exists: true Reading patch net.minecraft.world.entity.SpawnPlacements$Type.binpatch Checksum: d7616dbc Exists: true Reading patch net.minecraft.world.entity.SpawnPlacements.binpatch Checksum: 5395b5c1 Exists: true Reading patch net.minecraft.world.entity.ai.attributes.Attribute.binpatch Checksum: 360dbfe2 Exists: true Reading patch net.minecraft.world.entity.ai.attributes.AttributeSupplier$Builder.binpatch Checksum: a881c3b6 Exists: true Reading patch net.minecraft.world.entity.ai.attributes.AttributeSupplier.binpatch Checksum: 6c2a4d90 Exists: true Reading patch net.minecraft.world.entity.ai.attributes.DefaultAttributes.binpatch Checksum: 19367d60 Exists: true Reading patch net.minecraft.world.entity.ai.behavior.CrossbowAttack$CrossbowState.binpatch Checksum: 83de9eeb Exists: true Reading patch net.minecraft.world.entity.ai.behavior.CrossbowAttack.binpatch Checksum: 571227ca Exists: true Reading patch net.minecraft.world.entity.ai.behavior.HarvestFarmland.binpatch Checksum: 54725bc2 Exists: true Reading patch net.minecraft.world.entity.ai.goal.BreakDoorGoal.binpatch Checksum: 5371e433 Exists: true Reading patch net.minecraft.world.entity.ai.goal.EatBlockGoal.binpatch Checksum: 2b616268 Exists: true Reading patch net.minecraft.world.entity.ai.goal.MeleeAttackGoal.binpatch Checksum: be1bdb3f Exists: true Reading patch net.minecraft.world.entity.ai.goal.RangedBowAttackGoal.binpatch Checksum: d180bdb7 Exists: true Reading patch net.minecraft.world.entity.ai.goal.RangedCrossbowAttackGoal$CrossbowState.binpatch Checksum: cf52ad87 Exists: true Reading patch net.minecraft.world.entity.ai.goal.RangedCrossbowAttackGoal.binpatch Checksum: b4f60c3a Exists: true Reading patch net.minecraft.world.entity.ai.goal.RemoveBlockGoal.binpatch Checksum: 90b38065 Exists: true Reading patch net.minecraft.world.entity.ai.goal.RunAroundLikeCrazyGoal.binpatch Checksum: 4145705a Exists: true Reading patch net.minecraft.world.entity.ai.memory.MemoryModuleType.binpatch Checksum: 57e85c42 Exists: true Reading patch net.minecraft.world.entity.ai.navigation.PathNavigation.binpatch Checksum: 47792c30 Exists: true Reading patch net.minecraft.world.entity.ai.navigation.WallClimberNavigation.binpatch Checksum: 6170c25a Exists: true Reading patch net.minecraft.world.entity.ai.sensing.SensorType.binpatch Checksum: 7b3e3661 Exists: true Reading patch net.minecraft.world.entity.ai.village.VillageSiege$State.binpatch Checksum: d470736d Exists: true Reading patch net.minecraft.world.entity.ai.village.VillageSiege.binpatch Checksum: cabc3db8 Exists: true Reading patch net.minecraft.world.entity.ai.village.poi.PoiType.binpatch Checksum: 5b4b8d54 Exists: true Reading patch net.minecraft.world.entity.animal.Animal.binpatch Checksum: 1a045362 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$1.binpatch Checksum: eb6b25f0 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BaseBeeGoal.binpatch Checksum: 281cc582 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeeAttackGoal.binpatch Checksum: dbd81d09 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeeBecomeAngryTargetGoal.binpatch Checksum: c017de81 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeeEnterHiveGoal.binpatch Checksum: db9d0d66 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeeGoToHiveGoal.binpatch Checksum: ccfaf14f Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeeGoToKnownFlowerGoal.binpatch Checksum: 786d0031 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeeGrowCropGoal.binpatch Checksum: a81b7c35 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeeHurtByOtherGoal.binpatch Checksum: 423e9f41 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeeLocateHiveGoal.binpatch Checksum: cf8579f7 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeeLookControl.binpatch Checksum: 4ad13c44 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeePollinateGoal.binpatch Checksum: b0c14397 Exists: true Reading patch net.minecraft.world.entity.animal.Bee$BeeWanderGoal.binpatch Checksum: 59b3f0a8 Exists: true Reading patch net.minecraft.world.entity.animal.Bee.binpatch Checksum: 63f79139 Exists: true Reading patch net.minecraft.world.entity.animal.Cat$CatAvoidEntityGoal.binpatch Checksum: b533c9f7 Exists: true Reading patch net.minecraft.world.entity.animal.Cat$CatRelaxOnOwnerGoal.binpatch Checksum: 55b1bd21 Exists: true Reading patch net.minecraft.world.entity.animal.Cat$CatTemptGoal.binpatch Checksum: 46d6de0e Exists: true Reading patch net.minecraft.world.entity.animal.Cat.binpatch Checksum: 29997a80 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$DefendTrustedTargetGoal.binpatch Checksum: 9394db36 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FaceplantGoal.binpatch Checksum: 56e44a7a Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxAlertableEntitiesSelector.binpatch Checksum: 351d0539 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxBehaviorGoal.binpatch Checksum: 5d4cfca3 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxBreedGoal.binpatch Checksum: 532f7d26 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxEatBerriesGoal.binpatch Checksum: 5298d4e4 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxFloatGoal.binpatch Checksum: 61ac3034 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxFollowParentGoal.binpatch Checksum: dc1c2080 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxGroupData.binpatch Checksum: c43ee442 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxLookAtPlayerGoal.binpatch Checksum: f9c98ac Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxLookControl.binpatch Checksum: 8ea8ffb2 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxMeleeAttackGoal.binpatch Checksum: c8e1f875 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxMoveControl.binpatch Checksum: f6bccd59 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxPanicGoal.binpatch Checksum: 3ce3d4d6 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxPounceGoal.binpatch Checksum: 78b272a8 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxSearchForItemsGoal.binpatch Checksum: f194c6f9 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$FoxStrollThroughVillageGoal.binpatch Checksum: b22a46d6 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$PerchAndSearchGoal.binpatch Checksum: d655248c Exists: true Reading patch net.minecraft.world.entity.animal.Fox$SeekShelterGoal.binpatch Checksum: 6d44ebed Exists: true Reading patch net.minecraft.world.entity.animal.Fox$SleepGoal.binpatch Checksum: 67731ac1 Exists: true Reading patch net.minecraft.world.entity.animal.Fox$StalkPreyGoal.binpatch Checksum: dc9587e Exists: true Reading patch net.minecraft.world.entity.animal.Fox$Type.binpatch Checksum: 1166eee6 Exists: true Reading patch net.minecraft.world.entity.animal.Fox.binpatch Checksum: 3c68290 Exists: true Reading patch net.minecraft.world.entity.animal.IronGolem$Crackiness.binpatch Checksum: 1914b648 Exists: true Reading patch net.minecraft.world.entity.animal.IronGolem.binpatch Checksum: 5d6bce91 Exists: true Reading patch net.minecraft.world.entity.animal.MushroomCow$MushroomType.binpatch Checksum: d7659688 Exists: true Reading patch net.minecraft.world.entity.animal.MushroomCow.binpatch Checksum: 46d35367 Exists: true Reading patch net.minecraft.world.entity.animal.Ocelot$OcelotAvoidEntityGoal.binpatch Checksum: 43b1d9c0 Exists: true Reading patch net.minecraft.world.entity.animal.Ocelot$OcelotTemptGoal.binpatch Checksum: 75e125a3 Exists: true Reading patch net.minecraft.world.entity.animal.Ocelot.binpatch Checksum: 6e50d25 Exists: true Reading patch net.minecraft.world.entity.animal.Parrot$1.binpatch Checksum: 48ec3f69 Exists: true Reading patch net.minecraft.world.entity.animal.Parrot.binpatch Checksum: 9f055ac7 Exists: true Reading patch net.minecraft.world.entity.animal.Pig.binpatch Checksum: 937a7d71 Exists: true Reading patch net.minecraft.world.entity.animal.Rabbit$EvilRabbitAttackGoal.binpatch Checksum: 3a181464 Exists: true Reading patch net.minecraft.world.entity.animal.Rabbit$RabbitAvoidEntityGoal.binpatch Checksum: ecb5a0ac Exists: true Reading patch net.minecraft.world.entity.animal.Rabbit$RabbitGroupData.binpatch Checksum: af5aad86 Exists: true Reading patch net.minecraft.world.entity.animal.Rabbit$RabbitJumpControl.binpatch Checksum: 96f21e9a Exists: true Reading patch net.minecraft.world.entity.animal.Rabbit$RabbitMoveControl.binpatch Checksum: c1b7a071 Exists: true Reading patch net.minecraft.world.entity.animal.Rabbit$RabbitPanicGoal.binpatch Checksum: 35ce08f Exists: true Reading patch net.minecraft.world.entity.animal.Rabbit$RaidGardenGoal.binpatch Checksum: 9c4d4e80 Exists: true Reading patch net.minecraft.world.entity.animal.Rabbit.binpatch Checksum: 6d921086 Exists: true Reading patch net.minecraft.world.entity.animal.Sheep$1.binpatch Checksum: 77db2726 Exists: true Reading patch net.minecraft.world.entity.animal.Sheep$2.binpatch Checksum: 597a4ce7 Exists: true Reading patch net.minecraft.world.entity.animal.Sheep.binpatch Checksum: 67518d82 Exists: true Reading patch net.minecraft.world.entity.animal.SnowGolem.binpatch Checksum: 5e23c019 Exists: true Reading patch net.minecraft.world.entity.animal.Wolf$WolfAvoidEntityGoal.binpatch Checksum: b2b1915f Exists: true Reading patch net.minecraft.world.entity.animal.Wolf.binpatch Checksum: 1610181d Exists: true Reading patch net.minecraft.world.entity.animal.horse.AbstractHorse$1.binpatch Checksum: 8bbeed62 Exists: true Reading patch net.minecraft.world.entity.animal.horse.AbstractHorse.binpatch Checksum: 3509e318 Exists: true Reading patch net.minecraft.world.entity.animal.horse.Horse$HorseGroupData.binpatch Checksum: e5c6dae7 Exists: true Reading patch net.minecraft.world.entity.animal.horse.Horse.binpatch Checksum: 4497fa74 Exists: true Reading patch net.minecraft.world.entity.animal.horse.SkeletonTrapGoal.binpatch Checksum: f58475a8 Exists: true Reading patch net.minecraft.world.entity.boss.EnderDragonPart.binpatch Checksum: e49eba9 Exists: true Reading patch net.minecraft.world.entity.boss.enderdragon.EnderDragon.binpatch Checksum: 42d78455 Exists: true Reading patch net.minecraft.world.entity.boss.wither.WitherBoss$WitherDoNothingGoal.binpatch Checksum: a6053bb3 Exists: true Reading patch net.minecraft.world.entity.boss.wither.WitherBoss.binpatch Checksum: 99441c1d Exists: true Reading patch net.minecraft.world.entity.decoration.ArmorStand$1.binpatch Checksum: 8243d5f6 Exists: true Reading patch net.minecraft.world.entity.decoration.ArmorStand.binpatch Checksum: 7e7f0fcf Exists: true Reading patch net.minecraft.world.entity.decoration.HangingEntity$1.binpatch Checksum: 3469ce34 Exists: true Reading patch net.minecraft.world.entity.decoration.HangingEntity.binpatch Checksum: 27d6f52 Exists: true Reading patch net.minecraft.world.entity.decoration.Motive.binpatch Checksum: 2562b549 Exists: true Reading patch net.minecraft.world.entity.item.ItemEntity.binpatch Checksum: e89df57a Exists: true Reading patch net.minecraft.world.entity.monster.AbstractSkeleton$1.binpatch Checksum: 34ed1e51 Exists: true Reading patch net.minecraft.world.entity.monster.AbstractSkeleton.binpatch Checksum: 70d4f00b Exists: true Reading patch net.minecraft.world.entity.monster.Creeper.binpatch Checksum: 6b7130eb Exists: true Reading patch net.minecraft.world.entity.monster.CrossbowAttackMob.binpatch Checksum: 845c65fd Exists: true Reading patch net.minecraft.world.entity.monster.EnderMan$EndermanFreezeWhenLookedAt.binpatch Checksum: 36297e82 Exists: true Reading patch net.minecraft.world.entity.monster.EnderMan$EndermanLeaveBlockGoal.binpatch Checksum: 7d1d96b1 Exists: true Reading patch net.minecraft.world.entity.monster.EnderMan$EndermanLookForPlayerGoal.binpatch Checksum: fc704a76 Exists: true Reading patch net.minecraft.world.entity.monster.EnderMan$EndermanTakeBlockGoal.binpatch Checksum: 8f813d91 Exists: true Reading patch net.minecraft.world.entity.monster.EnderMan.binpatch Checksum: 1b27ba1c Exists: true Reading patch net.minecraft.world.entity.monster.Evoker$EvokerAttackSpellGoal.binpatch Checksum: 796da674 Exists: true Reading patch net.minecraft.world.entity.monster.Evoker$EvokerCastingSpellGoal.binpatch Checksum: 86b3b12b Exists: true Reading patch net.minecraft.world.entity.monster.Evoker$EvokerSummonSpellGoal.binpatch Checksum: 77e2c07b Exists: true Reading patch net.minecraft.world.entity.monster.Evoker$EvokerWololoSpellGoal.binpatch Checksum: c13e78cf Exists: true Reading patch net.minecraft.world.entity.monster.Evoker.binpatch Checksum: 41698800 Exists: true Reading patch net.minecraft.world.entity.monster.Illusioner$IllusionerBlindnessSpellGoal.binpatch Checksum: 2c37185 Exists: true Reading patch net.minecraft.world.entity.monster.Illusioner$IllusionerMirrorSpellGoal.binpatch Checksum: 6c8a7ea7 Exists: true Reading patch net.minecraft.world.entity.monster.Illusioner.binpatch Checksum: 42e688f2 Exists: true Reading patch net.minecraft.world.entity.monster.MagmaCube.binpatch Checksum: 286cedfc Exists: true Reading patch net.minecraft.world.entity.monster.Pillager.binpatch Checksum: acd59571 Exists: true Reading patch net.minecraft.world.entity.monster.Ravager$RavagerMeleeAttackGoal.binpatch Checksum: e3f923cf Exists: true Reading patch net.minecraft.world.entity.monster.Ravager$RavagerNavigation.binpatch Checksum: 76b76758 Exists: true Reading patch net.minecraft.world.entity.monster.Ravager$RavagerNodeEvaluator.binpatch Checksum: ef65054 Exists: true Reading patch net.minecraft.world.entity.monster.Ravager.binpatch Checksum: c83ef37c Exists: true Reading patch net.minecraft.world.entity.monster.Silverfish$SilverfishMergeWithStoneGoal.binpatch Checksum: aa0bc5a0 Exists: true Reading patch net.minecraft.world.entity.monster.Silverfish$SilverfishWakeUpFriendsGoal.binpatch Checksum: da8d77d4 Exists: true Reading patch net.minecraft.world.entity.monster.Silverfish.binpatch Checksum: cbe989e9 Exists: true Reading patch net.minecraft.world.entity.monster.Slime$SlimeAttackGoal.binpatch Checksum: eacd2c20 Exists: true Reading patch net.minecraft.world.entity.monster.Slime$SlimeFloatGoal.binpatch Checksum: 36b62212 Exists: true Reading patch net.minecraft.world.entity.monster.Slime$SlimeKeepOnJumpingGoal.binpatch Checksum: a2da765d Exists: true Reading patch net.minecraft.world.entity.monster.Slime$SlimeMoveControl.binpatch Checksum: c2fb2d0b Exists: true Reading patch net.minecraft.world.entity.monster.Slime$SlimeRandomDirectionGoal.binpatch Checksum: 8d044168 Exists: true Reading patch net.minecraft.world.entity.monster.Slime.binpatch Checksum: 1bcf687e Exists: true Reading patch net.minecraft.world.entity.monster.Spider$SpiderAttackGoal.binpatch Checksum: 6fa6a46b Exists: true Reading patch net.minecraft.world.entity.monster.Spider$SpiderEffectsGroupData.binpatch Checksum: 36530e4d Exists: true Reading patch net.minecraft.world.entity.monster.Spider$SpiderTargetGoal.binpatch Checksum: d67db61d Exists: true Reading patch net.minecraft.world.entity.monster.Spider.binpatch Checksum: 32726598 Exists: true Reading patch net.minecraft.world.entity.monster.Zombie$ZombieAttackTurtleEggGoal.binpatch Checksum: 8c75dd37 Exists: true Reading patch net.minecraft.world.entity.monster.Zombie$ZombieGroupData.binpatch Checksum: b7929e1d Exists: true Reading patch net.minecraft.world.entity.monster.Zombie.binpatch Checksum: 58ddced4 Exists: true Reading patch net.minecraft.world.entity.monster.ZombieVillager.binpatch Checksum: 94d6722b Exists: true Reading patch net.minecraft.world.entity.monster.hoglin.Hoglin.binpatch Checksum: c30d1b86 Exists: true Reading patch net.minecraft.world.entity.monster.piglin.AbstractPiglin.binpatch Checksum: 6faf0a90 Exists: true Reading patch net.minecraft.world.entity.monster.piglin.Piglin.binpatch Checksum: c982e0e6 Exists: true Reading patch net.minecraft.world.entity.monster.piglin.PiglinAi.binpatch Checksum: 5f5393dd Exists: true Reading patch net.minecraft.world.entity.monster.piglin.StopHoldingItemIfNoLongerAdmiring.binpatch Checksum: 14648b4 Exists: true Reading patch net.minecraft.world.entity.npc.AbstractVillager.binpatch Checksum: 7b4932d5 Exists: true Reading patch net.minecraft.world.entity.npc.CatSpawner.binpatch Checksum: 2bc8904e Exists: true Reading patch net.minecraft.world.entity.npc.Villager.binpatch Checksum: 9f9694f2 Exists: true Reading patch net.minecraft.world.entity.npc.VillagerProfession.binpatch Checksum: 3a1c797 Exists: true Reading patch net.minecraft.world.entity.player.Inventory.binpatch Checksum: f51381c2 Exists: true Reading patch net.minecraft.world.entity.player.Player$1.binpatch Checksum: d2dac1f0 Exists: true Reading patch net.minecraft.world.entity.player.Player$BedSleepingProblem.binpatch Checksum: c89a9f37 Exists: true Reading patch net.minecraft.world.entity.player.Player.binpatch Checksum: 3c518457 Exists: true Reading patch net.minecraft.world.entity.projectile.AbstractArrow$1.binpatch Checksum: c610da04 Exists: true Reading patch net.minecraft.world.entity.projectile.AbstractArrow$Pickup.binpatch Checksum: 74bfacae Exists: true Reading patch net.minecraft.world.entity.projectile.AbstractArrow.binpatch Checksum: ab4cec8a Exists: true Reading patch net.minecraft.world.entity.projectile.AbstractHurtingProjectile.binpatch Checksum: 9ee06a55 Exists: true Reading patch net.minecraft.world.entity.projectile.FireworkRocketEntity.binpatch Checksum: b01d2c4a Exists: true Reading patch net.minecraft.world.entity.projectile.FishingHook$1.binpatch Checksum: 782deb37 Exists: true Reading patch net.minecraft.world.entity.projectile.FishingHook$FishHookState.binpatch Checksum: a5c785a6 Exists: true Reading patch net.minecraft.world.entity.projectile.FishingHook$OpenWaterType.binpatch Checksum: 57db8935 Exists: true Reading patch net.minecraft.world.entity.projectile.FishingHook.binpatch Checksum: 60abfc17 Exists: true Reading patch net.minecraft.world.entity.projectile.LargeFireball.binpatch Checksum: ef90279d Exists: true Reading patch net.minecraft.world.entity.projectile.LlamaSpit.binpatch Checksum: c9598bf3 Exists: true Reading patch net.minecraft.world.entity.projectile.Projectile.binpatch Checksum: 38e73b58 Exists: true Reading patch net.minecraft.world.entity.projectile.ProjectileUtil.binpatch Checksum: e4838543 Exists: true Reading patch net.minecraft.world.entity.projectile.ShulkerBullet.binpatch Checksum: 83f46ef1 Exists: true Reading patch net.minecraft.world.entity.projectile.SmallFireball.binpatch Checksum: dc97de90 Exists: true Reading patch net.minecraft.world.entity.projectile.ThrowableProjectile.binpatch Checksum: 3e820622 Exists: true Reading patch net.minecraft.world.entity.projectile.ThrownEnderpearl.binpatch Checksum: 199cda68 Exists: true Reading patch net.minecraft.world.entity.projectile.WitherSkull.binpatch Checksum: 27a9daf Exists: true Reading patch net.minecraft.world.entity.raid.Raid$1.binpatch Checksum: 87302b3b Exists: true Reading patch net.minecraft.world.entity.raid.Raid$RaidStatus.binpatch Checksum: 1205e217 Exists: true Reading patch net.minecraft.world.entity.raid.Raid$RaiderType.binpatch Checksum: 794787b0 Exists: true Reading patch net.minecraft.world.entity.raid.Raid.binpatch Checksum: ec7a4e8a Exists: true Reading patch net.minecraft.world.entity.schedule.Activity.binpatch Checksum: bdd9730d Exists: true Reading patch net.minecraft.world.entity.schedule.Schedule.binpatch Checksum: bdd4a7c6 Exists: true Reading patch net.minecraft.world.entity.vehicle.AbstractMinecart$1.binpatch Checksum: 5f4b85d8 Exists: true Reading patch net.minecraft.world.entity.vehicle.AbstractMinecart$Type.binpatch Checksum: 5beca85d Exists: true Reading patch net.minecraft.world.entity.vehicle.AbstractMinecart.binpatch Checksum: 7e005200 Exists: true Reading patch net.minecraft.world.entity.vehicle.AbstractMinecartContainer$1.binpatch Checksum: ad6a65e1 Exists: true Reading patch net.minecraft.world.entity.vehicle.AbstractMinecartContainer.binpatch Checksum: 5cb194b4 Exists: true Reading patch net.minecraft.world.entity.vehicle.Boat$1.binpatch Checksum: 4fab7600 Exists: true Reading patch net.minecraft.world.entity.vehicle.Boat$Status.binpatch Checksum: 542279ad Exists: true Reading patch net.minecraft.world.entity.vehicle.Boat$Type.binpatch Checksum: 16e100bc Exists: true Reading patch net.minecraft.world.entity.vehicle.Boat.binpatch Checksum: 2c9956bb Exists: true Reading patch net.minecraft.world.entity.vehicle.Minecart.binpatch Checksum: 47bb0504 Exists: true Reading patch net.minecraft.world.entity.vehicle.MinecartCommandBlock$MinecartCommandBase.binpatch Checksum: 13742063 Exists: true Reading patch net.minecraft.world.entity.vehicle.MinecartCommandBlock.binpatch Checksum: 9f241cd9 Exists: true Reading patch net.minecraft.world.entity.vehicle.MinecartFurnace.binpatch Checksum: 9e8a9805 Exists: true Reading patch net.minecraft.world.entity.vehicle.MinecartSpawner$1.binpatch Checksum: b9523ff Exists: true Reading patch net.minecraft.world.entity.vehicle.MinecartSpawner.binpatch Checksum: c65494c3 Exists: true Reading patch net.minecraft.world.food.FoodProperties$Builder.binpatch Checksum: a7c52b8b Exists: true Reading patch net.minecraft.world.food.FoodProperties.binpatch Checksum: aeffc4df Exists: true Reading patch net.minecraft.world.inventory.AbstractContainerMenu$1.binpatch Checksum: ebcc340e Exists: true Reading patch net.minecraft.world.inventory.AbstractContainerMenu.binpatch Checksum: 40be69e3 Exists: true Reading patch net.minecraft.world.inventory.AbstractFurnaceMenu.binpatch Checksum: 2c645a40 Exists: true Reading patch net.minecraft.world.inventory.AnvilMenu$1.binpatch Checksum: 296cf41d Exists: true Reading patch net.minecraft.world.inventory.AnvilMenu.binpatch Checksum: f60774a0 Exists: true Reading patch net.minecraft.world.inventory.BeaconMenu$1.binpatch Checksum: c0b635e1 Exists: true Reading patch net.minecraft.world.inventory.BeaconMenu$PaymentSlot.binpatch Checksum: f6146f2d Exists: true Reading patch net.minecraft.world.inventory.BeaconMenu.binpatch Checksum: c0f220f8 Exists: true Reading patch net.minecraft.world.inventory.BrewingStandMenu$FuelSlot.binpatch Checksum: 815d2a61 Exists: true Reading patch net.minecraft.world.inventory.BrewingStandMenu$IngredientsSlot.binpatch Checksum: 14a1fc32 Exists: true Reading patch net.minecraft.world.inventory.BrewingStandMenu$PotionSlot.binpatch Checksum: fcf87cba Exists: true Reading patch net.minecraft.world.inventory.BrewingStandMenu.binpatch Checksum: 5044aed9 Exists: true Reading patch net.minecraft.world.inventory.EnchantmentMenu$1.binpatch Checksum: fe81d0ad Exists: true Reading patch net.minecraft.world.inventory.EnchantmentMenu$2.binpatch Checksum: 3d6c41fa Exists: true Reading patch net.minecraft.world.inventory.EnchantmentMenu$3.binpatch Checksum: 3d228351 Exists: true Reading patch net.minecraft.world.inventory.EnchantmentMenu.binpatch Checksum: 60afb5d5 Exists: true Reading patch net.minecraft.world.inventory.FurnaceResultSlot.binpatch Checksum: ea5a7ea5 Exists: true Reading patch net.minecraft.world.inventory.GrindstoneMenu$1.binpatch Checksum: b1cbcf2b Exists: true Reading patch net.minecraft.world.inventory.GrindstoneMenu$2.binpatch Checksum: 9da798dc Exists: true Reading patch net.minecraft.world.inventory.GrindstoneMenu$3.binpatch Checksum: 961398e3 Exists: true Reading patch net.minecraft.world.inventory.GrindstoneMenu$4.binpatch Checksum: 10061844 Exists: true Reading patch net.minecraft.world.inventory.GrindstoneMenu.binpatch Checksum: da47fd3b Exists: true Reading patch net.minecraft.world.inventory.InventoryMenu$1.binpatch Checksum: 30f21d9e Exists: true Reading patch net.minecraft.world.inventory.InventoryMenu$2.binpatch Checksum: aa92aafd Exists: true Reading patch net.minecraft.world.inventory.InventoryMenu.binpatch Checksum: 5ff5bf0c Exists: true Reading patch net.minecraft.world.inventory.MenuType$MenuSupplier.binpatch Checksum: 9b60b38d Exists: true Reading patch net.minecraft.world.inventory.MenuType.binpatch Checksum: bdcd69df Exists: true Reading patch net.minecraft.world.inventory.RecipeBookMenu.binpatch Checksum: 50e05c1e Exists: true Reading patch net.minecraft.world.inventory.ResultSlot.binpatch Checksum: 1fd9fa0e Exists: true Reading patch net.minecraft.world.inventory.Slot.binpatch Checksum: 23ce6cb6 Exists: true Reading patch net.minecraft.world.item.ArmorItem$1.binpatch Checksum: c5c8086d Exists: true Reading patch net.minecraft.world.item.ArmorItem.binpatch Checksum: e27abb6b Exists: true Reading patch net.minecraft.world.item.ArrowItem.binpatch Checksum: 195078d1 Exists: true Reading patch net.minecraft.world.item.AxeItem.binpatch Checksum: 5171c0b3 Exists: true Reading patch net.minecraft.world.item.BlockItem.binpatch Checksum: cc52907c Exists: true Reading patch net.minecraft.world.item.BoneMealItem.binpatch Checksum: 1e35fc7e Exists: true Reading patch net.minecraft.world.item.BowItem.binpatch Checksum: 80b0bf9a Exists: true Reading patch net.minecraft.world.item.BucketItem.binpatch Checksum: e7fe49af Exists: true Reading patch net.minecraft.world.item.ChorusFruitItem.binpatch Checksum: 4965e93 Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$1.binpatch Checksum: 63cd7e1 Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$10.binpatch Checksum: ca8046ec Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$11.binpatch Checksum: 953d722a Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$12.binpatch Checksum: 88fd8e4 Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$2.binpatch Checksum: 8909d815 Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$3.binpatch Checksum: 2b54d1fa Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$4.binpatch Checksum: 3a0dd807 Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$5.binpatch Checksum: 1a6bd20c Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$6.binpatch Checksum: 74f3d235 Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$7.binpatch Checksum: 6dcfd279 Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$8.binpatch Checksum: 5a50d287 Exists: true Reading patch net.minecraft.world.item.CreativeModeTab$9.binpatch Checksum: 457cd284 Exists: true Reading patch net.minecraft.world.item.CreativeModeTab.binpatch Checksum: 9ca635f0 Exists: true Reading patch net.minecraft.world.item.DiggerItem.binpatch Checksum: ce32a44c Exists: true Reading patch net.minecraft.world.item.DyeColor.binpatch Checksum: ff3109ce Exists: true Reading patch net.minecraft.world.item.DyeableHorseArmorItem.binpatch Checksum: b391d938 Exists: true Reading patch net.minecraft.world.item.ElytraItem.binpatch Checksum: 8a4f0449 Exists: true Reading patch net.minecraft.world.item.HoeItem.binpatch Checksum: 6173b0b0 Exists: true Reading patch net.minecraft.world.item.HorseArmorItem.binpatch Checksum: 5f31b7fc Exists: true Reading patch net.minecraft.world.item.Item$1.binpatch Checksum: 6edeb246 Exists: true Reading patch net.minecraft.world.item.Item$Properties.binpatch Checksum: c4b31b3b Exists: true Reading patch net.minecraft.world.item.Item.binpatch Checksum: 265a028 Exists: true Reading patch net.minecraft.world.item.ItemStack$TooltipPart.binpatch Checksum: e374ada9 Exists: true Reading patch net.minecraft.world.item.ItemStack.binpatch Checksum: 6c191e6e Exists: true Reading patch net.minecraft.world.item.Items.binpatch Checksum: e947ccf Exists: true Reading patch net.minecraft.world.item.MapItem.binpatch Checksum: fb4ba5f9 Exists: true Reading patch net.minecraft.world.item.MilkBucketItem.binpatch Checksum: a27c6808 Exists: true Reading patch net.minecraft.world.item.MinecartItem$1.binpatch Checksum: 74dab3bf Exists: true Reading patch net.minecraft.world.item.MinecartItem.binpatch Checksum: a69ed89d Exists: true Reading patch net.minecraft.world.item.MobBucketItem.binpatch Checksum: adbcd0a2 Exists: true Reading patch net.minecraft.world.item.PickaxeItem.binpatch Checksum: 136b306c Exists: true Reading patch net.minecraft.world.item.Rarity.binpatch Checksum: b9a58839 Exists: true Reading patch net.minecraft.world.item.RecordItem.binpatch Checksum: 46d486be Exists: true Reading patch net.minecraft.world.item.ShearsItem.binpatch Checksum: 54f79a61 Exists: true Reading patch net.minecraft.world.item.ShieldItem.binpatch Checksum: dc3251cd Exists: true Reading patch net.minecraft.world.item.ShovelItem.binpatch Checksum: 288ffc Exists: true Reading patch net.minecraft.world.item.StandingAndWallBlockItem.binpatch Checksum: 8a6e4138 Exists: true Reading patch net.minecraft.world.item.SwordItem.binpatch Checksum: 54fbbc63 Exists: true Reading patch net.minecraft.world.item.Tier.binpatch Checksum: f1213f49 Exists: true Reading patch net.minecraft.world.item.Tiers.binpatch Checksum: efb7f560 Exists: true Reading patch net.minecraft.world.item.alchemy.Potion.binpatch Checksum: 326ae518 Exists: true Reading patch net.minecraft.world.item.alchemy.PotionBrewing$Mix.binpatch Checksum: 1b3b27ab Exists: true Reading patch net.minecraft.world.item.alchemy.PotionBrewing.binpatch Checksum: 74a4cf1 Exists: true Reading patch net.minecraft.world.item.crafting.AbstractCookingRecipe.binpatch Checksum: 4693ffd9 Exists: true Reading patch net.minecraft.world.item.crafting.ArmorDyeRecipe.binpatch Checksum: 12bccf7e Exists: true Reading patch net.minecraft.world.item.crafting.BannerDuplicateRecipe.binpatch Checksum: 3a90fd88 Exists: true Reading patch net.minecraft.world.item.crafting.BlastingRecipe.binpatch Checksum: 95144992 Exists: true Reading patch net.minecraft.world.item.crafting.BookCloningRecipe.binpatch Checksum: 59c5e43 Exists: true Reading patch net.minecraft.world.item.crafting.CampfireCookingRecipe.binpatch Checksum: 62834f06 Exists: true Reading patch net.minecraft.world.item.crafting.FireworkRocketRecipe.binpatch Checksum: 5c5a3f2 Exists: true Reading patch net.minecraft.world.item.crafting.FireworkStarFadeRecipe.binpatch Checksum: 7158944f Exists: true Reading patch net.minecraft.world.item.crafting.FireworkStarRecipe.binpatch Checksum: 406b7b4e Exists: true Reading patch net.minecraft.world.item.crafting.Ingredient$ItemValue.binpatch Checksum: 3420ea2a Exists: true Reading patch net.minecraft.world.item.crafting.Ingredient$TagValue.binpatch Checksum: bae3ffb6 Exists: true Reading patch net.minecraft.world.item.crafting.Ingredient$Value.binpatch Checksum: 53357f83 Exists: true Reading patch net.minecraft.world.item.crafting.Ingredient.binpatch Checksum: c8f09700 Exists: true Reading patch net.minecraft.world.item.crafting.MapCloningRecipe.binpatch Checksum: 243dfccc Exists: true Reading patch net.minecraft.world.item.crafting.Recipe.binpatch Checksum: 347d2f97 Exists: true Reading patch net.minecraft.world.item.crafting.RecipeManager.binpatch Checksum: a9bb03c9 Exists: true Reading patch net.minecraft.world.item.crafting.RecipeSerializer.binpatch Checksum: cc01e5aa Exists: true Reading patch net.minecraft.world.item.crafting.RepairItemRecipe.binpatch Checksum: ad2de59d Exists: true Reading patch net.minecraft.world.item.crafting.ShapedRecipe$Serializer.binpatch Checksum: f1f19ad3 Exists: true Reading patch net.minecraft.world.item.crafting.ShapedRecipe.binpatch Checksum: 9e95dc76 Exists: true Reading patch net.minecraft.world.item.crafting.ShapelessRecipe$Serializer.binpatch Checksum: 23474954 Exists: true Reading patch net.minecraft.world.item.crafting.ShapelessRecipe.binpatch Checksum: 648588d4 Exists: true Reading patch net.minecraft.world.item.crafting.ShieldDecorationRecipe.binpatch Checksum: 645efb1f Exists: true Reading patch net.minecraft.world.item.crafting.ShulkerBoxColoring.binpatch Checksum: 68dad77d Exists: true Reading patch net.minecraft.world.item.crafting.SimpleCookingSerializer$CookieBaker.binpatch Checksum: d13a22f4 Exists: true Reading patch net.minecraft.world.item.crafting.SimpleCookingSerializer.binpatch Checksum: 76d45bf4 Exists: true Reading patch net.minecraft.world.item.crafting.SimpleRecipeSerializer.binpatch Checksum: 28aed715 Exists: true Reading patch net.minecraft.world.item.crafting.SingleItemRecipe$Serializer$SingleItemMaker.binpatch Checksum: 94463d1e Exists: true Reading patch net.minecraft.world.item.crafting.SingleItemRecipe$Serializer.binpatch Checksum: b56b7301 Exists: true Reading patch net.minecraft.world.item.crafting.SingleItemRecipe.binpatch Checksum: 69e9395b Exists: true Reading patch net.minecraft.world.item.crafting.SmeltingRecipe.binpatch Checksum: 41c4970 Exists: true Reading patch net.minecraft.world.item.crafting.SmokingRecipe.binpatch Checksum: 773848b1 Exists: true Reading patch net.minecraft.world.item.crafting.StonecutterRecipe.binpatch Checksum: 4869b7d3 Exists: true Reading patch net.minecraft.world.item.crafting.SuspiciousStewRecipe.binpatch Checksum: 6f15988b Exists: true Reading patch net.minecraft.world.item.crafting.TippedArrowRecipe.binpatch Checksum: 6922b4e4 Exists: true Reading patch net.minecraft.world.item.crafting.UpgradeRecipe$Serializer.binpatch Checksum: 7f667055 Exists: true Reading patch net.minecraft.world.item.crafting.UpgradeRecipe.binpatch Checksum: c3cc4e70 Exists: true Reading patch net.minecraft.world.item.enchantment.DiggingEnchantment.binpatch Checksum: e0f8f334 Exists: true Reading patch net.minecraft.world.item.enchantment.Enchantment$Rarity.binpatch Checksum: 5ad498dd Exists: true Reading patch net.minecraft.world.item.enchantment.Enchantment.binpatch Checksum: aa1b3fc4 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$1.binpatch Checksum: 8b92b541 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$10.binpatch Checksum: 2ec4b8c6 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$11.binpatch Checksum: 573bb55c Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$12.binpatch Checksum: b3ff351 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$13.binpatch Checksum: 7475b79b Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$14.binpatch Checksum: 159915f0 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$2.binpatch Checksum: a5bb0012 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$3.binpatch Checksum: bff60026 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$4.binpatch Checksum: d510089 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$5.binpatch Checksum: 20e40087 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$6.binpatch Checksum: 125db609 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$7.binpatch Checksum: db4eb652 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$8.binpatch Checksum: e10fb7f8 Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory$9.binpatch Checksum: 137bb6fa Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentCategory.binpatch Checksum: 25a8d99e Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentHelper$EnchantmentVisitor.binpatch Checksum: 8b25867b Exists: true Reading patch net.minecraft.world.item.enchantment.EnchantmentHelper.binpatch Checksum: cf96b88d Exists: true Reading patch net.minecraft.world.item.enchantment.Enchantments.binpatch Checksum: 43a2ca0 Exists: true Reading patch net.minecraft.world.item.enchantment.FrostWalkerEnchantment.binpatch Checksum: 81c78f39 Exists: true Reading patch net.minecraft.world.item.trading.MerchantOffer.binpatch Checksum: 728b622b Exists: true Reading patch net.minecraft.world.level.BaseSpawner.binpatch Checksum: a151d88a Exists: true Reading patch net.minecraft.world.level.BlockGetter.binpatch Checksum: d5cdc779 Exists: true Reading patch net.minecraft.world.level.ClipContext$Block.binpatch Checksum: ea29f797 Exists: true Reading patch net.minecraft.world.level.ClipContext$Fluid.binpatch Checksum: 9bb5204a Exists: true Reading patch net.minecraft.world.level.ClipContext$ShapeGetter.binpatch Checksum: 2fac9ec4 Exists: true Reading patch net.minecraft.world.level.ClipContext.binpatch Checksum: 59f6e010 Exists: true Reading patch net.minecraft.world.level.DataPackConfig.binpatch Checksum: f1717896 Exists: true Reading patch net.minecraft.world.level.Explosion$BlockInteraction.binpatch Checksum: cd87651e Exists: true Reading patch net.minecraft.world.level.Explosion.binpatch Checksum: 5a720ff7 Exists: true Reading patch net.minecraft.world.level.ExplosionDamageCalculator.binpatch Checksum: 49e2a8c0 Exists: true Reading patch net.minecraft.world.level.ForcedChunksSavedData.binpatch Checksum: c3a76757 Exists: true Reading patch net.minecraft.world.level.Level$1.binpatch Checksum: 49834c82 Exists: true Reading patch net.minecraft.world.level.Level.binpatch Checksum: 379f3719 Exists: true Reading patch net.minecraft.world.level.LevelReader.binpatch Checksum: 597bb06f Exists: true Reading patch net.minecraft.world.level.LevelSettings.binpatch Checksum: ba12e5f3 Exists: true Reading patch net.minecraft.world.level.NaturalSpawner$1.binpatch Checksum: d770e009 Exists: true Reading patch net.minecraft.world.level.NaturalSpawner$AfterSpawnCallback.binpatch Checksum: 596c84bb Exists: true Reading patch net.minecraft.world.level.NaturalSpawner$ChunkGetter.binpatch Checksum: 95359a1d Exists: true Reading patch net.minecraft.world.level.NaturalSpawner$SpawnPredicate.binpatch Checksum: 2cc1c8c2 Exists: true Reading patch net.minecraft.world.level.NaturalSpawner$SpawnState.binpatch Checksum: 71c057ea Exists: true Reading patch net.minecraft.world.level.NaturalSpawner.binpatch Checksum: 8a535745 Exists: true Reading patch net.minecraft.world.level.biome.Biome$1.binpatch Checksum: 3bd66317 Exists: true Reading patch net.minecraft.world.level.biome.Biome$BiomeBuilder.binpatch Checksum: d746a5b0 Exists: true Reading patch net.minecraft.world.level.biome.Biome$BiomeCategory.binpatch Checksum: 498a3ae7 Exists: true Reading patch net.minecraft.world.level.biome.Biome$ClimateParameters.binpatch Checksum: 461c553c Exists: true Reading patch net.minecraft.world.level.biome.Biome$ClimateSettings.binpatch Checksum: 3c1c102d Exists: true Reading patch net.minecraft.world.level.biome.Biome$Precipitation.binpatch Checksum: 8f2762dc Exists: true Reading patch net.minecraft.world.level.biome.Biome$TemperatureModifier$1.binpatch Checksum: be38d294 Exists: true Reading patch net.minecraft.world.level.biome.Biome$TemperatureModifier$2.binpatch Checksum: 32177182 Exists: true Reading patch net.minecraft.world.level.biome.Biome$TemperatureModifier.binpatch Checksum: 6bf9bcf9 Exists: true Reading patch net.minecraft.world.level.biome.Biome.binpatch Checksum: 3fcd411 Exists: true Reading patch net.minecraft.world.level.biome.BiomeGenerationSettings$Builder.binpatch Checksum: e2b00f39 Exists: true Reading patch net.minecraft.world.level.biome.BiomeGenerationSettings.binpatch Checksum: e1fd9bdd Exists: true Reading patch net.minecraft.world.level.biome.BiomeSpecialEffects$Builder.binpatch Checksum: ba1fdbd3 Exists: true Reading patch net.minecraft.world.level.biome.BiomeSpecialEffects$GrassColorModifier$1.binpatch Checksum: f8f4d075 Exists: true Reading patch net.minecraft.world.level.biome.BiomeSpecialEffects$GrassColorModifier$2.binpatch Checksum: b0c8d60a Exists: true Reading patch net.minecraft.world.level.biome.BiomeSpecialEffects$GrassColorModifier$3.binpatch Checksum: c7b73a22 Exists: true Reading patch net.minecraft.world.level.biome.BiomeSpecialEffects$GrassColorModifier$ColorModifier.binpatch Checksum: 0 Exists: false Reading patch net.minecraft.world.level.biome.BiomeSpecialEffects$GrassColorModifier.binpatch Checksum: 74a439f6 Exists: true Reading patch net.minecraft.world.level.biome.BiomeSpecialEffects.binpatch Checksum: 96ed5ea3 Exists: true Reading patch net.minecraft.world.level.biome.MobSpawnSettings$Builder.binpatch Checksum: ab1142df Exists: true Reading patch net.minecraft.world.level.biome.MobSpawnSettings$MobSpawnCost.binpatch Checksum: 84d50264 Exists: true Reading patch net.minecraft.world.level.biome.MobSpawnSettings$SpawnerData.binpatch Checksum: 572a96f3 Exists: true Reading patch net.minecraft.world.level.biome.MobSpawnSettings.binpatch Checksum: aca881f8 Exists: true Reading patch net.minecraft.world.level.biome.OverworldBiomeSource.binpatch Checksum: 8c30c41 Exists: true Reading patch net.minecraft.world.level.block.AbstractBannerBlock.binpatch Checksum: 832be048 Exists: true Reading patch net.minecraft.world.level.block.AttachedStemBlock.binpatch Checksum: 828655ed Exists: true Reading patch net.minecraft.world.level.block.BambooBlock.binpatch Checksum: 7548f990 Exists: true Reading patch net.minecraft.world.level.block.BambooSaplingBlock.binpatch Checksum: f696e90b Exists: true Reading patch net.minecraft.world.level.block.BannerBlock.binpatch Checksum: eaf10d35 Exists: true Reading patch net.minecraft.world.level.block.BaseFireBlock.binpatch Checksum: 6dcda937 Exists: true Reading patch net.minecraft.world.level.block.BaseRailBlock$1.binpatch Checksum: 17fee9ca Exists: true Reading patch net.minecraft.world.level.block.BaseRailBlock.binpatch Checksum: db6f4d03 Exists: true Reading patch net.minecraft.world.level.block.BeehiveBlock.binpatch Checksum: ce26d4e5 Exists: true Reading patch net.minecraft.world.level.block.BeetrootBlock.binpatch Checksum: dcfc34c7 Exists: true Reading patch net.minecraft.world.level.block.BigDripleafStemBlock$1.binpatch Checksum: 23b1bf03 Exists: true Reading patch net.minecraft.world.level.block.BigDripleafStemBlock.binpatch Checksum: 8b2843d1 Exists: true Reading patch net.minecraft.world.level.block.Block$1.binpatch Checksum: b28ece4d Exists: true Reading patch net.minecraft.world.level.block.Block$2.binpatch Checksum: cc61f74a Exists: true Reading patch net.minecraft.world.level.block.Block$BlockStatePairKey.binpatch Checksum: 50ee431c Exists: true Reading patch net.minecraft.world.level.block.Block.binpatch Checksum: b7a68e45 Exists: true Reading patch net.minecraft.world.level.block.Blocks.binpatch Checksum: 48144948 Exists: true Reading patch net.minecraft.world.level.block.BushBlock.binpatch Checksum: 6027a89b Exists: true Reading patch net.minecraft.world.level.block.CactusBlock.binpatch Checksum: 1f3b89cc Exists: true Reading patch net.minecraft.world.level.block.CampfireBlock.binpatch Checksum: f02c0b8f Exists: true Reading patch net.minecraft.world.level.block.CandleCakeBlock.binpatch Checksum: 64238534 Exists: true Reading patch net.minecraft.world.level.block.CarrotBlock.binpatch Checksum: c8d2b5f1 Exists: true Reading patch net.minecraft.world.level.block.CaveVinesBlock.binpatch Checksum: 6c58f045 Exists: true Reading patch net.minecraft.world.level.block.CaveVinesPlantBlock.binpatch Checksum: f337117e Exists: true Reading patch net.minecraft.world.level.block.ChestBlock$1.binpatch Checksum: 3435f435 Exists: true Reading patch net.minecraft.world.level.block.ChestBlock$2$1.binpatch Checksum: 456135a5 Exists: true Reading patch net.minecraft.world.level.block.ChestBlock$2.binpatch Checksum: ea7055 Exists: true Reading patch net.minecraft.world.level.block.ChestBlock$3.binpatch Checksum: 70ce0f51 Exists: true Reading patch net.minecraft.world.level.block.ChestBlock$4.binpatch Checksum: 8eaab725 Exists: true Reading patch net.minecraft.world.level.block.ChestBlock.binpatch Checksum: b08796cc Exists: true Reading patch net.minecraft.world.level.block.ChorusFlowerBlock.binpatch Checksum: 21a4ab3d Exists: true Reading patch net.minecraft.world.level.block.CocoaBlock$1.binpatch Checksum: 509db6e9 Exists: true Reading patch net.minecraft.world.level.block.CocoaBlock.binpatch Checksum: 81eedcda Exists: true Reading patch net.minecraft.world.level.block.ComparatorBlock.binpatch Checksum: fd0ec72a Exists: true Reading patch net.minecraft.world.level.block.CropBlock.binpatch Checksum: eba17079 Exists: true Reading patch net.minecraft.world.level.block.DeadBushBlock.binpatch Checksum: 79d9c647 Exists: true Reading patch net.minecraft.world.level.block.DetectorRailBlock$1.binpatch Checksum: 1e681a34 Exists: true Reading patch net.minecraft.world.level.block.DetectorRailBlock.binpatch Checksum: cebebf5a Exists: true Reading patch net.minecraft.world.level.block.DiodeBlock.binpatch Checksum: 62bc7912 Exists: true Reading patch net.minecraft.world.level.block.DoublePlantBlock.binpatch Checksum: add0f7b4 Exists: true Reading patch net.minecraft.world.level.block.DropperBlock.binpatch Checksum: 7dcc9669 Exists: true Reading patch net.minecraft.world.level.block.EnchantmentTableBlock.binpatch Checksum: 582e7cca Exists: true Reading patch net.minecraft.world.level.block.EndGatewayBlock.binpatch Checksum: 24976b54 Exists: true Reading patch net.minecraft.world.level.block.EndPortalBlock.binpatch Checksum: e7f82668 Exists: true Reading patch net.minecraft.world.level.block.FallingBlock.binpatch Checksum: 57e0a18a Exists: true Reading patch net.minecraft.world.level.block.FarmBlock.binpatch Checksum: b6c7526b Exists: true Reading patch net.minecraft.world.level.block.FireBlock.binpatch Checksum: 94f4000a Exists: true Reading patch net.minecraft.world.level.block.FlowerPotBlock.binpatch Checksum: abb92930 Exists: true Reading patch net.minecraft.world.level.block.FrostedIceBlock.binpatch Checksum: 93b5b8d3 Exists: true Reading patch net.minecraft.world.level.block.GrowingPlantBodyBlock.binpatch Checksum: d7fbd5cd Exists: true Reading patch net.minecraft.world.level.block.GrowingPlantHeadBlock.binpatch Checksum: fe57a71f Exists: true Reading patch net.minecraft.world.level.block.LeavesBlock.binpatch Checksum: 571e5304 Exists: true Reading patch net.minecraft.world.level.block.LightBlock.binpatch Checksum: 5c5bd3a4 Exists: true Reading patch net.minecraft.world.level.block.LiquidBlock.binpatch Checksum: c0328546 Exists: true Reading patch net.minecraft.world.level.block.MushroomBlock.binpatch Checksum: c95ec0cf Exists: true Reading patch net.minecraft.world.level.block.NetherPortalBlock$1.binpatch Checksum: 56941b4d Exists: true Reading patch net.minecraft.world.level.block.NetherPortalBlock.binpatch Checksum: 7138042c Exists: true Reading patch net.minecraft.world.level.block.NetherWartBlock.binpatch Checksum: fda0e98b Exists: true Reading patch net.minecraft.world.level.block.NoteBlock.binpatch Checksum: 2f8e3c89 Exists: true Reading patch net.minecraft.world.level.block.OreBlock.binpatch Checksum: c9edc279 Exists: true Reading patch net.minecraft.world.level.block.PotatoBlock.binpatch Checksum: a42b634 Exists: true Reading patch net.minecraft.world.level.block.PoweredRailBlock$1.binpatch Checksum: a7b719bb Exists: true Reading patch net.minecraft.world.level.block.PoweredRailBlock.binpatch Checksum: 4356c71b Exists: true Reading patch net.minecraft.world.level.block.PumpkinBlock.binpatch Checksum: 58489e3b Exists: true Reading patch net.minecraft.world.level.block.RailBlock$1.binpatch Checksum: 191130c Exists: true Reading patch net.minecraft.world.level.block.RailBlock.binpatch Checksum: 1edbd175 Exists: true Reading patch net.minecraft.world.level.block.RailState$1.binpatch Checksum: ac7f30de Exists: true Reading patch net.minecraft.world.level.block.RailState.binpatch Checksum: dd8848af Exists: true Reading patch net.minecraft.world.level.block.RedStoneOreBlock.binpatch Checksum: 7ef33d99 Exists: true Reading patch net.minecraft.world.level.block.SaplingBlock.binpatch Checksum: 52e8895 Exists: true Reading patch net.minecraft.world.level.block.SeagrassBlock.binpatch Checksum: 1c9895d1 Exists: true Reading patch net.minecraft.world.level.block.ShulkerBoxBlock$1.binpatch Checksum: c9cc528a Exists: true Reading patch net.minecraft.world.level.block.ShulkerBoxBlock.binpatch Checksum: 17f853c Exists: true Reading patch net.minecraft.world.level.block.SoundType.binpatch Checksum: dea2e9e Exists: true Reading patch net.minecraft.world.level.block.SpawnerBlock.binpatch Checksum: fad98c61 Exists: true Reading patch net.minecraft.world.level.block.SpreadingSnowyDirtBlock.binpatch Checksum: a8c2ffe1 Exists: true Reading patch net.minecraft.world.level.block.StairBlock$1.binpatch Checksum: dff44c9b Exists: true Reading patch net.minecraft.world.level.block.StairBlock.binpatch Checksum: 2b175d2f Exists: true Reading patch net.minecraft.world.level.block.StemBlock.binpatch Checksum: 68e0fcfe Exists: true Reading patch net.minecraft.world.level.block.SugarCaneBlock.binpatch Checksum: 7e8eae11 Exists: true Reading patch net.minecraft.world.level.block.SweetBerryBushBlock.binpatch Checksum: 99932f23 Exists: true Reading patch net.minecraft.world.level.block.TallGrassBlock.binpatch Checksum: 9b74ef6d Exists: true Reading patch net.minecraft.world.level.block.TallSeagrassBlock.binpatch Checksum: b31306fb Exists: true Reading patch net.minecraft.world.level.block.TntBlock.binpatch Checksum: dc0c89e1 Exists: true Reading patch net.minecraft.world.level.block.TrapDoorBlock$1.binpatch Checksum: 98df30ab Exists: true Reading patch net.minecraft.world.level.block.TrapDoorBlock.binpatch Checksum: 900a0197 Exists: true Reading patch net.minecraft.world.level.block.TripWireBlock$1.binpatch Checksum: 518920ca Exists: true Reading patch net.minecraft.world.level.block.TripWireBlock.binpatch Checksum: 5d801afb Exists: true Reading patch net.minecraft.world.level.block.TripWireHookBlock$1.binpatch Checksum: 60b0bc92 Exists: true Reading patch net.minecraft.world.level.block.TripWireHookBlock.binpatch Checksum: d577ccf Exists: true Reading patch net.minecraft.world.level.block.TurtleEggBlock.binpatch Checksum: fee7a12a Exists: true Reading patch net.minecraft.world.level.block.VineBlock$1.binpatch Checksum: ccc61cb2 Exists: true Reading patch net.minecraft.world.level.block.VineBlock.binpatch Checksum: 7593ff6f Exists: true Reading patch net.minecraft.world.level.block.WebBlock.binpatch Checksum: 4098a9a7 Exists: true Reading patch net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity$1.binpatch Checksum: dcf23869 Exists: true Reading patch net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity.binpatch Checksum: 28bd613b Exists: true Reading patch net.minecraft.world.level.block.entity.BannerPattern$Builder.binpatch Checksum: 4151861a Exists: true Reading patch net.minecraft.world.level.block.entity.BannerPattern.binpatch Checksum: 27a8d61a Exists: true Reading patch net.minecraft.world.level.block.entity.BaseContainerBlockEntity.binpatch Checksum: 30c6d278 Exists: true Reading patch net.minecraft.world.level.block.entity.BeaconBlockEntity$1.binpatch Checksum: 289329f1 Exists: true Reading patch net.minecraft.world.level.block.entity.BeaconBlockEntity$BeaconBeamSection.binpatch Checksum: b5bfb228 Exists: true Reading patch net.minecraft.world.level.block.entity.BeaconBlockEntity.binpatch Checksum: cc36ad6a Exists: true Reading patch net.minecraft.world.level.block.entity.BlockEntity.binpatch Checksum: bf852e51 Exists: true Reading patch net.minecraft.world.level.block.entity.BlockEntityType$BlockEntitySupplier.binpatch Checksum: 461af4e3 Exists: true Reading patch net.minecraft.world.level.block.entity.BlockEntityType$Builder.binpatch Checksum: 4f0bc4a1 Exists: true Reading patch net.minecraft.world.level.block.entity.BlockEntityType.binpatch Checksum: b2a06032 Exists: true Reading patch net.minecraft.world.level.block.entity.BrewingStandBlockEntity$1.binpatch Checksum: 3a7014e2 Exists: true Reading patch net.minecraft.world.level.block.entity.BrewingStandBlockEntity.binpatch Checksum: 2f0973f5 Exists: true Reading patch net.minecraft.world.level.block.entity.ChestBlockEntity$1.binpatch Checksum: 2ff8e310 Exists: true Reading patch net.minecraft.world.level.block.entity.ChestBlockEntity.binpatch Checksum: 76e04ce2 Exists: true Reading patch net.minecraft.world.level.block.entity.ConduitBlockEntity.binpatch Checksum: a99e734c Exists: true Reading patch net.minecraft.world.level.block.entity.HopperBlockEntity.binpatch Checksum: 4688d1ce Exists: true Reading patch net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity$1.binpatch Checksum: d05e0a96 Exists: true Reading patch net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity$AnimationStatus.binpatch Checksum: ad13b633 Exists: true Reading patch net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity.binpatch Checksum: 1d8f57b6 Exists: true Reading patch net.minecraft.world.level.block.entity.SpawnerBlockEntity$1.binpatch Checksum: 7c585659 Exists: true Reading patch net.minecraft.world.level.block.entity.SpawnerBlockEntity.binpatch Checksum: c2796c32 Exists: true Reading patch net.minecraft.world.level.block.piston.MovingPistonBlock.binpatch Checksum: 40715bbd Exists: true Reading patch net.minecraft.world.level.block.piston.PistonBaseBlock$1.binpatch Checksum: be34472 Exists: true Reading patch net.minecraft.world.level.block.piston.PistonBaseBlock.binpatch Checksum: d65e4ead Exists: true Reading patch net.minecraft.world.level.block.piston.PistonHeadBlock$1.binpatch Checksum: b95dd2f6 Exists: true Reading patch net.minecraft.world.level.block.piston.PistonHeadBlock.binpatch Checksum: 812736 Exists: true Reading patch net.minecraft.world.level.block.piston.PistonMovingBlockEntity$1.binpatch Checksum: 563f3788 Exists: true Reading patch net.minecraft.world.level.block.piston.PistonMovingBlockEntity.binpatch Checksum: 265f6a24 Exists: true Reading patch net.minecraft.world.level.block.piston.PistonStructureResolver.binpatch Checksum: 905ab6eb Exists: true Reading patch net.minecraft.world.level.block.state.BlockBehaviour$1.binpatch Checksum: 2394d79d Exists: true Reading patch net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase$Cache.binpatch Checksum: fcc5a08e Exists: true Reading patch net.minecraft.world.level.block.state.BlockBehaviour$BlockStateBase.binpatch Checksum: 1d2da889 Exists: true Reading patch net.minecraft.world.level.block.state.BlockBehaviour$OffsetType.binpatch Checksum: 6a09835e Exists: true Reading patch net.minecraft.world.level.block.state.BlockBehaviour$Properties.binpatch Checksum: b0774fd2 Exists: true Reading patch net.minecraft.world.level.block.state.BlockBehaviour$StateArgumentPredicate.binpatch Checksum: 7362e0c4 Exists: true Reading patch net.minecraft.world.level.block.state.BlockBehaviour$StatePredicate.binpatch Checksum: f76f85ad Exists: true Reading patch net.minecraft.world.level.block.state.BlockBehaviour.binpatch Checksum: 2a3a92f Exists: true Reading patch net.minecraft.world.level.block.state.BlockState.binpatch Checksum: 970bd451 Exists: true Reading patch net.minecraft.world.level.block.state.properties.WoodType.binpatch Checksum: 6d2ccdc9 Exists: true Reading patch net.minecraft.world.level.chunk.ChunkAccess.binpatch Checksum: ea3a8426 Exists: true Reading patch net.minecraft.world.level.chunk.ChunkStatus$ChunkType.binpatch Checksum: 83995d04 Exists: true Reading patch net.minecraft.world.level.chunk.ChunkStatus$GenerationTask.binpatch Checksum: 84291340 Exists: true Reading patch net.minecraft.world.level.chunk.ChunkStatus$LoadingTask.binpatch Checksum: d0488d30 Exists: true Reading patch net.minecraft.world.level.chunk.ChunkStatus$SimpleGenerationTask.binpatch Checksum: 3d7c8d66 Exists: true Reading patch net.minecraft.world.level.chunk.ChunkStatus.binpatch Checksum: 18377fd4 Exists: true Reading patch net.minecraft.world.level.chunk.LevelChunk$1.binpatch Checksum: 3e2bcac5 Exists: true Reading patch net.minecraft.world.level.chunk.LevelChunk$BoundTickingBlockEntity.binpatch Checksum: e7c80b27 Exists: true Reading patch net.minecraft.world.level.chunk.LevelChunk$EntityCreationType.binpatch Checksum: 8b5f7d27 Exists: true Reading patch net.minecraft.world.level.chunk.LevelChunk$RebindableTickingBlockEntityWrapper.binpatch Checksum: f5800e45 Exists: true Reading patch net.minecraft.world.level.chunk.LevelChunk.binpatch Checksum: c476bcba Exists: true Reading patch net.minecraft.world.level.chunk.PalettedContainer$CountConsumer.binpatch Checksum: d0f78266 Exists: true Reading patch net.minecraft.world.level.chunk.PalettedContainer.binpatch Checksum: eed755b2 Exists: true Reading patch net.minecraft.world.level.chunk.ProtoChunk.binpatch Checksum: bd361664 Exists: true Reading patch net.minecraft.world.level.chunk.storage.ChunkSerializer.binpatch Checksum: 20b8e6f6 Exists: true Reading patch net.minecraft.world.level.chunk.storage.EntityStorage.binpatch Checksum: 32d92544 Exists: true Reading patch net.minecraft.world.level.dimension.end.EndDragonFight.binpatch Checksum: 3d581a2f Exists: true Reading patch net.minecraft.world.level.gameevent.GameEvent.binpatch Checksum: 79f2844a Exists: true Reading patch net.minecraft.world.level.levelgen.DebugLevelSource.binpatch Checksum: 30d7ba97 Exists: true Reading patch net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator$NoodleCaveNoiseModifier.binpatch Checksum: 1d68e06 Exists: true Reading patch net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator$OreVeinNoiseSource.binpatch Checksum: d07d115 Exists: true Reading patch net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator.binpatch Checksum: 221c9d40 Exists: true Reading patch net.minecraft.world.level.levelgen.PatrolSpawner.binpatch Checksum: a134a5b7 Exists: true Reading patch net.minecraft.world.level.levelgen.PhantomSpawner.binpatch Checksum: 4b66b532 Exists: true Reading patch net.minecraft.world.level.levelgen.WorldGenSettings.binpatch Checksum: caf01f1b Exists: true Reading patch net.minecraft.world.level.levelgen.carver.WorldCarver$CarveSkipChecker.binpatch Checksum: 8f7734d Exists: true Reading patch net.minecraft.world.level.levelgen.carver.WorldCarver.binpatch Checksum: 90586f02 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.Feature.binpatch Checksum: 97180e73 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.MonsterRoomFeature.binpatch Checksum: f5f7582 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.NetherFortressFeature$NetherBridgeStart.binpatch Checksum: 6548e2cf Exists: true Reading patch net.minecraft.world.level.levelgen.feature.NetherFortressFeature.binpatch Checksum: 42021fe Exists: true Reading patch net.minecraft.world.level.levelgen.feature.OceanMonumentFeature$OceanMonumentStart.binpatch Checksum: 374679b0 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.OceanMonumentFeature.binpatch Checksum: 965cde23 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.PillagerOutpostFeature.binpatch Checksum: a93904b4 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.StructureFeature$StructureStartFactory.binpatch Checksum: e81524c7 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.StructureFeature.binpatch Checksum: c4f55f66 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.SwamplandHutFeature$FeatureStart.binpatch Checksum: f64389d0 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.SwamplandHutFeature.binpatch Checksum: 46bf9e7b Exists: true Reading patch net.minecraft.world.level.levelgen.feature.blockplacers.BlockPlacerType.binpatch Checksum: eb3c9be5 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.configurations.TreeConfiguration$TreeConfigurationBuilder.binpatch Checksum: ec1689b2 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.configurations.TreeConfiguration.binpatch Checksum: 4de584fc Exists: true Reading patch net.minecraft.world.level.levelgen.feature.foliageplacers.FoliagePlacerType.binpatch Checksum: dc675dfb Exists: true Reading patch net.minecraft.world.level.levelgen.feature.stateproviders.BlockStateProviderType.binpatch Checksum: b8da74b7 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.structures.SinglePoolElement.binpatch Checksum: 2457306b Exists: true Reading patch net.minecraft.world.level.levelgen.feature.structures.StructureTemplatePool$Projection.binpatch Checksum: 8d73f698 Exists: true Reading patch net.minecraft.world.level.levelgen.feature.structures.StructureTemplatePool.binpatch Checksum: 80540bcc Exists: true Reading patch net.minecraft.world.level.levelgen.feature.treedecorators.TreeDecoratorType.binpatch Checksum: f3bea280 Exists: true Reading patch net.minecraft.world.level.levelgen.flat.FlatLevelGeneratorSettings.binpatch Checksum: 79a0eba5 Exists: true Reading patch net.minecraft.world.level.levelgen.placement.FeatureDecorator.binpatch Checksum: 542498d1 Exists: true Reading patch net.minecraft.world.level.levelgen.structure.StructurePiece$1.binpatch Checksum: 623cc5ed Exists: true Reading patch net.minecraft.world.level.levelgen.structure.StructurePiece$BlockSelector.binpatch Checksum: b6c004b6 Exists: true Reading patch net.minecraft.world.level.levelgen.structure.StructurePiece.binpatch Checksum: a2a395e5 Exists: true Reading patch net.minecraft.world.level.levelgen.structure.StructureStart$1.binpatch Checksum: 7777472 Exists: true Reading patch net.minecraft.world.level.levelgen.structure.StructureStart.binpatch Checksum: 5920d3f0 Exists: true Reading patch net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessor.binpatch Checksum: 7244ee8f Exists: true Reading patch net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate$1.binpatch Checksum: 53184649 Exists: true Reading patch net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate$Palette.binpatch Checksum: 69124c1a Exists: true Reading patch net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate$SimplePalette.binpatch Checksum: 2753abef Exists: true Reading patch net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate$StructureBlockInfo.binpatch Checksum: 89dd80f7 Exists: true Reading patch net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate$StructureEntityInfo.binpatch Checksum: c3951a89 Exists: true Reading patch net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.binpatch Checksum: 4cc2095 Exists: true Reading patch net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilder.binpatch Checksum: fb5d3b26 Exists: true Reading patch net.minecraft.world.level.lighting.BlockLightEngine.binpatch Checksum: 8bde6c90 Exists: true Reading patch net.minecraft.world.level.lighting.DynamicGraphMinFixedPoint$1.binpatch Checksum: 49c5f0f6 Exists: true Reading patch net.minecraft.world.level.lighting.DynamicGraphMinFixedPoint$2.binpatch Checksum: e383f07e Exists: true Reading patch net.minecraft.world.level.lighting.DynamicGraphMinFixedPoint.binpatch Checksum: 1d523676 Exists: true Reading patch net.minecraft.world.level.lighting.LayerLightEngine.binpatch Checksum: 5f359946 Exists: true Reading patch net.minecraft.world.level.lighting.SkyLightEngine.binpatch Checksum: 132da0e6 Exists: true Reading patch net.minecraft.world.level.material.FlowingFluid$1.binpatch Checksum: 9e330d81 Exists: true Reading patch net.minecraft.world.level.material.FlowingFluid.binpatch Checksum: 3fe27a78 Exists: true Reading patch net.minecraft.world.level.material.Fluid.binpatch Checksum: 154001f Exists: true Reading patch net.minecraft.world.level.material.FluidState.binpatch Checksum: 66eb7244 Exists: true Reading patch net.minecraft.world.level.material.LavaFluid$Flowing.binpatch Checksum: 2c6921f Exists: true Reading patch net.minecraft.world.level.material.LavaFluid$Source.binpatch Checksum: fb50bae9 Exists: true Reading patch net.minecraft.world.level.material.LavaFluid.binpatch Checksum: e7ddbd07 Exists: true Reading patch net.minecraft.world.level.newbiome.layer.BiomeInitLayer.binpatch Checksum: 68fd6bec Exists: true Reading patch net.minecraft.world.level.pathfinder.BlockPathTypes.binpatch Checksum: 91201d10 Exists: true Reading patch net.minecraft.world.level.pathfinder.WalkNodeEvaluator.binpatch Checksum: 9110aaca Exists: true Reading patch net.minecraft.world.level.portal.PortalForcer.binpatch Checksum: 60239a15 Exists: true Reading patch net.minecraft.world.level.portal.PortalShape.binpatch Checksum: 5c981ba1 Exists: true Reading patch net.minecraft.world.level.saveddata.maps.MapDecoration$Type.binpatch Checksum: 89b1a2b Exists: true Reading patch net.minecraft.world.level.saveddata.maps.MapDecoration.binpatch Checksum: afca016a Exists: true Reading patch net.minecraft.world.level.storage.DimensionDataStorage.binpatch Checksum: d442b6f0 Exists: true Reading patch net.minecraft.world.level.storage.LevelStorageSource$LevelStorageAccess$1.binpatch Checksum: 20b0e395 Exists: true Reading patch net.minecraft.world.level.storage.LevelStorageSource$LevelStorageAccess$2.binpatch Checksum: c1230adc Exists: true Reading patch net.minecraft.world.level.storage.LevelStorageSource$LevelStorageAccess.binpatch Checksum: 8fcb76f3 Exists: true Reading patch net.minecraft.world.level.storage.LevelStorageSource.binpatch Checksum: 782e47f2 Exists: true Reading patch net.minecraft.world.level.storage.PlayerDataStorage.binpatch Checksum: b28ebe24 Exists: true Reading patch net.minecraft.world.level.storage.loot.LootContext$Builder.binpatch Checksum: 730f00f Exists: true Reading patch net.minecraft.world.level.storage.loot.LootContext$DynamicDrop.binpatch Checksum: 73f1d4fe Exists: true Reading patch net.minecraft.world.level.storage.loot.LootContext$EntityTarget$Serializer.binpatch Checksum: 47ab61cd Exists: true Reading patch net.minecraft.world.level.storage.loot.LootContext$EntityTarget.binpatch Checksum: fc014586 Exists: true Reading patch net.minecraft.world.level.storage.loot.LootContext.binpatch Checksum: f82a6ae4 Exists: true Reading patch net.minecraft.world.level.storage.loot.LootPool$Builder.binpatch Checksum: 6b64a549 Exists: true Reading patch net.minecraft.world.level.storage.loot.LootPool$Serializer.binpatch Checksum: 3ce3ff44 Exists: true Reading patch net.minecraft.world.level.storage.loot.LootPool.binpatch Checksum: 28d2b3c Exists: true Reading patch net.minecraft.world.level.storage.loot.LootTable$Builder.binpatch Checksum: 197d6b6d Exists: true Reading patch net.minecraft.world.level.storage.loot.LootTable$Serializer.binpatch Checksum: e4ba8b83 Exists: true Reading patch net.minecraft.world.level.storage.loot.LootTable.binpatch Checksum: bb2b4692 Exists: true Reading patch net.minecraft.world.level.storage.loot.LootTables.binpatch Checksum: 83a488a4 Exists: true Reading patch net.minecraft.world.level.storage.loot.functions.LootingEnchantFunction$Builder.binpatch Checksum: 20ae747e Exists: true Reading patch net.minecraft.world.level.storage.loot.functions.LootingEnchantFunction$Serializer.binpatch Checksum: b1a8e409 Exists: true Reading patch net.minecraft.world.level.storage.loot.functions.LootingEnchantFunction.binpatch Checksum: cdd20f5b Exists: true Reading patch net.minecraft.world.level.storage.loot.functions.SmeltItemFunction$Serializer.binpatch Checksum: ba08719a Exists: true Reading patch net.minecraft.world.level.storage.loot.functions.SmeltItemFunction.binpatch Checksum: 5208bd26 Exists: true Reading patch net.minecraft.world.level.storage.loot.parameters.LootContextParamSets.binpatch Checksum: 715adfaf Exists: true Reading patch net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceCondition$Serializer.binpatch Checksum: aaded065 Exists: true Reading patch net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceCondition.binpatch Checksum: 4a3dd1a4 Exists: true Reading patch net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceWithLootingCondition$Serializer.binpatch Checksum: e4c603c6 Exists: true Reading patch net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceWithLootingCondition.binpatch Checksum: 9db4a14 Exists: true Reading patch net.minecraft.world.phys.Vec3.binpatch Checksum: 431608b5 Exists: true Processing: C:\Users\USER-PC\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.17.1-20210706.113038\client-1.17.1-20210706.113038-srg.jar Patching net/minecraft/world/phys/Vec3 1/1 Patching net/minecraft/world/level/storage/loot/predicates/LootItemRandomChanceWithLootingCondition$Serializer 1/1 Patching net/minecraft/world/level/storage/loot/predicates/LootItemRandomChanceWithLootingCondition 1/1 Patching net/minecraft/world/level/storage/loot/predicates/LootItemRandomChanceCondition 1/1 Patching net/minecraft/world/level/storage/loot/predicates/LootItemRandomChanceCondition$Serializer 1/1 Patching net/minecraft/world/level/storage/loot/parameters/LootContextParamSets 1/1 Patching net/minecraft/world/level/storage/loot/functions/SmeltItemFunction$Serializer 1/1 Patching net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction 1/1 Patching net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction$Builder 1/1 Patching net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction$Serializer 1/1 Patching net/minecraft/world/level/storage/loot/functions/SmeltItemFunction 1/1 Patching net/minecraft/world/level/storage/loot/LootTable$Serializer 1/1 Patching net/minecraft/world/level/storage/loot/LootPool$Serializer 1/1 Patching net/minecraft/world/level/storage/loot/LootTables 1/1 Patching net/minecraft/world/level/storage/loot/LootContext$DynamicDrop 1/1 Patching net/minecraft/world/level/storage/loot/LootTable$Builder 1/1 Patching net/minecraft/world/level/storage/loot/LootPool 1/1 Patching net/minecraft/world/level/storage/loot/LootContext$EntityTarget$Serializer 1/1 Patching net/minecraft/world/level/storage/loot/LootTable 1/1 Patching net/minecraft/world/level/storage/loot/LootContext 1/1 Patching net/minecraft/world/level/storage/loot/LootPool$Builder 1/1 Patching net/minecraft/world/level/storage/loot/LootContext$EntityTarget 1/1 Patching net/minecraft/world/level/storage/loot/LootContext$Builder 1/1 Patching net/minecraft/world/level/storage/PlayerDataStorage 1/1 Patching net/minecraft/world/level/storage/LevelStorageSource$LevelStorageAccess$2 1/1 Patching net/minecraft/world/level/storage/LevelStorageSource$LevelStorageAccess$1 1/1 Patching net/minecraft/world/level/storage/DimensionDataStorage 1/1 Patching net/minecraft/world/level/saveddata/maps/MapDecoration 1/1 Patching net/minecraft/world/level/storage/LevelStorageSource 1/1 Patching net/minecraft/world/level/storage/LevelStorageSource$LevelStorageAccess 1/1 Patching net/minecraft/world/level/saveddata/maps/MapDecoration$Type 1/1 Patching net/minecraft/world/level/portal/PortalShape 1/1 Patching net/minecraft/world/level/pathfinder/BlockPathTypes 1/1 Patching net/minecraft/world/level/portal/PortalForcer 1/1 Patching net/minecraft/world/level/newbiome/layer/BiomeInitLayer 1/1 Patching net/minecraft/world/level/material/LavaFluid$Source 1/1 Patching net/minecraft/world/level/material/LavaFluid$Flowing 1/1 Patching net/minecraft/world/level/material/FlowingFluid$1 1/1 Patching net/minecraft/world/level/material/FluidState 1/1 Patching net/minecraft/world/level/material/Fluid 1/1 Patching net/minecraft/world/level/pathfinder/WalkNodeEvaluator 1/1 Patching net/minecraft/world/level/material/LavaFluid 1/1 Patching net/minecraft/world/level/lighting/DynamicGraphMinFixedPoint$2 1/1 Patching net/minecraft/world/level/lighting/DynamicGraphMinFixedPoint$1 1/1 Patching net/minecraft/world/level/lighting/DynamicGraphMinFixedPoint 1/1 Patching net/minecraft/world/level/lighting/LayerLightEngine 1/1 Patching net/minecraft/world/level/lighting/BlockLightEngine 1/1 Patching net/minecraft/world/level/material/FlowingFluid 1/1 Patching net/minecraft/world/level/lighting/SkyLightEngine 1/1 Patching net/minecraft/world/level/levelgen/surfacebuilders/SurfaceBuilder 1/1 Patching net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$StructureEntityInfo 1/1 Patching net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$StructureBlockInfo 1/1 Patching net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$SimplePalette 1/1 Patching net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$Palette 1/1 Patching net/minecraft/world/level/levelgen/structure/templatesystem/StructureProcessor 1/1 Patching net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate$1 1/1 Patching net/minecraft/world/level/levelgen/structure/StructureStart$1 1/1 Patching net/minecraft/world/level/levelgen/structure/StructurePiece$BlockSelector 1/1 Patching net/minecraft/world/level/levelgen/structure/StructurePiece$1 1/1 Patching net/minecraft/world/level/levelgen/structure/StructureStart 1/1 Patching net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate 1/1 Patching net/minecraft/world/level/levelgen/structure/StructurePiece 1/1 Patching net/minecraft/world/level/levelgen/placement/FeatureDecorator 1/1 Patching net/minecraft/world/level/levelgen/feature/treedecorators/TreeDecoratorType 1/1 Patching net/minecraft/world/level/levelgen/feature/structures/StructureTemplatePool$Projection 1/1 Patching net/minecraft/world/level/levelgen/flat/FlatLevelGeneratorSettings 1/1 Patching net/minecraft/world/level/levelgen/feature/structures/StructureTemplatePool 1/1 Patching net/minecraft/world/level/levelgen/feature/structures/SinglePoolElement 1/1 Patching net/minecraft/world/level/levelgen/feature/stateproviders/BlockStateProviderType 1/1 Patching net/minecraft/world/level/levelgen/feature/foliageplacers/FoliagePlacerType 1/1 Patching net/minecraft/world/level/levelgen/feature/configurations/TreeConfiguration$TreeConfigurationBuilder 1/1 Patching net/minecraft/world/level/levelgen/feature/configurations/TreeConfiguration 1/1 Patching net/minecraft/world/level/levelgen/feature/blockplacers/BlockPlacerType 1/1 Patching net/minecraft/world/level/levelgen/feature/SwamplandHutFeature$FeatureStart 1/1 Patching net/minecraft/world/level/levelgen/feature/SwamplandHutFeature 1/1 Patching net/minecraft/world/level/levelgen/feature/StructureFeature$StructureStartFactory 1/1 Patching net/minecraft/world/level/levelgen/feature/PillagerOutpostFeature 1/1 Patching net/minecraft/world/level/levelgen/feature/StructureFeature 1/1 Patching net/minecraft/world/level/levelgen/feature/OceanMonumentFeature$OceanMonumentStart 1/1 Patching net/minecraft/world/level/levelgen/feature/OceanMonumentFeature 1/1 Patching net/minecraft/world/level/levelgen/feature/NetherFortressFeature 1/1 Patching net/minecraft/world/level/levelgen/feature/NetherFortressFeature$NetherBridgeStart 1/1 Patching net/minecraft/world/level/levelgen/feature/MonsterRoomFeature 1/1 Patching net/minecraft/world/level/levelgen/carver/WorldCarver$CarveSkipChecker 1/1 Patching net/minecraft/world/level/levelgen/feature/Feature 1/1 Patching net/minecraft/world/level/levelgen/carver/WorldCarver 1/1 Patching net/minecraft/world/level/levelgen/PatrolSpawner 1/1 Patching net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator$OreVeinNoiseSource 1/1 Patching net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator$NoodleCaveNoiseModifier 1/1 Patching net/minecraft/world/level/levelgen/WorldGenSettings 1/1 Patching net/minecraft/world/level/levelgen/DebugLevelSource 1/1 Patching net/minecraft/world/level/gameevent/GameEvent 1/1 Patching net/minecraft/world/level/levelgen/PhantomSpawner 1/1 Patching net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator 1/1 Patching net/minecraft/world/level/chunk/storage/EntityStorage 1/1 Patching net/minecraft/world/level/chunk/PalettedContainer$CountConsumer 1/1 Patching net/minecraft/world/level/chunk/LevelChunk$RebindableTickingBlockEntityWrapper 1/1 Patching net/minecraft/world/level/chunk/LevelChunk$EntityCreationType 1/1 Patching net/minecraft/world/level/chunk/PalettedContainer 1/1 Patching net/minecraft/world/level/chunk/LevelChunk$1 1/1 Patching net/minecraft/world/level/chunk/LevelChunk$BoundTickingBlockEntity 1/1 Patching net/minecraft/world/level/dimension/end/EndDragonFight 1/1 Patching net/minecraft/world/level/chunk/ChunkStatus$LoadingTask 1/1 Patching net/minecraft/world/level/chunk/ChunkStatus$GenerationTask 1/1 Patching net/minecraft/world/level/chunk/ChunkStatus$SimpleGenerationTask 1/1 Patching net/minecraft/world/level/chunk/ChunkStatus$ChunkType 1/1 Patching net/minecraft/world/level/chunk/ChunkAccess 1/1 Patching net/minecraft/world/level/chunk/storage/ChunkSerializer 1/1 Patching net/minecraft/world/level/chunk/ProtoChunk 1/1 Patching net/minecraft/world/level/block/state/properties/WoodType 1/1 Patching net/minecraft/world/level/chunk/LevelChunk 1/1 Patching net/minecraft/world/level/chunk/ChunkStatus 1/1 Patching net/minecraft/world/level/block/state/BlockState 1/1 Patching net/minecraft/world/level/block/state/BlockBehaviour$StatePredicate 1/1 Patching net/minecraft/world/level/block/state/BlockBehaviour$StateArgumentPredicate 1/1 Patching net/minecraft/world/level/block/state/BlockBehaviour$OffsetType 1/1 Patching net/minecraft/world/level/block/state/BlockBehaviour$1 1/1 Patching net/minecraft/world/level/block/piston/PistonMovingBlockEntity$1 1/1 Patching net/minecraft/world/level/block/state/BlockBehaviour$BlockStateBase$Cache 1/1 Patching net/minecraft/world/level/block/piston/PistonHeadBlock$1 1/1 Patching net/minecraft/world/level/block/piston/PistonStructureResolver 1/1 Patching net/minecraft/world/level/block/piston/PistonBaseBlock$1 1/1 Patching net/minecraft/world/level/block/state/BlockBehaviour$Properties 1/1 Patching net/minecraft/world/level/block/state/BlockBehaviour 1/1 Patching net/minecraft/world/level/block/piston/PistonHeadBlock 1/1 Patching net/minecraft/world/level/block/entity/SpawnerBlockEntity$1 1/1 Patching net/minecraft/world/level/block/entity/SpawnerBlockEntity 1/1 Patching net/minecraft/world/level/block/state/BlockBehaviour$BlockStateBase 1/1 Patching net/minecraft/world/level/block/piston/MovingPistonBlock 1/1 Patching net/minecraft/world/level/block/piston/PistonMovingBlockEntity 1/1 Patching net/minecraft/world/level/block/piston/PistonBaseBlock 1/1 Patching net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity$AnimationStatus 1/1 Patching net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity$1 1/1 Patching net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity 1/1 Patching net/minecraft/world/level/block/entity/BrewingStandBlockEntity$1 1/1 Patching net/minecraft/world/level/block/entity/ChestBlockEntity$1 1/1 Patching net/minecraft/world/level/block/entity/ChestBlockEntity 1/1 Patching net/minecraft/world/level/block/entity/BlockEntityType$Builder 1/1 Patching net/minecraft/world/level/block/entity/BlockEntityType$BlockEntitySupplier 1/1 Patching net/minecraft/world/level/block/entity/ConduitBlockEntity 1/1 Patching net/minecraft/world/level/block/entity/BrewingStandBlockEntity 1/1 Patching net/minecraft/world/level/block/entity/BlockEntity 1/1 Patching net/minecraft/world/level/block/entity/BeaconBlockEntity$BeaconBeamSection 1/1 Patching net/minecraft/world/level/block/entity/BaseContainerBlockEntity 1/1 Patching net/minecraft/world/level/block/entity/BeaconBlockEntity$1 1/1 Patching net/minecraft/world/level/block/entity/BlockEntityType 1/1 Patching net/minecraft/world/level/block/entity/BannerPattern$Builder 1/1 Patching net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity$1 1/1 Patching net/minecraft/world/level/block/entity/HopperBlockEntity 1/1 Patching net/minecraft/world/level/block/entity/BannerPattern 1/1 Patching net/minecraft/world/level/block/entity/BeaconBlockEntity 1/1 Patching net/minecraft/world/level/block/WebBlock 1/1 Patching net/minecraft/world/level/block/VineBlock$1 1/1 Patching net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity 1/1 Patching net/minecraft/world/level/block/TripWireHookBlock$1 1/1 Patching net/minecraft/world/level/block/TripWireBlock$1 1/1 Patching net/minecraft/world/level/block/TrapDoorBlock$1 1/1 Patching net/minecraft/world/level/block/TripWireHookBlock 1/1 Patching net/minecraft/world/level/block/TripWireBlock 1/1 Patching net/minecraft/world/level/block/VineBlock 1/1 Patching net/minecraft/world/level/block/TrapDoorBlock 1/1 Patching net/minecraft/world/level/block/TallSeagrassBlock 1/1 Patching net/minecraft/world/level/block/TallGrassBlock 1/1 Patching net/minecraft/world/level/block/SweetBerryBushBlock 1/1 Patching net/minecraft/world/level/block/SugarCaneBlock 1/1 Patching net/minecraft/world/level/block/StairBlock$1 1/1 Patching net/minecraft/world/level/block/TntBlock 1/1 Patching net/minecraft/world/level/block/TurtleEggBlock 1/1 Patching net/minecraft/world/level/block/StemBlock 1/1 Patching net/minecraft/world/level/block/SpreadingSnowyDirtBlock 1/1 Patching net/minecraft/world/level/block/SpawnerBlock 1/1 Patching net/minecraft/world/level/block/StairBlock 1/1 Patching net/minecraft/world/level/block/SoundType 1/1 Patching net/minecraft/world/level/block/ShulkerBoxBlock$1 1/1 Patching net/minecraft/world/level/block/SeagrassBlock 1/1 Patching net/minecraft/world/level/block/SaplingBlock 1/1 Patching net/minecraft/world/level/block/ShulkerBoxBlock 1/1 Patching net/minecraft/world/level/block/RailState$1 1/1 Patching net/minecraft/world/level/block/RailBlock$1 1/1 Patching net/minecraft/world/level/block/RailBlock 1/1 Patching net/minecraft/world/level/block/RedStoneOreBlock 1/1 Patching net/minecraft/world/level/block/PoweredRailBlock$1 1/1 Patching net/minecraft/world/level/block/PumpkinBlock 1/1 Patching net/minecraft/world/level/block/RailState 1/1 Patching net/minecraft/world/level/block/PotatoBlock 1/1 Patching net/minecraft/world/level/block/PoweredRailBlock 1/1 Patching net/minecraft/world/level/block/OreBlock 1/1 Patching net/minecraft/world/level/block/NetherPortalBlock$1 1/1 Patching net/minecraft/world/level/block/NetherWartBlock 1/1 Patching net/minecraft/world/level/block/NoteBlock 1/1 Patching net/minecraft/world/level/block/NetherPortalBlock 1/1 Patching net/minecraft/world/level/block/MushroomBlock 1/1 Patching net/minecraft/world/level/block/LiquidBlock 1/1 Patching net/minecraft/world/level/block/LightBlock 1/1 Patching net/minecraft/world/level/block/LeavesBlock 1/1 Patching net/minecraft/world/level/block/GrowingPlantBodyBlock 1/1 Patching net/minecraft/world/level/block/GrowingPlantHeadBlock 1/1 Patching net/minecraft/world/level/block/FrostedIceBlock 1/1 Patching net/minecraft/world/level/block/FallingBlock 1/1 Patching net/minecraft/world/level/block/FlowerPotBlock 1/1 Patching net/minecraft/world/level/block/EndPortalBlock 1/1 Patching net/minecraft/world/level/block/EndGatewayBlock 1/1 Patching net/minecraft/world/level/block/FarmBlock 1/1 Patching net/minecraft/world/level/block/DropperBlock 1/1 Patching net/minecraft/world/level/block/DoublePlantBlock 1/1 Patching net/minecraft/world/level/block/EnchantmentTableBlock 1/1 Patching net/minecraft/world/level/block/DetectorRailBlock$1 1/1 Patching net/minecraft/world/level/block/FireBlock 1/1 Patching net/minecraft/world/level/block/DiodeBlock 1/1 Patching net/minecraft/world/level/block/DeadBushBlock 1/1 Patching net/minecraft/world/level/block/CropBlock 1/1 Patching net/minecraft/world/level/block/DetectorRailBlock 1/1 Patching net/minecraft/world/level/block/CocoaBlock$1 1/1 Patching net/minecraft/world/level/block/CocoaBlock 1/1 Patching net/minecraft/world/level/block/ChestBlock$4 1/1 Patching net/minecraft/world/level/block/ChestBlock$3 1/1 Patching net/minecraft/world/level/block/ChestBlock$2 1/1 Patching net/minecraft/world/level/block/ChestBlock$2$1 1/1 Patching net/minecraft/world/level/block/ChestBlock$1 1/1 Patching net/minecraft/world/level/block/ChorusFlowerBlock 1/1 Patching net/minecraft/world/level/block/CaveVinesPlantBlock 1/1 Patching net/minecraft/world/level/block/ChestBlock 1/1 Patching net/minecraft/world/level/block/CaveVinesBlock 1/1 Patching net/minecraft/world/level/block/CarrotBlock 1/1 Patching net/minecraft/world/level/block/CactusBlock 1/1 Patching net/minecraft/world/level/block/CandleCakeBlock 1/1 Patching net/minecraft/world/level/block/ComparatorBlock 1/1 Patching net/minecraft/world/level/block/BushBlock 1/1 Patching net/minecraft/world/level/block/CampfireBlock 1/1 Patching net/minecraft/world/level/block/Block$BlockStatePairKey 1/1 Patching net/minecraft/world/level/block/Block$2 1/1 Patching net/minecraft/world/level/block/Block$1 1/1 Patching net/minecraft/world/level/block/BigDripleafStemBlock$1 1/1 Patching net/minecraft/world/level/block/BigDripleafStemBlock 1/1 Patching net/minecraft/world/level/block/BeetrootBlock 1/1 Patching net/minecraft/world/level/block/BaseRailBlock$1 1/1 Patching net/minecraft/world/level/block/Block 1/1 Patching net/minecraft/world/level/block/BaseRailBlock 1/1 Patching net/minecraft/world/level/block/BeehiveBlock 1/1 Patching net/minecraft/world/level/block/BaseFireBlock 1/1 Patching net/minecraft/world/level/block/BannerBlock 1/1 Patching net/minecraft/world/level/block/AttachedStemBlock 1/1 Patching net/minecraft/world/level/block/BambooSaplingBlock 1/1 Patching net/minecraft/world/level/block/BambooBlock 1/1 Patching net/minecraft/world/level/block/AbstractBannerBlock 1/1 Patching net/minecraft/world/level/biome/OverworldBiomeSource 1/1 Patching net/minecraft/world/level/biome/MobSpawnSettings$MobSpawnCost 1/1 Patching net/minecraft/world/level/biome/MobSpawnSettings$SpawnerData 1/1 Patching net/minecraft/world/level/biome/MobSpawnSettings$Builder 1/1 Patching net/minecraft/world/level/biome/MobSpawnSettings 1/1 Patching net/minecraft/world/level/biome/BiomeSpecialEffects$GrassColorModifier$3 1/1 Patching net/minecraft/world/level/biome/BiomeSpecialEffects$GrassColorModifier$2 1/1 Patching net/minecraft/world/level/biome/BiomeSpecialEffects$GrassColorModifier$1 1/1 Patching net/minecraft/world/level/biome/BiomeSpecialEffects$GrassColorModifier 1/1 Patching net/minecraft/world/level/biome/BiomeSpecialEffects$Builder 1/1 Patching net/minecraft/world/level/biome/BiomeSpecialEffects 1/1 Patching net/minecraft/world/level/biome/Biome$TemperatureModifier$1 1/1 Patching net/minecraft/world/level/biome/Biome$TemperatureModifier$2 1/1 Patching net/minecraft/world/level/biome/Biome$TemperatureModifier 1/1 Patching net/minecraft/world/level/biome/BiomeGenerationSettings 1/1 Patching net/minecraft/world/level/biome/Biome$Precipitation 1/1 Patching net/minecraft/world/level/biome/Biome$1 1/1 Patching net/minecraft/world/level/biome/Biome$ClimateSettings 1/1 Patching net/minecraft/world/level/biome/BiomeGenerationSettings$Builder 1/1 Patching net/minecraft/world/level/biome/Biome$BiomeBuilder 1/1 Patching net/minecraft/world/level/biome/Biome$ClimateParameters 1/1 Patching net/minecraft/world/level/biome/Biome$BiomeCategory 1/1 Patching net/minecraft/world/level/NaturalSpawner$SpawnPredicate 1/1 Patching net/minecraft/world/level/NaturalSpawner$ChunkGetter 1/1 Patching net/minecraft/world/level/NaturalSpawner$AfterSpawnCallback 1/1 Patching net/minecraft/world/level/NaturalSpawner$SpawnState 1/1 Patching net/minecraft/world/level/NaturalSpawner$1 1/1 Patching net/minecraft/world/level/Level$1 1/1 Patching net/minecraft/world/level/LevelSettings 1/1 Patching net/minecraft/world/level/biome/Biome 1/1 Patching net/minecraft/world/level/LevelReader 1/1 Patching net/minecraft/world/level/ForcedChunksSavedData 1/1 Patching net/minecraft/world/level/ExplosionDamageCalculator 1/1 Patching net/minecraft/world/level/Explosion$BlockInteraction 1/1 Patching net/minecraft/world/level/NaturalSpawner 1/1 Patching net/minecraft/world/level/DataPackConfig 1/1 Patching net/minecraft/world/level/ClipContext 1/1 Patching net/minecraft/world/level/ClipContext$ShapeGetter 1/1 Patching net/minecraft/world/level/ClipContext$Fluid 1/1 Patching net/minecraft/world/level/ClipContext$Block 1/1 Patching net/minecraft/world/level/Explosion 1/1 Patching net/minecraft/world/level/BlockGetter 1/1 Patching net/minecraft/world/item/trading/MerchantOffer 1/1 Patching net/minecraft/world/level/BaseSpawner 1/1 Patching net/minecraft/world/level/Level 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentHelper$EnchantmentVisitor 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$9 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$8 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$7 1/1 Patching net/minecraft/world/item/enchantment/FrostWalkerEnchantment 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$6 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$5 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$4 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$2 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$3 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$12 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$11 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$13 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$10 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$14 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory$1 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentCategory 1/1 Patching net/minecraft/world/item/enchantment/DiggingEnchantment 1/1 Patching net/minecraft/world/item/enchantment/Enchantment$Rarity 1/1 Patching net/minecraft/world/item/enchantment/Enchantment 1/1 Patching net/minecraft/world/item/enchantment/Enchantments 1/1 Patching net/minecraft/world/item/crafting/StonecutterRecipe 1/1 Patching net/minecraft/world/item/crafting/SmeltingRecipe 1/1 Patching net/minecraft/world/item/crafting/SmokingRecipe 1/1 Patching net/minecraft/world/item/crafting/UpgradeRecipe 1/1 Patching net/minecraft/world/item/crafting/SuspiciousStewRecipe 1/1 Patching net/minecraft/world/item/crafting/UpgradeRecipe$Serializer 1/1 Patching net/minecraft/world/item/crafting/TippedArrowRecipe 1/1 Patching net/minecraft/world/item/crafting/SingleItemRecipe$Serializer$SingleItemMaker 1/1 Patching net/minecraft/world/item/crafting/SingleItemRecipe 1/1 Patching net/minecraft/world/item/crafting/SimpleCookingSerializer$CookieBaker 1/1 Patching net/minecraft/world/item/crafting/SimpleRecipeSerializer 1/1 Patching net/minecraft/world/item/crafting/ShulkerBoxColoring 1/1 Patching net/minecraft/world/item/crafting/SingleItemRecipe$Serializer 1/1 Patching net/minecraft/world/item/crafting/ShapelessRecipe 1/1 Patching net/minecraft/world/item/crafting/SimpleCookingSerializer 1/1 Patching net/minecraft/world/item/enchantment/EnchantmentHelper 1/1 Patching net/minecraft/world/item/crafting/ShapelessRecipe$Serializer 1/1 Patching net/minecraft/world/item/crafting/ShieldDecorationRecipe 1/1 Patching net/minecraft/world/item/crafting/ShapedRecipe$Serializer 1/1 Patching net/minecraft/world/item/crafting/Recipe 1/1 Patching net/minecraft/world/item/crafting/RepairItemRecipe 1/1 Patching net/minecraft/world/item/crafting/MapCloningRecipe 1/1 Patching net/minecraft/world/item/crafting/Ingredient$Value 1/1 Patching net/minecraft/world/item/crafting/Ingredient$ItemValue 1/1 Patching net/minecraft/world/item/crafting/Ingredient$TagValue 1/1 Patching net/minecraft/world/item/crafting/FireworkStarFadeRecipe 1/1 Patching net/minecraft/world/item/crafting/FireworkRocketRecipe 1/1 Patching net/minecraft/world/item/crafting/ShapedRecipe 1/1 Patching net/minecraft/world/item/crafting/CampfireCookingRecipe 1/1 Patching net/minecraft/world/item/crafting/FireworkStarRecipe 1/1 Patching net/minecraft/world/item/crafting/BlastingRecipe 1/1 Patching net/minecraft/world/item/crafting/BookCloningRecipe 1/1 Patching net/minecraft/world/item/crafting/BannerDuplicateRecipe 1/1 Patching net/minecraft/world/item/crafting/RecipeSerializer 1/1 Patching net/minecraft/world/item/crafting/AbstractCookingRecipe 1/1 Patching net/minecraft/world/item/crafting/RecipeManager 1/1 Patching net/minecraft/world/item/crafting/ArmorDyeRecipe 1/1 Patching net/minecraft/world/item/crafting/Ingredient 1/1 Patching net/minecraft/world/item/alchemy/PotionBrewing$Mix 1/1 Patching net/minecraft/world/item/alchemy/Potion 1/1 Patching net/minecraft/world/item/Tier 1/1 Patching net/minecraft/world/item/alchemy/PotionBrewing 1/1 Patching net/minecraft/world/item/Tiers 1/1 Patching net/minecraft/world/item/StandingAndWallBlockItem 1/1 Patching net/minecraft/world/item/SwordItem 1/1 Patching net/minecraft/world/item/ShieldItem 1/1 Patching net/minecraft/world/item/ShearsItem 1/1 Patching net/minecraft/world/item/Rarity 1/1 Patching net/minecraft/world/item/ShovelItem 1/1 Patching net/minecraft/world/item/RecordItem 1/1 Patching net/minecraft/world/item/PickaxeItem 1/1 Patching net/minecraft/world/item/MinecartItem 1/1 Patching net/minecraft/world/item/MinecartItem$1 1/1 Patching net/minecraft/world/item/MilkBucketItem 1/1 Patching net/minecraft/world/item/ItemStack$TooltipPart 1/1 Patching net/minecraft/world/item/Item$1 1/1 Patching net/minecraft/world/item/Item$Properties 1/1 Patching net/minecraft/world/item/MapItem 1/1 Patching net/minecraft/world/item/HorseArmorItem 1/1 Patching net/minecraft/world/item/HoeItem 1/1 Patching net/minecraft/world/item/Item 1/1 Patching net/minecraft/world/item/ElytraItem 1/1 Patching net/minecraft/world/item/MobBucketItem 1/1 Patching net/minecraft/world/item/ItemStack 1/1 Patching net/minecraft/world/item/DyeableHorseArmorItem 1/1 Patching net/minecraft/world/item/DiggerItem 1/1 Patching net/minecraft/world/item/DyeColor 1/1 Patching net/minecraft/world/item/CreativeModeTab$9 1/1 Patching net/minecraft/world/item/CreativeModeTab$8 1/1 Patching net/minecraft/world/item/CreativeModeTab$7 1/1 Patching net/minecraft/world/item/CreativeModeTab$6 1/1 Patching net/minecraft/world/item/CreativeModeTab$5 1/1 Patching net/minecraft/world/item/CreativeModeTab$4 1/1 Patching net/minecraft/world/item/CreativeModeTab$3 1/1 Patching net/minecraft/world/item/CreativeModeTab$2 1/1 Patching net/minecraft/world/item/CreativeModeTab$12 1/1 Patching net/minecraft/world/item/CreativeModeTab$10 1/1 Patching net/minecraft/world/item/CreativeModeTab$1 1/1 Patching net/minecraft/world/item/CreativeModeTab$11 1/1 Patching net/minecraft/world/item/CreativeModeTab 1/1 Patching net/minecraft/world/item/ChorusFruitItem 1/1 Patching net/minecraft/world/item/BucketItem 1/1 Patching net/minecraft/world/item/BowItem 1/1 Patching net/minecraft/world/item/BoneMealItem 1/1 Patching net/minecraft/world/item/BlockItem 1/1 Patching net/minecraft/world/item/AxeItem 1/1 Patching net/minecraft/world/item/ArrowItem 1/1 Patching net/minecraft/world/item/ArmorItem$1 1/1 Patching net/minecraft/world/item/ArmorItem 1/1 Patching net/minecraft/world/inventory/Slot 1/1 Patching net/minecraft/world/inventory/ResultSlot 1/1 Patching net/minecraft/world/inventory/RecipeBookMenu 1/1 Patching net/minecraft/world/inventory/MenuType$MenuSupplier 1/1 Patching net/minecraft/world/inventory/MenuType 1/1 Patching net/minecraft/world/inventory/InventoryMenu$2 1/1 Patching net/minecraft/world/inventory/InventoryMenu$1 1/1 Patching net/minecraft/world/inventory/InventoryMenu 1/1 Patching net/minecraft/world/inventory/GrindstoneMenu$3 1/1 Patching net/minecraft/world/inventory/GrindstoneMenu$2 1/1 Patching net/minecraft/world/inventory/GrindstoneMenu$4 1/1 Patching net/minecraft/world/inventory/GrindstoneMenu$1 1/1 Patching net/minecraft/world/inventory/FurnaceResultSlot 1/1 Patching net/minecraft/world/level/block/Blocks 1/1 Patching net/minecraft/world/inventory/EnchantmentMenu$3 1/1 Patching net/minecraft/world/inventory/GrindstoneMenu 1/1 Patching net/minecraft/world/inventory/EnchantmentMenu$2 1/1 Patching net/minecraft/world/inventory/EnchantmentMenu$1 1/1 Patching net/minecraft/world/inventory/EnchantmentMenu 1/1 Patching net/minecraft/world/inventory/BrewingStandMenu$IngredientsSlot 1/1 Patching net/minecraft/world/inventory/BrewingStandMenu$PotionSlot 1/1 Patching net/minecraft/world/inventory/BrewingStandMenu$FuelSlot 1/1 Patching net/minecraft/world/inventory/BeaconMenu$PaymentSlot 1/1 Patching net/minecraft/world/inventory/BrewingStandMenu 1/1 Patching net/minecraft/world/inventory/BeaconMenu$1 1/1 Patching net/minecraft/world/inventory/AnvilMenu$1 1/1 Patching net/minecraft/world/inventory/BeaconMenu 1/1 Patching net/minecraft/world/inventory/AbstractContainerMenu$1 1/1 Patching net/minecraft/world/food/FoodProperties 1/1 Patching net/minecraft/world/inventory/AbstractFurnaceMenu 1/1 Patching net/minecraft/world/inventory/AnvilMenu 1/1 Patching net/minecraft/world/food/FoodProperties$Builder 1/1 Patching net/minecraft/world/entity/vehicle/MinecartSpawner$1 1/1 Patching net/minecraft/world/entity/vehicle/MinecartSpawner 1/1 Patching net/minecraft/world/entity/vehicle/MinecartCommandBlock 1/1 Patching net/minecraft/world/entity/vehicle/MinecartCommandBlock$MinecartCommandBase 1/1 Patching net/minecraft/world/entity/vehicle/MinecartFurnace 1/1 Patching net/minecraft/world/entity/vehicle/Boat$Status 1/1 Patching net/minecraft/world/entity/vehicle/Boat$Type 1/1 Patching net/minecraft/world/entity/vehicle/Boat$1 1/1 Patching net/minecraft/world/entity/vehicle/AbstractMinecartContainer$1 1/1 Patching net/minecraft/world/inventory/AbstractContainerMenu 1/1 Patching net/minecraft/world/entity/vehicle/Minecart 1/1 Patching net/minecraft/world/entity/vehicle/AbstractMinecart$1 1/1 Patching net/minecraft/world/entity/vehicle/AbstractMinecart$Type 1/1 Patching net/minecraft/world/entity/vehicle/AbstractMinecartContainer 1/1 Patching net/minecraft/world/entity/schedule/Activity 1/1 Patching net/minecraft/world/entity/schedule/Schedule 1/1 Patching net/minecraft/world/entity/raid/Raid$RaiderType 1/1 Patching net/minecraft/world/entity/raid/Raid$RaidStatus 1/1 Patching net/minecraft/world/entity/raid/Raid$1 1/1 Patching net/minecraft/world/entity/vehicle/Boat 1/1 Patching net/minecraft/world/item/Items 1/1 Patching net/minecraft/world/entity/projectile/ThrowableProjectile 1/1 Patching net/minecraft/world/entity/vehicle/AbstractMinecart 1/1 Patching net/minecraft/world/entity/projectile/WitherSkull 1/1 Patching net/minecraft/world/entity/projectile/ProjectileUtil 1/1 Patching net/minecraft/world/entity/raid/Raid 1/1 Patching net/minecraft/world/entity/projectile/ThrownEnderpearl 1/1 Patching net/minecraft/world/entity/projectile/Projectile 1/1 Patching net/minecraft/world/entity/projectile/SmallFireball 1/1 Patching net/minecraft/world/entity/projectile/FishingHook$FishHookState 1/1 Patching net/minecraft/world/entity/projectile/FishingHook$OpenWaterType 1/1 Patching net/minecraft/world/entity/projectile/FishingHook$1 1/1 Patching net/minecraft/world/entity/projectile/ShulkerBullet 1/1 Patching net/minecraft/world/entity/projectile/LargeFireball 1/1 Patching net/minecraft/world/entity/projectile/FireworkRocketEntity 1/1 Patching net/minecraft/world/entity/projectile/AbstractHurtingProjectile 1/1 Patching net/minecraft/world/entity/projectile/AbstractArrow$1 1/1 Patching net/minecraft/world/entity/projectile/AbstractArrow$Pickup 1/1 Patching net/minecraft/world/entity/player/Player$BedSleepingProblem 1/1 Patching net/minecraft/world/entity/player/Player$1 1/1 Patching net/minecraft/world/entity/projectile/FishingHook 1/1 Patching net/minecraft/world/entity/projectile/AbstractArrow 1/1 Patching net/minecraft/world/entity/projectile/LlamaSpit 1/1 Patching net/minecraft/world/entity/player/Inventory 1/1 Patching net/minecraft/world/entity/npc/VillagerProfession 1/1 Patching net/minecraft/world/entity/npc/CatSpawner 1/1 Patching net/minecraft/world/entity/npc/AbstractVillager 1/1 Patching net/minecraft/world/entity/monster/piglin/StopHoldingItemIfNoLongerAdmiring 1/1 Patching net/minecraft/world/entity/npc/Villager 1/1 Patching net/minecraft/world/entity/monster/piglin/Piglin 1/1 Patching net/minecraft/world/entity/monster/piglin/AbstractPiglin 1/1 Patching net/minecraft/world/entity/monster/Zombie$ZombieGroupData 1/1 Patching net/minecraft/world/entity/monster/Zombie$ZombieAttackTurtleEggGoal 1/1 Patching net/minecraft/world/entity/player/Player 1/1 Patching net/minecraft/world/entity/monster/ZombieVillager 1/1 Patching net/minecraft/world/entity/monster/hoglin/Hoglin 1/1 Patching net/minecraft/world/entity/monster/piglin/PiglinAi 1/1 Patching net/minecraft/world/entity/monster/Zombie 1/1 Patching net/minecraft/world/entity/monster/Spider$SpiderEffectsGroupData 1/1 Patching net/minecraft/world/entity/monster/Spider$SpiderTargetGoal 1/1 Patching net/minecraft/world/entity/monster/Spider$SpiderAttackGoal 1/1 Patching net/minecraft/world/entity/monster/Slime$SlimeKeepOnJumpingGoal 1/1 Patching net/minecraft/world/entity/monster/Slime$SlimeMoveControl 1/1 Patching net/minecraft/world/entity/monster/Slime$SlimeFloatGoal 1/1 Patching net/minecraft/world/entity/monster/Slime$SlimeAttackGoal 1/1 Patching net/minecraft/world/entity/monster/Silverfish$SilverfishWakeUpFriendsGoal 1/1 Patching net/minecraft/world/entity/monster/Slime$SlimeRandomDirectionGoal 1/1 Patching net/minecraft/world/entity/monster/Silverfish 1/1 Patching net/minecraft/world/entity/monster/Silverfish$SilverfishMergeWithStoneGoal 1/1 Patching net/minecraft/world/entity/monster/Slime 1/1 Patching net/minecraft/world/entity/monster/Ravager$RavagerNodeEvaluator 1/1 Patching net/minecraft/world/entity/monster/Ravager$RavagerNavigation 1/1 Patching net/minecraft/world/entity/monster/Spider 1/1 Patching net/minecraft/world/entity/monster/Ravager$RavagerMeleeAttackGoal 1/1 Patching net/minecraft/world/entity/monster/Ravager 1/1 Patching net/minecraft/world/entity/monster/MagmaCube 1/1 Patching net/minecraft/world/entity/monster/Illusioner$IllusionerMirrorSpellGoal 1/1 Patching net/minecraft/world/entity/monster/Illusioner$IllusionerBlindnessSpellGoal 1/1 Patching net/minecraft/world/entity/monster/Pillager 1/1 Patching net/minecraft/world/entity/monster/Illusioner 1/1 Patching net/minecraft/world/entity/monster/Evoker 1/1 Patching net/minecraft/world/entity/monster/Evoker$EvokerWololoSpellGoal 1/1 Patching net/minecraft/world/entity/monster/Evoker$EvokerCastingSpellGoal 1/1 Patching net/minecraft/world/entity/monster/Evoker$EvokerSummonSpellGoal 1/1 Patching net/minecraft/world/entity/monster/Evoker$EvokerAttackSpellGoal 1/1 Patching net/minecraft/world/entity/monster/EnderMan$EndermanTakeBlockGoal 1/1 Patching net/minecraft/world/entity/monster/EnderMan$EndermanLookForPlayerGoal 1/1 Patching net/minecraft/world/entity/monster/CrossbowAttackMob 1/1 Patching net/minecraft/world/entity/monster/EnderMan$EndermanLeaveBlockGoal 1/1 Patching net/minecraft/world/entity/monster/EnderMan$EndermanFreezeWhenLookedAt 1/1 Patching net/minecraft/world/entity/monster/AbstractSkeleton$1 1/1 Patching net/minecraft/world/entity/monster/EnderMan 1/1 Patching net/minecraft/world/entity/monster/AbstractSkeleton 1/1 Patching net/minecraft/world/entity/monster/Creeper 1/1 Patching net/minecraft/world/entity/decoration/Motive 1/1 Patching net/minecraft/world/entity/decoration/HangingEntity$1 1/1 Patching net/minecraft/world/entity/decoration/ArmorStand$1 1/1 Patching net/minecraft/world/entity/item/ItemEntity 1/1 Patching net/minecraft/world/entity/boss/wither/WitherBoss$WitherDoNothingGoal 1/1 Patching net/minecraft/world/entity/decoration/HangingEntity 1/1 Patching net/minecraft/world/entity/boss/EnderDragonPart 1/1 Patching net/minecraft/world/entity/boss/wither/WitherBoss 1/1 Patching net/minecraft/world/entity/decoration/ArmorStand 1/1 Patching net/minecraft/world/entity/animal/horse/Horse$HorseGroupData 1/1 Patching net/minecraft/world/entity/animal/horse/SkeletonTrapGoal 1/1 Patching net/minecraft/world/entity/animal/horse/AbstractHorse$1 1/1 Patching net/minecraft/world/entity/boss/enderdragon/EnderDragon 1/1 Patching net/minecraft/world/entity/animal/Wolf$WolfAvoidEntityGoal 1/1 Patching net/minecraft/world/entity/animal/horse/Horse 1/1 Patching net/minecraft/world/entity/animal/horse/AbstractHorse 1/1 Patching net/minecraft/world/entity/animal/Wolf 1/1 Patching net/minecraft/world/entity/animal/Sheep$2 1/1 Patching net/minecraft/world/entity/animal/Sheep$1 1/1 Patching net/minecraft/world/entity/animal/SnowGolem 1/1 Patching net/minecraft/world/entity/animal/Sheep 1/1 Patching net/minecraft/world/entity/animal/Rabbit$RabbitGroupData 1/1 Patching net/minecraft/world/entity/animal/Rabbit$EvilRabbitAttackGoal 1/1 Patching net/minecraft/world/entity/animal/Rabbit$RabbitPanicGoal 1/1 Patching net/minecraft/world/entity/animal/Rabbit$RaidGardenGoal 1/1 Patching net/minecraft/world/entity/animal/Rabbit 1/1 Patching net/minecraft/world/entity/animal/Rabbit$RabbitJumpControl 1/1 Patching net/minecraft/world/entity/animal/Rabbit$RabbitAvoidEntityGoal 1/1 Patching net/minecraft/world/entity/animal/Rabbit$RabbitMoveControl 1/1 Patching net/minecraft/world/entity/animal/Parrot$1 1/1 Patching net/minecraft/world/entity/animal/Parrot 1/1 Patching net/minecraft/world/entity/animal/Pig 1/1 Patching net/minecraft/world/entity/animal/MushroomCow$MushroomType 1/1 Patching net/minecraft/world/entity/animal/IronGolem$Crackiness 1/1 Patching net/minecraft/world/entity/animal/Fox$Type 1/1 Patching net/minecraft/world/entity/animal/Ocelot$OcelotTemptGoal 1/1 Patching net/minecraft/world/entity/animal/IronGolem 1/1 Patching net/minecraft/world/entity/animal/Ocelot$OcelotAvoidEntityGoal 1/1 Patching net/minecraft/world/entity/animal/Ocelot 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxSearchForItemsGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$StalkPreyGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$SleepGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxPanicGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxMoveControl 1/1 Patching net/minecraft/world/entity/animal/Fox$SeekShelterGoal 1/1 Patching net/minecraft/world/entity/animal/MushroomCow 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxLookControl 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxPounceGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxMeleeAttackGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxGroupData 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxFollowParentGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxFloatGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxLookAtPlayerGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxStrollThroughVillageGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$PerchAndSearchGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FaceplantGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxAlertableEntitiesSelector 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxBehaviorGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxEatBerriesGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$FoxBreedGoal 1/1 Patching net/minecraft/world/entity/animal/Fox$DefendTrustedTargetGoal 1/1 Patching net/minecraft/world/entity/animal/Cat$CatTemptGoal 1/1 Patching net/minecraft/world/entity/animal/Cat$CatAvoidEntityGoal 1/1 Patching net/minecraft/world/entity/animal/Cat$CatRelaxOnOwnerGoal 1/1 Patching net/minecraft/world/entity/animal/Bee$BeeLookControl 1/1 Patching net/minecraft/world/entity/animal/Bee$BeeWanderGoal 1/1 Patching net/minecraft/world/entity/animal/Bee$BeeHurtByOtherGoal 1/1 Patching net/minecraft/world/entity/animal/Cat 1/1 Patching net/minecraft/world/entity/animal/Bee$BeeLocateHiveGoal 1/1 Patching net/minecraft/world/entity/animal/Bee$BeeGrowCropGoal 1/1 Patching net/minecraft/world/entity/animal/Bee$BeeEnterHiveGoal 1/1 Patching net/minecraft/world/entity/animal/Bee$BeePollinateGoal 1/1 Patching net/minecraft/world/entity/animal/Fox 1/1 Patching net/minecraft/world/entity/animal/Bee$BeeAttackGoal 1/1 Patching net/minecraft/world/entity/animal/Bee$BeeBecomeAngryTargetGoal 1/1 Patching net/minecraft/world/entity/animal/Bee$BaseBeeGoal 1/1 Patching net/minecraft/world/entity/animal/Bee$1 1/1 Patching net/minecraft/world/entity/animal/Bee$BeeGoToKnownFlowerGoal 1/1 Patching net/minecraft/world/entity/animal/Bee$BeeGoToHiveGoal 1/1 Patching net/minecraft/world/entity/animal/Animal 1/1 Patching net/minecraft/world/entity/ai/village/VillageSiege$State 1/1 Patching net/minecraft/world/entity/animal/Bee 1/1 Patching net/minecraft/world/entity/ai/village/poi/PoiType 1/1 Patching net/minecraft/world/entity/ai/village/VillageSiege 1/1 Patching net/minecraft/world/entity/ai/sensing/SensorType 1/1 Patching net/minecraft/world/entity/ai/navigation/WallClimberNavigation 1/1 Patching net/minecraft/world/entity/ai/memory/MemoryModuleType 1/1 Patching net/minecraft/world/entity/ai/navigation/PathNavigation 1/1 Patching net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal 1/1 Patching net/minecraft/world/entity/ai/goal/RangedCrossbowAttackGoal$CrossbowState 1/1 Patching net/minecraft/world/entity/ai/goal/RangedBowAttackGoal 1/1 Patching net/minecraft/world/entity/ai/goal/RemoveBlockGoal 1/1 Patching net/minecraft/world/entity/ai/goal/RangedCrossbowAttackGoal 1/1 Patching net/minecraft/world/entity/ai/goal/MeleeAttackGoal 1/1 Patching net/minecraft/world/entity/ai/goal/EatBlockGoal 1/1 Patching net/minecraft/world/entity/ai/goal/BreakDoorGoal 1/1 Patching net/minecraft/world/entity/ai/behavior/HarvestFarmland 1/1 Patching net/minecraft/world/entity/ai/behavior/CrossbowAttack$CrossbowState 1/1 Patching net/minecraft/world/entity/ai/behavior/CrossbowAttack 1/1 Patching net/minecraft/world/entity/ai/attributes/AttributeSupplier$Builder 1/1 Patching net/minecraft/world/entity/ai/attributes/AttributeSupplier 1/1 Patching net/minecraft/world/entity/ai/attributes/Attribute 1/1 Patching net/minecraft/world/entity/SpawnPlacements$Type 1/1 Patching net/minecraft/world/entity/SpawnPlacements$SpawnPredicate 1/1 Patching net/minecraft/world/entity/SpawnPlacements$Data 1/1 Patching net/minecraft/world/entity/Shearable 1/1 Patching net/minecraft/world/entity/Mob$1 1/1 Patching net/minecraft/world/entity/MobCategory 1/1 Patching net/minecraft/world/entity/LivingEntity$1 1/1 Patching net/minecraft/world/entity/LightningBolt 1/1 Patching net/minecraft/world/entity/FlyingMob 1/1 Patching net/minecraft/world/entity/ai/attributes/DefaultAttributes 1/1 Patching net/minecraft/world/entity/EntityType$EntityFactory 1/1 Patching net/minecraft/world/entity/SpawnPlacements 1/1 Patching net/minecraft/world/entity/EntityType$1 1/1 Patching net/minecraft/world/entity/EntityType$Builder 1/1 Patching net/minecraft/world/entity/ExperienceOrb 1/1 Patching net/minecraft/world/entity/Entity$MoveFunction 1/1 Patching net/minecraft/world/entity/Entity$RemovalReason 1/1 Patching net/minecraft/world/entity/Entity$MovementEmission 1/1 Patching net/minecraft/world/entity/Entity$1 1/1 Patching net/minecraft/world/effect/MobEffects$1 1/1 Patching net/minecraft/world/effect/MobEffectCategory 1/1 Patching net/minecraft/world/effect/MobEffects 1/1 Patching net/minecraft/world/effect/MobEffect 1/1 Patching net/minecraft/world/effect/MobEffectInstance 1/1 Patching net/minecraft/world/entity/Mob 1/1 Patching net/minecraft/world/entity/EntityType 1/1 Patching net/minecraft/world/entity/LivingEntity 1/1 Patching net/minecraft/world/entity/Entity 1/1 Patching net/minecraft/tags/TagManager$LoaderInfo 1/1 Patching net/minecraft/tags/TagContainer$CollectionConsumer 1/1 Patching net/minecraft/tags/TagContainer$Builder 1/1 Patching net/minecraft/tags/TagContainer$1 1/1 Patching net/minecraft/tags/TagContainer 1/1 Patching net/minecraft/tags/TagManager 1/1 Patching net/minecraft/tags/Tag$Named 1/1 Patching net/minecraft/tags/Tag$Entry 1/1 Patching net/minecraft/tags/Tag$TagEntry 1/1 Patching net/minecraft/tags/Tag$OptionalElementEntry 1/1 Patching net/minecraft/tags/Tag$OptionalTagEntry 1/1 Patching net/minecraft/tags/Tag 1/1 Patching net/minecraft/tags/Tag$BuilderEntry 1/1 Patching net/minecraft/tags/Tag$ElementEntry 1/1 Patching net/minecraft/tags/StaticTagHelper$Wrapper 1/1 Patching net/minecraft/tags/StaticTags 1/1 Patching net/minecraft/tags/GameEventTags 1/1 Patching net/minecraft/tags/FluidTags 1/1 Patching net/minecraft/tags/StaticTagHelper 1/1 Patching net/minecraft/tags/EntityTypeTags 1/1 Patching net/minecraft/stats/StatType 1/1 Patching net/minecraft/tags/Tag$Builder 1/1 Patching net/minecraft/tags/ItemTags 1/1 Patching net/minecraft/sounds/SoundEvent 1/1 Patching net/minecraft/tags/BlockTags 1/1 Patching net/minecraft/server/rcon/thread/RconClient 1/1 Patching net/minecraft/server/rcon/RconConsoleSource 1/1 Patching net/minecraft/server/players/PlayerList$1 1/1 Patching net/minecraft/server/packs/resources/SimpleReloadableResourceManager$ResourcePackLoadingFailure 1/1 Patching net/minecraft/server/packs/resources/SimpleReloadableResourceManager$FailingReloadInstance 1/1 Patching net/minecraft/server/packs/resources/SimpleReloadableResourceManager 1/1 Patching net/minecraft/server/packs/resources/ResourceManager 1/1 Patching net/minecraft/server/packs/resources/ResourceManagerReloadListener 1/1 Patching net/minecraft/server/packs/resources/SimpleJsonResourceReloadListener 1/1 Patching net/minecraft/server/packs/resources/ResourceManager$Empty 1/1 Patching net/minecraft/server/packs/resources/FallbackResourceManager$LeakedResourceWarningInputStream 1/1 Patching net/minecraft/server/packs/resources/FallbackResourceManager 1/1 Patching net/minecraft/server/packs/repository/Pack$PackConstructor 1/1 Patching net/minecraft/server/packs/repository/Pack$Position 1/1 Patching net/minecraft/server/packs/repository/PackRepository 1/1 Patching net/minecraft/server/packs/repository/Pack 1/1 Patching net/minecraft/server/packs/VanillaPackResources$1 1/1 Patching net/minecraft/server/packs/PackResources 1/1 Patching net/minecraft/server/players/PlayerList 1/1 Patching net/minecraft/server/network/ServerLoginPacketListenerImpl$State 1/1 Patching net/minecraft/server/network/ServerHandshakePacketListenerImpl$1 1/1 Patching net/minecraft/server/network/ServerLoginPacketListenerImpl$1 1/1 Patching net/minecraft/server/network/ServerHandshakePacketListenerImpl 1/1 Patching net/minecraft/server/network/ServerGamePacketListenerImpl$EntityInteraction 1/1 Patching net/minecraft/server/packs/VanillaPackResources 1/1 Patching net/minecraft/server/network/ServerConnectionListener$LatencySimulator 1/1 Patching net/minecraft/server/network/ServerGamePacketListenerImpl$2 1/1 Patching net/minecraft/server/network/ServerGamePacketListenerImpl$1 1/1 Patching net/minecraft/server/network/ServerConnectionListener$LatencySimulator$DelayedMessage 1/1 Patching net/minecraft/server/network/ServerLoginPacketListenerImpl 1/1 Patching net/minecraft/server/network/ServerConnectionListener$2 1/1 Patching net/minecraft/server/network/MemoryServerHandshakePacketListenerImpl 1/1 Patching net/minecraft/server/network/ServerConnectionListener 1/1 Patching net/minecraft/server/network/ServerConnectionListener$1 1/1 Patching net/minecraft/server/level/Ticket 1/1 Patching net/minecraft/server/level/ServerPlayer$3 1/1 Patching net/minecraft/server/level/ServerPlayer$2 1/1 Patching net/minecraft/server/level/ServerPlayer$1 1/1 Patching net/minecraft/server/level/ServerLevel$EntityCallbacks 1/1 Patching net/minecraft/server/level/ServerPlayerGameMode 1/1 Patching net/minecraft/sounds/SoundEvents 1/1 Patching net/minecraft/server/level/ServerChunkCache$MainThreadExecutor 1/1 Patching net/minecraft/server/level/DistanceManager$FixedPlayerDistanceChunkTracker 1/1 Patching net/minecraft/server/level/DistanceManager$PlayerTicketTracker 1/1 Patching net/minecraft/server/level/DistanceManager$ChunkTicketTracker 1/1 Patching net/minecraft/server/level/ServerEntity 1/1 Patching net/minecraft/server/level/DistanceManager 1/1 Patching net/minecraft/server/level/ServerChunkCache 1/1 Patching net/minecraft/server/level/ChunkMap$DistanceManager 1/1 Patching net/minecraft/server/level/ChunkMap$2 1/1 Patching net/minecraft/server/level/ChunkMap$TrackedEntity 1/1 Patching net/minecraft/server/level/ChunkMap$1 1/1 Patching net/minecraft/server/level/ChunkHolder$PlayerProvider 1/1 Patching net/minecraft/server/level/ChunkHolder$LevelChangeListener 1/1 Patching net/minecraft/server/level/ChunkHolder$ChunkSaveDebug 1/1 Patching net/minecraft/server/level/ChunkHolder$FullChunkStatus 1/1 Patching net/minecraft/server/level/ChunkHolder$ChunkLoadingFailure 1/1 Patching net/minecraft/server/level/ChunkHolder$ChunkLoadingFailure$1 1/1 Patching net/minecraft/server/level/ChunkHolder$1 1/1 Patching net/minecraft/server/gui/MinecraftServerGui$2 1/1 Patching net/minecraft/server/gui/MinecraftServerGui$1 1/1 Patching net/minecraft/server/dedicated/Settings$MutableValue 1/1 Patching net/minecraft/server/gui/MinecraftServerGui 1/1 Patching net/minecraft/server/dedicated/ServerWatchdog$1 1/1 Patching net/minecraft/server/dedicated/ServerWatchdog 1/1 Patching net/minecraft/server/dedicated/Settings 1/1 Patching net/minecraft/server/dedicated/DedicatedServer$1 1/1 Patching net/minecraft/server/level/ChunkHolder 1/1 Patching net/minecraft/server/network/ServerGamePacketListenerImpl 1/1 Patching net/minecraft/server/level/ServerLevel 1/1 Patching net/minecraft/server/level/ServerPlayer 1/1 Patching net/minecraft/server/dedicated/DedicatedServer 1/1 Patching net/minecraft/server/commands/TeleportCommand$LookAt 1/1 Patching net/minecraft/server/commands/SpreadPlayersCommand$Position 1/1 Patching net/minecraft/server/commands/SpreadPlayersCommand 1/1 Patching net/minecraft/server/commands/TeleportCommand 1/1 Patching net/minecraft/server/level/ChunkMap 1/1 Patching net/minecraft/server/commands/LocateCommand 1/1 Patching net/minecraft/server/ServerResources 1/1 Patching net/minecraft/server/PlayerAdvancements$1 1/1 Patching net/minecraft/server/ServerAdvancementManager 1/1 Patching net/minecraft/server/Bootstrap$1 1/1 Patching net/minecraft/resources/ResourceLocation$Serializer 1/1 Patching net/minecraft/resources/ResourceLocation 1/1 Patching net/minecraft/server/Bootstrap 1/1 Patching net/minecraft/resources/ResourceKey 1/1 Patching net/minecraft/resources/RegistryReadOps$ReadCache 1/1 Patching net/minecraft/resources/RegistryReadOps$1 1/1 Patching net/minecraft/resources/RegistryReadOps$ResourceAccess$MemoryMap 1/1 Patching net/minecraft/server/PlayerAdvancements 1/1 Patching net/minecraft/resources/RegistryReadOps$ResourceAccess 1/1 Patching net/minecraft/resources/RegistryReadOps$ResourceAccess$1 1/1 Patching net/minecraft/recipebook/PlaceRecipe 1/1 Patching net/minecraft/network/syncher/SynchedEntityData$DataItem 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$9 1/1 Patching net/minecraft/resources/RegistryReadOps 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$7 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$6 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$8 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$5 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$4 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$3 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$2 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$19 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$18 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$16 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$17 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$15 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$14 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$11 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$13 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$12 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$1 1/1 Patching net/minecraft/network/protocol/status/ServerStatus$Version 1/1 Patching net/minecraft/network/syncher/EntityDataSerializers$10 1/1 Patching net/minecraft/network/protocol/status/ServerStatus 1/1 Patching net/minecraft/network/protocol/status/ServerStatus$Players 1/1 Patching net/minecraft/network/protocol/status/ServerStatus$Version$Serializer 1/1 Patching net/minecraft/network/protocol/status/ServerStatus$Serializer 1/1 Patching net/minecraft/network/protocol/status/ClientboundStatusResponsePacket 1/1 Patching net/minecraft/network/protocol/login/ServerboundCustomQueryPacket 1/1 Patching net/minecraft/network/protocol/status/ServerStatus$Players$Serializer 1/1 Patching net/minecraft/network/protocol/login/ClientboundCustomQueryPacket 1/1 Patching net/minecraft/network/protocol/handshake/ClientIntentionPacket 1/1 Patching net/minecraft/network/protocol/game/ServerboundSetCreativeModeSlotPacket 1/1 Patching net/minecraft/network/syncher/SynchedEntityData 1/1 Patching net/minecraft/network/protocol/game/ServerboundCustomPayloadPacket 1/1 Patching net/minecraft/network/protocol/game/ServerboundContainerClickPacket 1/1 Patching net/minecraft/network/protocol/game/ClientboundUpdateAttributesPacket$AttributeSnapshot 1/1 Patching net/minecraft/network/protocol/game/ClientboundUpdateAttributesPacket 1/1 Patching net/minecraft/network/protocol/game/ClientboundCustomPayloadPacket 1/1 Patching net/minecraft/network/protocol/game/ClientboundCommandsPacket$Entry 1/1 Patching net/minecraft/network/protocol/game/ClientboundCommandsPacket 1/1 Patching net/minecraft/network/chat/Style$1 1/1 Patching net/minecraft/network/chat/TranslatableComponent 1/1 Patching net/minecraft/network/chat/Style$Serializer 1/1 Patching net/minecraft/network/chat/Style 1/1 Patching net/minecraft/network/PacketEncoder 1/1 Patching net/minecraft/network/Connection$PacketHolder 1/1 Patching net/minecraft/network/Connection$2 1/1 Patching net/minecraft/network/Connection$1 1/1 Patching net/minecraft/network/CompressionEncoder 1/1 Patching net/minecraft/nbt/StringTag 1/1 Patching net/minecraft/network/Connection 1/1 Patching net/minecraft/nbt/StringTag$1 1/1 Patching net/minecraft/nbt/NbtAccounter$1 1/1 Patching net/minecraft/nbt/NbtAccounter 1/1 Patching net/minecraft/nbt/NbtIo 1/1 Patching net/minecraft/nbt/CompoundTag$1 1/1 Patching net/minecraft/locale/Language$1 1/1 Patching net/minecraft/locale/Language 1/1 Patching net/minecraft/nbt/CompoundTag 1/1 Patching net/minecraft/network/FriendlyByteBuf 1/1 Patching net/minecraft/data/worldgen/biome/Biomes 1/1 Patching net/minecraft/data/tags/TagsProvider$TagAppender 1/1 Patching net/minecraft/data/tags/FluidTagsProvider 1/1 Patching net/minecraft/data/tags/GameEventTagsProvider 1/1 Patching net/minecraft/data/tags/TagsProvider 1/1 Patching net/minecraft/data/tags/EntityTypeTagsProvider 1/1 Patching net/minecraft/data/tags/ItemTagsProvider 1/1 Patching net/minecraft/data/tags/BlockTagsProvider 1/1 Patching net/minecraft/data/loot/LootTableProvider 1/1 Patching net/minecraft/data/DataGenerator 1/1 Patching net/minecraft/data/HashCache 1/1 Patching net/minecraft/data/BuiltinRegistries 1/1 Patching net/minecraft/core/particles/ParticleTypes$1 1/1 Patching net/minecraft/data/loot/EntityLoot 1/1 Patching net/minecraft/core/particles/ParticleType 1/1 Patching net/minecraft/core/particles/ItemParticleOption 1/1 Patching net/minecraft/core/particles/ItemParticleOption$1 1/1 Patching net/minecraft/core/particles/ParticleTypes 1/1 Patching net/minecraft/core/particles/BlockParticleOption 1/1 Patching net/minecraft/core/particles/BlockParticleOption$1 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$8 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$9 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$8$1 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$7 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$5 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$6 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$3 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$4 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$7$1 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$26 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$25 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$23 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$24 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$21 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$22 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$20 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$19 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$18 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$17 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$2 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$16 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$15 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$13 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$12 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$11 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$1 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$14 1/1 Patching net/minecraft/core/dispenser/DispenseItemBehavior$10 1/1 Patching net/minecraft/core/RegistryAccess$RegistryData 1/1 Patching net/minecraft/core/RegistryAccess 1/1 Patching net/minecraft/core/RegistryAccess$RegistryHolder 1/1 Patching net/minecraft/core/MappedRegistry$RegistryEntry 1/1 Patching net/minecraft/data/recipes/RecipeProvider 1/1 Patching net/minecraft/core/Direction$AxisDirection 1/1 Patching net/minecraft/core/Direction$Plane 1/1 Patching net/minecraft/core/Direction$Axis$3 1/1 Patching net/minecraft/core/Direction$Axis$2 1/1 Patching net/minecraft/core/Direction$Axis$1 1/1 Patching net/minecraft/core/Direction$Axis 1/1 Patching net/minecraft/core/MappedRegistry 1/1 Patching net/minecraft/core/Direction$1 1/1 Patching net/minecraft/core/Direction 1/1 Patching net/minecraft/core/Registry 1/1 Patching net/minecraft/data/loot/BlockLoot 1/1 Patching net/minecraft/commands/synchronization/ArgumentTypes$Entry 1/1 Patching net/minecraft/commands/synchronization/ArgumentTypes 1/1 Patching net/minecraft/commands/arguments/selector/EntitySelectorParser 1/1 Patching net/minecraft/commands/Commands$ParseFunction 1/1 Patching net/minecraft/commands/Commands$CommandSelection 1/1 Patching net/minecraft/commands/Commands 1/1 Patching net/minecraft/advancements/critereon/ItemPredicate$Builder 1/1 Patching net/minecraft/advancements/critereon/ItemPredicate 1/1 Patching net/minecraft/advancements/AdvancementRewards$Builder 1/1 Patching net/minecraft/advancements/AdvancementList$Listener 1/1 Patching net/minecraft/Util$OS$2 1/1 Patching net/minecraft/advancements/AdvancementRewards 1/1 Patching net/minecraft/Util$OS$1 1/1 Patching net/minecraft/advancements/Advancement 1/1 Patching net/minecraft/Util$IdentityStrategy 1/1 Patching net/minecraft/Util$9 1/1 Patching net/minecraft/advancements/AdvancementList 1/1 Patching net/minecraft/Util$7 1/1 Patching net/minecraft/Util$OS 1/1 Patching net/minecraft/Util$8 1/1 Patching net/minecraft/Util$6 1/1 Patching net/minecraft/Util$5 1/1 Patching net/minecraft/Util$1 1/1 Patching net/minecraft/Util$4 1/1 Patching net/minecraft/Util$3 1/1 Patching net/minecraft/SharedConstants 1/1 Patching net/minecraft/CrashReportCategory$Entry 1/1 Patching net/minecraft/CrashReport 1/1 Patching net/minecraft/advancements/Advancement$Builder 1/1 Patching com/mojang/math/Vector4f 1/1 Patching net/minecraft/CrashReportCategory 1/1 Patching com/mojang/math/Transformation 1/1 Patching com/mojang/math/Vector3f 1/1 Patching net/minecraft/Util 1/1 Patching com/mojang/blaze3d/platform/Window$WindowInitFailed 1/1 Patching com/mojang/math/Matrix3f 1/1 Patching com/mojang/blaze3d/vertex/VertexFormat$Mode 1/1 Patching com/mojang/math/Matrix4f 1/1 Patching com/mojang/blaze3d/vertex/BufferBuilder$DrawState 1/1 Patching com/mojang/blaze3d/vertex/VertexFormat$IndexType 1/1 Patching com/mojang/blaze3d/vertex/VertexFormatElement$Usage 1/1 Patching com/mojang/blaze3d/vertex/VertexFormatElement$Usage$SetupState 1/1 Patching com/mojang/blaze3d/vertex/BufferBuilder$1 1/1 Patching com/mojang/blaze3d/vertex/VertexConsumer 1/1 Patching com/mojang/blaze3d/vertex/VertexFormat$1 1/1 Patching com/mojang/blaze3d/vertex/VertexFormat 1/1 Patching com/mojang/blaze3d/vertex/VertexFormatElement 1/1 Patching com/mojang/blaze3d/vertex/VertexFormatElement$Usage$ClearState 1/1 Patching com/mojang/blaze3d/vertex/VertexFormatElement$Type 1/1 Patching com/mojang/blaze3d/vertex/BufferBuilder$SortState 1/1 Patching com/mojang/blaze3d/vertex/BufferBuilder 1/1 Patching com/mojang/blaze3d/platform/Window 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$StencilFunc 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$StencilState 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$ScissorState 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$PolygonOffsetState 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$DestFactor 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$ColorMask 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$Viewport 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$CullState 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$TextureState 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$ColorLogicState 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$SourceFactor 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$DepthState 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$BlendState 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$BooleanState 1/1 Patching com/mojang/blaze3d/platform/GlStateManager$LogicOp 1/1 Patching com/mojang/blaze3d/pipeline/RenderTarget 1/1 Patching com/mojang/blaze3d/platform/GlStateManager 1/1 Patching com/mojang/realmsclient/gui/screens/RealmsGenericErrorScreen 1/1 Patching net/minecraft/client/KeyboardHandler$1 1/1 Patching net/minecraft/client/particle/TerrainParticle$Provider 1/1 Patching net/minecraft/client/particle/ParticleEngine$MutableSpriteSet 1/1 Patching net/minecraft/client/particle/Particle 1/1 Patching net/minecraft/client/MouseHandler 1/1 Patching net/minecraft/client/particle/ParticleEngine$SpriteParticleRegistration 1/1 Patching net/minecraft/client/particle/TerrainParticle 1/1 Patching net/minecraft/client/Minecraft$1 1/1 Patching net/minecraft/client/Minecraft$ChatStatus 1/1 Patching net/minecraft/client/Options$2 1/1 Patching net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$CompiledChunk$1 1/1 Patching net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk$ChunkCompileTask 1/1 Patching net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$CompiledChunk 1/1 Patching net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$ChunkTaskResult 1/1 Patching net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk$ResortTransparencyTask 1/1 Patching net/minecraft/client/server/IntegratedServer 1/1 Patching net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk 1/1 Patching net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk$RebuildTask 1/1 Patching net/minecraft/client/renderer/Sheets 1/1 Patching net/minecraft/client/renderer/FogRenderer$FogMode 1/1 Patching net/minecraft/client/renderer/LevelRenderer$RenderInfoMap 1/1 Patching net/minecraft/client/renderer/DimensionSpecialEffects$OverworldEffects 1/1 Patching net/minecraft/client/particle/ParticleEngine 1/1 Patching net/minecraft/client/renderer/item/ItemProperties$2 1/1 Patching net/minecraft/client/renderer/item/ItemProperties$CompassWobble 1/1 Patching net/minecraft/client/renderer/item/ItemProperties$1 1/1 Patching net/minecraft/client/renderer/chunk/ChunkRenderDispatcher 1/1 Patching net/minecraft/client/renderer/block/BlockRenderDispatcher$1 1/1 Patching net/minecraft/client/renderer/block/ModelBlockRenderer$Cache$1 1/1 Patching net/minecraft/client/renderer/block/ModelBlockRenderer$Cache 1/1 Patching net/minecraft/client/renderer/item/ItemProperties 1/1 Patching net/minecraft/client/renderer/block/ModelBlockRenderer$1 1/1 Patching net/minecraft/client/renderer/block/BlockModelShaper 1/1 Patching net/minecraft/client/renderer/block/ModelBlockRenderer$AdjacencyInfo 1/1 Patching net/minecraft/client/renderer/ItemInHandRenderer 1/1 Patching net/minecraft/client/renderer/block/ModelBlockRenderer$SizeInfo 1/1 Patching net/minecraft/client/renderer/block/model/BakedQuad 1/1 Patching net/minecraft/client/renderer/block/model/FaceBakery$1 1/1 Patching net/minecraft/client/renderer/ItemBlockRenderTypes 1/1 Patching net/minecraft/client/renderer/block/ModelBlockRenderer 1/1 Patching net/minecraft/client/renderer/block/LiquidBlockRenderer 1/1 Patching net/minecraft/client/renderer/block/model/ItemOverrides$BakedOverride 1/1 Patching net/minecraft/client/renderer/block/model/BlockModel$LoopException 1/1 Patching net/minecraft/client/renderer/block/model/BlockModel$GuiLight 1/1 Patching net/minecraft/client/renderer/block/model/ItemOverrides 1/1 Patching net/minecraft/client/renderer/block/model/ItemTransform 1/1 Patching net/minecraft/client/renderer/block/model/ItemTransforms 1/1 Patching net/minecraft/client/renderer/block/model/ItemModelGenerator$SpanFacing 1/1 Patching net/minecraft/client/renderer/block/model/ItemTransforms$Deserializer 1/1 Patching net/minecraft/client/renderer/block/model/ItemModelGenerator$1 1/1 Patching net/minecraft/client/renderer/block/model/ItemTransform$Deserializer 1/1 Patching net/minecraft/client/renderer/block/model/MultiVariant 1/1 Patching net/minecraft/client/renderer/block/model/ItemTransforms$TransformType 1/1 Patching net/minecraft/client/renderer/block/model/BlockModel$Deserializer 1/1 Patching net/minecraft/client/renderer/block/model/FaceBakery 1/1 Patching net/minecraft/client/renderer/block/model/ItemTransforms$1 1/1 Patching net/minecraft/client/renderer/block/model/ItemOverrides$PropertyMatcher 1/1 Patching net/minecraft/client/renderer/block/model/ItemModelGenerator$Span 1/1 Patching net/minecraft/client/renderer/block/model/MultiVariant$Deserializer 1/1 Patching net/minecraft/client/renderer/block/ModelBlockRenderer$Cache$2 1/1 Patching net/minecraft/client/renderer/block/ModelBlockRenderer$AmbientVertexRemap 1/1 Patching net/minecraft/client/renderer/block/BlockRenderDispatcher 1/1 Patching net/minecraft/client/renderer/block/model/ItemModelGenerator 1/1 Patching net/minecraft/client/renderer/texture/Stitcher$SpriteLoader 1/1 Patching net/minecraft/client/renderer/texture/TextureAtlasSprite$Info 1/1 Patching net/minecraft/client/renderer/texture/TextureAtlas$Preparations 1/1 Patching net/minecraft/client/renderer/texture/TextureAtlasSprite$FrameInfo 1/1 Patching net/minecraft/client/renderer/block/model/BlockModel 1/1 Patching net/minecraft/client/renderer/block/ModelBlockRenderer$AmbientOcclusionFace 1/1 Patching net/minecraft/client/renderer/texture/Stitcher$Region 1/1 Patching net/minecraft/client/renderer/texture/AbstractTexture 1/1 Patching net/minecraft/client/renderer/GameRenderer 1/1 Patching net/minecraft/client/renderer/texture/Stitcher$Holder 1/1 Patching net/minecraft/client/renderer/texture/TextureAtlasSprite$InterpolationData 1/1 Patching net/minecraft/client/renderer/texture/TextureAtlasSprite 1/1 Patching net/minecraft/client/renderer/texture/Stitcher 1/1 Patching net/minecraft/client/renderer/LevelRenderer$RenderChunkInfo 1/1 Patching net/minecraft/client/renderer/texture/TextureAtlasSprite$AnimatedTexture 1/1 Patching net/minecraft/client/renderer/DimensionSpecialEffects$NetherEffects 1/1 Patching net/minecraft/client/renderer/LightTexture 1/1 Patching net/minecraft/client/renderer/PostChain 1/1 Patching net/minecraft/client/renderer/texture/TextureAtlas 1/1 Patching net/minecraft/client/renderer/texture/TextureManager 1/1 Patching net/minecraft/client/renderer/entity/BoatRenderer 1/1 Patching net/minecraft/client/renderer/EffectInstance 1/1 Patching net/minecraft/client/renderer/entity/FallingBlockRenderer 1/1 Patching net/minecraft/client/renderer/entity/ItemFrameRenderer 1/1 Patching net/minecraft/client/renderer/entity/LivingEntityRenderer 1/1 Patching net/minecraft/client/renderer/entity/ItemEntityRenderer 1/1 Patching net/minecraft/client/renderer/entity/EntityRenderer 1/1 Patching net/minecraft/client/renderer/entity/player/PlayerRenderer 1/1 Patching net/minecraft/client/renderer/entity/LivingEntityRenderer$1 1/1 Patching net/minecraft/client/renderer/entity/EntityRenderDispatcher 1/1 Patching net/minecraft/client/renderer/LevelRenderer 1/1 Patching net/minecraft/client/renderer/entity/layers/HumanoidArmorLayer$1 1/1 Patching net/minecraft/client/renderer/entity/layers/HumanoidArmorLayer 1/1 Patching net/minecraft/client/renderer/entity/ItemRenderer 1/1 Patching net/minecraft/client/renderer/entity/layers/ElytraLayer 1/1 Patching net/minecraft/client/renderer/ItemModelShaper 1/1 Patching net/minecraft/client/renderer/DimensionSpecialEffects$SkyType 1/1 Patching net/minecraft/client/renderer/ScreenEffectRenderer 1/1 Patching net/minecraft/client/renderer/FogRenderer 1/1 Patching net/minecraft/client/renderer/LevelRenderer$TransparencyShaderException 1/1 Patching net/minecraft/client/renderer/ItemInHandRenderer$1 1/1 Patching net/minecraft/client/renderer/DimensionSpecialEffects$EndEffects 1/1 Patching net/minecraft/client/renderer/ItemInHandRenderer$HandRenderSelection 1/1 Patching net/minecraft/client/renderer/ShaderInstance 1/1 Patching net/minecraft/client/renderer/ShaderInstance$1 1/1 Patching net/minecraft/client/renderer/Sheets$1 1/1 Patching net/minecraft/client/renderer/blockentity/PistonHeadRenderer 1/1 Patching net/minecraft/client/renderer/blockentity/BlockEntityRenderers 1/1 Patching net/minecraft/client/renderer/blockentity/ChestRenderer 1/1 Patching net/minecraft/client/renderer/DimensionSpecialEffects 1/1 Patching net/minecraft/client/User$Type 1/1 Patching net/minecraft/client/Camera$NearPlane 1/1 Patching net/minecraft/client/Minecraft$ChatStatus$1 1/1 Patching net/minecraft/server/MinecraftServer$TimeProfiler 1/1 Patching net/minecraft/server/MinecraftServer$TimeProfiler$1 1/1 Patching net/minecraft/server/MinecraftServer$2 1/1 Patching net/minecraft/server/Main$1 1/1 Patching net/minecraft/server/MinecraftServer$1 1/1 Patching net/minecraft/client/main/Main$2 1/1 Patching net/minecraft/client/main/Main$1 1/1 Patching net/minecraft/client/ClientBrandRetriever 1/1 Patching net/minecraft/client/main/Main$3 1/1 Patching net/minecraft/data/Main 1/1 Patching net/minecraft/client/KeyMapping 1/1 Patching net/minecraft/client/main/Main 1/1 Patching net/minecraft/server/Main 1/1 Patching net/minecraft/client/KeyboardHandler 1/1 Patching net/minecraft/client/resources/model/ModelState 1/1 Patching net/minecraft/client/resources/model/ModelBakery$BlockStateDefinitionException 1/1 Patching net/minecraft/client/resources/model/ModelManager 1/1 Patching net/minecraft/client/resources/model/WeightedBakedModel$Builder 1/1 Patching net/minecraft/client/resources/model/BakedModel 1/1 Patching net/minecraft/client/resources/model/WeightedBakedModel 1/1 Patching net/minecraft/client/resources/model/UnbakedModel 1/1 Patching net/minecraft/client/resources/model/ModelResourceLocation 1/1 Patching net/minecraft/client/resources/model/SimpleBakedModel$Builder 1/1 Patching net/minecraft/client/resources/model/MultiPartBakedModel 1/1 Patching net/minecraft/client/resources/model/MultiPartBakedModel$Builder 1/1 Patching net/minecraft/client/resources/model/SimpleBakedModel 1/1 Patching net/minecraft/client/resources/model/ModelBakery$ModelGroupKey 1/1 Patching net/minecraft/client/resources/language/I18n 1/1 Patching net/minecraft/client/resources/language/LanguageInfo 1/1 Patching net/minecraft/client/resources/language/ClientLanguage 1/1 Patching net/minecraft/client/resources/language/LanguageManager 1/1 Patching net/minecraft/client/player/AbstractClientPlayer 1/1 Patching net/minecraft/client/color/item/ItemColors 1/1 Patching net/minecraft/client/color/block/BlockColors 1/1 Patching net/minecraft/server/MinecraftServer 1/1 Patching net/minecraft/client/player/RemotePlayer 1/1 Patching net/minecraft/client/Minecraft$ChatStatus$3 1/1 Patching net/minecraft/client/User 1/1 Patching net/minecraft/client/resources/model/ModelBakery 1/1 Patching net/minecraft/client/Screenshot 1/1 Patching net/minecraft/client/sounds/SoundEngine 1/1 Patching net/minecraft/client/player/LocalPlayer 1/1 Patching net/minecraft/client/Options 1/1 Patching net/minecraft/client/model/geom/LayerDefinitions 1/1 Patching net/minecraft/client/Minecraft$ServerStem 1/1 Patching net/minecraft/client/Options$FieldAccess 1/1 Patching net/minecraft/client/Camera 1/1 Patching net/minecraft/client/gui/components/DebugScreenOverlay$1 1/1 Patching net/minecraft/client/gui/components/AbstractSelectionList$SelectionDirection 1/1 Patching net/minecraft/client/gui/components/BossHealthOverlay$1 1/1 Patching net/minecraft/client/gui/components/AbstractSelectionList$TrackedList 1/1 Patching net/minecraft/client/gui/components/BossHealthOverlay 1/1 Patching net/minecraft/client/gui/components/AbstractSelectionList 1/1 Patching net/minecraft/client/gui/components/AbstractSelectionList$Entry 1/1 Patching net/minecraft/client/gui/components/AbstractWidget 1/1 Patching net/minecraft/client/gui/MapRenderer 1/1 Patching net/minecraft/client/gui/screens/MenuScreens$ScreenConstructor 1/1 Patching net/minecraft/client/gui/screens/LoadingOverlay 1/1 Patching net/minecraft/client/gui/components/DebugScreenOverlay 1/1 Patching net/minecraft/client/gui/screens/TitleScreen$1 1/1 Patching net/minecraft/client/gui/screens/packs/PackSelectionModel$UnselectedPackEntry 1/1 Patching net/minecraft/client/gui/screens/packs/PackSelectionModel$EntryBase 1/1 Patching net/minecraft/client/gui/screens/packs/PackSelectionModel$Entry 1/1 Patching net/minecraft/client/gui/screens/packs/PackSelectionScreen$1 1/1 Patching net/minecraft/client/gui/screens/packs/PackSelectionModel$SelectedPackEntry 1/1 Patching net/minecraft/client/gui/screens/packs/PackSelectionModel 1/1 Patching net/minecraft/client/gui/screens/LoadingOverlay$LogoTexture 1/1 Patching net/minecraft/client/gui/screens/packs/PackSelectionScreen$Watcher 1/1 Patching net/minecraft/client/gui/Gui 1/1 Patching net/minecraft/client/gui/screens/packs/PackSelectionScreen 1/1 Patching net/minecraft/client/gui/screens/controls/ControlList$Entry 1/1 Patching net/minecraft/client/gui/screens/controls/ControlList$CategoryEntry$1 1/1 Patching net/minecraft/client/gui/screens/controls/ControlList$KeyEntry$1 1/1 Patching net/minecraft/client/gui/screens/controls/ControlList$KeyEntry$2 1/1 Patching net/minecraft/client/gui/screens/controls/ControlList 1/1 Patching net/minecraft/client/gui/screens/controls/ControlList$CategoryEntry 1/1 Patching net/minecraft/client/gui/screens/recipebook/RecipeBookComponent 1/1 Patching net/minecraft/client/gui/screens/controls/ControlsScreen 1/1 Patching net/minecraft/client/gui/screens/controls/ControlList$KeyEntry 1/1 Patching net/minecraft/client/gui/screens/LanguageSelectScreen$LanguageSelectionList$Entry 1/1 Patching net/minecraft/client/gui/screens/TitleScreen 1/1 Patching net/minecraft/client/gui/screens/LanguageSelectScreen$LanguageSelectionList 1/1 Patching net/minecraft/client/gui/screens/Screen 1/1 Patching net/minecraft/client/gui/screens/advancements/AdvancementTabType$1 1/1 Patching net/minecraft/client/gui/screens/advancements/AdvancementTabType 1/1 Patching net/minecraft/client/gui/screens/advancements/AdvancementsScreen 1/1 Patching net/minecraft/client/gui/screens/OptionsScreen 1/1 Patching net/minecraft/client/gui/screens/advancements/AdvancementTab 1/1 Patching net/minecraft/client/gui/screens/inventory/EnchantmentScreen 1/1 Patching net/minecraft/client/gui/screens/inventory/AbstractContainerScreen 1/1 Patching net/minecraft/client/gui/screens/MenuScreens 1/1 Patching net/minecraft/client/gui/screens/inventory/CreativeModeInventoryScreen$SlotWrapper 1/1 Patching net/minecraft/client/gui/screens/inventory/EffectRenderingInventoryScreen 1/1 Patching net/minecraft/client/gui/screens/inventory/CreativeModeInventoryScreen$ItemPickerMenu 1/1 Patching net/minecraft/client/gui/screens/inventory/CreativeModeInventoryScreen$CustomCreativeSlot 1/1 Patching net/minecraft/client/gui/screens/Screen$NarratableSearchResult 1/1 Patching net/minecraft/client/gui/screens/DeathScreen 1/1 Patching net/minecraft/client/gui/screens/multiplayer/ServerSelectionList$NetworkServerEntry 1/1 Patching net/minecraft/client/gui/screens/multiplayer/ServerSelectionList$Entry 1/1 Patching net/minecraft/client/gui/screens/LanguageSelectScreen 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldPreset$2 1/1 Patching net/minecraft/client/gui/screens/inventory/CreativeModeInventoryScreen 1/1 Patching net/minecraft/client/gui/screens/multiplayer/ServerSelectionList 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldPreset$PresetEditor 1/1 Patching net/minecraft/client/gui/screens/multiplayer/ServerSelectionList$LANHeader 1/1 Patching net/minecraft/client/gui/screens/worldselection/CreateWorldScreen$OperationFailedException 1/1 Patching net/minecraft/client/gui/screens/worldselection/CreateWorldScreen$SelectedGameMode 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldPreset$6 1/1 Patching net/minecraft/client/gui/screens/multiplayer/ServerSelectionList$OnlineServerEntry 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldPreset$7 1/1 Patching net/minecraft/client/gui/screens/multiplayer/JoinMultiplayerScreen 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldPreset$4 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldPreset$5 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldPreset$1 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldPreset$8 1/1 Patching net/minecraft/client/gui/screens/worldselection/CreateWorldScreen$1 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldPreset 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldPreset$3 1/1 Patching net/minecraft/client/gui/screens/worldselection/WorldGenSettingsComponent 1/1 Patching net/minecraft/client/gui/Gui$HeartType 1/1 Patching net/minecraft/client/gui/screens/worldselection/CreateWorldScreen 1/1 Patching net/minecraft/client/Options$4 1/1 Patching net/minecraft/client/gui/MapRenderer$MapInstance 1/1 Patching net/minecraft/client/ToggleKeyMapping 1/1 Patching net/minecraft/client/Minecraft$ChatStatus$2 1/1 Patching net/minecraft/client/Minecraft$ChatStatus$4 1/1 Patching net/minecraft/client/searchtree/SearchRegistry 1/1 Patching net/minecraft/client/Options$3 1/1 Patching net/minecraft/client/searchtree/SearchRegistry$Key 1/1 Patching net/minecraft/client/multiplayer/ServerStatusPinger$2 1/1 Patching net/minecraft/client/multiplayer/ClientLevel$1 1/1 Patching net/minecraft/client/multiplayer/ClientLevel$ClientLevelData 1/1 Patching net/minecraft/client/multiplayer/ClientLevel$MarkerParticleStatus 1/1 Patching net/minecraft/client/multiplayer/ServerStatusPinger$2$1 1/1 Patching net/minecraft/client/multiplayer/ClientPacketListener$1 1/1 Patching net/minecraft/client/multiplayer/ServerData 1/1 Patching net/minecraft/client/multiplayer/PlayerInfo 1/1 Patching net/minecraft/client/multiplayer/ClientChunkCache 1/1 Patching net/minecraft/client/multiplayer/ClientChunkCache$Storage 1/1 Patching net/minecraft/client/multiplayer/ServerStatusPinger$1 1/1 Patching net/minecraft/client/multiplayer/ClientLevel$EntityCallbacks 1/1 Patching net/minecraft/client/multiplayer/ServerStatusPinger 1/1 Patching net/minecraft/client/multiplayer/ServerData$ServerPackStatus 1/1 Patching net/minecraft/client/Minecraft$ExperimentalDialogType 1/1 Patching net/minecraft/client/Options$1 1/1 Patching net/minecraft/client/multiplayer/ClientHandshakePacketListenerImpl 1/1 Patching net/minecraft/client/multiplayer/MultiPlayerGameMode 1/1 Patching net/minecraft/client/multiplayer/ClientLevel 1/1 Patching net/minecraft/client/multiplayer/ClientPacketListener 1/1 Patching net/minecraft/client/Minecraft 1/1 Patching net/minecraft/world/level/biome/BiomeSpecialEffects$GrassColorModifier$ColorModifier 1/1 Patching net/minecraft/Util$2 1/1 Patching net/minecraft/tags/StaticTagHelper$OptionalNamedTag 1/1 Injecting profile Finished!