Decompiled source of Rippleheart v0.1.3

Rippleheart.dll

Decompiled 2 weeks ago
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Net;
using System.Net.Sockets;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.ExceptionServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using A1U6JIRBM4LYHT8q7pV;
using A32jrb5S2CDqaauw05tS;
using A3OqyFrj9VJbSyss1oWS;
using A3ojxHvGOCMR9GcBCBbT;
using A4VH6ovPpDqeBlHCaDjk;
using A7BFpnjNutIA1SlW28Hs;
using A7J6cZjbQbeia9nRWvXL;
using A8CR2Ajv9NKQ2T5ERkOj;
using A8ykFYjSHNaAeDpeFs32;
using A9PPEG5gdemFQs4t6KxA;
using AAqtQx03O0ksEjeI8fr;
using AAwpf8rYxDt2NnxrgJqZ;
using ACuPeTj4aEHQp2TphHbr;
using AFBoI8ujXhlsmOWNkGA;
using AFgMQar8jkFuYJ56Cg8D;
using AH1cBKF1GMAco5B43If;
using AIIwlsv2qHMxpON9I0hE;
using AJx5i9jSRYvZJ4U9Ne1N;
using ALsieRXZVEb45EIycgch;
using ASL65bMP3yMHrin2pZXP;
using ASMlIIrhWt0Bo6Ti7qji;
using ATCuQMMGEkVhepONB3cG;
using ATU3J2v7cWVnV8bC3eQX;
using ATqbFMMJgC0rdCKebBQl;
using AU9ngajJ9oBWegursLAT;
using AUNWaOrwXFis0EtaeOWr;
using AVZagvjSI3w2L87OgTwe;
using AXVH1o5rJ80ltacocSY3;
using AXkUOEvP1eIOpbJxKCTe;
using AY6Jk7MvcQyR6w1QdasC;
using AZPI3srSErcogN3soOMx;
using AcnLYLrMoaxvHsyaBTbL;
using AeCPKrj9PX1iSBvcr3xP;
using AfcwGIrFCJXtBHMcP5Nr;
using Amjw6gvK0FAL9sRS2K4K;
using AnOStCvh4184INjNx6ts;
using AoU7fRjA3GRlhZNdOJmh;
using Ap5wbrPz08SaKslQTBc;
using ApG8nKSgHQyQW8f5rZH;
using ApHB7FMTJt5daAKUukld;
using ApZbcmXOwa8RVYnN7C2P;
using AqitawvXP26HjDTHx1FL;
using AqqovIMr4ddKX6DBRVkP;
using ArPftX5hbISsbWYt6CIP;
using ArSVSvrsAi3DhSn91MuZ;
using AtM3yTXrUZ5FFUmAe7V7;
using AuN6rojEgig1ms2I6Whl;
using AvAWh0jw70HoKeewdC4u;
using Ax0fhyrJ2fgbbWEKGE2N;
using AxToRKjqNfdIsdLoXZKl;
using AxsDu3v8N1CDr59FY06E;
using Ay6CsfrKeH7TR4w01IGh;
using B1BynpXZEDNAnglBefj3;
using B1sSmCvdE03FVhDE4PRR;
using B2sCpqv5LwJktVngYFpW;
using B38ytvXFBjxXUOOSHWOF;
using B4YiuNrLZPfunP9h9S9Z;
using B702tE5fwJDpHp2C80uc;
using B7cyR9jSVxHhM07Ei67m;
using B9KfAHr1E6sqPc5PGODB;
using BBYGQZXkmpLlsdR6WHqj;
using BCCX2xMFfqQY0Vj0NMea;
using BCWYRkjOyMEuEi3HR4HY;
using BDCSqAXbutPNcynbEfH4;
using BEL4Gmv5WGbxPKZV9kYp;
using BEU5iSjx4a8sK7srMjDe;
using BEcdEZjH57qZoxU0UKIc;
using BFJJdv5oH9ilXm4J18RH;
using BFQLpVjLyZbaj808kZVt;
using BHsoUvXhLPMW72BBMFUJ;
using BLsHWX5ZZFtnKdr4tr9I;
using BMpWNfjBpWp9TVrgedR1;
using BORQW9uOl8W4Rf0Lcse;
using BPIlkarht0CclkJ9PetC;
using BPgk9yMWWfSTXU1KERTG;
using BQPFV4MBK3uWSUI10r7B;
using BRuBVPYM4V53GlYDFVU;
using BUSIZUrA1sdLN3co1mQ0;
using BV5uJl5DoiyKHa1pTKrE;
using BVPDvCr6zs8w5ldK4bvJ;
using BXrjd45uoGDI0UD6ZhF9;
using BZTiJuws8tuVsNJd8Ag;
using BbjuGi5anWij33P8CXFT;
using Bc2vDLrXg3wZo8dvSxZY;
using Bd6BSLrzFpeBHy8x8i99;
using BdMtNxj4I9XMMEVLb9si;
using BeC3p4paOvDasPRL6R7;
using BepInEx;
using BeqoQhjI6NZiAaiyQy8B;
using BexJIi5A3B7mB61tWhFo;
using Bjr7lyjWxeKWe1eEWr9e;
using BmatbIvFA6AZIU4FvE3V;
using BneABCjMtJ0TE2QHqaJ;
using BrY80uj9mbSmN0LAf5N8;
using BsrYcyMfADME5OgiJ7Tm;
using BtPFKy53JDwGHAeuFkvn;
using BvhcjxXBNVBKxbS1GDED;
using BwZKAejvwlmcNdBsKxB8;
using Bx5vL5j0c00avZJp2bMP;
using C0cVwGMO5MsunCCRFaF7;
using C2Z4ZPXP8geEyeyoUpsr;
using C3snVkv3PHFpSUA6gtEf;
using C4wW1hXNqfp8qyb7Hnbh;
using CA6UKbjxtnyeVGEXQC4W;
using CAj17g0boHP0KZIqNP4;
using CAlMaTXg4GaXNorLxc9v;
using CAxO48jb2byVnBC5qH5x;
using CBjSqlRe4FAt8HqJaeI;
using CD8d9Tr1vOIedNqYv23h;
using CIahcxjSB8IeTAIx4USN;
using CL2iXVvcK6xODCydS59k;
using CLh2SYvuw68KkVr7qCBS;
using CMunP3rDUbCg0xQ3VAry;
using CQgtOB5ERPd1m4qQyXCX;
using CSKBltjcRQai2RxUSUSx;
using CSnWpaXihpehLV9xQM0x;
using CSvZfBjZVxEwrndA8YTk;
using CU0YOun6giPK7o4ZlYl;
using CVxULGXed0sPb4rvbtlu;
using CZRMnpvdwgkAnM9JTxL9;
using CZUu4Vrc4rMAwgANnft0;
using CaVCxFfC9U9KrAUenuY;
using CbjYgwjOhMRUbqxo2GQp;
using CdFt0BjPM2MRAUsh914i;
using Ci1wGZ598ZSKbikJunUB;
using Cj6gc0vPvnHoIo81foM6;
using ClxrFi5DBykwpy7iC91e;
using Cmmu0s5HiWgSX19bngmr;
using CqOjEDvA2kNJYTDbS7Ao;
using CquNIe5XZuHUThWoQTdG;
using CrDKatV2H6rl1u0AoVI;
using CrkhpvXwqWDpvtFdAWb4;
using CtgncpXd0vaZRRgV1ffK;
using D0ExcjXOA8TW9BdJTDGg;
using D1iAZAXXhZj3tN8utiU3;
using D3d5kwrhEkOtUwd3ZtEx;
using D3sfV45BCIAqcksNW84b;
using D4S477jZGrRD5bevAPQX;
using D4kt1IXd1nZXTnKgpSSE;
using D6a02arH8pW5OKINN3hc;
using D83FVNjSNYHuHX8MNJhe;
using D9If6hX1cyPslEAgnSrV;
using DCX03UVyp3fUhdCNDKe;
using DDeBVNW0NJ9HYrxdOyI;
using DE4HQBiFqQApMLLcc9n;
using DF3GHsXhbiIBH5HkPHYu;
using DInFhorhSfdtDKHVUy9j;
using DKcM2oP8DSYPfn9r4FD;
using DKgS8VjdIsgCoeolfMmi;
using DKh9q8MKr4ZCiEM49auY;
using DMjDaWjzeWcvWEMl4u1c;
using DOXtQhK87xf64aqp4dD;
using DVlXWoA271lua1O6X8t;
using DZGx4yj4cc6A6yvBx2A9;
using DaDnK9jywYLAZsgnXhXK;
using DbjmTUMsVrr0fNCQ68ju;
using DcrTfdwTJOxpu6q6yPs;
using De4kbv5CnRfcD0sOjHkn;
using DePMt5q2mTw55a52kLp;
using DiS50MXTQX7HJeRiIxlR;
using DjBMUWMQZpgn89PMVrxV;
using DlKFsLj6tLeUsA3I0xD5;
using DlkiUTjSeY4eCHSl25dO;
using DsYbs8rrGfg8fhQN1hvf;
using DvB4r4vQExJJxHRq5gf;
using DvGK6o5LMXDTBjwMDIRb;
using DxVQDPrtFSlsGpdAkLCQ;
using E07JJZXhaX408pkGDu8e;
using E2M6SLXGdX2s410EjQXH;
using E2jiLQvou51ZFBCVCjt2;
using E6IdNvVMXPqMt6JG6I0;
using E7x0YP5zkIm4euMnZtiQ;
using E8j6yTjpeoAE3X3oZ9Ic;
using EALin5rc69AM7Xg7GpZK;
using EAtj23rJbUyk7MKMeuhY;
using EBHLH4IOyqvo1AnQPpb;
using EBeb3ejJ39o52IQ7ji0s;
using ECpppJjHpaE2Cs03ZJHS;
using EEbOFQ81sgfkwvCNB2W;
using EFUSgcjvm5EWccOVZVaZ;
using EFtTmNcUcBfUwAfrbF6;
using EHTTV7rxf1uMxaZ6BHJ6;
using EMVcTwXxc9NyV4cRb1S7;
using EMZEEVy4gyWtAwTffvN;
using EOR1UjXjtZao4JwVKO1g;
using EQ3rnFXDbCFcGVkIldGH;
using EQFdYYXkzFgaj9r87PYV;
using ERyjJ8jz1RXfhuask2sl;
using ESbGgBXIT1ONVeSHf8AL;
using EVWvrurRlpKUkZmpbfnb;
using EXsJVhXZDPYck8KC0jtt;
using Eates8jbWAtS8ehj9dDW;
using EdeMhY5HyqDlGauFeduG;
using Ee07wJ62TVex5GjIaYe;
using EiWtyLXtubipltwH2HU3;
using EkqNclMEjhSplvCVj5H6;
using ElIWs0jtY0wE1lMAWWAq;
using Enkk2TjLU80chHmeHJNr;
using EsAesLXZ5eaj17tGDPYR;
using EsOHiojK71sxppyNRglS;
using Et24LFZKYJC8vnvfHHm;
using EveXF5XkHutNn9Raeimr;
using ExnSJ5ngOyC6IgD29Oq;
using F038wxvhR7jvQYmnHf2D;
using F0vux5rGgc88fZCAFf4P;
using F5wttjrPzXII7vKdiZQw;
using F8DNWZkZPRWxjC6Uu9n;
using FEf8XDwMUEltuvsDJpF;
using FH8tOHrStCfJBT2PqNhB;
using FJRhL4p6GcC4r06b2Rp;
using FJZ9LVkiQYQav9SbyRx;
using FJZlXyXTcYWeZZUmC7gL;
using FKWum1X4kNqg7xDlZvUN;
using FLfyIvXZpjSsVgw7UeOP;
using FNdHNKMIi6HtlZnm0Ht1;
using FOGIlOMyRt13w0awICsS;
using FP4eoaMs4BrghxNRbahN;
using FRAuPhjuUTFf5SXjPGZk;
using FRdetgcevsLdyZ7CKtp;
using FScRJcMsQ2MaUDBHRKC2;
using FSfXeXi4RcsclJ3rcT6;
using FVXHVsvM9mKruU5i2Yl4;
using FVftNXj5skmXyea6tAD0;
using FbrYjcXduJydsQDFUjVe;
using Fc3RVwrPDcIORQKEJJbR;
using FfQ2HYXXQQLwrseXhig2;
using FfuU9HjIEl4b1Z223V9T;
using Fg8QayjmDcXvG4mh0uTq;
using FgPLZJ5GLKQmrfDWW3GU;
using Fgc5Uov5MKHDby9K6pgn;
using FjvUfQXGYdrZV2dHvmuF;
using FkZiU35VfGEXR430mwR8;
using FlRECRjHzK4I0nk1D4Hv;
using FphuqP5HNKJsUn2AQ1gf;
using Fqr2RivoS0MPAW6PySgN;
using Frdcct5oVEDhFInvehUk;
using FrguDmXDo77YQbp6sTTN;
using Fur2ma5z8esxSy21d613;
using Fur6bejc3Pbpvwu2VWL4;
using Fx5xcVvSoM6LsyEIcBZA;
using FxvdYh5Qrso2lxjjkN3h;
using FyXNu1jEAfaLgXQCtQVi;
using G5yKi65XIU5SmaW9o6h0;
using G9pOSAMxETshRXvrq8jV;
using GA4QPM5CxZiUZci9sXoN;
using GKQ1u6v35hdKsZfUixVD;
using GM5nLor4pwXRFpZAmOux;
using GM9aU4vhbNWCQOBufN71;
using GMBJaBvKxhNbTXGo6lV7;
using GQ2QX7WUxIbEKX3OYWW;
using GQDk8Z9ePyNDxlESm9s;
using GS5lcew4tv5ky4GWV14;
using GUYv5iMcIipER0qo4Dug;
using GUvah2r0MAVjboViW21L;
using GXFbpiMrRUJ8JRM9D6hY;
using GYmUFo5sDkyN4MZ7uePa;
using GZeUmZRJhb6uRU3jggY;
using GaBYPjjK65cKT01VfRqF;
using GaHlprMBt7PlALsoxtvr;
using GbfybuML1f2vIZmGFavv;
using GdSZ4JX7ob4S225V85TS;
using GhFjkXjTTC4x4h6Fmt01;
using GjcHRKXjuHQwvPogs6fw;
using GjdnyYGfPYL8QW6Nqtv;
using Gjmj5ajHORaAMRr0bhyA;
using GjxqdC57ida2ho2hF39i;
using Gk21yOjnDK0E8jamySVn;
using GkO9AH2vv53vpMxnQRy;
using GmEY4wjn8fSb0ykL5WGQ;
using Go4ivT5uvyAuO7iuvy8G;
using GsGMkFSW3qjarZYivlV;
using Gu1LNTj4QSZohQ3nVYW8;
using GutGwHjweoPFMY71XiFD;
using Gwj3f6jY7kfLYFBYLWUp;
using GxaT6j5naKwYPQgxPvFw;
using GxmWiSXZ4wul8FFboYaY;
using Gxu1j8XOxWmYgGpoqliX;
using Gydbl1MwboRAPfkfB4oM;
using H33yrbrXVdD2TdruQHhk;
using H4jwZmMWceSIewNSbo3a;
using H8Jgixr7zsnkB5v4g3De;
using H8i2K9jnjw5R6JONWxLO;
using HB1T9nXSUBNNhRmEYchf;
using HBHmAlMiTtaaTNtGoEjP;
using HBaFZAvkqNl63EZOgJCS;
using HEZW905WG2N3RWO0OYF8;
using HFA44qjBAupkHTo5rsX9;
using HFpD16XIoWLfi2vHs4CL;
using HGq9ycXNnmc9WFmsQ2aa;
using HGqSXxjpxAyuGw1vCLoR;
using HHLteUMBOVBtgZRmdLsq;
using HKIlXerJgqDgU1uSSaFV;
using HLIKUOrfCQBEj3iIqZFl;
using HMUQY3qxqm0cEiQnSMr;
using HMhFnqIEA1OPLumsPGc;
using HO2h9bwqH9u7b4ECb3L;
using HOMsmAv2PkiqSH8YL9U7;
using HPDIo5j3fGO0xafvDG0q;
using HPNboKzqPYkyx0Cam30;
using HPmITsXEzpGE4BNQ5MLw;
using HQLxdrjwdERlHi1TSuno;
using HSb2EUvjID0kcDNdT7Xg;
using HT3kccj0BrKWfh9lk5k6;
using HVpyQaGAiQ2RgrrPXNB;
using HW3XnF5XPyhbQ9UaTqyJ;
using HXPLTcOhDRsqQvYe6lr;
using HXZWcXCo7EfCgQVZSf4;
using HXdctAMHMJbR6A22bPV3;
using HarmonyLib;
using Hc32VOXoXxTMkdLFHL8r;
using HcItCDjqd6VlPHgpPlC0;
using HdaSUw4gS6VHiGc8wvV;
using HhelrN5tpVqxsIUtic9F;
using HivtDojWIkSVo7CApWRH;
using Hj1VPdGPo2a9yj2IdXe;
using HlV9g4jDK3FCtHIkxaC0;
using HonGDQvqwDAxAaesTpJx;
using HpHJY9Mr7XZDVR322bZX;
using HpV1lorYGN9TlAp7mDOC;
using HsAfuhv7eyrCGTqRDin;
using HsMJwUjS8mfB1u19GQBZ;
using HtjIbcjiKRuMym4wh0H9;
using Hvolcm7UyRtag3aIxZN;
using Hw5EiUMRxPHC53f8R2VX;
using HxPCPH5DXL6utjFjeLLH;
using HxjBJMv7QQp53FKbnwXa;
using HxqXqgviohQwB1BJbVGh;
using I2DtEoXDOdSOlvkqv66q;
using I7sP865vqZZqbIirNVQZ;
using I91YSlcDTmNJmp9yPCC;
using IDOASQwSIgeGwitH5BZ;
using IDgpFFjO4jbWvmEccaJh;
using IEmWRZXteWjjDql29iHw;
using IFRPIPjWJFisJcpwoDnv;
using IIP2PI5eInwWsv3Val1U;
using IKqMyaj9EEqa32N8v6ws;
using IL9Z5P5ocnoFfh72Mfh1;
using IPLbvCjAJ6wsPtxPnyFn;
using IPf8NM5T4NJjdLDQ4Nhr;
using IPpB54j4yJTktuNGw4rI;
using IUVR6VM5GvG1L944h8qA;
using IVG4xJMbNmvv03wJYqVb;
using IWHKH0QbA32X1llnvqU;
using Ia1trErMjvEni3unibMH;
using IaNYlkXDjbSSDetPHy31;
using Iaand2MkqGM3F0dw1PJR;
using Ian71UjY5Wm9QpU4k6we;
using IcJeyQrJUWc06GetZBJV;
using IddqbHMNcwaABjd1ifDX;
using Ig6iXajSfjD3QOmmkrcR;
using IhnZ0P50k9D2Pf94px1Y;
using Int2pcMaTZl6nwsUoI0t;
using IoROX6XpNbfxsY50848h;
using IqajK2X6cgBUgbhSoYqd;
using Ir1vv4juBFiW4P3KIqGd;
using IsTFiTM18nkl7EHInP3Q;
using ItUShdv8IT1yVD1CsC0i;
using ItZxqXvwRntwUN7bSCgX;
using Iu7n90MtYiZfQHRgf9Cw;
using IwQ8NVQuXT3EeMnqaGV;
using Iwg22Rvm3E3spacJWgV;
using Iyo3LCXCfpGeN4Jg8dTc;
using J06NThr8AI55DBGsKysR;
using J13yvXrrarKyLgfKurcC;
using J1I944jD37R9DdPxoBJc;
using J35JXtjnAmMD34XB8b24;
using J3hmWHrSwKxYJlYMqQNR;
using J3tx1V5s2Ucx0wJnQMiq;
using J77rmiXzQOWO8jphgHMM;
using J7Mvl3rp4CYWPlNtkyhX;
using J8XHEjj40EBbPNKMxlcd;
using J8jr2pXceoMNOkRAMTPG;
using JAvIJpMQHCEpWOAPNkcl;
using JCqh2d5CacxPQB56Bmh4;
using JDPvugrAw5rYlShfJASO;
using JGSV5prG3CMLEfPE13Fs;
using JJBY1p53nQowRben8vN5;
using JLB927jtosvCEtq5PrDE;
using JLq2VnMDHYkZgwkECBkm;
using JMII1pXZnGSLi5MtVDPW;
using JNZPMLFG6dcIdYIOEQJ;
using JPi4q0XR01nkTipuhlT8;
using JS54faPHWEd47B8ykVV;
using JX0qku5w8fJLBhIqsrC0;
using JXVGVWXsGlB8qZYPCZ4L;
using JYpqddjJRT28ATy0nnaA;
using JZQiGrMknGevMeUAfsXb;
using Ja7aWMrk2NRU1VYpoXCl;
using JcYg4J53HbUJVKtskhq2;
using JdVN2Arh23wFE36O5XUY;
using JeXNpnYF9i6qIk0Kyy3;
using Jfi4IrXzu970E9ccOFiq;
using Jgiyjp2KN60w9BAS4n4;
using JhZhlILwwQf9DUaACFa;
using JiQyOKvjc5EULfODusSt;
using JkGNd4XbLyufcV9JDdr5;
using Jlof9IrcVNZFBL6ug05n;
using JnD4YX43sPs8SXKZceq;
using JnQKxnvaQg2qERjFJgXQ;
using JnrUdoSJb2Xpf1XSRRE;
using JoOm2eMU253arP5RZCHO;
using Jpk7eKj9pxRrBpofrZGd;
using Jq5B6VrdpgCPU45P8otF;
using Js6YSSvSiRyPDATjnb9G;
using JwII2CMtiaap6Ci2uXSr;
using JywekE5jWgebS8QGjEDA;
using K3I4Wp98bJw9qjdI7iN;
using K4bORTrR9KOy3yxxIfPf;
using K51076MQIXCSneXVWmHP;
using K52vuEMIk4iLH1Zd0AMA;
using K7uWRkvttaHm05jlhMfb;
using K8xjKVYheMR6NVbNxFp;
using KArEm3rXnhNNh4QoSEeu;
using KE4vCqr6HjXGIGMPg5sr;
using KE7JeKrX4KmucfSoAfyx;
using KFMqfKckaaP3Kbpsnmn;
using KIXshgvejJQXStfZZqPh;
using KJBBSR5xFJTZ151bGnfO;
using KL2wemRyKI89IGxIbAf;
using KMvkQ55qpg9kOZ07aPOC;
using KNfy07jSn2UM2SQFyxsY;
using KPJsUqj0nlmcdb0gjrSO;
using KQ4AP2jEfbwungGxrtaf;
using KRctmFv5gkok3ay7DCuh;
using KTmIEtrkjvd6TyLDIIN7;
using KV8TiG5v6dVaycTqv442;
using KVGmNCX9qFsZIZSQHKDt;
using KVvix7vopZcgcQeUaqqZ;
using KVyKoejNhZcnbYpSORiG;
using KW5K9FMkfdyyCU7u7N8A;
using KWsAE7jvFs4pYeFbPC8Q;
using KZyDbRdxAbETxbQ6RC7;
using Kayf9qrixrw7kQ2qidGF;
using Kb2TR4vIesT7C73odRql;
using Kb3HYBMJsZNcctlHpOgi;
using KeTjVRUBnwN6BokteYW;
using Kf5CJartI5bmFCEPqO1M;
using Ki9U3prVUYpuXZQoosTR;
using KrJUU4rApF0rKe0ghOi7;
using KriyNAMbBFHVH52D55DG;
using Ksja6eXvQIdoH4qsQfJQ;
using KwjqdloOE547FvXwj8d;
using KxVLQsjNqqPOW0xHUagU;
using KyLZssrTRPwLYAXbcSPI;
using L20xoHXFZQOlcMCLWVjv;
using L59KndjmMNEm7X2Wy1xv;
using L7TUXnjb72hbZEhrKCrr;
using L80x9yjMh23sRVjoUNkV;
using L9g5MojFxeZPpkJRPSUJ;
using LACiPx0PIYfsmJ5mF18;
using LBTrg9rYEZBuiKysMxX0;
using LBp2NNju2dNiwB67c4Mm;
using LDncUZjYmgrpc5fjRlHC;
using LGFG54wVMSuPHxkOvIG;
using LHWxt1rE9QRmdxZaFWiZ;
using LHbpNB5to06kkcBBOH1f;
using LHceb2MMRMHAuKOA5y3D;
using LIKIARrY7iCvkKMRfyxZ;
using LKcTZm67qdZInuaQVT4;
using LNALpIraICraQVYMByDM;
using LRdAp3jwJCosKwAYp3OK;
using LTClhuMvSF91sg5v4QRs;
using LV2qG9Xpr7HYIGtRGvHl;
using LXtJSRjVpdumL4BJqOi6;
using LYshEX501Kbo1bjCaTkD;
using Ld97mcwGPVX8EnRrs6p;
using LeCVcDnHmTaRCQMAJJL;
using Lfl3fpXM8cu4f1sRlH0o;
using LhoYQZj9Cr7sxn2N8hUT;
using LmePDDFXVMmawhyHkGj;
using Lpg6rFrHQYkUuCfuyRpW;
using LtgNa5XKWcGvVlpKLRZQ;
using LttF4cJlRrJ4NeN4Xby;
using LuFHTKjgCl9wZYee3s0d;
using LuP92S5MYRFaVmwknDI9;
using LvRVmKrdb3ahlxKj2dgF;
using LwraSiqYndc3SjPe1ry;
using Lxrbhdj1Z0bI09d1iAN7;
using Lyj0grvoKXo2YwRPKjvc;
using M0EBCErJFirJ1IrdeE46;
using M22QhSvedCAVJAAwGilk;
using M6Sa6ArXiuaCOBr2qG0Q;
using M7hrnN53x8iqaWaHiEuo;
using M9R970rMw30G15nxIgY4;
using M9gB02vV2j3our23yLQM;
using MLVLeMvMtb7o99Mbj52a;
using MLuGFjMkK1n6dJRLPTYf;
using MM0bmtXDcQv0Ye1kfn5P;
using MM2BN6PWRLlVJFAs17A;
using MMPTPej7cQwacrABhV8x;
using MNxQnNMizHrttlIK5bcQ;
using MOYcJpj4fFJNBFJAwD7V;
using MR4IvvowtQgZS3pLKBU;
using MRSAb5u89VYBMDESGYy;
using MSHhVEX9LP3JlfYUJZWO;
using MSvoqxMxxybDJBPwpnPh;
using MTopY85zqIhddvpYCgWm;
using MToyTO51Rhfhjnb0ohKB;
using MVjAIp5vTqZH3RDOAFbF;
using MWHju9XBfUasIAFaeEwr;
using MaeqNHXNVHJnefyLSe5M;
using MbL6SQwcwH5F9AlT1AC;
using MbjGWFrcHt28cx0Gkfkt;
using MeQADwvw3bLWXwCvVD72;
using Microsoft.CodeAnalysis;
using Mjtvf0jlzt6KPkf7tjsb;
using MlL0a1HFuWWefNQDBmv;
using MmptqnPZd8OgVEKAUiI;
using MnD87jgiZps7a5jbO1K;
using Mnvfk45P20k2d7Ei1tf0;
using MnyGG8rIiUhaLdEE1mG5;
using MprHFXM8hQSGF3mux7my;
using Mt4ChUXbQW707Venq76f;
using MuA0gfsFLxuknVrKO5N;
using MuOCUfrOPhi1LMD9KE4O;
using N1Gsf9MxIHG5ZfeSxRFM;
using N5AkBd53QXRVJheP2Xr2;
using N5QA6xMZdHW8JBvIcTUW;
using N7MeNbrGiifMSYwy0UvA;
using N7stUjPmq6bsW8ERNhC;
using N9u4K5X5AJ29uSYcb4cF;
using NAJFbDvFpYiQ0u42mGnb;
using NBmF7JvWhYnPYM232Rcn;
using NCOe45Xk66AUwPpEDDVV;
using ND6uKNrMhFRXKFN4240U;
using NDPvg6jJg3P9GmnMesTu;
using NDXQ8mXBBlbq4BdhMix6;
using NE0ZhsXpGELU9POQTrpQ;
using NE3VqkMi0iKu4Su63qm7;
using NERudHXXeHgk2mWW0To;
using NEpv565SG20DxyE7vbim;
using NFZp7HvSN4EN76gUXPaA;
using NGU17Yr6AMFL7eA8QoJg;
using NI2jp3QQ76rx5nf2FwM;
using NI61FZMcQwNQpkl8IJ6A;
using NIypM95BqxuJ241o851v;
using NMWWVIXeFW2aJhxLqkte;
using NMvM5oXPUr4UH4QAxD3k;
using NSIMForWOesMjwqo1rem;
using NTV7LJj4C7ydmtxlJbXw;
using NWa6fPjL6xj6QE8gJBZq;
using NYScFnvSXZBt01HKNEr4;
using NZhqMArLUwqIUxdCN2Q;
using NZyPKhjtvctdTYZed2KE;
using NaJMk2MuYSw32cvDF5qE;
using NcLe2krf7LMWBZdyIMyy;
using NdAV9KjlIZaUAlZkEKlF;
using NebuH65B8AnBXRmcuLsR;
using NexJnPMWGPrDcPAEs7Tw;
using Nf4CtV59Rl7PO62wRp9V;
using NhGrsR2awpef2ae6Hu8;
using NiZsRHrAeoa1DiLJZFIK;
using NksbsaraNypvudabO6om;
using NlIo6tXiP0lUAorPoKJC;
using NmFnGlMfo3oDVDVlT6RA;
using Nmv4dCMSWD8RWUCJweWN;
using Nn6VNRjwFmU8jwI7JFCG;
using NqSRKdjtykE9DCY0DT70;
using Nqs1PJ256DJ3h05e8NU;
using NscpU0XP62xnIQBEPOfG;
using Nt4LbovXUIepQVc9Zb9J;
using NuxoTtvdnJAXv8imXn5;
using NwC8RAvMEcHnZIXDAPyN;
using NyPtEH5L1xAP8pGi6Lcu;
using O3wmNaHUlvhkTXjgsFG;
using O45hf0rXUDrxbuo3v2O3;
using O5Mv3N57qadxSWnxUZsO;
using O7R5ZGXFHVomfw2Vqbgx;
using O7VMMW5qNV8xb9GnQR3k;
using O7mP0yrup3D2j2QFDglW;
using OB3OLLXZHX1HJpCkYQrg;
using OBWRWP55soaV3K6KTa3B;
using ODBXSxjnqdrPMjpyrFcy;
using OE2nZsMKCYQWh6uHSmpU;
using OGFrTmMxJKgMZlCvBuE0;
using OGvYmm5vQTpCU3ft4m8Y;
using OJ9QD3XDahqIksYkPy0D;
using OJnkQ5QAP6iqcXFVp0m;
using OPEoAErJ4Gqngqe3LyiI;
using OPHUmq58SgK85fquuYiS;
using OPbqXWXZJ6NbhPaBa2Cq;
using OPg3S5r9yD6mE4rUSCBA;
using OQ8GjvjCJpTMe3p0OUvk;
using OQwHq8MNf6Dw1g0GLU2R;
using OTKfhi0yFU1U7boPZ94;
using OUCNAH5X69MFy2QlNRqf;
using OV023RrJVSl3A6lPCOwB;
using OYTY1BrJnJw0fCiHjyO9;
using Ob3BP5MOTUEfx5d98Uwb;
using OcXXuknMPug4cmkaZZX;
using OdtDJNjS0TPTD3UknqAG;
using Oj4DyDrOIB5baiwGa5KU;
using OjNFafraakNJM68wrVCf;
using Ol3AuEjQDPx0XOZBelyd;
using OlRMA2v10JTwv8faRkaY;
using OlrIbBXNwgCwKJc7hKIa;
using OmA0T3MkiYSe777UMALO;
using OmspJRjJfN4HTwtKtQM5;
using OqR6oH50nXRSQNVi4wVn;
using OvYxYuXZyTte3iQMBPPi;
using OvlpRuX2QsnEDmf864iP;
using Ow2115XV5eAql1RtrxFx;
using OwhiS1CTqZQCQIcSX04;
using Ox0b7iMNF84H9TQkVorX;
using P14dtDMj0QBsPtt56okt;
using PANVl7vyxNefgQ0S6qBf;
using PAhW0vFBCj2B2B6ljZF;
using PAq9sUX6Mo542uRMkax6;
using PCEdXArfATOVD7mI43r4;
using PCQIjm5FcMlmwHUGcgof;
using PG3IxMvLcYWwM6Vn4nD;
using PJIULiC5rO6ikvbb3KK;
using PJaWpjJGUmPTmYPO28q;
using PKbTFCrjD5SZ1LsnpGbo;
using PN8qOC5x55rCIyqEWpmZ;
using PNgRWgr5dpmlD7PmVVBh;
using PRZF6nrybGWOrkRAMmiK;
using PSCn3fjRJ8EUl4XefMFh;
using PTbb5cM5RBJAnp9m6uc0;
using PTeMcr5rLTr0gFXqFTUp;
using PV891djB3ycE8MV1bpi1;
using PVS2injNk4pTxM97OL6A;
using PYs3YkrW2Fk4CNZnhhHa;
using PZdr9iMMzQi8w3oEpQsX;
using Pap9t6jS2VcIi53jeSMU;
using Pcr38Ajy7eSfk6J3i1l5;
using PdWm0h5x8sb90tFvRYs2;
using PfOaZuv9MiSceplDtgP;
using PhFijwjBlReyg1Cd98H8;
using Pjl4oaMm70YW9cvkWKcq;
using PjuxssX4yejFXt7forx;
using PsHRSNX2LpIJ2RtnCDlv;
using PsXRMZrcIhYI7oVsnPyt;
using PtpX89jZhPH0Uoiijl9l;
using PuPjxsvlbqs0YgQqsqS;
using PvW2qcrTCEeKlyDyWqFj;
using Pwx3rdjD6fbW3D7I7ERQ;
using Q0Ky8uri7LR6L9UOkR63;
using Q0vHd4rGwUl3YAqFXvrE;
using Q2QMNnrpBukN1OA9aYdF;
using Q2k3yQjDjHHiTq60ZF77;
using Q2tQEsM6GBTPpA7meiVU;
using Q3Ww8aXpbIUj17JHbS1Q;
using Q5SxqlrZ4q45Q9VB1T9e;
using Q5rnZhjHbpGEUFL5EmQd;
using Q5v3lOjtQT3LWbBanWKl;
using Q73X8T1oWNmHTRHSPGW;
using Q8481FMkM8aJCFdQ0pDE;
using Q8npKk2WuhRnibHc8qY;
using QA8RgGrnA6DtwMgMowUF;
using QBGNQvjm0KHx2L5vGH6Z;
using QCKpkyH2AqTxq8ShYha;
using QCtvPR59x2rh4vRxLDKg;
using QKgIpgj5zkCU7ccZtnI6;
using QLLbGRjYPGZGwfAixUt;
using QLZ0rgITI3n3tbChaLN;
using QLc4CkXhIi2mVRBwYcea;
using QQVOIBM5MOZocknmtgNR;
using QSyNO7MrujeJptm8ppXR;
using QT7kjFrjA7TXik1QYGch;
using QTCfOOjSX0kmboUx3tgy;
using QTQZVZXmnbH6TZLxkLyN;
using QWn3JBM70dpN5Vb71HP8;
using QXawmG5AzD4RPah1xV0I;
using QY4WXhMAeYpZXMJsr2sA;
using QYHvNLXtULgsgQEbYxe9;
using QZL0ybMUR12YEIueUkt7;
using Qc681nXhNYLRbtqFCtZK;
using QcQIIerXwwOBDquZgLGO;
using QdgtIkXTo8MNyeUUXSxe;
using Qe65oi5oavQwCbhuL9Te;
using Qf1WY6zbm8Aw2UKZMGJ;
using Qgb7Rrn48LMSQJ6sujT;
using QkK4KUXrSi9oiMKuR0u2;
using Qkgpeqjd9PwZ7oZhLNHr;
using QsgBRKX5j46ANdddxxtJ;
using Qtb9ik5ZF5NJCP8ZFDIQ;
using Qven2xvSBDk5R2Y8aS4J;
using Qx2ogdwk8cRRuxhLHsd;
using R1uDFYjdF96UFCPXx8nT;
using R9ixI6XVhaESAZu8hB4s;
using RBAZLrvbGclh9Oye96iB;
using RBe3dRM52rPphIdnflWk;
using RBnUAZrdnKVuKRajkwCM;
using RCv4y8XiV1IDV6hakdpj;
using RDUTYQMXY7eH22V6YbWv;
using RE8sGgvtuPkI91ocaet5;
using REL7i0XuYH2e8yYA6Hdl;
using RExlL6HLiO6N4j51IS5;
using RF3xQrXb4pBmtnKMoS1B;
using RFo16BrwkHFgbtmKekNJ;
using RGOGEZjWrTdFYGFGs9JQ;
using RHSvyGjw1Rjyl9kQyVDQ;
using RJmwXyAgTSp2Yda6s7C;
using RJnLsKj8lHqoQGdc3qBD;
using RMCUQ6jc1JU08AY8roNh;
using ROi8UjXD1Y257A3dpRRJ;
using ROqDDv47HdRZb85JVpx;
using RPh5LAXNlkRBSryVLGnR;
using RRQ47HjwrcVnWVxW64Aq;
using RSkCH15maFUgSZAhyLlf;
using RSnJQF5huj24bxKqActh;
using RTnWwRMGqqmbHFDDPscG;
using RWSr2hvjx8Qg0jr5id69;
using RXYSy3jR9o3mNhDumOP7;
using RZ72btyUgyPc2cIon5C;
using Ra772SnhJxXHmi3EU9y;
using Ra97DB5q0eDYuppopmTB;
using RbDLS7js3V4HLdbnIx86;
using Rd2JhDXfojI3lG3n0gaI;
using Re9LdgvwYiYCfdk5X4mO;
using RhIP1q2d4fGfhpqLBTF;
using RhrbfpjmYrwvQOTYGW7w;
using RinlNUtgN4EPEfVQAjM;
using Rippleheart;
using RjLwRrj2ygR95offNW9F;
using RpUXjTXCp9cht2BweUtc;
using Rqyntej9v6AGQOugakwm;
using RwIt0ZjuLlMBRQMY9Mhb;
using RwUGPYvKolawPPQLxvNo;
using RyOYPcrhTILEDf9723Ok;
using S1IWQDj5jbR7K8q7UVvf;
using S1oPl6iJH3qsFDlbpYK;
using S6bmBUvbRO9SkTTFC1iG;
using S8AtsDXTNPQYLVyBnWtr;
using S96qEIMOOqBxUN3sB1SQ;
using S9v9o2REcT0TcV315n2;
using SACw0EX3lsItRPkXgfme;
using SEBaH4MGsIi8CA1emnUU;
using SFJWs0MebH521L5OvsXj;
using SFJbqNrjFr6NYowxn7WJ;
using SGTjYlq39nuBRhEekqn;
using SGTuMs0Ms7TIrQBsZqr;
using SJ10gGXiIgKq6L6Qj3Fv;
using SJkeFkvWBoTArX17IOde;
using SOeLJpr5XWNYRhTboqUr;
using SVvw0SMEC4i0cA5VLRNW;
using SWVcEtXo7W73sg80vgtv;
using Sau8Cev1iP8WxMpeP2Ko;
using Se8NBvj7HVQcOwvT5HaU;
using SfEByd5J4Y5i2kY6bUXW;
using SgBmkcXC4rn3vBSMdvKg;
using Sglbwc5guQbY0D8Msxwe;
using SgoWJBrbCLsLxgj5yISA;
using SktnX5rvzggeOsWn8swh;
using SlyXe9jSpkpHBAXPAysq;
using Sn4onq5VhI1bff9fewtp;
using SoVBZH5DrUNPnbTlk0OC;
using SqQ6Kk5dnPmBeMNRoRX8;
using Ss71tYMvp9esvbZm5EMZ;
using Sun1BKwL2PiRYu40CNy;
using SvZDUqMcxZVFO2Ney2yg;
using SxAOUu5hlDbpiXjoblI7;
using T0Y25UrFlFv8dSJNFjNt;
using T11hf9XPDIUHuNw1Am5b;
using T1pim3XpOta2mn7KhLBD;
using T2drNt54H1of2qkS89cf;
using T5BaUSMmcKefG6Ve795B;
using T7T8yyjWtv9tgIknecuN;
using T8bFQlvt8ryxDRpVyiB;
using TBvZV6MNRD3h7J2SwFgf;
using TDtGJrrDtufHDH1Z6ugo;
using TF4jTd5g9f2KURpjl70v;
using THTJjoXvVRlokwElYkXh;
using TIiELgXUUnOqICVLo0gy;
using TM5uoGrIJxuh4f5Rnp6P;
using TMbsXf5BRvkq07iB937B;
using TPKt3b5uG4DlBk9I78tv;
using TPqSH4rwiahvAjwZGbxs;
using TQ1yCbayd9cQ4kunOba;
using TQbO865gBLgw3xE2yCrt;
using TQmTQD278rtC5UX4b56;
using TViBTkvJK7mCbs9XaxpS;
using TW5ivwXGKYTpUN4bH5DF;
using TWcnG8MdYYWY5vO2ZIUg;
using TZhK19ruQ4utpOndUG6U;
using Tb1pFqj3hVmacEqxqM8u;
using Tb3JFYjS1F7ZK8BGMhb6;
using Td3gMGMnj2Zjh5FPBoWW;
using TeINwajQFANIIijEyxZe;
using TgceROXQicwkSE7XumHR;
using TiQBT6rSO6XQJgWcTBa7;
using Tj457U5BORCjwjndZyWD;
using TmW9HvMPzKv7ODYiUZEh;
using TqxE8qvJrESp5HgYGdk8;
using TsnOpXXYuybeg6tAT94K;
using TuXqEjv8MqZDKgAi0WJV;
using Tvs4V5AY5d5DaLvl7P5;
using TxPYstjHd5F5mh2AGVn;
using U0Ybw3rjHZcXcCOJ51fX;
using U6KEYfMrWGQKCOf8KgDj;
using U77jCfjC2wErVci30kZy;
using UAT3Gb5C5yF7y0XpFBbb;
using UBPFCRjfGFH5IRKm2GlZ;
using UDbBtM55mCIgh39BfEyQ;
using UG22bDXtpxrXxfHWRWPv;
using UJlGQRMXL7yW1CadwUfT;
using UJy8QKr1gVenbBJ2ADdg;
using ULRepZ5rBdZL3i9avZpV;
using ULd9sSj7hfZSPXD7kPNP;
using ULdWVUN301uP4AKJelS;
using UM1gsL58sHX16PZGiFwt;
using UNNfWB5ZwEnNiLOwWnqR;
using UQVdmorzIHT7dgCfAfx6;
using UR2aI6rXMpAnJPFlTiJs;
using UTvSrkrulYQyYsYtshOm;
using UVIB8FrMu8vEoQiWQSXb;
using UVjQhP547mPfUuey7SaL;
using UavILHPOoj0c1rR8ZYE;
using UgfctyiqQx7VjKDXNrG;
using Ugvcp8XYC61KSYakAdQC;
using UmIHX5XRTk2AFegdgX6X;
using UngVPr5LYHxF33BS9enA;
using UnityEngine;
using Uo01gKvS73YETS1OgdXs;
using Uoh8Rej1HrJnoQTj36Z3;
using UpauCXXjJotXxYRcdMwW;
using UrdZ2KjIzd2tgN3S5InK;
using Usqnf2577M5Vmh0wMkPf;
using UuLbWbjceMHEgvTEC2I1;
using UuOPOtrImvHg23fCqq5d;
using UvGvGeM6zHPuQpiCW29J;
using UvGwRTjjLhWFbQXn8Ubg;
using UvNGsCMY6ajAiNgmhQ9u;
using UvplScj0PsmF1DHyW6VV;
using UxE9aCu3y9UOOJ06esh;
using Uy3SDo2tJLD0mZ5j7GD;
using Uy6LbG5kJ09WTPAYx9Mu;
using V2bfj6jwjglpcgLiZYKB;
using V8BuDTv6jKoyUoAWibm;
using V8mgEljSAqLrDOVNjOED;
using V94Mbi558DovyXiK4xk5;
using V9WfpRvFe84SXvodUjtd;
using VAHraBM04a6jff4fmmvp;
using VCqZylXpll5HSMIJiFZU;
using VFHtqvvPugUQKPDI3TTd;
using VHN4aBXp7EuXlZTMBRgM;
using VI4Vu2r47P8yiB2popmx;
using VIx7ADXwnEOpA30MaAhu;
using VLLg8mjig7462aEicQo6;
using VMS2F6rXOVEImtBoQJFS;
using VOOHTyjZeqHTDJupOeVI;
using VQxRHBvqdlUh2Pv6OmTX;
using VROLLQjU0Kosmw5JlpMQ;
using VSO18qMn9Igc5AXU1CNV;
using VScTSsrq2yhToBTyIEQZ;
using VT80W2wvV1LMjMjCJOE;
using VUNVjtWVRQeAEvD5yqu;
using VUgKbAXi1qlortCV5kcK;
using VUkStX6uTboFelXNTPK;
using VXsCriX9DIvKAfUchvn1;
using VekyoXK5ERkbyQQwTKS;
using VfInDqrr41o0uhUZj822;
using VfUCYZrX85PFhJi1TPl8;
using VfuuyNr0udXQXqLYXuY2;
using VlTIYBjYNoBsiOIAuTfr;
using VohE0OjpP28gBRginiSq;
using Vrexs9XGiF96YtXNOLw3;
using VsSVVRrWlRLoIyp6mM3d;
using VspJPT5g1pWxXf3YFm6a;
using Vt45GR5OYgnkvfTbyMJY;
using VtdHXXMMiI3AVIbcx038;
using Vu6sZqMMaigOFPf0O7AT;
using Vy0iy1vdokJxIddensX3;
using W0PonyGpjgXQnGppdk7;
using W2PwFYXzY9dt00J7li2o;
using W5aKMqj5SKuiW7hEDfuk;
using W6oyMurVWfCFtbPO1B2J;
using W6xxSr780B55rRRHJAs;
using W7u8ZhMr6F97nscNI43O;
using W8bLNIvVu78EcOZXogUj;
using WEJVCJXcW7o1lW9Ofxg0;
using WJDfroXlkKV1cPUIJNPj;
using WOljKnrQFnrLTBHJcTpm;
using WRxT5CrPGKWtsi3v4Ny9;
using WTNqJnvqOQltGUBQrlO9;
using WUhOJC59P1cMVLevPjwf;
using WWhoPXrozxduWul9ji8n;
using WZ36XfMfHpP3hSSZ1XNF;
using WaiAZFnDRRipvXOtNun;
using WbY0sMvVjdKj5K8KwZPq;
using Wd5qnj5X0q15s5VA1TBZ;
using Wdvs9Sr9N5VaLChREdh8;
using WeUnBTjf1mbrab56PLUw;
using WflT6OjIvGvm7bW7iH4p;
using WhvOVyjjTdXn6DqfXBkS;
using Wjtp2YrFQooUfiGwdbpl;
using WkexVVjRVq7WoRf0PF1;
using WmB3bfGNrHEV822tP6q;
using WpHbpojWSGGuLMQoyGQl;
using WuaiDPj2YHasNWtQDrYH;
using WvdY7XrWZUSGuIc2vlOh;
using Wx6f1NXTDuGArjqDQ8G8;
using X2IjJkrYALZ5o4eSORp5;
using X3D4hRrAiJ5eSvxoTDI7;
using X7hhp9XevLn91WgISuTL;
using XCSE5Xr8hfGJlpV0ueD4;
using XEAhcZrIfpSgioAkZ9FS;
using XEhBQJXi3oxiuMam4fcb;
using XH9vZLXVAsK53w5DSOPM;
using XLrke8XZIU9ondYVO1jk;
using XMs6NEvbdqurqRxLWLK7;
using XMxQ2TMCP20uoe4lLWst;
using XNqoPI5dgQgtPxtB1LrL;
using XS9fPcjmRcYkAeBdncfI;
using XSEFgRvGACkX6SPegYcl;
using XUVrBn5EDWopkyLtKkXr;
using XYGZ8YMtDpcquiV45aE4;
using XYcwFm5RyqqJhTZkZjH9;
using XYsfKU5QqC8CtJasrWXH;
using XZYx4yXx7Xi5d7OAbMHr;
using XZfRYXMpdul6kQ4u5gbh;
using XbgBAQXM6M0RkslXi6j7;
using XbjK6Ir7QmqMOEfKvAbf;
using XdBLJv66U5u95URltqG;
using Xdq3DAX2EiUvLoNDKBhX;
using XfmcoOMSTjJpvWJLLntB;
using XiS15cpMVRXW6QeQRmy;
using Xj366k2FrRVEhm4Vg76;
using Xn2Q3WjrHGF17vokI94d;
using XnSL9r5vZid2wqy5FBoh;
using Xog0IS4MYsbE96Zg0TY;
using XspV4HjjzyGI1WTbkRMN;
using XuAq5q5XE3b04ixA2KQb;
using XuMURJjwXNO9xc33IXS0;
using XvwyNQ5LggK8ESNEaSqX;
using XwMIoZV1r7mUC1S7LxD;
using Xwg9CCM1Y3hJKgExXrVX;
using Y10w4JMeR7ElIj106pZI;
using Y28MDKrlLAh4il8CwvBJ;
using Y75q0SjRIhSEWDwaWmSf;
using Y9QEyKrio7dPDQFWoouu;
using Y9wa25MLjx10CsvDb31q;
using YBZKocjmFP0l2wYkULf6;
using YBZwc2jSkZLe1ZhSYNu6;
using YCn8cUvKK9Hj8i2HASHc;
using YDTNNvrKjXi95KHrXYpc;
using YDs2iKr5HV1E4TlHrm95;
using YDyAkjYUj724sj34meq;
using YGCGE4rV73N2XeiU3egr;
using YGnQKfMFFqbf1mfDwscr;
using YJNCUlrK6BXXd9WF8JJj;
using YLFZvv5pyFAVjVOMM5fp;
using YLwR02v1fwIoDZIxFocR;
using YMPV5XMH5lL7TknSm9TX;
using YMRmj4olK9Zu6akxDwT;
using YN9wwiX1aUq9a3ueoB92;
using YOJL1J2eCZNSSH9i8gt;
using YQvidbjLdP2BAUpSW2a9;
using YS2BTqvVmPrhOMjLNVqv;
using YSeYDHjjm4VoR0iZ9m5b;
using YY5VhOXkFkPR6sVrIHEO;
using YZN50PNUPtF7w6doh6Q;
using YdDLDyM2CJcfL8sJQwi7;
using YfXOEVXQ5PGY1bvc8eSs;
using YgcZt8vy9BIL6UW0qA3g;
using YhknUfrrxMiLTG3feadQ;
using YhyZU6MLgMQO674X1ixm;
using Yir3hWrVap2Vckg5tJW2;
using YiwRHZM5aXVQScLUxbQ3;
using YkN4lYrzrPlZWCGgnmfJ;
using YllFWH5zo7RlvY7ypNIQ;
using YmQ1Nl52ChD3Fodymh7t;
using YnXKpFjpzIG3DZU4wr6v;
using Yp187ZjC5MPEyZkm4ck2;
using YpAdyRrYz2ttf1vUMeBx;
using YrKng5jw4O0ddwSKG0YO;
using YwVtkivGMAgMeL9p4DxS;
using a1KYqAWDb6xhl2Ya8ZK;
using a27Tt0jSj6tSuZaCuVdq;
using a39trJjSCr0wTdij61On;
using a3CXsJMIgwNsVEQbc2rt;
using a3dPe17jtq4KQCt2M7E;
using a3xS6c5JIPVNeMLWQ9Fm;
using a46mktj9WF7h4Z2BKwJ6;
using a4G21OjWN13EnKgBtrVD;
using a5IvY5rhsT2LhlaLrcCg;
using a5TqA0jSz3W8KfENqC3i;
using a7dJcd8y1qGVCJF4OKe;
using a7fZhHjRr5pHY5JAcvoj;
using a8cVmVm9srv1om2ZhvQ;
using a9GvKjrV39tGvmrA35sS;
using aBXB1XJ7V7lwnEpeiAn;
using aDISsbvd7YJf8qybVQcb;
using aFBtMvX52GfyQcYLjkXP;
using aJxtH35ruGp0XUfYwTZK;
using aMeN5srVgZ9vw7piEtjt;
using aNABeZrAb0bIJghvtlKZ;
using aSVdM85DGLUT6wqHNwgX;
using aSyy4GXoKkI1ei32y0X7;
using aVktb1jSDuKs4XxiLAG2;
using aW3YHRjU54S2sr9ogAxN;
using aY78ulMiGo8JQWvgptdv;
using aZNGwKrOrNfcRD1geeCq;
using aZaH43rRtXEwm7hdfluM;
using acZFkyNu5756urruXIN;
using acr3hJXNAmqNnan8uHhm;
using aiSd4ujrkuRSGoN3O6Ss;
using akG1U8jG5jrsTKi88fyl;
using aqgEC6VrpaQYa11AuWO;
using arSfu3JHsb3h6YhfhN5;
using auJSrqX5w9jmuVOqm7XR;
using auQfLb5GgiBndcjWKGAm;
using awQcul5IBphr6BtUL0dh;
using ay8ZuIX05melDXPFe2Ra;
using b67uXSr7lSWiQIF7y77a;
using b8TpU9JVHsvxEwSmNuv;
using b8cvP8MyNg3ZChuD8tMo;
using b8tM6Mlk0gHSjG7HNOb;
using b9lr5gvctoFUk9erJl8o;
using bB5yAEjwu18FrmUJaeIJ;
using bDPilGjazh7fJSR9FA74;
using bG7VBu8w7EXKyjL8mWj;
using bGtS95MVeBx3J2BfxeRt;
using bI8K9fvu2noc6M6iJemw;
using bIt9FkLYau3fwgI1Lqk;
using bLZ8rWvANps6WuBMyZJ5;
using bN3A5ljOITAtkBW6wFDe;
using bNHXLEM3e8euwuQldBE;
using bOerQFjAF84kUI0PGIR7;
using bPk5sgjQQyvKFK2EAvqS;
using bQfgfsrwhNqOfPknaUwj;
using bQigQAMk59tWKTMRn1aE;
using bRo17UrBuDgffnOGQtoD;
using bSMmyxvarcxkygOG4h4A;
using bW4cXdXNcHZVHtboDQ2x;
using bXPDpUvI4VNZ7JuICBic;
using bXxVpI5hSb9KHZMkhHrv;
using bd3kSMjGdgT6aWIsN4Df;
using beOHnC5pHDVKRogpEYPl;
using bhOgxZMRDL5pRcpWVy2L;
using bjIY5uvA8CRVLthilGpM;
using blW3O0va8t0OUVYwIhGN;
using bmHjck7CXWS8QkEZjxS;
using bmVwsdrKpopTc4hgybRG;
using bnP2xZvuC92eif05yQlA;
using bqZr8u5y3d1YcyQePBsA;
using btqHWqoFf6C13qDfSik;
using bu5Eq6XDxC5Lub2MBBlH;
using bvHTUcr5twI2x9ZSU7g6;
using bw46VvNOrOq7t9aFkmM;
using bwwKFa2TM8GE7ZQ1eGm;
using bxf3OUr7va1myFwyXatM;
using c0mSL9jyIDex4sV5smeJ;
using c1WEQMrMvU3bMAmEYBQW;
using c3IYdc0f1ZeC3Say8hZ;
using c5PQHxPlZxaK87fIjdK;
using c8LqJw5Uf05agLJkTm3H;
using c8sklBvKJ7kehHqIPXeS;
using cAajnMjcgVyA5yURh6Uh;
using cBHjIU5Ai4kfvr4O9TeM;
using cJcQlEjR4KU77GxYsTQp;
using cK8uVv5usdeM3mMribjc;
using cKqvM0Xinwix3FxyO4yP;
using cLOt8Mr92vl8OMbEWYRB;
using cLZ0kiM2sxoTxpTnhvYu;
using cLbviGMky79ULeUARZ1E;
using cM7kNJrVpXkagPV4pVWm;
using cMIeCer4fyQkKr2lZ82k;
using cMZtslrcPTj6l6awKn9B;
using cNqaCXrc89GJJS55lCBa;
using cOBXPLvnOO1Taa1S5sNC;
using cOqS6x9UwBFOibSf8W3;
using cPPqBaj0GVJhYxLSUiYE;
using cPfafrjyeFWgvDKt2ATE;
using cPuEbtjr0sN4KjBbvBia;
using cS712tXZhpYAbdZW7mwO;
using cVM4tQ5QjBTpQAIwOPEQ;
using cWbyK8vKLMRKBdvTdil7;
using cWxdr8Xd5CJyxG0A0waM;
using cYvmnxrDqAu03iGTyo0;
using ca1xKA5vjIY4JdTXp1ZH;
using cdJweo5nbi2IBSn2567d;
using ceMVEfXlopZEP3CTeT2Y;
using cf0kdxoi4RwR5NMNxsb;
using cg8eIlXzEQryu12utLW6;
using cipW4djWVUijJ05ZoOnO;
using cleMTTjZy2EmExDo2Ovy;
using conblf05wPmBSDCC5j1;
using cpxZxK5MybTZpYWGrRp0;
using ctYgK5jv2EO5N8MbjwL1;
using cv2pLBjP4FGCAVphRhfh;
using cvDpMa5LDrxlMlCpIriE;
using cvPOx6jPmpuDZv6wPkR3;
using cx1bHg5cIHlwLJI1Rf2r;
using d1hJMHvzVwDHSJ6IqA0;
using d5fSMSjE7IF0sIHJexYR;
using d6CDbx6NLMFkacqKsy8;
using d7nnlLn7mujGOrrtxct;
using dALIKLX2yFEHJ16GqJXw;
using dANGkZr9lSYh3X9QloYM;
using dAuNZGjHBKtCxtjQ4XCM;
using dGM2Wljz2YJWCeR6IxFx;
using dH0W7PMVuvlF5tiYsBIk;
using dHFRM2rVcAtlarTleUjT;
using dHLocI5E8YyqVEJEbPr0;
using dI1SlvjVM5wtiiAqcKMe;
using dI4mSQ5rR15pg7IfsXmv;
using dIgT9S5dGm4AAxqtT6bm;
using dJGIPp5UpspjoJSV10TM;
using dOXoou5CCxm8OCxHXql3;
using dQFQRkMb1IA495M5F4oA;
using dRMMNHNqhirMph7nY9w;
using dStTvo54cCPVPnsHwMIp;
using dTJX1gMketvwDrr9RmoB;
using dUjhFVr2wg5H4rI63B1W;
using dV22b1XrAMcb3af4wpU0;
using dWtKs45zTAWF5W3dPs2p;
using dYO6KOMxY3tiOEhHWPdo;
using dZZZe6XRnd8c7U4n0MlV;
using dZcLyTMnIBPJ7X7XBvnG;
using delV8lrAMqqD7CMReYe7;
using dj8fQBoJgSXFrXgaMVD;
using djFPZkrXbpgoOHYvDsUt;
using dkZkoVr9ztYfaFP5O8gN;
using dmyWnT50d3Z9bbFsbTp8;
using dpPIF4rELbw9e7vO1IHZ;
using dvHXVLMXDy0wdYGJrqn2;
using dye1KjsqWkZ2UFs8JGR;
using e4xlrijxaoWBEv6mMDql;
using e6wkBwXIQuYvIrJT3pR3;
using e7bF9tjLRaAA7joKR6WE;
using eCIRyQXZ0hrjS5LSq7tY;
using eCVUwtj5rXk4x05kGsOQ;
using eCY3mNOQt3nYIYH68J7;
using eDiURsXbESV8YlCcs5Ao;
using eFbrvlXPgW3K3weUbeox;
using eJGiSirZwaL0RBVdjfeD;
using eMHjuBX2YLIxkDwiUUCX;
using eMQMl4Xjih69eiak5iyl;
using eNQuWqMOKVJ2aoAj9ZKk;
using eOWwmn5kKlEJ225QqkKv;
using ePtBUPXTwD4A5ih2MMU8;
using eQhlpguQwEhLaIdnojS;
using eTWRviXFbPakSLNu4Qnd;
using eVJuDkrtgjj4MBUtF2t4;
using eWyM40rpF8VfiYAmsOSI;
using eXyPHBvWpIRR670FdPSd;
using eYNlwYwUVZkRNg0BRqD;
using eZcMsM6Qb33KKUl03gw;
using eaEUZoM9YG3hX6hH3ab1;
using eaIN4lXk39u2n7hGdmgs;
using efENZg5ee8ohKhryswHj;
using efHwLkjSYO7StXl1AU4T;
using efMuWKvKjNxrgD0rY82O;
using eh5uINjEwmJ7syD0J6Ks;
using ejxRn0jyAmVcQV4fAvJO;
using epTxwuroABB3mPVAk9Mu;
using erklYvM6xwrtiFoHpEBu;
using f06J7IOAVJrKn20Vsyd;
using f0OeiX572byuaVbuPggs;
using f1steL5Hb3PpLnrVnmiS;
using f2Vu1P5gDwXRsT8WmfP0;
using f3BxCDMK3MU0DXhsFAYR;
using f3MmE8MRMbtdLwwAFBax;
using f5qb1VAGGiVlgTJ9JFN;
using fA8krAj7IM1ho4ovJSAA;
using fAf9JUjSGvhP29VEsHub;
using fBYcufXDSDvTfwYnaHIo;
using fDDm07XhBnFqXShFLh6O;
using fEtlXeM9nkc6GtqqMy8Q;
using fGlqM65FMcF8GZ7TLQKX;
using fIE3M6vW4e6xiDcEbjSK;
using fLprgmvuRkAPS7c9mHmT;
using fM2vXEjENDi4c48P0RvR;
using fO93F9jShnsgjXTusYak;
using fOdjYHMhmbp3nWN75kRD;
using fOe5a2v3t6BKLr8d5lM;
using fPO8LStd50RYaTeZ1Fn;
using fPaCmljyl6yYNvhJpaBA;
using fTN7q6jlNkgfaRwiyKS5;
using fTh2Bn5UJmmKobHBU5Q9;
using fUyaxej9yoIqZIsXrVlb;
using fVFdwTrBoA3flXPVDV3C;
using fVQfEJjvl0CpDwpW6E7G;
using faxwr5vJyCHGIl5AxmEE;
using fcA6mkARy37mkMDafFx;
using fcFF7rMUeR7P815saY88;
using fd0vJgjrftc1Y9Sv07hj;
using ffvSqQXH1JoNdycWZ24N;
using fhSV8a5Ukrlk0YTS5ZaJ;
using fhUMjPrFl6YSy0S4n1u;
using fhwdwMXpAIuBD3p5Peo1;
using fj4GFvjpyc6e7ZsYFvtG;
using fk0Oe0jHKnZTJ1xHeJVP;
using fkO4P595wTOOoDvH5NM;
using flMVgPjiivbnHe4e19mH;
using fmt1Eev3SvLM0uEqMng8;
using fn3VlDXpMd9KFZoec18n;
using fouVsnMlP9SqVCWU7c3B;
using fpxmvu5g25Qe7xElXHQ0;
using fr2wOg5UvZCaXo5hWfMM;
using ftpi00rWqKgRFkdjw7wW;
using fyLmAWXEDxEyxSZxS4eo;
using g0NksrMhew2H8DJfw7mG;
using g1CrTIdifuTIQoxoPVT;
using g1bkZ8rHsxKIobeyExAw;
using g3GQAYXBb0j0npJCLUkp;
using g3S7Sy5bBua9i5JwhFbe;
using g5umLirEgR4wwu6ZMBrF;
using g8tavU5DAvmLLVT40o8u;
using gBafPe5FdiUbGmwgV7Zk;
using gCuGicrh94v7NoKdEOnw;
using gGDqo6v7emcCqRLRWMdp;
using gGk8IHXGHEY9WpRtJnpU;
using gJTRZkji7AwlTofkr3kJ;
using gMRuXFr5EKwuIYNHM06B;
using gMaNlWjNp4HkJEcoKuaL;
using gN4q9tjUcTAq0d2yaP2q;
using gQ1OXpMATDfBjUZXjlPB;
using gR5auhnVqGFmihJoq1G;
using gRGFIjWyajbgCsNxxpK;
using gUJLWaD4KC4LwAcgwHc;
using gUiW94XY5BLZFY2mPjY5;
using gVRWAS58fSXNMmM5ZbGQ;
using gWjfnl5CeYR7sqbAIuRV;
using gWluMhjLoZ87nUOMriCo;
using gZawgvrt47aGECWL0ujm;
using gZo1p2OFxk7CmGe4Ta7;
using gasTpFjQ4JgyCMb2Vwli;
using gau75p7AGFyb9mVOjH1;
using gcF4dSjwispL1TRZEvDO;
using gfhrnaXipWoTUnAcVKgt;
using ghi54wMKipv2wR6DHRhv;
using gi6SdB50CfiDjATEQK9d;
using gifCbijKtjX2XF5jFMHN;
using gjMOkBjpbvEU4MGGLeRf;
using gk4IM6MQFfNpyappiGWD;
using gkHHBXjQKVpJBtcHZEZu;
using gmQSiBrOXvMrv8ESeuqq;
using gphQRpj7Nlnci777kD0a;
using gps44W5WP9s6cOpVske8;
using gstOrxjRmROGsMDVhhgD;
using gudjxir08oV3uGPetty0;
using gvyBV1vO6GbeuXD7ieVL;
using h1DrIFvK8PscmlLkVqKB;
using h1ErL8jyLseWcu5lgmyq;
using h2m3T25Aq87RFLb3T4bX;
using h4GnpIjdbA8lH4QWmKQr;
using h6X3v9rXFJQmDwPxWAMX;
using h72ZVW5gK1CnPncQOBKK;
using h7qvmYvXGF1MgxdgvWxL;
using h7vtfZjxF2VAhxGlHO2B;
using hC8McwreBpo9dfwgJecF;
using hD5jHg545IqOBKWONHIu;
using hFNEaAruYyKWJ8RimXR8;
using hFl1orn3Ek4BCXDXpg6;
using hIjdyv5Fq0Zwq3GhnQng;
using hKepUDi5HFpRYSKiGfr;
using hSD5gLvb7DyRhKBvqIaC;
using hTQgHPrhcYYyYBq8tsA3;
using hTfbyT5lxQ3IBNmKELj7;
using hVbpsWXp3ytXnCc91ZnJ;
using hXhX9TjOUnpV6rmn62Fu;
using hY9vUOjaaU3utDSTqhjb;
using hbrZf3qdrdL0E15efpX;
using hc3nAZj7R51npII11Z4J;
using hcciRFrS7kF3O6ZUPfaG;
using hdLuQpMsJRks0vBlLYXQ;
using hfxXm2rU3Leai888Djln;
using hhQNNPWMAlVdaxUEpRo;
using hkOpJIXpTP6ex2Z5AeB8;
using hlCZl4MvQidq0fVpEWyY;
using hlnHsbUDALBJws3UVvT;
using ho4B0wMDfKaMXFinEVFM;
using hoanLRryfegOPDIicyiU;
using hpF0xBjNgHWrhxHPvB20;
using hr9aCMMG9jhIODWk9Ety;
using hs7URbMBJjnXtZE3FRUY;
using hsC6GcjSPxEJnPcctk5s;
using htn88xMrf689Hi2yuDUJ;
using hwPo3a5vxRdiuEgsuXer;
using i0m8lJX91aGG4InXwbg2;
using i2dqPFr3M2cMpTnHA6Jw;
using i2oaPqqtY2OoMpYTCPk;
using i2tpyx5U3xrMtweRXegr;
using i4CuijM15BEgNMLxupGM;
using i6Rjyy5Vi8J65x2V2CLR;
using i75HM7rdTZPJQQMnagAE;
using i7ZcKK5ZK9cOuy0xdWEd;
using i7yRtuv8S7skNYnWRSUQ;
using iBGQfirlEJWrtMWPs4kO;
using iBgdUTXo8vmVdBH3PCpj;
using iCCPHMXvzjVpZmpQbSA5;
using iEEggdXb6mebQVThEA8y;
using iEyTuFRrAl5C5OtK1w8;
using iGpNWcSlCxaeaSBsSNl;
using iHCcbpj2BxS6MMgwoLYk;
using iHEXB459dv01PMU9q6P0;
using iHeHwJvIqZhQnYrC0o4G;
using iKc1HUXELCR7Wpv6D6De;
using iL9J8vFnGxFJmF0Ihbk;
using iMPwm7jGn7918N9kAAlh;
using iMw3Ku6riqPokaEsMmf;
using iNHEsjvPXyAbrSYb7y0s;
using iQTND0rANhAh5rDaoFBV;
using iRsA0EMpDiJwyS8txw4m;
using iS97uo5ziZhPUKdIibmi;
using iTSaYs5BBy83wY1ukCLs;
using iTUba6XhZ85gvxuky8Dv;
using iULS4bXYU7RBjivcfCpB;
using iWLtTi5nPCmydnKoQYrl;
using iWfsxfft5l1sgFkFV8w;
using iXCO5sMaJe6bQ4wjhj6n;
using iXHovmXd2gFYxhGvQ1Ft;
using iZ1fEV49xlXQGYySp4y;
using iaXXOT8c5vFhBn6HAkR;
using iaZKRrrVtbeuErVpslrJ;
using idAVtOjkpAQEBDdDWaFB;
using idxSyDMelpNkLWbqIo0O;
using iejJnkj4FRy4ESHHljL1;
using igW1OJrnM3aYAX8K2tMD;
using iiPqS7jJJ59tZEP5f4cN;
using iiaHrsMrxDfqkmWJoC9L;
using ijYnxYMyGDLlEGA0fU9v;
using ikW24xX3Ihi6A1265OWR;
using ilnh9Ajay2dTQIl67ObC;
using inQsJI5WefD5YJ4r2BQo;
using io41NCMTZQSMmvC7BcFw;
using ipaYtnvJExMak2lw1Mn3;
using iqGFfMMiEZw47mUCBFDQ;
using ir3BRn5DDd8ib3BHi1cX;
using irVHLpH9ALcWBnqKgek;
using isbBexvjsl3J5V4apBFf;
using isgTl4jXyVMgdqJ8iFsf;
using iuDsPo5rYu3PGZL7vaCe;
using ivybkkXtCDglXq69vZd7;
using iwPWRe5LyswaZYdZOkeA;
using iyGVhOM5NNiw3mA8xKRO;
using j0opycXt2Sp0IfMrJKq5;
using j1FklfMTgx71PmnilS4F;
using j1s7j4jRyQS5fjW30ywc;
using j1tD0jjjMJxif74ALv7Z;
using j4NRZGjqqDZI6oDsiqVe;
using j5VdX5ryn4iMQwgLcyci;
using j6bwDqra9yjEc3vQfjFe;
using j7LX6E5bCyo2KLiaDLAR;
using j7oKl6jPT5tsZslnwLs3;
using j9AAZ3jVd3bYxB2GERk3;
using j9XkDXrcESWEBQm0rQmW;
using jAAC40vizkZZHhiwy9Km;
using jBq2LNjTMMcRr952BBrL;
using jCfaOX2yd8eF05ucr35;
using jD1tSOMOUM0ws3rr3grb;
using jDSfloMdAnxPAulnAyLg;
using jDy3w3FfQaUgjycPVvl;
using jFFlcd5nfdIaUesnyPne;
using jGujPKM9BOOtfSYhGSFG;
using jGvrWxAr1IBblG9Vf82;
using jInD4GN6v6AAmk8Y0ug;
using jJ3HJJrpZO7JlfM0xGl7;
using jKC8egXDCUmM7BCoJaO4;
using jLICrmMrUpyH4pD7Ct1w;
using jMTuAvPFNtrQUXE0Lck;
using jO7amGXl3jft12yJedUO;
using jPiRw7iMnxnahkeBmWh;
using jQCyORMH3Jvw9ncnMxuy;
using jV5pEW5UovAgXmhg0OXu;
using jYAVFRjuhA6owAnI6asP;
using jYcbCtCJilWGimMiRag;
using jYhxM15ZgyZ0eWNJ8HJs;
using jc9HF85aLC7AMeZxrskq;
using jdcqHtXF7FAlVPKRH155;
using jfw5G4rARa7NVf4NJF3R;
using jgcvGKpAJgmUe9MUF9X;
using jhZ4T5XP4xVj1QlOfLuL;
using jjOA3vrRSeEBINxyPZJO;
using jjbbMyjAfEIPx2MuZtDy;
using jkQfPkMHHOO22xvbBDs5;
using jm5EEbXQTYwTRkvkTomu;
using jmf5Lfur4GfSCmKQjiV;
using jqqLfHXYI7kFG7R4KbJV;
using jsbyigrRuRj0ngDxau8S;
using juKuYejP9tXq7Yw9udv1;
using jutCFQXbiRIIG130RItD;
using jwhUb1XjQYlYW9E1CDmQ;
using jx3ZcyjN6VrQlevOkEbl;
using jyPcv4jf8i5QFMHF1Z1Q;
using k1alojMaVD5qKeMpeb9I;
using k7Z5cS5g7XhDaZSefQAE;
using k7y3uwjOiR177UR8B7DX;
using k8BIvWXp8roWb3qEt68J;
using k9l0ZR2ilccaZldXQUD;
using kCma8AjBh5q1JrMuw7Zr;
using kCvwvvFSQUwPqT8skVb;
using kEpivdjiQHG0FGmKtr5d;
using kEyQNFvGfyIqfrkCySj0;
using kFrhIGr6lpNrF8x4cKaJ;
using kGnrmXjYL6BbURiZuHXA;
using kHp7cqNb01CVwEo1YTp;
using kIlkANM5Kg0H638FfDBW;
using kKkRZL5gJej6m7Bj6eqQ;
using kM8XTmjDu1eluKbD3imC;
using kODs4JML6jVt8vENAqAT;
using kQPLrm50Rce4CtFjBnp2;
using kQS6c7jWXnlvhsfEItxv;
using kQSVIEvoirUhQAIm2Y27;
using kS4fJxjfH9shYWRmC9b3;
using kTJIOJvboABOnilwpqQL;
using kTRhBUrOpOXsPu6D7J0W;
using kTgvZujc9Vkv8FWJZ9TR;
using kVIw0DvqC3miKTg5PC70;
using kY2WeLjD79heKI1I0s9q;
using ka9wwV54Xqy5Ny9nt3D6;
using kbSZW8jBalk1f56K8GjQ;
using kcoAUX5CE0RHMrPVwJO9;
using kdPyykvcmPx408NIVBty;
using kgVslDjFCsJh7TGW8uVX;
using khTqvHvdY2i3EAOcYVTJ;
using khbLKEMJfaMoOX9C8Gr5;
using kisCgZXKQRgZfMklB0nc;
using kjBEmJv2wjM6ZJVeCqFv;
using kkRmflPXMfg5HLgXinA;
using kkuJrEmwuWuJwZT59F0;
using knfFRGvGy7LkmPIPW0pd;
using koZQhQMylcXWHWNluquP;
using krfqi55FBIcwYc0GY9L4;
using kruBsE5CvL2dE14Orvmh;
using kuoW6h5owAyv3QFdD7Ms;
using l17IKwrN6gNy41vVQ2uk;
using l1af6crOmUbaKKRmxLw3;
using l3hX0GMroaLsClEmlp9U;
using l4WL3LNWvNq2tOTG2ZW;
using l6IlpB5a9ATJUJiQqrlJ;
using l6JoqpjveGnRlxG5iyEQ;
using l72fFJjj4RrX5qXJ7aJ1;
using l8WsmQjPlw6r4Sllsihd;
using lAOmt0jYOM7Grfdvd7gh;
using lAi2BYjSxua8jVPF6YKI;
using lCeftNXgcVF2mbAj5WFL;
using lD3mQRvaFO3fB4mHDbwp;
using lDC1pFXTtfRxd6H3ZvVh;
using lDQlHMMLJ1REqtkHGjda;
using lDvnyvXgSjWjd39xW2ZI;
using lEoYqlrAhQP4ZbsnvlYI;
using lIYEeIXX1ANuLg3OidM1;
using lPn7EF8PkDFRgKnBjwQ;
using lSUKf9vXWW5bPTEvhrsg;
using lSYePVjcGpq854FpS1Z7;
using lUtWUijZmuAbeoD66WB5;
using leO20gjtmnj0GEuUuAvj;
using legRaNvy3ytlIcuQOOkk;
using ljBEJsjOZFDNt8Qewdpt;
using ljwl3h5dKWmGRZ9SEBpw;
using lm4RtpMnec1I3YwyF5Qn;
using lou9wQMnASRi4umWb20v;
using lrPUcOvwrQlX2ddXvcH9;
using lra8abrckq9uV0r7JkQ6;
using lsKH8dj4bfgLZeue5cus;
using lsX1RtjKOtahsHrG4ZB0;
using ltcfsLUA2ShAiT9Qmf8;
using ltpFrRM2I95iMtne6qfl;
using luGMoQ54bEdbeXGtcaO5;
using luJXuwwoqoajB6AR9Ue;
using luUZG1WnjU2yPDIRt2a;
using luYSkLXpcfoWEmZ1jfgs;
using lunn1AXmjtKKbJSAxZQK;
using lvNgtfr2scqcnVdUNvhG;
using lxBh7b5UGpdgcP7R2lRW;
using m3HlsYVOZaecrRCo2BZ;
using m4dgf8j65IGLH9o4tc94;
using m5l0BZrVTt0gyOfIpFD2;
using m6uLL3XzL5A0he3gAZKL;
using m8hk9PAmuTerZDuY52w;
using m8n5hO5gL57QfkrOL0O1;
using mBNHqsMazdm7juJysg4b;
using mBW3n3M9Tto2bEY32m4Z;
using mGFVVbXC4AsvtbNcIpb;
using mHTEEfrVef8xiPMJYjEw;
using mIZhOtXFgggaLuf8G8xH;
using mIsW1rjQOsEA0CJ6egM1;
using mKVncywpTDwFhQ19j4g;
using mM4ie7jO9n17iQ6OYVga;
using mMI3ubvInRqpkXf5AQaa;
using mMTwiovtTW9xWaApjvRq;
using mMagaBvEJMgW6lULhFk;
using mMey0P5zvY6jdxAWFWmh;
using mNGCXcqTm8WLlbkCiMU;
using mNcPa056z0ct3JDxGwrN;
using mON72hvTslJ6Fg3pCJns;
using mPtoCwXGzEgaXkLHlIfs;
using mUGCdMvF3Z4rbW6MpPh3;
using mVlOO1Gyl4OTB23uSer;
using mdNYnIFj3vIxlvvlSsA;
using meFBj17BlnjwpdT23pM;
using mfLdmJjhOqKFUJSfcR2s;
using mgChNT6a7RTgxk5wmHo;
using mhg6LFMBGHfq1sNhlkyn;
using mj1PwKjHUFKeLmFWEEFn;
using mp6AUJMWlVZl51fldyIn;
using mpeqisv8A1raZuhm2HGi;
using mre7hTjlsGlX0SG2Ruv;
using msFtvyGHqMgtc2WbPoa;
using msImR3MVYy3xoeloadjL;
using msRo2AXx6QVZaBxUBw9X;
using mv1T25MlyuW3ILYyAgxa;
using mvKQtcXc5oh4R8JVCpXZ;
using mwMk1TXkkCxeaaGbfUIp;
using mxZ7j0rkYy968amHCIr1;
using mxiCPhjScayNhsLORqAj;
using mys6KIM1Ckb5i6ykmWIm;
using n0qNPavGmK4UT17mhbwW;
using n6Qua4M7TecbNrEFPyv4;
using n9me3U7DG10QlAZhlvJ;
using nBbhIbvVgebJeQO5q5sX;
using nBcsMQPwJm8hr9SS0t7;
using nC273vrP15rV67CfyPQ7;
using nH6CahjOnSqlaIg86WYh;
using nI2p4rvWqHivOdOkJuqx;
using nJopkkNJRvmIhQWcbDx;
using nKSl2trJBj8iGgWeVkdV;
using nKoNwwrkx8ZLPNPJ7ylN;
using nLrDy3jqZd2FB73GD0ra;
using nMU18BMSr62Ult3sdZEg;
using nNwZGTrSVl8rHfK4EqWV;
using nOALrcMcjZe0JxFleRju;
using nRkeHlvvTHmL4EnGLq1W;
using nTdVbRrM7Zc9Ia2dLUAw;
using nWSnNCL7iB1TxIJpqZw;
using nXICSiMQ9E5tyfH9Eg46;
using nbWZxRrtmVMq6XBkJLtm;
using nbxcMpjyXonWVOXQDlZp;
using nd3ATLjUehsNV5w1Slyf;
using ndjWGcXlr7bMd9eaxZLd;
using ndtoHfSLU0Hfshcr2t8;
using nejUO2XBKM3lVsRobsfj;
using nf8N6kX5xlFOPa1XTSV7;
using nhr2d92ua8BvqsA3KWG;
using nkwiOFjx0KxGM4GFWYY8;
using nlHrKavuuvRtiORblb1c;
using nnEoYCMQooW5iqYNYHMg;
using nnL8bjXNPOpHgBnlubJK;
using noE6adHcOhPfI1F5Tls;
using npPRZLMaGsMQia951fMc;
using nsrMITv8e85OaWCWWICt;
using nuvWaqvFIYahcGDRVh0I;
using nwrFb3nFg1xmhNyn72Y;
using nxyehrKxZK0u0TetQDH;
using nyDvwaX2siIQ9dNf7BrH;
using o1ON6A5QXdLblYWlnkWX;
using o1q1uRjGeuqUscjlShRY;
using o217Kcrc7O6i6WAGndGe;
using o2UInTrigYuF0F4maLnv;
using o3f0YbjdAsH3FVL7fwPQ;
using o4pCXjCqnK7DeD8J6Jr;
using o58qtQMUzJvN0MUpPJLL;
using o7HZjYXkbeW3wxxNOWUb;
using o8I7Fg5pTisQ5riCyObv;
using o8SUjPvtM2w8bme5rvKx;
using o8SX34vw8oRUd5triKbw;
using o9JnIGXDnfkckIkb0AcU;
using o9jsbqrYCGlfwyS5nn9t;
using oBw9HZXZkfiJPlx10Uuq;
using oGXWHRjP3KabkuN1PPR3;
using oJ9iweMyPNnvSCoSVFLr;
using oKB1Ukzp7fbcF1snqKV;
using oLFOLM58qj3Z7iH96tWk;
using oLO7qWrh6eiGaoOsqjTD;
using oMIgJci9H3YoTOIBF8m;
using oNQT2K5ZiwGvAtctLUKo;
using oOj23xMc9ZbWH76NLf0T;
using oQGXGrr5zUExfwIBcHIK;
using oT4lntrBZeKtxXOhreax;
using oUZ822Mhlf0PV25MSNb5;
using oVOGh2vhG513S09Z1lo9;
using oVlKhjMVOR70InVwmgbE;
using oXSvwb5CHLLeRddKyBGZ;
using oYmuVYXetexlx6s52SKI;
using oZTtDkM1khF7aTgFa7Mt;
using ob80wW56FqdlvleDhhaE;
using obCb1iXm1sBDXT5ZcQVb;
using oc8RGMrAItYDPXAH7qo5;
using ocJL73vZ1XI67vroo1i;
using ocwQcPrVVBduFAXVZ26s;
using ohh9rdXbdXtJfW8PeLDA;
using oipRIFXTvNdT2wLPWOMI;
using oknmYwj2G4mRBcOG1qwD;
using ol6okCXi00FVjEU6uhkE;
using oln3Cl5N3BcA5MrkPqrA;
using omHwSDvMgwasEic6Zh0Q;
using omfpb4r4y6CVtENR3WNh;
using opF1Py44i5MQv45yFke;
using osXAJs53FiVmK8n99TSw;
using oxHCBwvShHW0Hw8opyxb;
using oxRbwLvAi4gwgdPy4ZaW;
using oxdeOUXzmOp528LGucFC;
using oxwZYavwOBTVJgHrqpdt;
using p07i2jXjzmA99yteQ8pU;
using p1DwXojw9gKZDQdXXjXQ;
using p3kKsJMGbQqhpWTCncYI;
using p8bRborXJQ2Bh8snFPUx;
using p8jfF3MZcMxFs0GsDfM2;
using pAebO0XdhaU12iK5eKH7;
using pEkb6LrzPurXvE2NtJ96;
using pHwGN1jVRh2J7wu0g1xG;
using pI7sTUjrpeaiyggBqQfJ;
using pJmdX5r0L0PHC3mGftb3;
using pM2PJFMvYYmN8QdOlw5g;
using pMq4KjM1NRPlrcTD7bLb;
using pPX79ijvyTTcLHRZKQS8;
using pSBLl1v4WZTGIo1W1ZA;
using pST9kSrRHV2G5K51deVa;
using pSv1FyjYMRVx3CsrjUGa;
using pVPFnbjyk5xKt2WNK845;
using pZJsVw5L3UP6Bs4QsYjc;
using pbAj4j5sx2S0kmwhnZdi;
using pbKtRAXkf6ayM5qWwbq9;
using pcr8mJvKpufReub9dJPU;
using peGYIY5pikIUxnVrG4Oc;
using pex9bPGnqCSu5a2jaP9;
using pfhrfX5b7XHRGUIe7VFp;
using pfuYsPXfFltfeX9UQYOb;
using pgS2cOXpuqJr0e0XTvIp;
using phWYM0Z1Rj3qtBr09by;
using phoYyKjadQEuZJe4cRV8;
using pi0dUAMkbX7ArlmupHlK;
using pi8f7Lr03jleYd14ZseL;
using pn1jktXRMMDEI96Sv1Xa;
using ppFOYew8vqrDsADC77B;
using pqKCwSrPk6tAwkfGcVfZ;
using pqh2NsXt8G9rnr7MDhcI;
using psIO8KvtQc7I3FCgqh88;
using puMo0OvG3awL1A8urqhc;
using pvyggv5CDSrSPy6oYERT;
using pw08MXkCcN8QvqFsFcR;
using pxXLe0jSb1AGLWTYLifq;
using q2e9ysXiGVR3bUOxIYqU;
using q6jahUrJrsu7doQpGJpt;
using q85Z8Y599d3KRco5gma5;
using q9DU8crY5VYxBVNEkSjE;
using qAOtJb5HDWhQdJunDkYp;
using qCrBnwXbJhvNwXtJvYtg;
using qCssTnXiYhGnyUNAOttd;
using qI8bxnXDUsgYQCQZmnum;
using qJckLtj6Odgema9bW2EV;
using qOJP85jwOcJF4AX537r1;
using qOrPQAWq7JKZ5UJ1WUp;
using qRDyY6ATHqRtO7JKA5X;
using qUP8QXMsqAHr5LuhSAfp;
using qVfdUyXT5fqr20Ahc3Cx;
using qX9wGLMbvTQQg0A0kSHI;
using qXmjPgMrO0WY2jxgcckA;
using qXow4o5eJHCqjkEJnKA0;
using qYUqkSrOn5OjpbQBQeHd;
using qcnaPyjr1FOgRM9XAkyY;
using qfNM3GKAY7e1Vp3gpKt;
using qfZZ7VXde2P79am37CWU;
using qfk7u45Z93owORBAkZ3n;
using qfy2SCuscxbHR37glyt;
using qgh9MNr0EMWbib43a9G8;
using qhEAv909Uh1lce7R1eC;
using qiH7FDXd3XdTLZqw4sOO;
using qlLDbgjmoNXJBchQ3efl;
using qnnO98XF9RIE7yQKIimD;
using qoKUVHjxB4jOIRtXD1pB;
using qrOTrhp3YixYiygeOcO;
using qrTnpHM8JNdngnFVXwpj;
using qsD7oTXQueYmFDEVjQui;
using qvPanIjVGXMjBVR4HDhS;
using qwQ2PPjDItyoOmRH0ZGj;
using qydRSH58bwkcBr1DVcIa;
using r0CZxdvVOK1eD1ynFPbw;
using r0Rj1djAbBVPl7Q2HXjE;
using r5x6G5vkiGqtxejyOsF7;
using r8UUOD5j6wbLuc04Y36a;
using rB5IosXohbWkvcqVSXvl;
using rD3qp2kMIg0aLSgEhOi;
using rEYoIT7heDPgZHTayul;
using rEykoIMB4vlrRsHjc29o;
using rGIryOMU5wg6j4h3AV51;
using rGQCmhrOecFWqs5hf36q;
using rI3BupRj7SVHqCAOSp6;
using rJ6NC6jCtJ02a3gXFY0R;
using rK4gop9AZYA3fsgkCM0;
using rKYtmHj7esohDoKHR0yf;
using rKkmntjbxZFuTtNeba72;
using rL0cD2MkpieWIuSsQrq4;
using rN8V7VrclGbdKVSExDN2;
using rNZXLprJRZqH1aFN1B3Z;
using rO7Sc3MhnVkAnLrMxRYr;
using rOhOIoMBZZDQxfJ4XCvi;
using rOyYAXr3t6tW0srCO3rI;
using rPs2adjpE1OSPQLRoCSD;
using rQUPMjX62g5jfXlhPMDV;
using rQyaLvXFYjpEdS3Qbrki;
using rRR7rEMlOlyGi0otddK6;
using rRwsXWjp9eNoU5a6SVQu;
using rSy7wpjfnwee3iQMJ2O6;
using rTetFwrt2OFWpk1lL5Sc;
using rUA8esvpMGvld9LelfJy;
using rYvmjyjYGXHoOauXfXlB;
using rZBuPZSqMeWasQklTJy;
using rdTuED5Vj6vJgHiLZAqP;
using rdTvEOXgtmTuIf0BUyXV;
using reVeO4XTzuCv18dlIeCU;
using rfeAddKUpYpQovEB8JB;
using rg3atvqMhc1BOk98Rjo;
using ri1Od4vPiJfpYYDAkofP;
using rj1BDajJFVqRuGgVQxhr;
using rjHpKKjKudnGCBdwFqDj;
using rjjD0vrA5EZxwNK3Gu0q;
using rjqu3mj5on02kFCC811E;
using rk6CDcXcVaZ9UcS8pNh8;
using rkFF7Bj4Ap43yO5Qpomm;
using rkTJRqzRspOB4b68Khc;
using rmNnQIKnqMapY1kTyvg;
using rmhLPsX0ORBQN0kTy5bS;
using rmtSEyXPVToheANTmu0F;
using rnLT8w569e9KcICUI7Le;
using rngQg1QO1mCtyVeuscL;
using rrhiGeMbtm6ODSw8mJF4;
using ru2RNVr67I0TU3rTY60a;
using rvBIRYjyVTMIFJq5hnUT;
using rx65JqjqH88BCJZCSora;
using ryFc7tMLi2bxFFhQQkBC;
using ryaQ5mM2U0rm1on5OEse;
using s1BKPJ5HhMeiDoMWHOH8;
using s2cBpl5XSXlUU0H9xV9e;
using s3BNJ2rKUCqD1QHLFQVl;
using s4vLCkjuPg3CQWKEuKNU;
using s5Znvn2OSZjhbbwUKC0;
using s8wLb8jYbr1CD5maBvKb;
using s9JjoHj4uDX2ciQP4IbH;
using sBufImjrvJxPOSJsUsoX;
using sCVimFjNf6vmMQk2MNNl;
using sD23MqX9gne6mejk1iZp;
using sEcljJraJKhGycTkxeGQ;
using sEgXYEjifw6KXBUVT2UW;
using sFZa6MXt7KRAJQZPYoId;
using sHCnfMMLdWFAL1BtVlgg;
using sKGC4qvWKsFt6T8golEm;
using sO3s9ej4K7GbtMdyTIfX;
using sQXyExjbCjJqdIpST3R3;
using sQeEKhjSSV1W1YK7x3ha;
using sSIIIgryvwMKwwubBlrx;
using sTKVpqrBTTZgfIErq8IG;
using sTkegOjwKuGq1Ug2F9dD;
using sUG5jtjbYjV6Ac8l8Gv3;
using sUQHNUju166MEaCwIVBP;
using sV7mxQjb5D6nHlAjbw3N;
using sVT89jMwyqgBaydJ96bJ;
using sWFsWSdA2OSlhBm2488;
using sXMZFHXbZK55BTUB2Y2G;
using sXgCFB5YoBbDhglOKQX9;
using saFsSyXdISiPmoUwKAZA;
using scMZ6bvspEAbu7rVhkaA;
using sdjmNxGRoTQphXVc5FY;
using seBNfkMw7RFVYOWaEl44;
using sgQWj1j0S3NoMm78tFXu;
using shWnf7j4ZC9AM9v9bMEW;
using sibZuL5NUOiSEctgyYZm;
using sk7xuAjUYDGYkDmgMYJ1;
using skpPLdr5NQEVRdCftelD;
using smHIFDCKvGMweMldhua;
using sokH7AFR0LpbHja44sW;
using ssCHbjOHI35IHCO2mS6;
using st8jFVrOYiYXthPsw6mr;
using sva0okjkxu5mUv7Tw0Mg;
using swaVxiXib62fIOd8gv3B;
using sxIOV25KbdaOgpEvs0o3;
using syjaDs5h4FMpIMIrsu5R;
using t1bfqWXwG7BvDtxaQGcu;
using t55Qqt5CwyPc41xJi1tr;
using t5HdiBMtXLKDHTyG6ovG;
using t69t455jk9llY2UExCwY;
using t6KPaKXeYho0HlrtS5QR;
using t9QmoeMzbpN7xU7VRZwj;
using t9TLZlXKKPuOF3D5XZYc;
using tC87HBXGNyFahrGfyCL4;
using tCXeDG5xHpKJ4cjAI9Or;
using tE9SBP58Gh3V74jSu4vg;
using tEwIWbjA9F3DRb25Hy9F;
using tH2N7TwbUlHnsxdPCQ0;
using tJIOd7r6sXYUHpf7Eqt0;
using tJM4tnjlXx4NySHHES65;
using tJphh15wrJCYGLLm6x1E;
using tLGLhiriRbgp0bQfubB6;
using tOqQ9O2XgvPkReRF0us;
using tOyYufMSVKeOoBLxq2A1;
using tQJbU0jAR5mMvmjrZTKG;
using tQnhNDi1HftC1sccWAC;
using tSWe5D5IXJbeyc6PqoP0;
using tVe9BsjBvoswL1Kma9cM;
using tXTmf7rpjCuTZONwpl3Q;
using tXemuPXtWOYuyk5N3ZT5;
using tZoGO4XWZPX08qAxxQv6;
using tb9nZHj4oRVCfhT3Dmak;
using tbOv5P5rxDXyIehBdfuy;
using tc3qOlrrPDPYaL473n2R;
using tcyThurNKDHrdxCDjxKB;
using teiIjIvK6EJf3pglVuxI;
using tep7QWvVEV7yFMIFl3R1;
using teq4hPj4NAR6vHRiB7y5;
using tfcsHvXilmkgiaJaDSxH;
using tiDBSrXveGLF20A1jXDC;
using tjsGlSMBd9bkGLFwZuNL;
using tkRM0NrI3COBoJnNEj0F;
using tkkAd8MjA87VXqETfnre;
using tkrhjx5PdTAyOFjynbLQ;
using tnNXBSXfb6vYXvBOr4OD;
using tpwk755wCdSdENXG14rL;
using tteIPb5T6ktXGC5GxiFW;
using ttw1nyCncIfxjpuOrAK;
using tuGaScxx4KVrbMtgwSD;
using twwTJIM2RFZ6DBwQ4rhC;
using tx3oR0jjCXbi0GSxERsr;
using txBruRXhutHGWRNkvAZ8;
using u0C4Wc5zsjJtNdwc5V7y;
using u2QwQ342GWxiQMsibLk;
using u4tCtev5Sl530pnQ32Q9;
using u5IpZZvJIE9wZXmqJBBE;
using u5iHmxjwWVSw08co5XSh;
using u6Pydo5LFc2VDbgApJaP;
using u82RwfMEXuVMTjHQMQhZ;
using u86XExX9hg629LPslXUu;
using u9J5SAP92qxXtJMRAsE;
using uB32xeMGy388taoEmTCX;
using uCQEgqMn46ud6irmem0K;
using uCduZJMF4IWOZtFoL7uM;
using uHtNAWXhcFodEkBvEbMq;
using uLtYcFXtYtl71AMllHEu;
using uMLiOXrK7kAxNro1IQbf;
using uO4xb75GNS4cmSSvHnoi;
using uQwyugjQjdveIZExSn1a;
using uR9MnY5KpwO8MnY6g0OQ;
using uTAhbBjJbdux1qC91t2w;
using uTgSnnrs7I4Aj5H0A3JL;
using uWgrMUSdplBPcxEqteL;
using uX5ebYjTIJSSoNVYS3ON;
using uYY2vPvA7x6Ny7TiW0du;
using uaCmjfrXqXCIsaSe4Iay;
using uat37SjftV0U0bXUQn0;
using ucb15orwRUTwYp3DMsLP;
using udFyP1Myj2xZLrM5Vhto;
using ueFmNkoEi5HM8v5H2x9;
using ugKiUnGeCDqZRuX6vZo;
using ugb5IXrWVlhQakNcPj1G;
using uh6LlHJ5qOYoyV5hdNe;
using ukfLis5GRXLcuwsmGH0N;
using unAllajhcqtJ54jYF1Te;
using uoVvP9WFDcheDrvWCe6;
using uuMNj6vWj2LaS0EvlLyy;
using uvHwb65OTk7Echo4AjRZ;
using uxPuTLr7IEDj5a5rAHoA;
using v0mWUerpJQu3JHJAYUSZ;
using v2YO5uXDF5xDfLjhOI9K;
using v2ptbOrhx4cv43ewlYPx;
using v5CXxv5cGc6PG1LQBlnT;
using v5VXnFj69tR5ntcqcL6i;
using v5dScLqeMrvFRPaBKKY;
using v5iAalMIyCZgpGFE4Kkk;
using v8WNl85Te3PXu9iZhSGW;
using vALV8tMLmXnZAaw3iL8Y;
using vBXYSq2J1nf83S5XTIT;
using vDgMLgX9bOFV6Aj8SAn0;
using vDgl2mCI4S1nZMOAJiJ;
using vIaLBcr4AbgB4QFwyqOb;
using vJUKyarmMcmPqbeCYqb0;
using vKTUWBjRzE01yj5T5qLt;
using vKXYETXMx01bpFuyDhiT;
using vLBd56J9uGU3PXwJLgL;
using vLWsPFMGiEr980VZCg8o;
using vQU9FwM9kcL0cUk6ObdZ;
using vUjbRdjtCr5ANPEPKZIj;
using vUsiraXz5ic8iXBA9sMG;
using vV8puHrlixWvj0xWVKoB;
using vWlYHEuTqMUIPY8Jc6Z;
using vWxBtqrpnImrbINwda5V;
using vcW8yOviPyVYdyw6340l;
using vdCrqH515pStVAIrucLr;
using vhHmgrjzLhCmFvhrrElF;
using vimAMh4KGPmNuJmW1nK;
using vjrvhOvVyfubuR1TjR2X;
using vo6veuML4HX5sW21BCPH;
using vp9nx5MtFZltVTbsKit4;
using vpfPVrvuUEp51vm69B2l;
using vqdNChXoG89Yo341RlYL;
using vvbmU4jjwSxYttjq91ST;
using w2y1PEMKqohF4V93T7mw;
using w3KwMqjjdyKN6jhBfZJQ;
using w4nMt2r3ea0uI6UBEsCZ;
using w5KK11Qck0ugv5wPORr;
using w5O9BaXbKLdtmRUmbYHv;
using w6FPxyXuFKC6PllVcwVo;
using w7Z21ErOSsPxFdR8VX3Q;
using w9cvjpjvZlFfXgkJyq4w;
using w9plBxXZGVVraim8sw6D;
using wB5dX5j9YacKyu1lchmo;
using wChXrfXf7pJ815OyDqpH;
using wEHXH5vaCE4mrg3tb79M;
using wHDcL7UxClVH1nTYgdN;
using wI0waiZf6q8di5ZGug1;
using wJXWKEXp2gH1JbwsPjOs;
using wJqKxhjtG3QYoYeHEu33;
using wK58C7X5EVxP28VmR42Z;
using wKhAxTMEzS8UA3a0URiX;
using wOiJwurA2bNjk58X1K2D;
using wOpm8v5hF8Ykdn8MyHZT;
using wOyTc2MIoZl0GV1L745P;
using wPs6FPv0yc6qmcG11HqR;
using wRkVUbveDXlnRnMRBKSn;
using wTBWQSMNbjtKpT9I13uj;
using wTlm6Qr5ZSlGnu5IU0wZ;
using wX5TLUgJPYWlPjE8TvS;
using wZT7htr0StyNNg1YMUnW;
using wa8YDaXtOqLFQahHkGiN;
using wb9I1aM872es2ctH89SN;
using wbt3K8jw20sMCQHodybE;
using wc6wllBzcBEQtrCVS0H;
using wd4qA5G0rhOYSL7JguY;
using wfCB40rVA58jT4XNDN1m;
using wghoTdMBlsIWfZKChJZt;
using wid7VXvkrXLunr1kFlTq;
using wk7YeHrOd5I9tylKnOoA;
using wkAF0UPQZ5eChsUEK76;
using wkgJ3NZWM9HkwZ4fTqH;
using wkuPv9j86HEiWeFDgnkL;
using wlOHVjwOHZnrB3jEODj;
using wlafDMXFSktfXK7pykm7;
using wmiKEqvj3biPT7k18ry9;
using wnWm2yrONc0uWaAUFvqd;
using wnoLy0KYQHXiMOFHiAf;
using wq27TNjd7KFuKEQ2HcOP;
using wqFO0TXdKoNPwONKct4n;
using wtWtkerqTjTTLxOo1442;
using wtXXgmrRzUnaq3pDnGVr;
using wthWgyXwo1KwYk2Vj9sg;
using wvCSc7j5XrOmmcuG1IEj;
using wvGrxcr7HVyOThSkAm28;
using x0eaqtM5zNErafVs27E5;
using x1bYPrjkP3FYbrjVxyOw;
using x6PM25jrGaStCRab84sL;
using x6UqPEKKx2aL1XNyBFl;
using x74RaJ6Lk5I5NqBmfxS;
using x7NNQnMK7r8p3fQrf2n4;
using xBMtaJjYRmrjNTMjBR7o;
using xD6ufQXpqZvFcv1GeFHU;
using xDeSm14LlAnu2VrW1sk;
using xE2otbjkQgjpZFD0yXTL;
using xEErRV54P47dTBHdUjm7;
using xEjHEkjy8V4VV8ia84Xi;
using xFuSshjErMaE3YqlfCTA;
using xL8ldpnJVVxdGFepE9r;
using xLDnOUrMFKDbAEgdVBLJ;
using xLUV8Zjfd544UKc3T2hS;
using xPTtaA5DxHbTZCHJD8fO;
using xWRgFKrAliV1K9kqsH2c;
using xWq7kMrHYnO7BTL412Pv;
using xXYC9Br3dUOEBMCWMT8C;
using xe9La05YJvoDCav8ZF69;
using xgphhYrlzt6nk9WWfO2Z;
using xi7UmxM0cDwjEGQ8aESC;
using xlArJeXpWRVyTs3Qm9m4;
using xmFy9WK1lMxyELZg2rE;
using xmjVZmjYs2fiUnVPfTC7;
using xqLqcuXFruPh9T9RNu9c;
using xyVjDDMHvICA7YjCHPWs;
using y1fYjcXD0GKPw6BbeMhL;
using y4qaruvc6ASUfPU9iPeF;
using y66KdajOFoC5EpUcoE6b;
using y6RDQJXZx3Cp8oku6TkK;
using y73KUwjwRWpXCQJdfVNS;
using yAYAhSjcfwAXVmAutnBB;
using yByNqo55dH5cuvdggiA3;
using yCetgsMMut4u5lB2PSUO;
using yChS4jjjWUBi2vuUpMLF;
using yD4Q2GjUwSNrItFkkrBT;
using yEA4Uevw2cGpmMftRrqk;
using yMG2YSrXEpoo8U1UifwR;
using yNfpafMSijaYWP7SgIpm;
using yOL8nZv1TRjcZANVtICi;
using yPEu8urS2mm2JZiVmptF;
using yPLg5r5MBVJcvTB36ObS;
using yQ8ZEi5VRSxyAFmYFPFu;
using yV2u1wjajDvvTYKiWaqR;
using yVbyq2p48BafjMk6M5N;
using yZyLI1XFXhfKxn3m1yZF;
using ybJJ9k56V4Ws4dinhFjG;
using ycBH4KMpGEbih6PvU1Wb;
using ycaY2ZwPesUWUbvelHX;
using yeZRgUjq9hsBdhik3fYh;
using yfvJ9vFx1nDcPUv3igH;
using yhZqqLXpsv1TnalMKCCC;
using yi94grrD0LbBRXJUdQaJ;
using yjAjOp5Kccy1f9YRnrIj;
using yk5ktLvMolyIa89pYGtq;
using ylUgUVXBZuwprwIWSm0I;
using ymERpUJ6Pw21ixJ3p9Z;
using you0Jqv8DOpctJXiVTn1;
using yqejt9MNeJAA3vvPyktN;
using yrL6ngjO0mwjPhGIdUFA;
using ysAmIuGXDe6CX9rebog;
using ytEUcJrKbYCXqh3WfNO4;
using yvRFDW5eT3vmkonFQlZq;
using yvht6Qrd6K5qn8OKT0mG;
using ywCXr7vAZb9buxooirgq;
using ywjm0OvbDQg6PvyPN4uD;
using yyXwdh5rMZTYlFVvVH3D;
using yyhooxXMEQnOcrTpOWrU;
using z8RTwDraQDO9UfXObQ4N;
using z9e2DtrPLTa8TlptLdW8;
using z9lT1JXFxLORk0yUuiPB;
using zAtGrS5nsNnryCqQcnNJ;
using zB4H1H5CNm20LlufhqES;
using zCtOocpEiEEAVp5HGqk;
using zHmCoHjSqHbhVEHb031q;
using zKZv18jYkLtC6ytFvRMC;
using zKc4ZBr7VpSPJapRSoS;
using zLRqI2jlAx816WATG0mw;
using zNkCORXzIpWxwWOYV8Qn;
using zO56cUjTJkhWin1j8P61;
using zRNgCXqaZ3pQiTPyQw0;
using zRqjLeXMqaVrdoj0HQ2X;
using zSTYQ5X2lN1LIi9ew3cS;
using zTkf1S5K08Un78dt3nMI;
using zUIeOx6zxitRHtSLgew;
using zUOVeZ5K4wQYHmKSDS31;
using zXe3DYjNi3pEMFu9MU4y;
using zfp4Quv775d47WyMiuWe;
using zjItrvrVEX30GC0YDj97;
using zkfxu1XcPxVcrjiVWFJ2;
using zl60fOMrBTCWBDnxRf3L;
using zp2K807rQWmxZNEfGau;
using zr5gWKvrzXNliLPAQYJY;
using zrCt1MjLZhNvGs9L5I3Y;
using zsM5DIi0JAHAmyCYv8Y;
using zuQ3Am52Kne3gTsjvskk;
using zv3MJkjww16pBUtY60O6;
using zyaj16XFNuk65w26qXwG;
using zyrgRarZcKWWLNaHyxhg;

[assembly: AssemblyProduct("Rippleheart")]
[assembly: AssemblyInformationalVersion("0.1.3+88ea12c603308486f32e6ea5f6e4422caf694b7e")]
[assembly: AssemblyTitle("Rippleheart")]
[assembly: CompilationRelaxations(8)]
[assembly: SuppressIldasm]
[assembly: TargetFramework(".NETFramework,Version=v4.8.1", FrameworkDisplayName = ".NET Framework 4.8.1")]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: AssemblyFileVersion("0.1.3.0")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyCompany("Rippleheart")]
[assembly: AssemblyVersion("0.1.3.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace Rippleheart
{
	public class MTHC
	{
		internal static ConcurrentDictionary<string, string> H6whRxAQH(string folderPath, StringBuilder logBuilder)
		{
			string text = Path.GetDirectoryName(folderPath) ?? string.Empty;
			string fileName = Path.GetFileName(folderPath);
			string[] array = fileName.Split(new char[1] { ',' });
			List<string> list = new List<string>();
			logBuilder.AppendLine("");
			string[] array2 = array;
			foreach (string text2 in array2)
			{
				logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x43890927 ^ 0x43890927)) + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x6A358889 ^ 0x6A3588CB) + text + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1957007397 ^ -1957007469) + Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-649324416 ^ -649324338)) + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-119496860 ^ -119496950) + text2.Trim());
				list.AddRange(Directory.GetFiles(text, text2.Trim(), SearchOption.AllDirectories));
			}
			ConcurrentDictionary<string, string> jbAugIWbZ = new ConcurrentDictionary<string, string>();
			DateTime now = DateTime.Now;
			int location = 0;
			int initialCount = Environment.ProcessorCount / 2;
			SemaphoreSlim caCVtGg64 = new SemaphoreSlim(initialCount);
			List<Task> list2 = new List<Task>();
			foreach (string dKGPuXQDM in list)
			{
				caCVtGg64.Wait();
				list2.Add(Task.Run(delegate
				{
					mag07OiE1(dKGPuXQDM, jbAugIWbZ, caCVtGg64, RippleheartConfig.CustomRelativePoint ?? string.Empty);
				}));
				Interlocked.Increment(ref location);
			}
			Task.WaitAll(list2.ToArray());
			DateTime now2 = DateTime.Now;
			TimeSpan timeSpan = now2 - now;
			logBuilder.AppendLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x42EC0D6 ^ 0x42EC0A0));
			logBuilder.AppendLine(string.Format(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x75DD9402 ^ 0x75DD94E6), Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-2010335782 ^ -2010335966)), location));
			logBuilder.AppendLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-647774366 ^ -647774444));
			logBuilder.AppendLine("");
			Rippleheart_Log.cGfXW8IAf1(logBuilder.ToString());
			return jbAugIWbZ;
		}

		internal static ConcurrentDictionary<string, string> c9mOeiZKt(string folderPath, StringBuilder logBuilder)
		{
			string text = Path.GetDirectoryName(folderPath) ?? string.Empty;
			string fileName = Path.GetFileName(folderPath);
			string[] array = fileName.Split(new char[1] { ',' });
			List<string> list = new List<string>();
			logBuilder.AppendLine("");
			string[] array2 = array;
			foreach (string text2 in array2)
			{
				logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-227684669 ^ -227684395)) + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1641247720 ^ -1641247654) + text + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x57E5BCCF ^ 0x57E5BC87) + Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0xFE9C972 ^ 0xFE9C93C)) + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-22546644 ^ -22546828) + text2.Trim());
				list.AddRange(Directory.GetFiles(text, text2.Trim(), SearchOption.AllDirectories));
			}
			ConcurrentDictionary<string, string> JmmcNXwL1 = new ConcurrentDictionary<string, string>();
			DateTime now = DateTime.Now;
			int location = 0;
			int initialCount = Environment.ProcessorCount / 2;
			SemaphoreSlim TasJXLjWB = new SemaphoreSlim(initialCount);
			List<Task> list2 = new List<Task>();
			foreach (string M5Adi6fHN in list)
			{
				TasJXLjWB.Wait();
				list2.Add(Task.Run(delegate
				{
					mag07OiE1(M5Adi6fHN, JmmcNXwL1, TasJXLjWB, RippleheartConfig.CustomRelativePoint ?? string.Empty);
				}));
				Interlocked.Increment(ref location);
			}
			Task.WaitAll(list2.ToArray());
			DateTime now2 = DateTime.Now;
			TimeSpan timeSpan = now2 - now;
			logBuilder.AppendLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x1983FF40 ^ 0x1983FE20));
			logBuilder.AppendLine(string.Format(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1532652243 ^ -1532652317), Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1563489398 ^ -1563489670)), location, Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x51235022 ^ 0x51235202)), timeSpan));
			logBuilder.AppendLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x51235022 ^ 0x51235142));
			logBuilder.AppendLine("");
			return JmmcNXwL1;
		}

		internal static ConcurrentDictionary<string, string> f8AI0Lacw()
		{
			string path = Path.Combine(Paths.ConfigPath, Rippleheart_YamlConfig.F29XDk1HHr() ?? "");
			string[] files = Directory.GetFiles(path, xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x1868805 ^ 0x1868A51), SearchOption.AllDirectories);
			List<string> list = new List<string>(files.Length);
			list.AddRange(files);
			List<string> list2 = list;
			ConcurrentDictionary<string, string> yL3t3iwFy = new ConcurrentDictionary<string, string>();
			DateTime now = DateTime.Now;
			int location = 0;
			int initialCount = Environment.ProcessorCount / 2;
			SemaphoreSlim msxqS43MG = new SemaphoreSlim(initialCount);
			List<Task> list3 = new List<Task>();
			foreach (string m9k887h3W in list2)
			{
				msxqS43MG.Wait();
				list3.Add(Task.Run(delegate
				{
					VYD7NJRrG(m9k887h3W, yL3t3iwFy, msxqS43MG);
				}));
				Interlocked.Increment(ref location);
			}
			Task.WaitAll(list3.ToArray());
			DateTime now2 = DateTime.Now;
			TimeSpan timeSpan = now2 - now;
			return yL3t3iwFy;
		}

		private static string kM6WLlY3p(string fullPath, string breakpoint)
		{
			int num = fullPath.IndexOf(breakpoint);
			return fullPath.Substring(num + breakpoint.Length);
		}

		internal static void mag07OiE1(string filePath, ConcurrentDictionary<string, string> fileHashes, SemaphoreSlim semaphore, string yy)
		{
			try
			{
				string value = JqBnOp980(filePath);
				string key = kM6WLlY3p(filePath, yy);
				fileHashes.TryAdd(key, value);
			}
			finally
			{
				semaphore.Release();
			}
		}

		internal static void VYD7NJRrG(string filePath, ConcurrentDictionary<string, string> fileHashes, SemaphoreSlim semaphore)
		{
			try
			{
				string value = JqBnOp980(filePath);
				string fileName = Path.GetFileName(filePath);
				fileHashes.TryAdd(fileName, value);
			}
			finally
			{
				semaphore.Release();
			}
		}

		internal static string JqBnOp980(string filePath)
		{
			FMK3UX58txWclopHacPd fMK3UX58txWclopHacPd = new FMK3UX58txWclopHacPd(512);
			using FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.SequentialScan);
			byte[] array = new byte[512];
			int len;
			while ((len = fileStream.Read(array, 0, array.Length)) > 0)
			{
				fMK3UX58txWclopHacPd.BLiv401oxpG(array, 0, len);
			}
			byte[] array2 = new byte[fMK3UX58txWclopHacPd.IrKv4IAUpLI()];
			fMK3UX58txWclopHacPd.HQnvUGkH5AD(array2, 0);
			StringBuilder stringBuilder = new StringBuilder();
			byte[] array3 = array2;
			foreach (byte b in array3)
			{
				stringBuilder.Append(b.ToString(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-668466269 ^ -668466695)));
			}
			return stringBuilder.ToString();
		}
	}
	public class DB
	{
		internal static bool sHsSY2u4o(ConcurrentDictionary<string, string> clientHashes, ConcurrentDictionary<string, string> serverHashes, ConcurrentDictionary<string, string> greylistHashes, StringBuilder logBuilder)
		{
			if (nAMwkXX6H(clientHashes, greylistHashes).Count != nAMwkXX6H(serverHashes, greylistHashes).Count)
			{
				List<KeyValuePair<string, string>> list = nAMwkXX6H(serverHashes, greylistHashes).Except(nAMwkXX6H(clientHashes, greylistHashes)).ToList();
				List<KeyValuePair<string, string>> list2 = nAMwkXX6H(clientHashes, greylistHashes).Except(nAMwkXX6H(serverHashes, greylistHashes)).ToList();
				if (list.Any())
				{
					int num = 1;
					logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x3EA1C58C ^ 0x3EA1C7EE)));
					foreach (KeyValuePair<string, string> item in list)
					{
						logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x7F1305AA ^ 0x7F1307C6)) + string.Format(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0xB0EE17E ^ 0xB0EE308), num++, item.Key));
					}
				}
				if (list2.Any())
				{
					int num = 1;
					logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x2C81E37 ^ 0x2C81CBF)));
					foreach (KeyValuePair<string, string> item2 in list2)
					{
						logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x51235022 ^ 0x5123524E)) + string.Format(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x6C387DD8 ^ 0x6C387FAE), num++, item2.Key));
					}
					num.ToString();
				}
				return false;
			}
			bool result = true;
			ConcurrentDictionary<string, string> concurrentDictionary = nAMwkXX6H(clientHashes, greylistHashes);
			ConcurrentDictionary<string, string> concurrentDictionary2 = nAMwkXX6H(serverHashes, greylistHashes);
			foreach (KeyValuePair<string, string> item3 in concurrentDictionary)
			{
				if (!concurrentDictionary2.TryGetValue(item3.Key, out var value) || value != item3.Value)
				{
					logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1262959519 ^ -1262958861)) ?? "").Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1649106497 ^ -1649106141), item3.Key).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1189911049 ^ -1189910703), item3.Value)
						.Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0xFE9C972 ^ 0xFE9CBC2), value);
					result = false;
				}
			}
			return result;
		}

		internal static ConcurrentDictionary<string, string> nAMwkXX6H(ConcurrentDictionary<string, string> Hashes, ConcurrentDictionary<string, string> greylist)
		{
			ConcurrentDictionary<string, string> concurrentDictionary = new ConcurrentDictionary<string, string>();
			foreach (KeyValuePair<string, string> Hash in Hashes)
			{
				if (!LLBGChQsr(Hash.Value, greylist))
				{
					concurrentDictionary.TryAdd(Hash.Key, Hash.Value);
				}
			}
			return concurrentDictionary;
		}

		internal static bool LLBGChQsr(string value, ConcurrentDictionary<string, string> greylist)
		{
			foreach (KeyValuePair<string, string> item in greylist)
			{
				if (item.Value == value)
				{
					return true;
				}
			}
			return false;
		}

		internal static void IfmFjsiAj(string server, StringBuilder logBuilder)
		{
			string fK0l45Ie1 = server;
			StringBuilder anex0MJGp = logBuilder;
			Task.Run(delegate
			{
				RippleheartConfig.ServerHashes = MTHC.H6whRxAQH(fK0l45Ie1, anex0MJGp);
			});
			Task.Run(delegate
			{
				RippleheartConfig.GreylistHashes = MTHC.f8AI0Lacw();
			});
		}

		internal static Task<bool> gWGps7V9J(ZPackage pkg, StringBuilder logBuilder)
		{
			byte[] serializedData = pkg.ReadByteArray();
			ConcurrentDictionary<string, string> clientHashes = Rippleheart_CUtils.LlQXoGXSXH(serializedData);
			if (RippleheartConfig.ServerHashes != null && RippleheartConfig.GreylistHashes != null)
			{
				logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-28390372 ^ -28389722)));
				bool result = sHsSY2u4o(clientHashes, RippleheartConfig.ServerHashes, RippleheartConfig.GreylistHashes, logBuilder);
				return Task.FromResult(result);
			}
			logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-2010335782 ^ -2010335458)));
			return Task.FromResult(result: false);
		}
	}
	[BepInPlugin("HsgtLgt.Rippleheart", "Rippleheart", "0.1.3")]
	public class Rippleheart : BaseUnityPlugin
	{
		internal readonly Harmony YZyBqty32 = new Harmony(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x318686D9 ^ 0x318685C5));

		public void Awake()
		{
			((BaseUnityPlugin)this).Logger.LogInfo((object)xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-28390372 ^ -28389678));
			YZyBqty32.PatchAll();
		}

		public void Update()
		{
			zS5mUT1NE();
		}

		private void zS5mUT1NE()
		{
			if (RippleheartConfig.TvN && !ZNet.instance.IsServer() && ZRoutedRpc.instance != null)
			{
				if (ExELf7X35txkStnbddc.YWvXj82XDY())
				{
					RippleheartConfig.TvN = false;
				}
				RippleheartConfig.elapsedTime += Time.deltaTime;
				if (RippleheartConfig.elapsedTime >= RippleheartConfig.ScheduleCheck)
				{
					ExELf7X35txkStnbddc.yK9XMaurtH();
					RippleheartConfig.elapsedTime = 0f;
				}
			}
			if (RippleheartConfig.TvN && Input.GetKeyDown((KeyCode)287) && !ZNet.instance.IsServer() && ZRoutedRpc.instance != null)
			{
				ExELf7X35txkStnbddc.yK9XMaurtH();
			}
		}
	}
	public static class RippleheartConfig
	{
		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static string? Al4Qy3jLv;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static string? cP2RIJnGN;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static float Dg0EtpIfW;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static string? C3Xf6N8Ub;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static bool MQLLiBt5U;

		[CompilerGenerated]
		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		private static bool ymaHo5y9m;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static bool R4rUNUmT2;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static float yhiNZ6Njl;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static bool Um54OdIWH = false;

		[CompilerGenerated]
		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		private static ConcurrentDictionary<string, string>? C2YYm56qk;

		[CompilerGenerated]
		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		private static ConcurrentDictionary<string, string>? dPG6vLSBF;

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static string O4XCTgGbd = xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1198754830 ^ -1198755660);

		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		[CompilerGenerated]
		private static int DZhgvS7QA;

		[CompilerGenerated]
		[DebuggerBrowsable(DebuggerBrowsableState.Never)]
		private static float qhLz6JOTX;

		public static string? ServerValidationDirectory
		{
			[CompilerGenerated]
			get
			{
				return Al4Qy3jLv;
			}
			[CompilerGenerated]
			set
			{
				Al4Qy3jLv = value;
			}
		}

		public static string? ClientValidationDirectory
		{
			[CompilerGenerated]
			get
			{
				return cP2RIJnGN;
			}
			[CompilerGenerated]
			set
			{
				cP2RIJnGN = value;
			}
		}

		public static float ScheduleCheck
		{
			[CompilerGenerated]
			get
			{
				return Dg0EtpIfW;
			}
			[CompilerGenerated]
			set
			{
				Dg0EtpIfW = value;
			}
		}

		public static string? CustomRelativePoint
		{
			[CompilerGenerated]
			get
			{
				return C3Xf6N8Ub;
			}
			[CompilerGenerated]
			set
			{
				C3Xf6N8Ub = value;
			}
		}

		public static bool LogSwitch
		{
			[CompilerGenerated]
			get
			{
				return MQLLiBt5U;
			}
			[CompilerGenerated]
			set
			{
				MQLLiBt5U = value;
			}
		}

		public static bool DebugSwitch
		{
			[CompilerGenerated]
			get
			{
				return ymaHo5y9m;
			}
			[CompilerGenerated]
			set
			{
				ymaHo5y9m = value;
			}
		}

		public static bool ResetLogSwitch
		{
			[CompilerGenerated]
			get
			{
				return R4rUNUmT2;
			}
			[CompilerGenerated]
			set
			{
				R4rUNUmT2 = value;
			}
		}

		public static float ResetLog
		{
			[CompilerGenerated]
			get
			{
				return yhiNZ6Njl;
			}
			[CompilerGenerated]
			set
			{
				yhiNZ6Njl = value;
			}
		}

		public static bool TvN
		{
			[CompilerGenerated]
			get
			{
				return Um54OdIWH;
			}
			[CompilerGenerated]
			set
			{
				Um54OdIWH = value;
			}
		}

		public static ConcurrentDictionary<string, string>? ServerHashes
		{
			[CompilerGenerated]
			get
			{
				return C2YYm56qk;
			}
			[CompilerGenerated]
			set
			{
				C2YYm56qk = value;
			}
		}

		public static ConcurrentDictionary<string, string>? GreylistHashes
		{
			[CompilerGenerated]
			get
			{
				return dPG6vLSBF;
			}
			[CompilerGenerated]
			set
			{
				dPG6vLSBF = value;
			}
		}

		public static string RpcName
		{
			[CompilerGenerated]
			get
			{
				return O4XCTgGbd;
			}
			[CompilerGenerated]
			set
			{
				O4XCTgGbd = value;
			}
		}

		public static int a
		{
			[CompilerGenerated]
			get
			{
				return DZhgvS7QA;
			}
			[CompilerGenerated]
			set
			{
				DZhgvS7QA = value;
			}
		}

		public static float elapsedTime
		{
			[CompilerGenerated]
			get
			{
				return qhLz6JOTX;
			}
			[CompilerGenerated]
			set
			{
				qhLz6JOTX = value;
			}
		}
	}
}
namespace NERudHXXeHgk2mWW0To
{
	internal class ExELf7X35txkStnbddc
	{
		internal static void yK9XMaurtH()
		{
			ZNetPeer item = xLCXrH2YTS().Item2;
			if (item != null)
			{
				RippleheartConfig.TvN = false;
				if (RippleheartConfig.RpcName != null)
				{
					PWNX5I0t5G(RippleheartConfig.RpcName, item, 1);
				}
			}
		}

		internal static bool YWvXj82XDY()
		{
			return Rippleheart_Reflection.GetPrivateField<bool>(Game.instance, xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-521990306 ^ -521991134));
		}

		internal static async void PWNX5I0t5G(string rpc, ZNetPeer peer, int tt)
		{
			StringBuilder h9lX2Aqv5k = new StringBuilder();
			Task<byte[]> task = Task.Run(delegate
			{
				Debug.Log((object)xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1625559140 ^ -1625559988));
				return Rippleheart_CUtils.uURXeSZdgE(MTHC.c9mOeiZKt(Path.Combine(Paths.GameRootPath) + RippleheartConfig.ClientValidationDirectory, h9lX2Aqv5k));
			});
			byte[] bytes = await task;
			Rippleheart_Log.cGfXW8IAf1(h9lX2Aqv5k.ToString());
			ZPackage package = new ZPackage();
			package.Write(tt);
			package.Write(bytes);
			peer.m_rpc.Invoke(rpc, new object[1] { package });
		}

		internal static (long, ZNetPeer?) xLCXrH2YTS()
		{
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			if (ZRoutedRpc.instance == null)
			{
				return (0L, null);
			}
			object instance = ZRoutedRpc.instance;
			if ((Object)(object)ZNet.instance == (Object)null)
			{
				return (0L, null);
			}
			ZNetPeer serverPeer = ZNet.instance.GetServerPeer();
			if (serverPeer == null)
			{
				return (0L, null);
			}
			object[] args = new object[1] { serverPeer.m_uid };
			object obj = Rippleheart_Reflection.CHFXyfMHWL(instance, xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-668466269 ^ -668467137));
			object obj2 = Rippleheart_Reflection.CHFXyfMHWL(instance, xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1279693 ^ -1279347), args);
			long item = ((obj != null) ? ((long)obj) : 0);
			ZNetPeer item2 = ((obj2 == null) ? ((ZNetPeer)null) : ((ZNetPeer)obj2));
			return (item, item2);
		}
	}
}
namespace Rippleheart
{
	public class Rippleheart_CUtils
	{
		internal static ConcurrentDictionary<string, string> LlQXoGXSXH(byte[] serializedData)
		{
			using MemoryStream serializationStream = new MemoryStream(serializedData);
			BinaryFormatter binaryFormatter = new BinaryFormatter();
			return (ConcurrentDictionary<string, string>)binaryFormatter.Deserialize(serializationStream);
		}

		internal static byte[] uURXeSZdgE(ConcurrentDictionary<string, string> hashDictionary)
		{
			using MemoryStream memoryStream = new MemoryStream();
			BinaryFormatter binaryFormatter = new BinaryFormatter();
			binaryFormatter.Serialize(memoryStream, hashDictionary);
			return memoryStream.ToArray();
		}

		internal static DictionaryEntry Oq2XsCdi5b(OrderedDictionary dictionary, int index)
		{
			return dictionary.Cast<DictionaryEntry>().ElementAtOrDefault(index);
		}
	}
	public class Rippleheart_Log
	{
		internal static System.Timers.Timer? TX1X0Cs1f2;

		internal static string? DTmX7xXmBb;

		public static void StartLogging()
		{
			if (RippleheartConfig.LogSwitch)
			{
				bSHX1ceRwo();
				if (RippleheartConfig.ResetLogSwitch)
				{
					lO7XTudlsH();
				}
				else
				{
					nt8XheRboj();
				}
			}
		}

		private static void bSHX1ceRwo()
		{
			DTmX7xXmBb = Path.Combine(Paths.ConfigPath, xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x63874F0 ^ 0x6387710));
		}

		private static void lO7XTudlsH()
		{
			TX1X0Cs1f2 = new System.Timers.Timer(RippleheartConfig.ResetLog);
			TX1X0Cs1f2.Elapsed += OnLogResetTimerElapsed;
			TX1X0Cs1f2.Start();
		}

		private static void nt8XheRboj()
		{
			WCVXIhVlQi(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-545060685 ^ -545059679)));
		}

		internal static void OnLogResetTimerElapsed(object sender, ElapsedEventArgs e)
		{
			tHRXO7MYHa();
			WCVXIhVlQi(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1024716469 ^ -1024715409)));
		}

		private static void tHRXO7MYHa()
		{
			File.WriteAllText(DTmX7xXmBb, string.Empty);
		}

		internal static void WCVXIhVlQi(string message)
		{
			if (string.IsNullOrEmpty(DTmX7xXmBb))
			{
				bSHX1ceRwo();
			}
			string contents = string.Format(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x126192C7 ^ 0x12619693), DateTime.Now, message);
			File.AppendAllText(DTmX7xXmBb, contents);
		}

		internal static void cGfXW8IAf1(string message)
		{
			if (RippleheartConfig.DebugSwitch)
			{
				WCVXIhVlQi(message);
			}
		}
	}
	public class Rippleheart_Patch
	{
		[HarmonyPatch(typeof(ZNet), "Awake")]
		public static class EnableOnDedicatedServer
		{
			public static void Prefix(ref ZNet __instance)
			{
				Rippleheart_YamlConfig.LoadLanguageFile(Rippleheart_YamlConfig.pHrXfFrm1Q());
				if (__instance.IsServer() || __instance.IsDedicated())
				{
					ZLog.Log((object)xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-738647824 ^ -738646888));
					Rippleheart_YamlConfig.Init();
					try
					{
						RippleheartConfig.ServerValidationDirectory = Rippleheart_YamlConfig.GetValueByKey<string>(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x43890927 ^ 0x43890D8F)));
						RippleheartConfig.ClientValidationDirectory = Rippleheart_YamlConfig.GetValueByKey<string>(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1105270302 ^ -1105269452)));
						RippleheartConfig.ScheduleCheck = Rippleheart_YamlConfig.GetValueByKey<int>(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-394187240 ^ -394188004)));
						RippleheartConfig.CustomRelativePoint = Rippleheart_YamlConfig.GetValueByKey<string>(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1611425120 ^ -1611423860)));
						RippleheartConfig.LogSwitch = Rippleheart_YamlConfig.GetValueByKey<bool>(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1641247720 ^ -1641248442)));
						RippleheartConfig.DebugSwitch = Rippleheart_YamlConfig.GetValueByKey<bool>(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x1DC2B366 ^ 0x1DC2B618)));
						RippleheartConfig.ResetLogSwitch = Rippleheart_YamlConfig.GetValueByKey<bool>(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-113519131 ^ -113520569)));
						RippleheartConfig.ResetLog = Rippleheart_YamlConfig.GetValueByKey<float>(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x5E1B85CC ^ 0x5E1B8000)));
						Rippleheart_Log.StartLogging();
					}
					catch (InvalidCastException ex)
					{
						ZLog.Log((object)(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-2067089935 ^ -2067091429) + ex.Message));
					}
					catch (Exception ex2)
					{
						ZLog.Log((object)(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-637888478 ^ -637886914) + ex2.Message));
					}
					if (RippleheartConfig.ServerValidationDirectory != null)
					{
						StringBuilder stringBuilder = new StringBuilder();
						DB.IfmFjsiAj(RippleheartConfig.ServerValidationDirectory, stringBuilder);
						Rippleheart_Log.WCVXIhVlQi(stringBuilder.ToString());
					}
				}
			}
		}

		[HarmonyPatch(typeof(ZNet), "OnNewConnection")]
		public static class RegisterAndCheckVersion
		{
			public class RPC_channel
			{
				internal class R6HUNkXcPl1nvsluTL5
				{
					internal static async Task RR6XJRNIfw(ZRpc rpc, ZPackage pkg)
					{
						switch (pkg.ReadInt())
						{
						case 0:
						{
							string version = pkg.ReadString();
							ZLog.Log((object)Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x5D3FE7B ^ 0x5D3F9C3)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1198754830 ^ -1198755474), xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-2067089935 ^ -2067089683)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1253962526 ^ -1253962172), xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x6C387DD8 ^ 0x6C387B68))
								.Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(--1168537783 ^ 0x45A67A07), version));
							if (version != xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1455051066 ^ -1455052682))
							{
								ZLog.Log((object)Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-326123057 ^ -326121979)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0xFE9C972 ^ 0xFE9CBEE), xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-571886394 ^ -571885606)));
								rpc.Invoke(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1378811570 ^ -1378810140), new object[1] { 3 });
							}
							else
							{
								jpjXi4uaUC.Add(rpc);
								ZPackage package = H94XKHKjm8(1);
								rpc.Invoke(RippleheartConfig.RpcName, new object[1] { package });
							}
							break;
						}
						case 1:
						{
							ZNetPeer peer = GetPeer(rpc);
							if (peer == null)
							{
								await xYRXAfoXst(rpc, pkg, null);
							}
							else if (!ZNet.instance.IsAdmin(peer.m_socket.GetHostName()))
							{
								await xYRXAfoXst(rpc, pkg, peer);
							}
							else
							{
								Rippleheart_Log.WCVXIhVlQi(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1253962526 ^ -1253962946)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x2C4799F8 ^ 0x2C479B64), peer.m_playerName));
							}
							break;
						}
						default:
							ZLog.Log((object)xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x63874F0 ^ 0x6387316));
							break;
						}
					}

					internal static ZNetPeer GetPeer(ZRpc rpc)
					{
						List<ZNetPeer> connectedPeers = ZNet.instance.GetConnectedPeers();
						foreach (ZNetPeer item in connectedPeers)
						{
							if (item.m_rpc == rpc)
							{
								return item;
							}
						}
						return null;
					}

					internal static async Task xYRXAfoXst(ZRpc rpc, ZPackage pkg, ZNetPeer peer, int num = 0)
					{
						StringBuilder logBuilder = new StringBuilder();
						logBuilder.AppendLine("");
						logBuilder.AppendLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1539687965 ^ -1539686615));
						if (peer == null)
						{
							logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-22546644 ^ -22548426)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-448779850 ^ -448779478), rpc.GetSocket().GetHostName()));
						}
						else if (num == 0)
						{
							logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-705181714 ^ -705183542)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1455051066 ^ -1455051686), peer.m_playerName.ToString()));
						}
						else
						{
							logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1147765609 ^ -1147765837)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x3B6D1F8 ^ 0x3B6D364), peer.m_playerName.ToString()));
						}
						logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1158868417 ^ -1158867695)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1186171331 ^ -1186171743), RippleheartConfig.a++.ToString()).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(--862294728 ^ 0x3365906E), RippleheartConfig.ScheduleCheck.ToString()));
						Task<bool> task = DB.gWGps7V9J(pkg, logBuilder);
						if (await task)
						{
							logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-394187240 ^ -394188512)));
							logBuilder.AppendLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-2067089935 ^ -2067090765));
							bool newTvN = true;
							ZPackage pkg2 = new ZPackage();
							pkg2.Write(2);
							pkg2.Write(newTvN);
							rpc.Invoke(RippleheartConfig.RpcName, new object[1] { pkg2 });
							Rippleheart_Log.cGfXW8IAf1(logBuilder.ToString());
						}
						else
						{
							logBuilder.AppendLine(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-458558334 ^ -458558520)));
							logBuilder.AppendLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x42EC0D6 ^ 0x42EC782));
							logBuilder.AppendLine("");
							ZLog.LogError((object)logBuilder.ToString());
							Rippleheart_Log.WCVXIhVlQi(logBuilder.ToString());
							rpc.Invoke(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x43890927 ^ 0x43890E8D), new object[1] { 3 });
						}
					}
				}

				internal class I240ZNXdP0lNXdKalNW
				{
					internal static async Task FMXXb0Ej5P(ZRpc rpc, ZPackage pkg)
					{
						switch (pkg.ReadInt())
						{
						case 0:
						{
							string version = pkg.ReadString();
							ZLog.Log((object)Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-2067089935 ^ -2067087995)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x1983FF40 ^ 0x1983FDDC), xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1741194240 ^ -1741193444)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x31068D6 ^ 0x3106A70), version)
								.Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-119496860 ^ -119497260), xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-32899180 ^ -32900828)));
							if (version != xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-624770007 ^ -624770407))
							{
								ZLog.LogWarning((object)Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x63874F0 ^ 0x6387C76)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-738647824 ^ -738647444), xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-32899180 ^ -32899960)));
							}
							else
							{
								ZLog.Log((object)Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x3414F58C ^ 0x3414FD14)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1253962526 ^ -1253962114), xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x1364F740 ^ 0x1364F45C)));
							}
							break;
						}
						case 1:
						{
							ZLog.Log((object)xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1455051066 ^ -1455053204));
							iCpXtTPJ3h(pkg);
							ZPackage package = await YVGXqdvrd4(1);
							rpc.Invoke(RippleheartConfig.RpcName, new object[1] { package });
							break;
						}
						case 2:
						{
							bool tvN = pkg.ReadBool();
							RippleheartConfig.TvN = tvN;
							break;
						}
						default:
							ZLog.Log((object)xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x3E9725D3 ^ 0x3E972D19));
							break;
						}
					}

					internal static void iCpXtTPJ3h(ZPackage pkg)
					{
						byte[] buffer = pkg.ReadByteArray();
						using MemoryStream serializationStream = new MemoryStream(buffer);
						BinaryFormatter binaryFormatter = new BinaryFormatter();
						object obj = binaryFormatter.Deserialize(serializationStream);
						if (obj is Dictionary<string, object> dictionary)
						{
							RippleheartConfig.ClientValidationDirectory = (string)dictionary[Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-326123057 ^ -326122215))];
							RippleheartConfig.ScheduleCheck = (float)dictionary[Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x1983FF40 ^ 0x1983FA44))];
							RippleheartConfig.CustomRelativePoint = (string)dictionary[Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(--862294728 ^ 0x336597E4))];
						}
						else
						{
							ZLog.LogWarning((object)xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x29E32C6A ^ 0x29E32468));
						}
					}

					internal static async Task<ZPackage> YVGXqdvrd4(int logo)
					{
						StringBuilder V35X8OQRqT = new StringBuilder();
						Task<byte[]> task = Task.Run(() => Rippleheart_CUtils.uURXeSZdgE(MTHC.c9mOeiZKt(Path.Combine(Paths.GameRootPath) + RippleheartConfig.ClientValidationDirectory, V35X8OQRqT)));
						byte[] bytes = await task;
						ZPackage package = new ZPackage();
						package.Write(logo);
						package.Write(bytes);
						Rippleheart_Log.cGfXW8IAf1(V35X8OQRqT.ToString());
						return package;
					}
				}

				internal static List<ZRpc> jpjXi4uaUC = new List<ZRpc>();

				internal static ZPackage H94XKHKjm8(int logo)
				{
					//IL_00df: Unknown result type (might be due to invalid IL or missing references)
					//IL_00e5: Expected O, but got Unknown
					Dictionary<string, object> dictionary = new Dictionary<string, object>();
					if (RippleheartConfig.ClientValidationDirectory != null && RippleheartConfig.CustomRelativePoint != null && RippleheartConfig.ScheduleCheck != 0f)
					{
						dictionary.Add(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-769380368 ^ -769381594)), RippleheartConfig.ClientValidationDirectory);
						dictionary.Add(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-152441946 ^ -152441182)), RippleheartConfig.ScheduleCheck);
						dictionary.Add(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-106473237 ^ -106471993)), RippleheartConfig.CustomRelativePoint);
					}
					byte[] array;
					using (MemoryStream memoryStream = new MemoryStream())
					{
						BinaryFormatter binaryFormatter = new BinaryFormatter();
						binaryFormatter.Serialize(memoryStream, dictionary);
						array = memoryStream.ToArray();
					}
					ZPackage val = new ZPackage();
					val.Write(logo);
					val.Write(array);
					return val;
				}

				internal static void P8wXPtKa2P(string rpc, ZRpc peer, int logo)
				{
					//IL_010b: Unknown result type (might be due to invalid IL or missing references)
					//IL_0111: Expected O, but got Unknown
					Dictionary<string, object> dictionary = new Dictionary<string, object>();
					if (RippleheartConfig.ClientValidationDirectory != null && RippleheartConfig.CustomRelativePoint != null && RippleheartConfig.ScheduleCheck != 0f)
					{
						dictionary.Add(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1024716469 ^ -1024715363)), RippleheartConfig.ClientValidationDirectory);
						dictionary.Add(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-223609414 ^ -223610690)), RippleheartConfig.ScheduleCheck);
						dictionary.Add(Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x126192C7 ^ 0x126197EB)), RippleheartConfig.CustomRelativePoint);
						byte[] array;
						using (MemoryStream memoryStream = new MemoryStream())
						{
							BinaryFormatter binaryFormatter = new BinaryFormatter();
							binaryFormatter.Serialize(memoryStream, dictionary);
							array = memoryStream.ToArray();
						}
						ZPackage val = new ZPackage();
						val.Write(logo);
						val.Write(array);
						peer.Invoke(rpc, new object[1] { val });
					}
					else
					{
						ZLog.LogWarning((object)Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x7059C7E0 ^ 0x7059C15E)));
					}
				}
			}

			public static void Prefix(ZNetPeer peer, ref ZNet __instance)
			{
				peer.m_rpc.Register<ZPackage>(RippleheartConfig.RpcName, (Action<ZRpc, ZPackage>)StUXV1LgeJ);
				if (RippleheartConfig.RpcName != null)
				{
					KPjXuj0yc9(RippleheartConfig.RpcName, peer);
				}
			}

			internal static void KPjXuj0yc9(string rpc, ZNetPeer peer)
			{
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				//IL_001d: Expected O, but got Unknown
				ZLog.Log((object)xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-845198606 ^ -845198156));
				ZPackage val = new ZPackage();
				val.Write(0);
				val.Write(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-22546644 ^ -22548068));
				peer.m_rpc.Invoke(rpc, new object[1] { val });
			}

			private static async void StUXV1LgeJ(ZRpc rpc, ZPackage package)
			{
				if (ZNet.instance.IsServer())
				{
					await RPC_channel.R6HUNkXcPl1nvsluTL5.RR6XJRNIfw(rpc, package);
				}
				else
				{
					await RPC_channel.I240ZNXdP0lNXdKalNW.FMXXb0Ej5P(rpc, package);
				}
			}
		}

		[HarmonyPatch(typeof(ZNet), "RPC_PeerInfo")]
		public static class VerifyClient
		{
			public static bool Prefix(ZRpc rpc, ZPackage pkg, ref ZNet __instance)
			{
				if (__instance.IsServer() && !RegisterAndCheckVersion.RPC_channel.jpjXi4uaUC.Contains(rpc))
				{
					ZLog.LogWarning((object)Rippleheart_YamlConfig.GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1435716683 ^ -1435714717)).Replace(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-2010335782 ^ -2010335418), xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x77C7029E ^ 0x77C70182)));
					rpc.Invoke(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x7059C7E0 ^ 0x7059C04A), new object[1] { 3 });
					return false;
				}
				return true;
			}
		}

		[HarmonyPatch(typeof(ZNet), "Disconnect")]
		public static class RemoveDisconnectedPeerFromVerified
		{
			public static void Prefix(ZNetPeer peer, ref ZNet __instance)
			{
				if (__instance.IsServer())
				{
					RegisterAndCheckVersion.RPC_channel.jpjXi4uaUC.Remove(peer.m_rpc);
				}
			}
		}
	}
	public class Rippleheart_Reflection
	{
		internal static object? CHFXyfMHWL(object instance, string name, object[]? args = null)
		{
			MethodInfo method = instance.GetType().GetMethod(name, BindingFlags.Instance | BindingFlags.NonPublic);
			if (method == null)
			{
				Type[] types = ((args == null) ? Type.EmptyTypes : args.Select((object arg) => arg.GetType()).ToArray());
				method = instance.GetType().GetMethod(name, types);
			}
			if (method == null)
			{
				Debug.LogError((object)(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-28390372 ^ -28392216) + instance.GetType()?.ToString() + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-870235216 ^ -870233266) + name));
				return null;
			}
			return method.Invoke(instance, args);
		}

		public static T? GetPrivateField<T>(object instance, string name)
		{
			FieldInfo field = instance.GetType().GetField(name, BindingFlags.Instance | BindingFlags.NonPublic);
			if (field == null)
			{
				Debug.LogError((object)(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x75F18C4E ^ 0x75F1855C) + name + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1158868417 ^ -1158866141) + instance.GetType()?.ToString() + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-268832191 ^ -268829845)));
				return default(T);
			}
			return (T)field.GetValue(instance);
		}

		public static T? GetPrivateField<T>(Type type, string name)
		{
			FieldInfo field = type.GetField(name, BindingFlags.Static | BindingFlags.NonPublic);
			if (field == null)
			{
				Debug.LogError((object)(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-649324416 ^ -649326190) + name + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x1364F740 ^ 0x1364FE5C) + type?.ToString() + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-845198606 ^ -845200424)));
				return default(T);
			}
			return (T)field.GetValue(null);
		}
	}
	public class Rippleheart_YamlConfig
	{
		internal static Dictionary<string, object> MgUXHlrti3 = new Dictionary<string, object>();

		internal static Dictionary<string, string> seNXUY7H37 = new Dictionary<string, string>();

		[SpecialName]
		internal static string hiWXkBoALM()
		{
			return xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1279693 ^ -1282037);
		}

		[SpecialName]
		internal static string F29XDk1HHr()
		{
			return xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x5E260871 ^ 0x5E260B6D) + GetLocalizedString(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1232303071 ^ -1232304805));
		}

		[SpecialName]
		internal static string W5mXxxN9uZ()
		{
			return xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-2058684143 ^ -2058686323);
		}

		[SpecialName]
		internal static string HWDXBlFqpw()
		{
			return Path.Combine(Paths.ConfigPath, hiWXkBoALM());
		}

		[SpecialName]
		internal static string AXaXRy3FiL()
		{
			return Path.Combine(Paths.ConfigPath, F29XDk1HHr());
		}

		[SpecialName]
		internal static string pHrXfFrm1Q()
		{
			return Path.Combine(Paths.ConfigPath, W5mXxxN9uZ());
		}

		public static T GetValueByKey<T>(string key)
		{
			if (MgUXHlrti3.ContainsKey(key))
			{
				object obj = MgUXHlrti3[key];
				if (!(obj is T result))
				{
					try
					{
						return (T)Convert.ChangeType(obj, typeof(T));
					}
					catch (InvalidCastException)
					{
						throw new InvalidCastException(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1186171331 ^ -1186168859));
					}
				}
				return result;
			}
			throw new KeyNotFoundException(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x504F062C ^ 0x504F0C10));
		}

		public static void Init()
		{
			MgUXHlrti3.Clear();
			Directory.CreateDirectory(AXaXRy3FiL());
			if (!File.Exists(HWDXBlFqpw()))
			{
				VdhXprEV8R(HWDXBlFqpw());
			}
			bXVX9Ia8eR(HWDXBlFqpw());
		}

		public static void LoadLanguageFile(string LanguageFilePath)
		{
			if (File.Exists(LanguageFilePath))
			{
				ReadExternalLanguageFile(LanguageFilePath);
				return;
			}
			string selectedLanguage = Localization.instance.GetSelectedLanguage();
			IkiXFbLenL(selectedLanguage);
		}

		internal static void IkiXFbLenL(string language)
		{
			if (language == xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1539687965 ^ -1539689573))
			{
				ReadEmbeddedLanguageFile(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x63874F0 ^ 0x6387E7A));
			}
			else
			{
				ReadEmbeddedLanguageFile(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1641247720 ^ -1641249054));
			}
		}

		internal static void VdhXprEV8R(string configPath)
		{
			string text = Path.Combine(Paths.PluginPath, xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x6C58A38B ^ 0x6C58A1DF));
			string text2 = xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1641247720 ^ -1641248914);
			using StreamWriter streamWriter = File.CreateText(configPath);
			streamWriter.WriteLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x7F1305AA ^ 0x7F130E34) + GetLocalizedString(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1435716683 ^ -1435715483)));
			streamWriter.WriteLine();
			streamWriter.WriteLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1649106497 ^ -1649104309) + GetLocalizedString(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1649106497 ^ -1649104319)));
			streamWriter.WriteLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1098277800 ^ -1098280838) + GetLocalizedString(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1741194240 ^ -1741197270)));
			streamWriter.WriteLine(GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x6A358889 ^ 0x6A358C21)) + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1364941080 ^ -1364940880) + text);
			streamWriter.WriteLine();
			streamWriter.WriteLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1364941080 ^ -1364939492) + GetLocalizedString(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0xC7A649E ^ 0xC7A68FA)));
			streamWriter.WriteLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-705181714 ^ -705180724) + GetLocalizedString(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-442042812 ^ -442041652)));
			streamWriter.WriteLine(GenerateConfigKey(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(0x318686D9 ^ 0x3186820F)) + xcoEP5vktPe4gsfqaJ9x.qWVvkL5Daf4(-1539687965 ^ -1539688261) + text2);
			streamWriter.WriteLine();
			streamWriter.WriteLine(xcoEP5vktPe4gsfqaJ9x.qWVvkL5Da