diff --git a/.vs/FloatToolGUI/v16/.suo b/.vs/FloatToolGUI/v16/.suo index ed83140..6f50486 100644 Binary files a/.vs/FloatToolGUI/v16/.suo and b/.vs/FloatToolGUI/v16/.suo differ diff --git a/FloatToolGUI/About.Designer.cs b/FloatToolGUI/About.Designer.cs deleted file mode 100644 index 6c00c5e..0000000 --- a/FloatToolGUI/About.Designer.cs +++ /dev/null @@ -1,177 +0,0 @@ -namespace FloatToolGUI -{ - partial class About - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About)); - this.close_btn = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.divam = new System.Windows.Forms.Label(); - this.granzi = new System.Windows.Forms.Label(); - this.brisk = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // close_btn - // - this.close_btn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); - this.close_btn.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.close_btn.FlatAppearance.BorderSize = 0; - this.close_btn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.close_btn.Font = new System.Drawing.Font("Microsoft JhengHei Light", 18F); - this.close_btn.ForeColor = System.Drawing.Color.White; - this.close_btn.Location = new System.Drawing.Point(11, 184); - this.close_btn.Name = "close_btn"; - this.close_btn.Size = new System.Drawing.Size(218, 45); - this.close_btn.TabIndex = 0; - this.close_btn.Text = "Закрыть"; - this.close_btn.UseVisualStyleBackColor = false; - this.close_btn.Click += new System.EventHandler(this.button1_Click); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Righteous", 27.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(29, 7); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(181, 47); - this.label1.TabIndex = 1; - this.label1.Text = "FloatTool"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Font = new System.Drawing.Font("Righteous", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(52, 56); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(136, 21); - this.label2.TabIndex = 2; - this.label2.Text = "Версия 0.4.2 GUI"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Font = new System.Drawing.Font("Maiandra GD", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label3.ForeColor = System.Drawing.Color.White; - this.label3.Location = new System.Drawing.Point(21, 86); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(202, 14); - this.label3.TabIndex = 3; - this.label3.Text = "Разработал приложение: Prevter"; - this.label3.Click += new System.EventHandler(this.label3_Click); - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Font = new System.Drawing.Font("Maiandra GD", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label4.ForeColor = System.Drawing.Color.White; - this.label4.Location = new System.Drawing.Point(37, 109); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(167, 14); - this.label4.TabIndex = 4; - this.label4.Text = "Помогали в тестировании:"; - // - // divam - // - this.divam.AutoSize = true; - this.divam.Font = new System.Drawing.Font("Maiandra GD", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.divam.ForeColor = System.Drawing.Color.White; - this.divam.Location = new System.Drawing.Point(53, 133); - this.divam.Name = "divam"; - this.divam.Size = new System.Drawing.Size(43, 14); - this.divam.TabIndex = 5; - this.divam.Text = "Divam"; - this.divam.Click += new System.EventHandler(this.divam_Click); - // - // granzi - // - this.granzi.AutoSize = true; - this.granzi.Font = new System.Drawing.Font("Maiandra GD", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.granzi.ForeColor = System.Drawing.Color.White; - this.granzi.Location = new System.Drawing.Point(116, 133); - this.granzi.Name = "granzi"; - this.granzi.Size = new System.Drawing.Size(72, 14); - this.granzi.TabIndex = 6; - this.granzi.Text = "GranziTime"; - this.granzi.Click += new System.EventHandler(this.granzi_Click); - // - // brisk - // - this.brisk.AutoSize = true; - this.brisk.Font = new System.Drawing.Font("Maiandra GD", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.brisk.ForeColor = System.Drawing.Color.White; - this.brisk.Location = new System.Drawing.Point(5, 159); - this.brisk.Name = "brisk"; - this.brisk.Size = new System.Drawing.Size(227, 14); - this.brisk.TabIndex = 8; - this.brisk.Text = "Идея была взята из видео BriskBrain"; - this.brisk.Click += new System.EventHandler(this.label8_Click); - // - // About - // - this.AcceptButton = this.close_btn; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(44)))), ((int)(((byte)(44))))); - this.CancelButton = this.close_btn; - this.ClientSize = new System.Drawing.Size(239, 237); - this.ControlBox = false; - this.Controls.Add(this.brisk); - this.Controls.Add(this.granzi); - this.Controls.Add(this.divam); - this.Controls.Add(this.label4); - this.Controls.Add(this.label3); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.close_btn); - this.HelpButton = true; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "About"; - this.Text = "О Разработчике"; - this.Load += new System.EventHandler(this.About_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button close_btn; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label divam; - private System.Windows.Forms.Label granzi; - private System.Windows.Forms.Label brisk; - } -} \ No newline at end of file diff --git a/FloatToolGUI/About.cs b/FloatToolGUI/About.cs deleted file mode 100644 index 5dfc71e..0000000 --- a/FloatToolGUI/About.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace FloatToolGUI -{ - public partial class About : Form - { - public About() - { - InitializeComponent(); - } - - private void About_Load(object sender, EventArgs e) - { - - } - - private void divam_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://steamcommunity.com/id/divamyt"); - } - - private void button1_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void label3_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://steamcommunity.com/id/prevter"); - } - - private void label8_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://www.youtube.com/channel/UCsqGXK3HK0eWu6C1NoUsRsQ"); - } - - private void granzi_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://steamcommunity.com/profiles/76561198328715744"); - } - } -} diff --git a/FloatToolGUI/About.resx b/FloatToolGUI/About.resx deleted file mode 100644 index 6765ca3..0000000 --- a/FloatToolGUI/About.resx +++ /dev/null @@ -1,658 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAEAAAAAAAEAIACyfAAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAfHlJ - REFUeNrtvXd4ZOlV5/+5oXJWzjmrW1KHmelJ9sw4B4KNDcsSvAaWXZYFDPyANSyLl7DAko29BryYvBiD - cxqnCZ4ZT89MR7VaLbW6pSqlUimUVDnee39/XFW1cit2t9T1fZ7yuFVVb9373vd833POe4KgaZrGHhCN - Rrl58yZjY2NIkkRdXR1NTU04HI5dj6lpGhcuXKCzsxOr1brrcZaWlvLXZrPZ8tdmsVh2PWY2m+XSpUv0 - 9vZiMBh2Pc78/Dw3b97E5/Ph8Xioq6ujoaEBk8m03UmCbBLSEUiFIB4kHZlj6vpFGio9CMkliM9DOgZK - CtLR5c9GQc2Apt4aRxBBlEGUwOxGM1hZjKaZmpnDU15HVdsJRIsbLB6wloHZBZYiMDnBaAfJuK1n4fP5 - 6O3t3fWcqarK5OQkY2Nj+P1+qqurqa+vp6amBlEUdz1uIBAgGAzS2dm5p3UxPj7O2NgY8/Pz1NbW0tjY - SEVFBYIg7Hpcr9eLpmk0Njbueox0Os3Y2Bher5dwOEx9fT1NTU2UlJQg73bQTCbDxMQECwsLVFdXY7Va - kWUZs9nM0NAQLpeL+vr67S/ofUQqlcLr9RKJRKirq8NsNuPxeMhmswwMDFBSUkJNTc2eBHi3iMfjeL1e - kskkLS0tGI1GampqCIfD9Pf3U1FRSVV1NZK4vGg0RRfeaADCExCegugMhCchNAFRPyRDkAphVDLUp2MI - V1RQVdCyuoCvIo7bXKAAAuDRoEgAbeIVhOnP6SQhGUC2gmzWycBSBK5acFSCc/m/jiqwV+nvGSz690An - F3YvCMFgEJ/Ph8Fg4Pjx49hsNlpbW5mcnOTSpUvU1tZSWlrK3cDs7CwTExPYbDZ6e3sZHx+nqamJ8fFx - AoEA9fX1eDyeO35dmqbh9/uZmpqiqKiInp4e5ufnqa6uxufzMTk5uXMCWDmo2+2mt7cXo9HI6OgokiRR - WVlJSUkJExMT9Pf3U1paSk1NDbIsH/gNK4rC1NQUgUCAkpIS+vr6kGWZ+fl5DAYDVVVVlJWVMT4+zqVL - l6isrKSyshJJkg782lYSZmVlJR0dHYiiyMTEJCaLlebSUioqKvBdv8K1sddoKZYwh0dg7hosjsHiTX1H - zyZBVXRB1tbLlHg7GdumDOY2LQENlLT+j2wSkhH9/y/51vywqGsCRjvYy8FZA45qKOmAyhOIYhFSbpwd - EubY2BjJZJL6+npKSkrIZDIAOBwOuru7WVxcxOfzMT09TX19PW63+44IWDgcxuv1oqoqzc3NuN1uYrEY - AG63G7fbzdzcHGNjY0xNTdHQ0IDdbr8j17a4uIjX60WWZTo7O7Hb7QSDQQRBoKioCLfbzfz8/M4IYKNB - VxJDDgaDgaamJqqqqvD5fFy8eJHq6moqKir2pKpthbm5OXw+HzabjWPHjm2q5pvNZtra2ojFYni9XgKB - QH732Iuqtn3C7MNoXNY8NBVDOog49SokvNhmr9I1O0DSP4icDIIaB1XbWHgF9rKh7h6b/aam6gSRSUJs - HmauLhMDYHJis5TQ5GiApYeh7DiUdeskYXZtOGgmk2F8fJyFhQWqqqro7OzMr53cWsv91+Px4Ha7mZ2d - 5caNG1itVurr67HZbAcyBTkNMxwOU1tbS3l5+aZrp7S0lOLiYvx+P9euXcPlcuW10oPARoS5kYyKokhZ - Wdn2CGDloHV1ddtWtcxmM+3t7USjUbxeL36/f0ff3w4ikQhjY2N5Ft6uqmWz2eju7s7bprndYz9VtTxh - Ggx0dB3DYbNAJgaz18F/HsZfoHXsO8iJWUiHIKvvbOaVgnY3hHw/CGLldafCSMkw1sVRmHhGNyFspeBu - hLJjUP0gVD8A7kZU2cJMYJapyXFcThe9vb3bMiMFQaC8vJySkhL8fj+Dg4O43W7q6ur2zQzNaZgzMzOU - lpZy4sSJbWm2oihSXV1NWVkZU1NTqzTj/TJDVxJmZWXlKsLcCvLtBp2YmGB+fj6vtu5GXbbb7Rw7dmxf - VbWVLFxTU7NrZ4vb7cblcjE/P79vqlo8HmfM6yOZSlFXU0OpVYPAizD1Kkychbmrui2fTWNcKTiHTdh3 - QwygawpLE/pr7Nsg/5WuDVSeIGjrZNHQSEffG3CU79zxJUkSNTU1lJWVMTk5uW9maE7DtFqtHDt2bFfO - aYPBQENDAxUVFXkztKqqisrKyl1rxpqmMTMzw+TkZN4k3wnhybcb1OVy7XjQzbBSVbt58yYWi2XHqpqi - KExPT+P3+yktLaWvr2/PLCoIwr6oaplslonJKeZnA1Q6JTocC0gD/wY3vwmBK5CJ33LCHXWB3y4hCICa - hUUvBL0UiZ+jxFoE403Q+BQ0vxkqesFSvKPhjUYjTU1NVFZW4vP58sK2UzN0txrmVsiZodFoFJ/PRyAQ - oKamZsdm6EqTvKOjY1cnb+sIYGlpKX+kt9tBbydsOVVtenqaq1ev5o/Bbkcy8/Pz+Hw+LBbLrll4K6xU - 1dbuHluRjAoEZmaZHOnHlRyjN3EZU/9rsDACicXVzrr7WehvRwgCiGgQW9BfU6/B+Y9DaTc0vA6a3gCV - p0C0oQnbE2KLxUJHRweRSASv18vMzAx1dXWrbOONkEql8Pl8hEKhPWmYW8Fut+fNUK/Xy/T0NA0NDbfV - jHMnSYlEYs8mdZ4AEokEY2Nj+zLodiBJUt6BMjk5yeXLlykvL6e6uhpZlhEEIT/hORZWFIWmpqYDP1Ix - GAw0NjZSWVm5TlXLL4LlBRgJBZm69E3U4S/Tkb6GIzGmO8EKO/3eyCC/2oPge0F/vfYxqD2DUP9GbJlq - BLUbtmmSOhwOjh8/TjAYZHx8PG/quVwu/SeXn+tKDTN3knTQx8U51T0XG2IymfJmqCAIeeddLtYgZ5K3 - t7fv+QRLzmazTExMMDc3t2+D7gSbqWqqqpJKpZicnGRpaenAWHgrbKSqVVRVo2qgRWeIjjxD9OKnqJk9 - i11ZuOWxLwj9wZHB8FcwjDxNm6UcMfJN6HgX1Dykxx1sA0VFRXg8nvyJgc1mw2g0omkawWCQsbGxA9Mw - t7zNZTO0qKgIv9/P0NAQbrcbRVEwGAzMzs7i8/n21SQHkJ9//nmqq6vp6+vDaDRyt5BT1aLRKCMjIwwN - DbGwsEBra+u2va0HhZyqtrgYxHfxW1jGvgUXL2OZuYhdSRXU+ztNBpqKHPPDuY/DlU/qPoKeH4KWt4G7 - flvCVl5eTmlpKdPT01y+fJloNEpjYyPt7e15reBuIOfErKioYGJigitXrqAoCs3NzeuO3veFABwOB6lU - ing8flcJAHTnYywWI5vNYrFYsFqtJBIJksnkHQug2BBqBmav4rn6L3gG/hVtyYugKoWd/l4gg3QEfMsn - LMUfhfbvguM/CCVdy9GHmyOVShGLxTAYDNhsNgRBIBqN4nA4DixeZbtIJpMkEgmMRiOSJKGqKrFYLH+d - +0YADz74IHNzc3l1qKGhYU+x8rvFwsIC4+PjSJJEW1sbkiTR3t5OOBzm2rVruN1u6uvr7yxJZVMwfQ6u - /CMMf1E/utOWo+QKgn9vkYGShsAAzA7AwCd1baDvfVB5AsTVNnw6nWZiYoJgMEhFRQXd3d1Eo1Hq6uoY - HR0lEAhsy1F4EEgkEoyPjxOJRKipqcFsNiOKIiUlJdy8eRO/378tR+G2CQDI2x6Tk5NcuXKF0tJSamtr - 74jaHQ6HGR8fJ51Or5p0TdMQBCEfWjw+Ps7ly5eprKykqqrqYBk6m4KpV3QP9M2vQWzulie/IPj3NhEA - BMfg1f8Dw1+AlrfAifdD9UNkNQn/9CQzMzO43W56enowmUwEAgFUVcVisdDd3U0wGMyfGNyp8N1MJsPk - 5CRzc3OUlZXR3NyMLMv5ZCC73U5vb+8q38V+bNZ5CZckifr6esrLy/POuJqami3DHPfKdD6fL8905eXl - 60I9czAYDDQ3N1NRUYHX62V2dvZgGFrN6kdP5/4Crn8Z4gu3FlZB8A8fEYQm4fxfw/Uvo7a8g5vO16OU - 9dF97DhWy+bxHblY+ZmZmQPXPhVFYWZmZlVuzVYOvrKyMoqLi/ObdVlZ2Z6CnNZ9Kxe+Gw6HGRsbY2Zm - hsbGxn1zjKwMWSwvL6elpWXbF58L391/htb0QJ0Lfw1XPwWRmdULqYDDTQSRGYQLf02T/csYen4Ayv8j - WLq3/KooilRVVVFaWorP59t37VPTNObm5piYmMBsNtPd3b3tgLiVm7XX681nQ5aVle14s95U8pxOZ17l - GBkZ2bPKkTtfzalfeznKyDF0LmpvTwwd8sHFv4WLn4DQ+IYZdgUcfiIQBDDEZuDsn8H1L0Hff9Bfzpot - v2owGGhpaSEWizE2Nsbs7Cz19fUUFxfv+nJyIfGCIOSzCHcDs9lMR0cHoVAon2uz0836tlvvXlUOTdOY - nZ1lcnISi8VCV1fXvmRprYzayzH0juKqU2EY/DS88mEIXNbP8Auq/pEnAgAWbsKzH9J9BI/+EprzNAhb - nxjkskwXFhbw+Xx5YdvJWs7Fk+SS6kpKSvbFvM7FBgQCAUZGRrDb7TQ0NGwrjH1bUrxblSMXqyyKIi0t - LQdyvrqWoQOBAA0NDRQVbRIYoqng+7Yu+DeehnSiIPj3IxFoCky+Bl/4CSyVT5E99hNA222/WlxcjMfj - yWcc5sLYt9I+k8kkPp+PcDi85+SfrVBeXk5xcXE+47C8vJyampotA/t25DlYq3LkbHCXy7UudNfr9ZLJ - ZO7YccpKhs7FVd9iaEGPHY9Mwisfhct/B2F/QfALRADJMK7Rz+FcugLZG9D7PjC7t/xaTvssLS3Nn05V - VVVRVVW1akPMefbn5+f3LXHtdpBledVmffHiRerq6tZt1slkkqmpKYTd1gTMqfYTExO4XC4ymUw+hj8U - Cu0q82rl2HupCaiqKn6/n+npaYpLyoiF5qmMnKNk+BMw+WrBzi9gg0UHyEZofRs89t+g5sy2v5qrd5HJ - ZCgtLWVmZobKykr8fj9Op3NPBUD2WhMwt1kLgoDT6WRpaYni4uK8L07Ya1FQVVXxer2cPXsWSZJ44IEH - qK+v31M+wX4VBU1nFCb6n8Vw7iNUzX0TORMrCH4BtycCdy08+DNw8se3nWMAet3C8+fP4/V6OXHiBF1d - XXvOJ9iPoqCgFz599dVXmZ+f59SpU7S3t2MymdizIRIMBgmHwxQVFVFUVEQ4HCYYDLJHXtk71CzGG1+g - +cKvUjfzBeRsQfgL2AYE9EIl3/o1+Oz7YPLlbX0tHo8zOzuLxWKhtLQUTdMIBAL5+oV3E5FIhLm5ORwO - R76m4uzsLNlsdvcaQM7Oz2azNDU1sbCwgMFgwOVyMTo6CrDrkMW9agCZxXGEs3+GdPkTCImlguAXsDto - gLsOznwATv4YmNY7sXMpugsLC1RUVOTXf2dnJ+Pj4ywuLuYdf7vRiveiAaysaZCL7A0EAjQ3NzM2NkYk - Etl5VeB0Oo3P51uXojs/P4+mafn4gbm5OUZHRzGZTNTX19+RcMpkMkV08Gmsr/welsArCJpWEP4Cdg8B - WBqHb/43GH8RHv9VqDqlc8PyDj85OYnT6cyHFcdiMVRVxWQy0draSiwWW1X1ZzfBOjuFqqr52oXFxcV5 - 5+PCwgKqqmI2m+ns7CQajW6fAHKDbqdQgiAIlJWV5av+HHQ11KyiMuW9TvrsX1A19o9YMwsFD38B+0cC - ShoGPwMzF+Gx/0a44Xu4OTGDJAq0t7dvWTXLZrPR1dWVLz7r9/sPtE/AyqpZ3d3d6zToleRjt9u3RwC5 - QXcasiiKYj7OP1diq6ysjOrq6n05DtE0jcDcPBMDL1E08DEag88gky0IfgEHQwTBMXj650mUfYnqJ36d - stYHtv31XJ+A+fn5vGa8n4lG0WiUsbGxvEm+XYKRtztoY2Pj5sE1t8FWJbZ2GxCxtHy8IU6/RvvNv8K5 - eI7bt70poIA9kkAmTvn0F+GlMJh+C+oe39EQJSUlFBUVMTMzw9DQEA6Hg/r6+l1rxitN8t303pAPYtDN - sLLE1tqmHNtFIpHA6/MRi4Spi52jbORPIThSWJwF3DlowNjz8JkfhSd+A3p+WO+tuE3kEo1yxWevXLlC - cXExtbW129aMVVVlenpaj3VZYefvFPJBDHo7rOwTkIvau12fgGw2y+TkJLNz85QX2WmLfxPp1T/Wq8cW - VP4C7jQE9FLmX/05vVDMmZ/T26LtRPhkmYaGhlX1MLfTri4X7bpTk3xLAsglOZhMpj0Pul3k+gTkKhJZ - LBYaGhryZY9yDotAIMDExAQOp4uelmrMr/0RvPpRvQ1VQfgLuJskkAzD878JS2Pw1G+B6N7xMCaTaVW7 - ulzp8rUnBjnNOZ1O78kkX0UAuQylVCq1dRLNQc3h8olBrinH4OAgLpeLdDpNKBTi+vXrALS1d+LUFuFb - vwJX/hmUgrOvgHuEBJS0Xksi6kd79Ddvm1m4Gda2q5uZmUHTNCwWC6Ojo/lO3PvZY1N+9tlnOXbsGN3d - 3Xd1HldWQ7127RqDg4PMzs5y+vRpqqqqYH4QvvrzcPPrtya+gALuJVz/CnJwCsexXwL6dj1M7sTA7/fz - 0ksvkUwm6enpOZDq2GJraysLCwtMTU2hqupdnb+c8zGZTFJRUUFtbS0zgTnCg1+Hz/843Ph6YZHtB4QN - XgXsC8yzl2m68jvgfX7XY+SCjPx+Px6Ph8bGRrLZLD6fb99Di6WPfOQjH3K5XPkW1kajcVfht4uLi0iS - tKucf0VRmJyczPcLbG1tJZlM0tHZhSf4KvJXfxrD/NXCQt0HqBosxGEpCZGU/korYDEUpndfIIAYn4fJ - 70BRCxS37ujrwWCQ4eFh4vE4zc3NWCwWnE4nra2t+RZiQL5r0E6QSCSIRqOUlZXl/ybD/lQ72QvTTU1N - YbVaV0UuqaqGdv3LOF74IMTGC6tznxBJwc98FS7NgCSAosEjNfDRd4BZLszPfpEA89fhS/8Z3von0Pnu - 2z+XSASfz7euOvbCwgKapiHLMi0tLauO0PfDZ7fqkeeqnUxPT+erndTX1x/IUWAwGMTn8yFJEq2trTid - zlvEABTPv4ih//chOl0Q/n1cmCkFBudgaP7Wnx1miemUFacgYBOTWIR0Ya72gwSWxuErP6s7CY/9uw0/ - lusDEA6Ht+Xgyx2hb1z4Zo8EALfCd3O19vYjam8t0+WiCzcrrigMf5H6q3+EUBD+fUdKgUR29d8mkk7+ - fP4JrFYz77Sf52HL9cJE7RcJhKfga7+g/3sFCWQyGSYmJpifn6e8vDzfB2C7WLtZFxUVUVdXt+PNetNf - NBqNtLa25sOB96pyJBIJvF4vsViM6urqVX0AVuH6l+CrP4MQKqj9B4FYGhJr/EiJjEogbcVudBBWLPfn - xBwoCfjh6Z8HQUTp+D6m/X5m/P49V8feaLOurq5e3cV6twSQg91u5/jx48zPzzM2Npb3D2zXUbiyDVNZ - WRmtra2bM92Nr+mRVYu+gvAf0GKMbEAAiqKgLfc6TGrG+3NuDpoEIjPw9f+PiakAsZo37Ft1bNh8s95O - QtC2dY5cEsP09DQDAwOUlJRsGbu8ss96UVFRPl96U4w9A1/5aQiOFoT/ABFKrjcBFEXJHy8lCgRwcCSw - NEHtlT9Eam4HW9e+/8TKzXp0dDQfWbvVZr0joz6ncvT19aEoCpcuXcLv9+v3tyJ0d2ZmhosXLxKNRjl2 - 7BgtLS1bC//0a/DVn9XrtReE/0AxE9WP/VYik8mQSCQAgbQqoxUewoGRgBQe19f65CsH9jMlJSWcOHEC - h8PBwMAAo6OjZLPZVSb30tIS/f397OrgZ63KMTc3h6IoSJLE4uIiAK2trduLCZgfgq9+AAKFc/4Dhwbe - JciuifdSFIVYLAZAXDOiaCKyoBTm64BIgLlhePoD8K6/g+K2A/kZURTzvTtyjXOsViuxWIyhoSHi8bju - 2N/Lj+RUDo/Hw5UrV+jv78+r+9sS/vCkbvOPf6cg/HcAigo3FzfgBU0jGo0CGiHFSlorBAQcOAlMnIVv - /ArEZg/0p3KJRk1NTVy/fp1Lly6hqip9fX1UVlaypyedS9FdWFigsbERSZLylVBramq2PpJILum11m5+ - vSD8d2jRhZNwfWHjtxcXF1EUhahkIaEZsZIqzNlBk8DwF8BRCW/+AzAcTNDdymC7yspKHA4HqVSK69ev - 6y3+djtorimIw+Hg+PHjTE1NIcsyFRUVjI2NbZ3brKTghf+lZ/UdlYe58r/qcm2i5QYkwkbx9hp3toCR - ADcWYGQTAlhYWCAejRL3mIioZoqlyJ2bO2H9vGw6f3d63g4SmqpnETpr4bFf3nUW4WYIhUKMjY0hiiJt - bW1kMhn8fj+dnZ1MTU0xODi4cwLIdRoBaGtry0fwqaqKpmkYDIZ8bnOuGmqu6o/uJNTg/Mfh1f8Dqnq4 - d//law8lwBvSd1fvEszG9PP2tAIGCexGKDJDqQ0qHVBhgzIbuC1gM4AoLo+lrVjk+77Y4BujMBff+O1w - OMzExDgeVxeBrJsGw9zBkaQGigLRDCwm9Pmaieqv2RgsJvX5y6pgXJ6/KgfUu6GtCOrc4DAd4FzdSWTT - 8NL/Bk/jptGCO0UikcDn8xGNRvN1BeBWWHHOP7AjEyCZTOL1eolEIhsWK1iLtdVQp6f91Dc04gk8pxdQ - SB/iRh0CZBW4HIAvX4dvjunCH0xAZgvfmSjcWtBFFn1RN7qhtRjai6HJo//NYwaDvI+kIMBoED45sAU/ - aBpDQ0PU1NYzYq3iAcsNxN3+6BphT2f1uZkM6z6I4XkYCepk6Y/cEvi0Clt1qTBKUGKFzhJ4UzO8sxW6 - SkEQDzERCEBiCb71q+CqhdpHd88luapZs7OUl5fT2tq6dWNQWb49AWSzWaampggEApSVldHS0rKjkMVc - bvPs/AIzl76K/fJvYIjOHWrhH56Dj74G/zYI/uj2v6pqkMzqr/m4ThrPrVjcbrNOAG3F0F0Kx8p0cqiy - g8sMssTOVOFl1Xk+Ch96Dq7cxt+0sLDAhQvnqXrsGE/ZiqmS57f+jbWmz7KwLyVhOqLf39U5uDqrC/x0 - RI9DyOwy6zyt6GNMR+BbY/AX5+AHj8FPnoIGzyEngeAYfP2X4d1/D57mHX19pUlut9vp6enZdpFReatB - 5+bmGB8f3/GgG6HMqlI29fcQHD60wq+o8K+D8DsvwMA+O2/Tiq7+zsb0TL0cKRRZoMYJLUXQUaKTQ6Mb - Ku26CWE1gEFktS2t6eZlKAkXZ+DPzsIXtxnef2PkOp/PZqh7uJifbAhiNajrSEfRIJWFaFrf2f1RGFvU - hfz6Aowu6kK6mNxaI9orvEvwuy/qps2HnhB4e+shjmAQ0E/Dnvl1eMf/uW2H4hxyJrmmads/er8dAYTD - YcbGxnY96HrJScMLvwc3vnpohT+jwv95Td9Jl5J35jfTyi3b+Nz08gMTdROixArldl07qLDr/7YZdRU6 - ltHV7aF5ffdd3MH1aprG6OgoHwqYeKYWest0zURdHjeU1LWX2RgEorCQ0OcjntE/czdwbhp+/AsCv/qU - hZ/ozWAV734/vl2TwNVPgacJnvjQlpWGd2qSb4sAkskkPp+PcDi8p0HXYeCTcP6v9BVyCAlAA/72EvyP - ZyF8l0/HsqoucEtJuBE8uN8JxVJ8cQi+OHQ4nlEgqvLBr2eZVGr4hb5FKuSlw0kCigKvfARKOvRy4+ve - 1ovn7NYk35AA1g66r7XHps/rTr9U9HDu/gI8M6rv/Hdb+AvYGvFkmo99e4GstZsPtN2kTp49fDchAMkQ - PPsbUNKOIFaCqidvzM7OMj4+js1m27NJnieAXJCAxWLh+PHjWCz7mA4an4dnf/3wxvgLMB2G33xet2kL - uPcRjYT51MtTOF0n+c/lr1AhLx5OEgiOonztl1lq+xVwVDMwMEA2m90fk3wFxJdffpmSkhI6Ozv3V/g1 - FV79iJ7ie1g9M5qu+r8wXhCswwT/9CRfH4zw2ciDxFTT4bwJASTfc/Di73Pl4mtoQG9v774KP4D44IMP - Mjc3x/DwMKnUPuq4N78Br31MD/Y5pA9gaB7+5tLWZ9MF3HtQVZXhoWu8NO/hhUTXob6XruTLvKk2hqrB - lStXiET2VxUVq6qq6O3txWg0cvnyZcbHx1GUPZ7dRKbhhd+B6OyhjvT7zLWDdbTdTUiSRFVV1b41mLjX - sLi4yM2xcV6IdzKRKT6092FQU5SPfIKeKhNl5RUMDw/v62Ytgh4R1NjYyPHjx4nFYly8eJG5ud2Egi6H - fr3yYfC9eKiDfWaj8Lnhoyn8oAdo5XLGjyI0TcPn9TIZN/FiohP1sC5GAfBfQnj5j6goddPX17evm/Uq - +rdYLHR2dtLS0sLU1BT9/f07UzlEEbzP6AkOh1lvFuC1aRg8hE7kbd2eINDS0kJ1dTXNzc1H8yaBYHCB - 4MIC/akGpjNFh/tm+v8Rrn0+v1kfO3aMaDS6h816AwLIIVessLS0lKGhIa5fv357lUMQ9bpnL/wexOYP - fYrvlYAe+HIUUVlZSVtbG4Ig0NnZQV3FIReOTZBKpZgNzLCo2BhI1R7ym4nB2T/VzWvAarXS1dVFc3Mz - k5OTO9+styIA0HeJyspK+vr6kGWZy5cvMzExsanKIaAhXPy/4H3uSOT3Zw+p7/J2cLlcPPDAA1itVlQN - mtwqv/sGjXrX0bzf+fl5MlmVwVTN4a53KACTL8O5v2Rl0oPH46Gvr29nm/V2CCAHg8FAU1MTx44dIxKJ - cOnSJebn59d9zpPy4bn5L3rX3gLuSTgcDh5++GEqKir01G1B4QnLAP++ZZE/fLOec3DUEAqFSKeT+BUP - 89lD7u9QNbj4CZg+t5obNtmst9Prc9su4JzK0dTUxMTExOojiWwSz/DfYc8ewqCL+wSlpaW8/vWvp66u - Dm3ZP/OwZZhHrbqn8z1d8FffBcfLjtZ9x+NxEvEEMdXCVPaQmzoCEJqEsx+GbGLd2ys363A4zMWLFzfc - rHNQFGXnBUE8Hg9ut5uZmRmGhoZwFxXTEH0Fw+CnC6W97kEYDAaam5vp6+vD5XKhaiCi8qDlBt/jOIdJ - uOXoeFsr1Lngf35b4nNDGpkjYAfpFY/jKJQyfdgJIIfhz8ON74OO793w7VyfzcXFRbxeL36/n6ampnzl - bk3TmJ6eZnp6enclwXIqR0lpKVPDF0k89/sYDmus/xGFJEmUl5fT1dWVbxmlaGAR0rzOeo232i9hF9ek - CWrQXQYf/y6NR5psfOQ1iZuBCKiHt0KwoigkEgk0YDbrJKuJyMIhJjYBSEbg7J9B3WNgLdn0o7nN2u/3 - MzQ0lC/+evnyZYxGI+3t7XsrCmqQZRpiZyE0UBD+ewRWq5Xy8nKampqoqanBbDajaqBqGjXyIm+xX+K0 - eXTzst8auEwqHzgZ45HGYj5+rY1vDsfwz86TSsQP3XxompZ3ioUUG2lNRj7szU8FYPxFuPL/4KGf3fqj - gkBVVRVWq5Xnn3+emZkZHn/8cTo7OxEEYW8EoC7cQDz3V3oKY4EA7tzzFwREUUQURUwmE1arFbfbTVlZ - GeXl5bjdbmTZgKqBpqkUS1FOm0d5zHqNcjm0DakBUHnQM0f7mQQvdDbwVX8L/dMp/IF5wkuLxOMx0uk0 - qqrm60Heq1AUBQGNuGYkpRmxcgS6HytZ/USg9e1Q1LLpxzKZDOPj4ywuLtLc3Ex5eTlAvunvrgggN6j5 - pd+ieraw+6+EKIrYbDZcLhcOhwOr1YrRaESUpH2ZJlEUESUJo8GA2WzGbLFgNpsxGk2Ioqh39dFUjKSo - NCxy3DTBCfMYVYZFhJ3WzNLAJUR5p3uAM04Xl+vruRhvYTTmYCGuEkukSKWSZNJpVFVBU/deslcDVEUh - nU4Ti8WJRMKEw2Fisdi2vNobIfe9lGYgdVR6HgjA3KB+KvDU7yyXTl59zzMzM0xNTeHxeOjt7SUajTI1 - NUVXVxfBYJDx8fGdEYCmafj9fqamZ/CkxykLPJMv3Xy/w2g0UlNTQ2NjI6WlpVitViRZXq5YKSCgIQr7 - WbJK08dEQ0LBJMRwiElKpTA1hgWaDAFqDEEcYmJffq1EDPEGaz8PW4bxuzx4M+WMZ0oIKC7CSilJzUAW - CVUTUfMrdLcUoAeSappGJpslGksQCMwyOjqK3z9FNrOzCK1cURtFEw5vSPBmU9X/j9D1Xqg8kf9zMBjE - 5/NhMBjo7OzEbrevIkKAoqIiioqKtk8AOY+iJMt0trdgP/vPEJssCD/ki6jU1NToqjcgaCoOMUGZHKJC - DlEkRXCISYxCFom9O6EENCRBQyaLRUxjF1PYxSQWIX2gbb2sQopmwwzNhhkURBKqkZhqIqaaSWhGUpqM - oon70l9QRSCjyUSLLCxV2ZnoaOfcWBXPnR9mbn5h2+NIy9qXhoiqHaEFu9xwlFc/At/1l8SSabxjYyST - Serr6ykpKbntELclgHg8ztjaQWcu6U09Crs/dXV1PPLII7hcruVdS6VGDvKA5SZdpklKpRAWMbNz9fsQ - QELFLiaXTxNCB/pbGpB2GAiWOHmp2szvfsPMhYnbFzsUBCFf3UrXwo7gIrz+RfyvvY0JqZGqinI6Ozu3 - neW5KQFkMhkmJiaYn5+nsrLy1qCaBpf/HkJT973wl5aW8vDDD+fP1y1Cmset13jCdpUSqVBCaD8hACYh - Q6W0wHvqoentIj/6Gb3s+O0IwGg0ogGioCJyxGK8BSA6h+3Gv9H77v+LyWLf0dfX0UTOzr906RLZbJbe - 3l5qa2tvMcrsFRj89H2/II1GIydOnMDtdqNqumr8LservMvxakH4DxoqnKxU+cWHwXQbHTZ3UgJgQDmy - XY+d/ucwBQd3/L1VBLC4uMilS5eYm5ujo6ODtra2/OTlMfBJCI3f97t/TU0NNTU1aJqGhMobbFd4nW0Q - 6TAHmRwyfE8HnKne+jMGgwGLxYIGGIUsRuEI5qoIQCSwbJbvzNQUQbfzBwcHGR0dpaamhp6eno0LRSxc - h6v/enSaM+4SkiTR3NyMwWBARaDV6OcJ29Xdt9IqYOfQoMiq5zBsZdcbjUZ9E9PAIqYxHlENAIDrX9Rl - dCcEMDIywuDgIA6HI59WuCmufQaCN+773d/lclFWVoYGmIQsj1uv4RCT9/ek3CU80aA3XN0MDocDs9mM - BjjFOAaOaLaqAARvwrWdmefitWvXKCkpoba2dstGgkT8hd1/GcXFxVgsFlQNauQFOk1ThUm5G9D0hqq9 - 5Zt/RI+KlAENjxQ72iaahi6jEf/2CeCJJ54gEolw8eJFlpaWNv/kjach0H/f7P5meWsCyJ0td5im1yfV - FHDHYDXC6aqN3xMEgeLiYgRBQEI9vN2CtgsBmL0Ko9/YPgE4nU6OHz9OTU0NN2/e5Nq1ayQSa6LH0lG9 - Z1n2/in20VWqN95cC1mW8Xg8gIBRyNJoCBSk8C4v+q5SMGygvJpMpvyzMgkZKo86AQBkM7qjPr29ttX5 - U4DS0lL6+vqw2WxcuXKFsbExsjmBn34NJs/eP7a/pi+q6g0q5BgMBmw2GxpgFxPbS64p4EBR5wLbBmTt - dDpxOp2omoZbilN8PxzPCsDE2XVVg25LAKB7t+vq6ujt7SWdTnPx4kUCMzNoV/8NEkv3FQFUOeB05fq3 - TCYTJpMJTYMiKYZTPHwpskftWRVbwLlBA6CysrJlB6BAhby0b3kR9zwBJBaX/XW7LAlmMplob2+nvaOT - Je9FUoNfvO/WldGge5jXHjEZjUZkWUYDPGIUk1iogXi3YTWs1wAkSaKyslJPnUal0TCL4SgfAa7Fjaf1 - E7vdEEAOToeddsMk5vh9GParwWN16wtlGo3G/GmJS4rvS2JPAXuDWV7vtHU6nfmjWouQpsl4H/lqBGDJ - CyNf3RsBkE3A9S+Bch8ucg1aiuCRNeXkZVnWa6uhFbz/9whkEYxrnICVlZX50uflcojKw9gleC9QVBj+ - AqQjeyCAuWsw9cp9G/hjNMD3tK9eXKIoLquVGjYxdX9OzL0ETTfTjCs0ANlgoL6+Xn9WQLtp6v4L1BJB - mz5PaOg5ssqt4J2VlZvi8fht0oFvfgOigfs38k/T/QBPNMBSSkIobqG0rm05MUpbVVG3gLsHqwF+5VE9 - IOg7kxJBY5Wu/i8naXUZJ+/LeRGSIcIX/pWRdBV1dXqgnyiKpFIpvF4vS0tLWxBAKqw7ElR20D3g6BFA - uQ3+5nvAKGt8KVXJS4kaVDQMZO8vp9I9DFmEd7TBO1rhXKiYv1g4A0YzWU2g1jhPnWHhvp2b2ux1nNUe - xgOzLC4GiUQiJJNJSkpKOHny5BYEELgCM5fv+7h/QYAqJ4DKafEm/qyHCnmJZuMMLcaZgvTdK1jWbLuc - IX7CeJEb6XImMiU8YLmJ9X411ZbrBrriN6moPIXXO8bs7Cx1dXVUVlZiMBgQtM3KuT7/m/DMbxRKfq1A - VpNIaAZsYvroFZY4cnwgEFNNRzcFePsTwWzLj+Dv+f9wOOyEQiE8Hg9zc3Nb1ARMRWDs2ULJrzWQBQVH - Qe0/FCic0txCUewaZW01BJMC8XichoYGysvLmZyc3MS6nx+6rxJ/CijgKENeugHz19BWiLvFYqG1tXUT - Aph4CRLBAgEUUMBhhwAkl8D3Ahvl8q8nACWtf7hg4hZQwNGACkx8B9KxbRBAeFIv+13Y/Qso4GhAQDfp - Q77lRjVbEUDgCkSmCwRQQAFHiQCifvBfYK1g5wlAVVUmJ6eYufAFyBa8pwUUcKSQTcPUa2ja6lMsGWBh - YQGvz4dZzNIcHSkc/xVQwBGEMH0OoW11ARv53LlzyLJMY1MzRVk/POstzFQBBRxBmGITWLPzq/4mBoNB - rFYrDodT7/pzPyf/FFDAEYZZjVKqza4mgCeeeAJJkrh08QJLw9/WjwELKKCAIwdJ07CFVzcOkY1GI83N - zVSEFuDS1YL9X0ABRxji/KBe6Ee26P/OvWETk9hShRLXBRRwZCGg1wmM3WqpfCsOYMmrn/8XUEABR5cA - ogFd1tcRwNyQXgSkoP4XUMDRRToCCyMbEMDswP1Z/LOAAu4nqCrMDa4hgGwSFm8WJqeAAo46NPQW4svR - vnpBkOQSLI4V1P8CCjjqEIDwBGpiiWDauEwAsQBEC/XtCijgfoASmuL6+W+TcLUvE8CSr+AALKCA+wEC - kIpQ6xax9fUu+wBCE6AUatwXUMD9AElLY83MI5DzASyNgartf/3/nWoU2gHe9X5oN9od/K2DmJ976Xns - 9HrupWu5E9dzkNA0Zq6dZc78GDJKWq8CtF/Qm+aQzEA0DWnl9nMlACYJ7CYwyct/2McTSQ0IxvVr2q1w - yoJ+fTbj1gtA02A+DunsPhOBpv+227yLhS1ANguRNCSzOtffDgYR7Ea9607ume4LAQmgKRDNQDwD2W08 - Z0nQr8NuBFHap2tZsVYTy2s1s821apbBYQSDfEjJQIVym4pQ7EYmm4CIf18mM56C16bg66NwwQ/TEX3B - bXdSa13wQBW8qQlOVYLJsD+Tm1Xh15+Fr90AaZdajixAhR1e3wA/0A0dpRtfWzwLP/dVeGVq97+1ERQV - 3tcL/+OJbc6JoH/nagC+MQovT8DYEsQytycAYZkAyux6u603NMKjdeCx7PJ5LBPhVAie8cJzXhieh2AC - stsYTxJ04msrhtfV69fT4F4edzfXI0IkAS9P6nNzeQb80e1vVlYD1LvhTDW8qRl6ysEgHS4ikGLTVJYV - I2iLXo1/egfMXt3djiWApsJzPvizV+DZMQjvsRGLxwxvaYGfewjO1Oz9ZtMKvPdf4QvD+zN5rcXw20/C - e7vXT1kkDW/7R3hpYv8f2r8/aeV/vsWFJChUy8HNG14IMDQHH3kVPjME/sjeftcsw0PV8F8fhO9uX27E - uQNzaDEOf3cZ/voiXJvfW7yZKEBrEbyvD378hE5SO7mWrKJvBB9+FV4a1wlxLyi1wXe16Wu1p+KQkIAG - 1DwAP/gFpA/9wo99iAv/V28GslMCECCRhj8+Cz//Nbjoh9Q+9M1IZmFgFr56AywGgZ5yAVna/XiKBp++ - BkPz+zN/wQQ85xOwuctoLxYwC7dSqDMK/L8rMB7a/+cmFDUzW/okg+kajpkmN+14+7kh+Mkvwldu6Krt - XpFVwReCr4zAfELgVJWIzbiNlS7AtTn46a/AR16DQEw3kfa6dhcS8K0xuDgDXaUiVc7tXUsoCb/zAvzK - N2FwDjL7YGbGM/p1fP0mFFkFussExMNwmibK0P39iMQXQN0dDSYz8D+f19Xr+fj+X+N0BH7x6/DBF53M - pBx7GkvdZ2aej2n89gsCH/E/xFS2+I48s6wmktCMJFQj6iZs/f+u6MJ/bX7/fz+WgQ+/ovFjXzbTH/Lo - jRO3ELiBALz/c/DF6/s//wDfGoUf+qzEp8eKyWDY8lrCSfiVb8Dvvbh3DXUjjC7CT38ZfvsVF8Gs7d4n - ACUDqRAysdldxwD81Xn407P6rrcWBoMBq9WKLMsIwtaDa5pGJpMhHo+TzWbXkIzGn78YJ2ho54OnF2k3 - Tu34OgUBmj26rZbCyILiQEPY0S2n02kikciq/uqzs3M8MyZitz7M+13fwiklNtQAJUnC6XQiSbtXY1RV - xW6359bzhov8eS/88jdgbgMyFkURm82G0Wjc1vNQFIVEIkEqtV5avjyYIGSo4DffUMrrHDeQ1npsBQhE - dfJ+ZZPHZbFYsFgsy63Wb3/vyWSSRCLB2laW1+cy/NzTMP/OLv599QgOIb7B9+GPX4aPX9iYiIxGI1ar - FUmStjU36XSaeDyOoqxe+JGUxu89l2TB2Mb/1zNDvTx7bwq/gJ4UFPUjk96FXibA+Wn4w++sV/lzBUaa - m5txuVxIsu7W124jbqqSYWlxkesjI4yOjqFkb2kl2WyGz746haP0If5rPTsmAYMIv/kk/Mbr4WKykr9b - ej0KOxPGTCbDxYsXGL42uGphzgb8XGt+mFeMrbzJ1r/hXVosFp566ikcDgeqxm3nYjNIkoSqCet3f0E/ - 5fit52Eqsl7wa2pqaGtro7S0FIPRuK3noakK8ViUsbExhoavk4ivbCqh8fLVSf6k4hGEHiOvt15FWEl9 - GvzFOV0tXouioiI6OjqoqqrCarWCIN5+PjSNdCqB3+/n6uA1FubnVr09FVjgI69UIj/5IP/OfRbbStNI - hOdu6v6QtcJvNptpbW2lsbERp9OJKMnbeDYaSjbD4sICQ8PX8fp8aOotIUilkvzz2RlsxSf5qarz1Bvm - 7k0SUNKQDCMTn9sxASgKfPw8TIRX/91qtfLwww/T1NSEKEqoml5opEwO4RZjSMJ6o0tEfzBX5zRCGYXH - jtXQVynx5bMjxFO3tIFwaJEXBmep8DzIf3R/izI5vKNrtuvrngYpwWNMouww6EESBKo7TXhviKRWGI+x - WIyMCheTDTxqHQbW75iCIGA0GjGZTFRKQaoMi7vzFWm6DWwVU1hW+B0Q4PPD8LxvPWH09fVx/PhxzGYz - igZGMpRKYYrlyIZORAHd0eZbgv54lo4aDyerO/nqd64xHbxFAko2zfmBG3y6+jGKpTDHTeP5Aa7Nwd9e - Wn/59fX1nDlzBrfbvayBqXjEKOVyCIuQRhC0DeZdt93PLaoUWSW+//UdvNovcH5k9e564+ZNvtLaQomx - h++yn8t3b06m4WPndL/BSjidTh599FFqa2sRBBFN07CJScrlJVxiHHGTtZpVoT+gEVYV3nCygdkKia+d - GyW1Qg1emJvluaEw5Y6HeL/rGdzSAdjH+4HkEvL08DmqduIDEGAkqDvo1i62Bx54gJaWFjQNJDKcNHt5 - nXWIGsMCZiGz7gFLgu47+Mvz8G+vafgjGsVWkV9/ykTXIxq/89zqY6Jx3xiD3V08azzOe5wvr1c9tyFA - 9YY5/oP7uZ3vvgK8FNb4uKitEnFN0xA0jbmsi6Bix0NqU+HWgFPmUd7huLCpDb/NR7CqPXk8BZ+6uv5M - vb29nb6+PiRZRlVVmg0BnrRdpc3oxyYmETd4HsksfHYIPv8iXJ1VMUgC7z9l4vefUvn5r6z29czNBrgZ - iPJ12wnqDXM4RV3KvnQdvEurr6WkpIRHHnkEp9OJqkGRFOb11mv0mccokmLIKKtsm+WQAc5Nw/96AZ6+ - oZFW4eE6md94XOb3kvCdFSctyUSCUe843y4/Rrthkg7TNIhwOaCfTK2E0WjkzJkz1NXVoWpgJM1py00e - tQ5TJS9iFDKr3Bs5UpyOwJ+/Av92UWM+rlHllPjNNxppPAUfPrv6AMA7Nkp/eysvGjt5h/38vRdlr2Qg - MoVsELWd1QEU4LVpmFqzAVdXV9PU1ISmgSxkebPtMm+xX8YsZDZewZp+DPPb39ZVxZx6Nh9T+ctzGj/z - lnbqy3zcDNzadcLhMMHgAhdcTZzJDFNv2LmnS0BD2s3+K7CldzetycRVE0Xb+P1dX8Mm1zW6CJfW5HI5 - HA6OHTuGLMtomkafeYzvd56lWIpsPk4Q/uA78I/9t04PFFXjny6laW1s5lRLiK/139p5M5kMAb+fmzUn - 6U/W85htiGRGP+dftXOKIt3d3Xnhr5AX+UHnS3Sapja9lkgS/vYy/NF39BOIHF7yZvhKQwmP9lTy6rSX - 7IozxRn/NPPJPl5KdNBiDCCj8J2J9bt/fX09dXV1aBqYhTTvtJ/nSdtVDBu1fhd0H8LXb+pr9YXxW29N - hRQ+fkHihx9vo2J4DP/iLdNjaWmRYCjMq/ZWHjTfoEw+gGOhvUDTIB1FLPU4dhySeW1OP1pbibq6OoxG - Ixpw0jzGWzcTflG3V3/3RXjvp+DpG+tts5m0jbPaA7iqWleTlqIQWloipNgYSNXuWXB2+oql1++ygiAg - CLpdr6IfAZnWuBcURSGbzSIIor6z7OS1jfsYW4TFNYu8oqICl8uFqkGNvMC7Ha9uLPyCHifxqQF417/o - tvvao8OEIvF84hhS1Yl1jsylpUVSClxO1pPVZBYT+vWshN1up6qqCg2wCGm+235uY+Ffvufz0/C+z8Ev - fG218OdwLlZLoOgRHE7nqr9Ho1FSyTgj6SoCWReo+nHfWjKqr69f9k1pPGy5zlO2gY2FX4SZiH7K9YOf - Xi38OfhSTs5LZ/CU16/eENJpIqEl5hUXQ+mqe0v4c8gml52AOySO2TVfkWUZl8sFCNjFOK+zDmJaK/y5 - Xd8Lv/VtPQJrI4+sLMt0tLdjNptxutwIgrDK8xuPx1E1GE1XkNbkzYNhNhN6DUIpfZGr6va/F0rC31zS - z31XwmKxIIgioOg7igGqnWsEKJFgaGiIzs4uZpU0k+r23C6yBC4TWG8TfjwXh/Sae3G73bqHXVN5xHqd - 8o12oBW7/j/06wS3ERobGyku8hCJyBiNRhKJxKp7UxWFyWwxi4qNSDq07pjNbrdjsVhQNYF20xQ95vEN - ryWS1H0Hf/TyxoIPUFxcTGNDPUaTGbvdweLiUv69TCZDOpUirDoZz5ZQLgaZW7NWjUYjTqcTTQOPFOV1 - 1mvIwvpTDFWFb47oa/XF8Y2vxWQy0d7Whslkwun2rJETTT/V0kRupCt4zDq8ymy76xCAbAqZ+PyOTABN - Wx89JYoisiyjIlAlL1IjB9cxaTCm2/offgVmohuP7fF4OHHiBE1NTQiCgMFgXEcA+jGhxoJiJ66aMErb - IwBV08NhPzmg25VzsfVazFaIZ9YfrwmCQFlZGaIgIqIhCwpI8FidrkbnCE7TNAYGBrh58ybPyVms2/Q/ - GiWoderjvacLjpVt/LlYZj2hGAwGQMAhJmkzTq97+OllW/9/vQD9mxSDtlgsdHd3093djcFgRJTkdRpA - NpsFTSWmmllU7aSV0LqTIYPBgCAISKh0mqZWk/byujs/Db/zbT1mYKP8AEmSaGxs5MSJExQVFaEoKrJh - 9dm/oij6C5FA1oVi2HitSpJugNUZ5ter5iLMhPV1+pfn9aCvjVBaWsrJkyd1UwIwGIzrN9jlI+25rJOk - asAqHkAAwl6QCiOT3nmc6FZBHR4phknM3Hq4Grzo1e2nrXb9lpYWent7cbvdqBpIKJTLS0iCtoo3c2SQ - 1IykNHlb15vMwp+c1c+C9zNgqbS0lJqaGjRNwyxl9Mg8Dd7aosccrLTLczvCTn/++oIe9fZ3l+GDj8GP - nQBZXE/KG5I1+imMQ0ysErjRIPzvl+Afr2y+61dXV3Py5EkqKyvzD7JMCmEWM2zE31kk4qoJWdv8emRB - oViKrrqWyLJm9cdb7PpOp5O+vj5aWlowGAyoGjjFOB4pxtiG9y0QVc2om8xN7qy/WIreUv23uesbjUba - 29s5fvx4/ljXSIZyOYQorF/fAhoJzUhG20Mo60FAA+LzyKjKvo5rQNFJfYe7fmNjI7Iso2hQLEV4s32A - afswn9pE793wPHwTfOwcfOg53dbdL1itVk6dOoXNZkPRoFaexyNFQdOTmn71cfhPX4TFfWq07F2CX/g6 - zKpufuqksrkzb53QqUiCtuNdv6ura1lt1+32h60jNEj9fEFIMb/JelIQ2YqS81rSNnd9URTzu35xcbEu - XJpKp3GaN1kv4jPMcmGT39rOMa+BbO7Cdrjr1yIsH3OXSUu8zdHPBesNPr3J76iIezr1OTAoaWS0/bVL - cscnL3p1Jv3mDnZ9QVPoNU3wNvslms0BPrfXbDoB+mf03X8/hb+0tJTTp09TW1urxzoIKR61DmPKqbYa - fF8npLLwoefhZnB/fjeWhj94USXiOcV/rB+mxbC9LE5x5a7fv3kCzKpdXxBQNY06wwJvsV3ilMWLd3Hv - kygKEEvpiUF/9PLmORNOp5Pe3l5aW1sxGAwoGriX/UtP2Aaxkthz+QpB0DWEb+xi15fJ0mf28lb7JWpN - CwxucTH3bH6QpiHv5vI2Ow4TBFhKavzuFf28dGe7fpSnrAM8ah3CtmwrqZuobzvh0s8Pw8SaRSZJEg6H - A1mWt3/Poojdbqe6upq6ujrsdjuKBiYhyxttVzhmGl83Rz/cCycrBT7c7+GrPivxZJqdEG4mkyESiaCu - 8FaGw2GeGUnicD/Kj7u/SaVxaYuQfIGsovHJAY0/f0k/E98IG+36ZtI8ZB3hTbZ+PehqWVhumy4rbJEi - IMAFv8avnYUv7GLXf7v9Iu0mPwIaWXX9tWwUxrvRtWiahojuzP7vr8Jf3GbXP3HiBHV1dYhSbtcP8SZb - Pw9ZR/InXdp+1Si4o1CRd/oVQQDbmrwLVVXJZrNoSpa/Pxvg4oC2oYNNlmWam5vp6+tbs+tP8jb7RZqN - q1doZINjN1mWt+2wTGZWB4vkFtjJkyfp6OhAFEVUTdjWc8s5OiVJWpYEhSo5xJPWAR6xXl/vSV6m/q4y - jT96KsFTS028GG0mlDVvSx0UgKySZWDgKgP9l1Y5QhfmAnhTx3ku3s0PGr+DzaDld7Mc0uk0oqDxneE5 - vvNSelNbv6qqipMnT1JVVZXf9WvlBd5qv8QJs1dX2ZcRz+r+lLXPQxDE/P0apfXHoJlMBk3TmF0I80vP - hJhe2PhaNtr1XWKc11sHeb1tMB9oBPq6iKTWP6O8k1LTSXjtWs05CrPZDB99YZaB6xvLrcFgoL29nZ6e - no13fcPqmwin1o9jMBjuafFPxOPIO80CEpYLY6xENptlaWkJl8vFtbGpDYXf4/HQ19dHU1NTftcvEqM8 - ZRvgsRW7/krhGZ5frwXYbDZy1yzcRoJi6fVHllarlZaWFqxWGyIK1fLCasfUbQVTxSEmqTPM026cpvR2 - Icka2IQE3+e5wAP2Ca6lqphV3KTU28edi6JAyzETvhGZ8Irzx2QyiaIoXE3Vsph1UGEPY5R0kyOHxcVF - 0uk0wzd9xNLryclsNuc9/Ct3/QetN3izrX+9d3w53iCUWj+fkiQuhylruEzgMq/OSYhEIiSTSSampple - iG5Irhvv+n7eZr9Ih2l6da6BoO/Y42umPhdunSNLowTl9vVkFAqFEEWR676ZDYW/pKQk7+Ffueu/0dbP - mRW7fv4RKzC8sFZOBD3XAWEbmRd3BwaDERlhh5aUoB9HyeLq3dnn81FdXY3RaGSlzEmSREtLy7pdv8c0 - yds32PVzvzEX073fa3cbt9utX7ygrNqdNoKirdcgDAaDfmSpQadpkh91fRunmNj2IxLQEIWdu3QkVBoN - ARoNAVQEVO32kT6SCENZjU/IKivXurasb4YVK3NZBy2eMCXW1dGZMzMzLC0tYTavryG22a7/luVdf6Og - GFXRw79T2fXELkkSIlkMZCmy6AU7VgbgRKNRJicnMZlMrFVVNtv1c7b+yl1/5fp4aWJ9wJHD4cBi0bve - moQMggjH1xydqqqK1+vF4/FgMMisTHbcbNfvNft4q/0idYaFDa/Ft7Tef2A0GpdjYzQMKBvmwdxtyEYj - MuIOrQBNL9tV59JDUHOYnp5mcnKS3mNd9J8/Syih4HR56OvrXb3rS1GetA7w+Ea7/orf+LtLelmxlXC5 - XBQXF6NpYBcTqxNidggBjU7jFB4pdscnXkRbF4e/OXFsThNZRKKqkWNuvYTaSgKIxWJcvXqV1pYWokE/ - c8EIBrOVzs7O7e/6ty6YZ2/CZ66tX+S5Y0KTkMUpJpAN8FSj7ntZSVgDAwM8+uijdDbX4fX6yGCgvr6O - vr4+SkpK8rt+h9HP2zfa9Vdcy0wYPvrqenOksrISo9GIqqn55/pILZTZVmuC4+Pj1NbW0XOsi6uXzxFN - QVFxMX19fdTX1+d3/dJlW3+jXT8n/Kqqp8UPrzkaKS4uzkdiOqXE+sC4ewGijIzZtWMCaPTA21v1FMuV - zHrhwkUeeuAkH/reBrLpJBeMj2Ozu9DQkFA5Zp7g7fZLNBlnNpNKUhn4h8vw+y+t370bGhr0hYtGlbyI - RVydEbddJ0wufNcsZg+mWvB+6XuiHrG4dqGLooi47N1SNQGjEd7bpYdVrzztGBkZwWgy8WNvbKeZmzyv - PorBXb38XY06wzxvsV/mpHkMaZM4eFR4flQPy11rTlVUVCwLr0aRHKVYjoAGb2vVS26tPP0IBoOcv3CR - Nz/Qwn9/MMyrqXbCrm6MRgOapuGS4rzOeo0nrIM4NsqeW55T3yL86rfg22syH61WKw0NDYDumK0xBEGD - 7jK9huA/D9z6bCaT4bVzr/Hogyf53++uIZiSGTQ/gtVuR9M0DGTptfiWbf35TddqLKWHTn/k1dVLQBAE - GhsbMZlMKJpGjbywPvhJ23Rn2nod77YO4kbXn5GQsRTteMGKIvzHk+uzvpLJBC++/CrqnIv396RplKaZ - iIFJzHDaMsJj0hC2VAr/WnNf0xf64Bz8y1W9dt/akNuioiLa2tpAEDCi0GmaQkQ/346m9IXvsdz+VnIB - OaqqMi9mCah7KECs6fXy3Ct+V9P0XIe0snciiKb1c+mFNfJgt9uXnV3LhosG72zTF/rKLE1VVbly5Qrx - hSJ++mSG455JBhNWFEQ6jZO80XyFimyIueiaNaVBUtGf7Zev61WG/GtMd6PRSHd3N0ajEUWDVqM/HwjV - WqTX6/u1Z1Y7JqenJvlsJISzT6S3fpoLmXJiaRsV8iJvtPfToU0Ti2vrAo2yqk4+L47rmuHFDfaPtrY2 - PUJQg1rDEjXyAmh6lemfekA3J1cSWCwa5dkXX0Fst/OD3SohcYaZaClWMcUj1mEeFq9jTGbwJ9ev1VBK - j6P45ys66a6NfCwvL9cT49BjKDpyeQ/LlYkUdbnA6gZYjOumn9O8RtCXtY3FuB5ubjPunQgMrnJkDNZd - Lfyecj0y7QNPQ2IFuSnZDC8MzfPqCLitL6LKFmRB5Tkxzh9scs2apnv85+Mbn9ebTCZOnTqF0+lcfsDz - +Un98nU9Y2wxqZ+9//wZsJk2v/RIJMI3vvENBEHg22ICm7j7eVRUeHMz/Olbb0XnxbPwc0/Dq9N6eu1e - CWA6sn53qaioQBRFBLIYBL3sstsCv/46GJzXbdKVk3tzaoFfmgaP9TKi4ToIIt8W43xCUDe990QG5hMb - RwoKgkB3dzc1NdWoyzb7KfPoLZVdgJ88qZ/AfOn66u+GwhE+/G1wmUOYTQFU0YhNTPF5Ib3ptWRU3em3 - uMlRXVVVFceOHVvOfdA4ZR7FldMiNHisFj5wBv7Hs6u1ykw6xdNXUjx/DZzW51AlM0ZB4RkxselGq2q6 - x38hvnFNwVyAmNVqRdGgxTRDk3EWTYN/GdC1hWQWfqQXfuq07qgE3bfysXN6nIbZAD/7IHx/9y3hX4zr - WvFXb0ClXQ80e13D3kjAaHMjI5t3lg68Av+hTz/r/90X16upKQUCEQWW+Xy3hceNRiOnT5+moaFBt1mF - DE/aBnBKCbyL8Etfv1X/7uosuB1WfqRXxLWJZ19RFEIh3dZdYu+oLTYxknJjljUq5CU0LY13CUYWOBAU - FxdTW1urFwYR0rd8GBo8XAd/8mb4r1/ViWPVfWt6HUOWg5F3W6xKEAQ6Ojro7e1FEPUj0QctN2g0zK7a - IIpt8Edv1o/q1hYqAT25KpRMASn2UjOnrKyMRx55JB+R2WwI8JBlZPU1i/CzD+mO5T9/db1pmchCIpzN - r9XdwmKxcObMGaqrdWJ0iEmetA1gkdJc8cMvfQMml/00QwtQ7LLzPe0aDinGN0fhvz9zK0jLtyRQ4nHw - cGUai5DkH/p1AgBd+5hPinzivQ46nHGMu/EvaIBkQvrQj77uQ0y+vKsbliR4uAZKrHrce2QfKtCuhNPp - 5MyZM7S3tyMIIiIqT9gGecp2FUnUGAjA/zl3S2tQNZiztLNY+jAuKY5DXeIf+vVqtAcF0VnNUtUbuZxu - pNk4i5PIgVUFNpvNnDlzhvLyclQN2ox+HretzmbrLNU934Nz69X2vcJkMtHT08OpU6cwmUz6SYpxiu9z - voJVXP/wi216Hf/ZmH5Mtp+FQQVBoKGhgUcffTSv+heJUb7f9fKG3nqjrCdVWQ16QFR8n31yRUVFPPLI - I8uqv4CMwpttl3nUOoIgaLwyCX9z8dYcZBSYd/Sw5DlFuRzmpRsRvryCt6IZkaXSh1m0tVMjLfCvlxOr - nOKLGRORyicJm6poNAQwizu8IQGofxwZZzVIRr1G2C5YxCjBTz8AJypFfueslWduZkkm9xYAn3PodHV1 - 5c+FRRQesV7n7fYL+jGVpjeHaC26ZRPKsoy7pIKJbAlPR0/wHmMATUtwkMhqAnHViKCq+QAf5QAiwlwu - F6dPn6a+vj4fn/+IZXhD7/SbW6C1WOAPXzXzz1dFFsNx9qIr5rz93d3dVFdXIwgiqgbtxmm+3/ny5icp - GjQVwce/Cx5rMPKn50zcnEugKdldX4soivm6gi0tLcuONv106T2Os3SbJje9FpsR/tuj8EC1xO+ctfAd - b4Z0em8Zena7naamJrq6uvJef4OQ5UnrVd5ov6KnAGt6U5M69y3HqMlkwllczs1MOU9He2krn8VjzuRz - RxwOByZnGVeSRZRJIU5WvYR8SctrLx6PB9VSzNl4NTXyHG+yXdnZhUtGcFQtOwH3AY/UqvxducI/+Rr4 - 7E0r43Nh4rEY2Ux6XSXXjdjcaDRit9spLS2lqqoKj8eDIEoomoZbjPOE7SpPWQduef41qHHCn71NT+IY - iBRRXNdFfX09gqYSUcwoGGgvTqBqENMshFXLvgqlpmk4HI5V4abScuOKpSQkNRNL6u5LREuShNVqpaKi - goaGBlxu93K5NYXXWQfpMfs2XeyNHo0/flOGp45V8w83Srg2HSMSiZBJp1aFFm+GXFXnoqIiqqqq9IKi - BuNy+HOak+ZR3mm/sK1AKLsJfvp0hodaXPzfG828PK4QXAyTSiZQtkEGkiRhNptxuVxUVlZSUVGB1WrV - Yyk0lRZDgO9ynKfLNHnbaxEEeGOzQlcV/J23mS+NmpiaC5OMx8hkMrclSkEQMJlM2O12ysvLqaysxOVy - I4giiqZRIkV4o62fx61Dtzz/GnSUwJ+/TbfzhxOlVDUd049QNZXFrJV/Xyfzp2/N8Pf9IuNqFS2dPbjd - LhQ0goqNHzwmEkkqfG5EZt5Yz7HjvVgtZhRNYEnZ5RqzliBog5/W+MyPQGZ/8mSzyFxN1fJCtJXriWLC - WeNtw20FQciH2uplojVETcElxukwTfGYdYhmY0D3+q/7st737rlYO5+PP0ZSMyCg8ph1iB9wvEQyo+gl - naI9fDF6CmGfA7YlSUKWDZjFDD/t+RqdpknCKd1j+2K8nU+FH971LwqCgCzLyzkLGoKmUiRFedx6jSdt - V7cXByEI+DJlfDvaRn+8koWMmawq3m6ZI4rCrdBn9OAtq5iiwTDLI5br9Jh9t5Kftn1DsKQ4eDnewiux - eqZTDlKqdPtWZYKILEu3ynZrKkYhQ4Uc4pT5JmcsI7uK50hj5HKynhejLdxMeIgqhl2tVUlTcEtRuk2T - PGYdomGzSsCC7uz7WqSHp5MPkdEkJBTeZOvnXc7XEAWVaFriXyMPczbdjaLpTWfe63yZ19uugQZzKRP/ - EHmKoUw9KuAWY7zf/Rzdph22ojJY4F3/gJC68awmf/oHEGOz+9rMMqUZmM4W4c2UMpN1E1XNKJq4NT0D - MgpOKUGVvEiDYZYKeWnjOPu1D1OTOZ9sYiRVQakc5mHL9VvVWAW4mGjklUQr+w/9ug2Cwltsl/Tz5+Xf - vJaq4duxzj0GgurfNgtpqg1BOoxTVBsWd0xkCiKzWRfeTBlTWQ8hxUpWk7a4Nn18kVy13BANhrl8gde9 - Ykmx4cuUMpEtYUGxk1QNt5mnW/NQLEWpNcxTb5jbl4q7Cc3IVKYYb6aU2ayLmGba1lo1CPomVW0I0mCY - pUwOb6tQbVIz8kqiBW+6lGpDkDOWEewrSpmHVCsvx9uYzTppNc5wyjK6Ko5gJuvm5UQrMdVMj2mcY+Zx - xJ2sBw1wVMAPfBrhW5/8c+3hm/8TS/oAWsmsgLrNiGgBbWc3s8Ey2Ug4cjX7DhJrs7738zfF5WKid+N5 - HHQs+07mab/nYSPZ0O7yWt3++7vcszXAVQM/8jXkurbjaNMlkJrnIJ+yyJ3Jl9xswva1Eu8OrkW6R3NE - 79TzOGzzJOTX0N1bq9t/fw+wloDJhdhy7DRWT+UhzGUuoIACdgUNsHjA7EJEMoGr9r6fkwIKuK/gqAbZ - jIgog6OyMCEFFHBfEUAliPJyWTV3I4ejqXkBBRSwZ4iCLvOQI4B6/VywgAIKOPqQzXmzXycAZzUYHQVH - YAEFHHVogMkOrroVBGAr1wMDCiiggKMPW5n+yhOAyQWu+oIGUEABRx0a4KojnBIYGLi6TACyCYpbuSdL - lxZQQAH7BwFmMk5GvJN4PO4VfQFKu/RaX9q9V720gAIK2B9oAlhqT9F34hSSyIruSsXtYHIWZqiAAo4y - ARjszGRd3Lh5g3g8voIA3PVgryj4AQoo4MhKP4jOKppOvQGT0ciVK1dWmADWEihqgdmhgi+ggAKOKAFQ - 1ILBXUVDiYXqqsoVGoBshvKegvAXUMARhlrSCbIe9GcwGNZ0WK48AbKxMEsFFHAEoQgCUWf7qr+tJoDy - 4wU/QAEFHFEkRAdzQvkWBOCshdLOAgEUUMARRMpWQ0Iu3pwAUqpMyFYICCqggCOJqgfQ1vQClUHvITc9 - Pc30zCw1nuO4jBbIJO7LOSqggCMJgwXqHkUQpNUEMDc3x+TkJEajkWPdXViTbrhUAYtjBU2ggAKOAjR0 - 3155D6RX2/fiSy+9RFFREd3d3VgtZj01uLKv4AcooICjRAAVfeCsWRfqL54+fZq5uTlGRkZIp9MgmaDh - iUKFoAIKOCoQgfrHwWhf/1ZNTQ29vb2Iosjly5eZnPajVp8BW2lBCyiggMMODbAUQe0jm3IDBoOB5uZm - urq6CC0ucmkiTsRSV5g8QNP0dk4Iy7NVUIzuTYj6K6PqrwJWEED5cT3bV1PWvS2v/IfNZqO7u4uFYBWZ - wOMwf+7+njwBBgLwG89Ba7HeCv2RWiiz3d/Tcq8hrcCFSfjOBLw0AW9php88TUGDXV7DNDy5XPJvYWsC - yKG4yA0n3w1DfwOJpft61/vskP4CkEX4gzfBBx4BCrvMPbPAJ8Lwo5+FkeW2jNMReHenQJFV0Ntz36/Q - AIsbGp/a9CObd0AsOwYVvff1wpqPwZdGbv0pq8Kr4Upei7cSyLoOuGNeAdtFMgPh1K1/Xw7An1xv5dOR - h4mrpvubAMqP668dE4DZDc1vvn93fwHO+2FwTafnwUQFn1h6kn8OP0pKMxSk714gAAWyK9T9RAY+fd3A - c9F2RjNl9+/EiEDLW3RZ3jEBgK46WIruT1tKha/dgFh69Z+VbIasJhBRrChaQQO46xD03T+VXf3ngH+K - xWiai8mm+1ZTyxhcREoe2nyJq+ptCKD8OFQ/eP8RgAALcXhxfP1bqVQKTdNQELjd9BVwZ7CYWE8AkUiE - hYV5RjJVLCj2+29SNNAqTzMatXL16qBe/ksUEQSdDP1+PxcuXLjNCjbYoPNdIMv3HQEML9xyKq1EIpFA - VRSySGQ0qSB99wCmI+uP/hRFYcbvZy5r52b6Pux5IYoYe97L8dOP4HI5GRwcZGxsjIWFBS5fvszCwgIt - LS3b2MIan9K7iNxnWsCrU7CUXP/3eDxOJpMho8mktfuMGO9FaOALbfzW3Nws8ZTCcLrq/jIDNMDdAI1P - IQpQU1NDS0sL4+PjDA4OYjAY6O7uxu12c/sV7GmCpjdAcPS+mT8lCxf8G78Xj8eJx2KkbC5i97OH+R5B - MgND8xu/Fw6HiceieG3lhFULLjF+/0xMy1uguIVsNsvExAQLCws0NTVRVlaGqqpcvnyZmpqabWgAgghd - 79H7id0PEGAxud77n0MqlSIYXCCDzJJaiAi6289qLg4jC5uQQzJJOBxiQXXgz7jvn3mxONHav5eZ2QUu - XrxIJpOhp6eH2tpanE4nx44do6amhomJiW16sWrOQM1D903wy3REDy7ZCJqm4ff7SSvgz3oKQniXCeDa - HExu8qwURWFpcZGkamAiW3J/zIkGUWcXlxfMzM74aW9vp62tDaPRiKreEuCSkhL6+vq2SQAmJ8mmd6Le - DxmCAtxc3Nj+z2FmZoZINMZEtoRswRF496DCN0chltn8I0tLSyiqxmSm+P7wA4gi4Zo3UdXUTU/PcZzO - zZv9CIJwewJIJBJcGxpmhFZUT+t94QycCOnx5ZshHA4zNTnBZKaE4P14xHQvQADv0upIzY0Qi8VQlCyz - ioukesQDtzSgrJuqJ/4jZaXF2+OLzd7IZrN4vV6uXLmC1WKm8+G3Ih///qMfGahtrlLmP6JpjFwfZioi - cDNTaKt+t57TP12BobmtP5ZMJslmMiwqNsKq5ejPS+e79eK+24S40eIOBAJcunSJZDJJT08P9fX1yJIE - 3e9dripydOdPVWF+G87i2dlZrgwOcz7RUDgOvNMQ9SCtj712+6WYTqfJZjIkNBORo0wAGuBpgO4f2OlU - 3kIoFKK/v5+ZmRlaW1vp6OjAbDbf+kDZMWh755FeW1l1a/s/P9+axsCVfr7QH2YoVVWoE3AHhf/KDPzi - 12Eqso3nmc2SzepxGyHVerTnpvPdUNKxcwJIJpMMDQ0xMjJCRUUFvb29uFyu9Z8WROj9EbAVH1ktIKtC - NL29z6bTKZ59+QK/96LKVNRQKBhyUFguxpJR4YtD8COf1QO1tgNFUchms6gIRBTz0ZwfDXBWQc8Pg7Cz - BSiPjo4SDAYpKSmhtbUVSbqNV7vqAej4Xjj/10dzLrWtHYDrCCOd4pPfmWJsXODH+uCNTVDjBIN0gGSg - bfL/77RQbvT/9/tWVQjG4MIM/FM/fG4IQqmdPE+NbDaLhkhcO8KBWx3fCxU9O/6afOXKFXp7e2loaNje - NyQDnHg/DH8RorNHbsfT0LWAnZGGxtkJjdcmod4NfRVwvAwa3Hr1IKsBDPugHQjoRUlMEtiN4DSBwwRm - GV370A6QEITllwZZRdeSQkmIpCGZ1XdndR9+W1H18RaTMBXWA7IuzcDQwvrMzO1AVVUURUEDEuoR7Hup - AY5y6HsfCDs/kpZf//rX4/P5uHz5Mo2NjVueG+ZR/aDuC7jwiaM3oYC0yyQ/RYPRRf31mWu6vBglfbx9 - 4UkBJEHXLqwyuMxQ7YD2EjhRAaeqoNkDVtM+koEIqqIfjV6e0WskXJ2F8ZAehRfPQErRBVfbh9/T0Ikk - o+pj7nnKBAFR1B/oka3f0PluqDq1q6/Kbrcbl8vF7Ows169fx+FwUF9fv9r5t25RGOD0T8LIVyAyc6S0 - AFHQhXY/oKELB8r+X+cCerTiwCx87aZ+3aVWOFEJ39MOb2+FOveKC9mF4EeS8IJPJ7PnfbrQpw/gXg70 - eYoi8nI2awYJjSO0XHO2/8kf39XuD8s1AQVBoLy8nOLiYiYnJ+nv76eiooLq6urNfQJVp+H4D8LLf3J0 - pB9dxXYeQlNR1SAQg6dv6ITQWQLv64Uf7oEq5w5IQNATbJ6+AX9xDl4Y13f5wwpJkjAaddVfQj1SFqsG - qMd/GKny1K7HWKXsyrJMQ0MDx48fJxaLcfHiRebmNom0ECQ4/VNQ1n2kTgSMEpQf8hwfTdNt51/5Jrzr - X+DzQ7p5ctvVL8DwPPzUl+GHP6MTyWEWfgCj0YjBYABNwyQc8ptZI/2Kq4FrxgfxTUyiKLtTzTa0di0W - C52dnbS0tDA1NUV/fz/h8AbhccWtcObnwXCEjlcE3Yt/VPDqFLzvc/Bb34ZIamsS+PJ1eO+n4G8vbR1f - f5hgNpuXNQANm5g6GjcFIErID/4nmh96O/FoZOvNeqcEkIPb7aa3t5eysjKGh4cZHh4mlVozid3fD81v - OjpagAAtRbopcFQQSsJvfxt+4esic3FpHQlowN9fhh/7PFyZPTr3DWC325FlGRENp3hEOl5rQPUD0Pu+ - VZt1znyPRCLbHuq2y1wQBCoqKjhx4gRGo5HLly8zPj5+S+UwOeDRXwZn5dEgAU0nAM8RixlRVPi/5zV+ - 7ls2ppL2WyQg6E6+X/w6zMaO1j0DeDweJElCEhRc0hEpCGK0wkM/A47K/J/cbjd9fX2UlpYyNDTE9evX - 12/WuyGAHGRZprGxkePHjxONRrl06dItlaPuMdTe9x8ZJaDBDY1HMtVf45OX4nzwlSp86VIQ4bIfPvjN - 7eU/HDZIkkRJSQkgYBYyeMQjwHAa0Pp2aP+edW8JgkBlZSUnTpxAlmX6+/uZmJhY5R/QVpzVJpPJnZe1 - tVgsdHV10dzcnFc5orE4s/XvYdHWfiQm2GOGB6qOIgGApmT57PkAH/V24014+KOXNy5+ehTgcDgoLi5G - 1cAtxXBJh5wANHRN+8zPgXFzT7UsyzQ1NdHd3U0kEuHSpUssLOhlk0RRJJPJMDIywuXLl9l1GltO5ZiZ - meH68BALwSWcFe/mgcmPIKYjh25uV0KQ4K0t8ImLkMgePcGIhkN8Y3CJUKydLwyfPZrSD1RVVWG1WnWT - WQ4efiegKMKp/wS1j27r41arla6uLhYXFxkfHycSiRCJREgmkxQVFe2gItBmgrLsHyguLiYw42dM7mSm - /Ag4BDV4qAZ6yo+sbOD1evnqRf+O4uoPEwwGA/X19YiiiIRCm9GPeJgXZs7xd+ondpzw4/F4qK6uJhgM - MjU1hclkoqamBpPJxJ4S2RcWFvD5fFgsFvr6epFkA+lEFanIVUyLw4c35EqDUhv8UA+8Nr0/Me73GkKh - EKFQ6GhKP1BRUUFFRQWqBsVSjFaj/3ALv8UNj30QHNU7+mosFmNsbIxMJkN3dzc1NTVYrVYuXbpESUnJ - 7jSAWCzGwMAAPp+P+vp6Ojs7sVqt2G1WGk68AeNT/0OvInzIBec9XfBA9eG+h03XlKatcggdJRgMBrq6 - ujAajWhAh3GKUjl8eG9IQE/2aXvHtr+STqe5ceMGg4ODeDwe+vr68Hg8GI1Gmpqa6OrqIp1O70wDyGQy - +Hw+FhcXqaqqorKyMp9osXJBCV3fB2PfOtzJQhpUOuADD8GPBw5/RNz9hKamJmpqatA0sAkpHrTcOLzq - vwbUnNYD7sTbi6uqqvj9fqanp/F4PPT29uZDoVcSvs1mo729fXsEsHLQXHBQbtANIZv02ICpVyEwcKhN - gXd16uWnPvpaQbAOA3LOLVmWUTToMftoMc4c2vtJSVbUB34Ri7v+tp8NBoN4vV4MBgOdnZ3Y7bcvWCsf - xKAAlLTDo78EX/opyBzeQ2aTDL/2uJ7i+9UbBQG7l2G1WnnooYdwu93Ltn+Ep2wDGIRDlsKYgygxW/su - NPeD1G3xsZydn06nqa+vp7i4eNs/IW81qNfrJZVKUVdXtxxQsUN0fz+MvwTn/upQawGVTvizt0Hmy3od - +nsBsixjMBgwGo2YTCZMJhMGgwFRFNE0jUQiQSgUIhbb3dm3JEnY7XZsNhtmsxlJktA0jXQ6TTKZJJVK - kUqlSKfTqxpO3C1YLBbOnDlDbW0tmqYhCypvtvXTYJi769e223VH8xtR+n4WjY0zcjOZDOPj4wSDQSor - K6mqqsqb5LsmgP0Y9NboZt0UmD4H0xcONQm0FsNffzd88BmBfxkA5Q4dDUiShMlkwmaz4XA4cLlcOJ1O - 7HY7VqtVP8qRDYiSiCBICIKAhl4LLxKJcOPGDYauDZJKbi8OXhRF6urqaG9vp6SkBJPJhChJIIho2q0K - O5lMhmQyQSwaJRIOEwotEQqFiEQiJBIJMpk75zQpKirigQceoL7+lpr8qGWYx6xDh1f43XXwxIdAqdSb - Va58e7k71dTU1PZM8u0QwH4OuvrpNMPr/jt8/scgsXSoSaDODX/xDuiocvKR12B2Icx+HnWIoojZbMZu - t+NyuSgqKsLj8eB0OrFYLBiMRkRRLzaoLf+vhIJByGIWUpiFNFYhjUlMYxQURAc8VlHBa+USn3/+MrFE - 6ra/f/z4cU6ePInJZNKPPzUVu5jELcVxinEMgoKARhaZuGoirnmIa+UkFJlERiORTBOJRgktLRIMBlla - DBIOh0kmk/tOCiaTiebmZo4fP55X+wU0HrTc4Lsd5zAKhzOKS5VN8Nh/Q6w+A17fqveCwSA+nw9Zlndm - km9FAIuLi3i93n0bdB3avxtO/2d46X/rVR4PKzRwmDQ++FCMYw11/OVAE5dHZ1lcWCCVSm57GEEQMBgM - +Z3d6XTidrvzwm612TAajAiiuCzmGiIqJjLYxSgeKUqJFKFMDlEs6f92iEksQgqjoCALCuJy8QsFichp - M20Zgd9+dut6h/X19Zw8eRKj0YiiapRKIR61DtNlmqRIimIWMkioIICqiWQ0iaRmIKqaWVKtzGedzCku - ZkvcBJUKQkojkbRANJEmEokQCi2xtLRIaGmJaDSa1xR2kssuyzIOh4Pq6up8t1tJklA0sAhpHrEO8077 - Bexi8t5dR1svDiLN72VMOEHNwgKapiKKIslkkps3b+7NJN9oPi9evAhAbW3tvg26DqIEj/wizF6B4S8f - 7ppMGshkeVfFGF2ear50rJPXZq1MzYcJLS0Si+qhloqioGkaoijmhd1isWCz2ZZta12FN5t1FV4QxeXe - dRqipmIUMjjEBCVShEp5iSpDkHI5RJEUxSEmMAnZZT1ga0ioFMsZ/ssJ+NowvDy58edyTl6TyYiiQp1h - nn/veoEmw8b5wZKgYhCyWElRJEV1J9VyJaW0JhNTTSwqNmYVN1PZIvxlRcxnq1hSmollBBLpLIlEglgs - RiwaJRaLkojHSSaTpNPpPCnk5s9qteJyuSguLqaoqAir1QqCqO/6mkKTYZ432vo5YfYiH1annwY0vQHn - d/0+DaqdcZ+X6elpDAYD8/PzlJeX780k34gAAoEAzc3NuN3ug705awk89dsQvAlzQ4e/MJum0W6cpK5s - lkF3HefrmhlNHWcpayKlgKrrzwiCgCSKiKKIIIj5ME69yK6KhIJZSGIXkxRJUcqkEJXyEhXyEiVyZFnY - 96g6a1Bqhx84BmcnNzZaiouLl3vHg0NM8B7H2U2F/3YwClmMUhaPFKOJ2TwpRFUzQcVOIOtmRnETUNwE - FQcRtYS4aiCjimRVUFR1ef5AXC7qqfs4xPzcCyjYhDh1xnl6TV76zF7chzndVwNK2+FNv4fgqMKpqng8 - Hm7cuEE6naa4uFiP3BP3t1CF/OSTTzI+Ps7FixepqamhoqICQTgg6azogzf+HnzxJ49MSXGLkOaU6QY9 - xjHmFBcTmWIms0UsKA7CipWMJpFFRETDICiYhTR2MYlLjOORYhRJUTxSDJcYxyqmDtRufV0dlFj1ar5r - UV5erreQBnrNPtpM0/v620YhS5EUpUiK5s/lM5pEQjMSUSwsqjaCip2gYiek2oiqZhKqkbQmoyAgoSIL - CnYxRZEUoVoOUmtYoEJewnzYS31pgK0E3vi7aJWnmA0EmJycxGaz0dHRgclkwmw209/fT2lpKTU1NXqZ - s/0gAJPJRGtrK5FIhLGxMWZmZmhoaMDjOaCE+PbvhqUx+NavQjpxZEq0GgSFKjlIlRzkIUDRRDLIZLVb - qr2EikFQkAT1rkSm1br011oCEASBoqIiBFHEpGXoM3nvyPUZBAWDkMApJqgmuEIehOX5k1A03Zshrpi/ - Q6vibyb8Jiu87tdYLHsdvkuXEASBlpYWXC4XPp8PVVWprq6mpKQEn8/HpUuX9m2zzp8COBwOenp6mJub - Y3R0FIvFQkNDg25r7ScEAR74L2ihCXj5TxE4xE7BLSAJKhLpe4fgNHAY9XqHF9bkxRgMBhwOB5oGRVKU - WsP8Xb1UAQ1ZUJBRjn6rNUki0vZDeE2PkvGOU1e32he3MnzXZDLR1taW36wDgQANDQ17Mt/XxQGUlpZS - VFTE1NQUAwMDlJaWUltbm6+tvh9YCMWYcn83jfXXcfi+dMSf8L0DkwxVjg3+bjLpefMalEkhHIfVg37I - oGkw6XqUQPl7qaqooaK8fFs2/srN+saNG9hsNurr63e1Wcsbk5JEXV0d5eXleL3effMPhMNhxsfHSafT - 1LX2YG/7MHwhBqPPFppq3gkIUOfamABymXNlcvhoqdj3rPRDuvb1mJ/8Y3rr+zDsogrtfmzWW37SZDLR - 3t5OJBJhdHR01ypHIpHA5/MRiUSoqamhPM90Hnjbn8Hn3g9T5wskcAcIoGSDTcJoNOYr55ZIhzht9hAJ - P3UPY/zuj1Fa2rmnoTbarGtraykvL9/WZr0tqnA4HPT29jI3N8fNmzexWq00NDRgsVi2/F46nWZiYoJg - MEhZWRktLS3r2ansOLz1z+DzPw7zh7iIyCGBzaD3F1RW+PhMJpNeOUdQ8Bz2unmHQfjLu+Ftf4awR+Ff - idxmHQ6H8Xq9eWf+7TbrHekdpaWl9PX1YbPZGBgYYGxsjGx2/bGVoihMTExw+fJlVFWlp6eH+vr6zVWT - ukfhHX+uhw0fzRoV9w4BGNf3PDCZTAiiiISK9Sg1z7gXhb+4Bd7251D1wIH8hNPppKenh6qqKm7evMm1 - a9dIJPQ8kJUagaZpBIPBnZcEy6kcZWVl+SOJurq6/KBzc3OMj4/nqwfbbNvss9X0Jnjbn8CX/guEJgua - wAHBadIJILXCzDcYDHp4spDFIqTv38k5aOEvaoJ3fBQanzzwnysrK8v3+rxy5Qrl5eV5jT2nJWQymd3X - BDSbzXmVY3x8nNHRUURRpKGhgdbW1u21GV+Ltu+CN8fh6Z+HiL9AAgcAuwE8Fr3AbEaTUTQBk8kECMuB - SoXSRwci/J56ePuHofnNd+xnJUmivr6e8vJyJiYmuH79OqFQaFU+wZ7P9nJ56KlUClEU8/npu8axH9Bn - 7OkPQCRQIIH9hAqdpfCZ74eEKvHp8EOMZcpw2K2omoaR7KHNoLunhb+oUVf7W99xVy7BYDBgNpuXU7iT - SJKE2WxGEITdE4CiKExNTTEzM0N5eTm9vb3IspzvSFJSUrLrkEWt+weYmJig8tLvY0guFEhgH2E3wgO1 - +hn0tUU7SqoEEQVVy2IV00jC0QzMulvCH7dWob7+97G33R3hn52dZWJiApvNRm9vLwsLC1RUVHD9+nXd - 96PtojRszs5feRowOjqKLMvU1dWRTCYZHx8nHA5TWVm5qnjoNueNC+fP0ckw1hd/HYJjBRLY97UpMJkp - IqJalhOOBcxCmnrDfIEE9kn4Kesk9MhvckNrxmazUl9Xd9uTs7Xwer1omkZjY+OOvpez81VVzZ8GBINB - pqenOXbsGNlslkAgsDMNIBeCqKrqugzClTxiNptpa2vL1yqbmZmhtraW0tLS7QUSaRoIInS+G5we+MrP - 6lmEBRLYNwho1BoWChNxUMJf2Qfv+Ciu2kfozWaZmpriypUrlJSUUFtbu2/JPGuRSqXwer2Ew+F18QAr - ZVSWZaqrq7dHACsH3UlEoM1m49ixYywtLeHz+Zient5+IJGm6a/Wt8P32OBrPw/TFwskUMC9LfsqZKoe - xPg9H4PKk3lhq6+vp6KiIp95myurL0nSvvzuSpO8pKQk3yD0dpAPYtC1cLvduFyufKKRyWSivr5++5WH - Gl4P3/s38PQvwNgzhVVWwD0o+YAkkWx6G97m/0TnsvCvRC7zNhaL4fP5CAQC1NTUUFZWtqcQ+5VH78eO - HdtRToB8EINuBEEQKCsro6SkhOnpaa5du4bL5aKurg6z2Xz7Acp74V1/i/atX0fr/0dE9T7IFCvg8Ai/ - 0QanfxLl5AdITG7dbtlms9HV1ZXXjP1+P/X19TtOwV9pkjc1Ne0qhV/ebFBFUXY96FYQRTGfD5BrL15W - VkZ1dfVt7aIlzYWv+ieowU3xyD9ALFgggQLuvvC7quH1/wP63oeQVEDbXjq12+3G7XYzPz+f14wbGhpu - qxmnUil8Ph+hUGjPSXryQQy6HRgMBhobG6msrGR8fJxLly6tazeWQyKRYGxsjEQiQV1TB0Wn/hCGHoZn - fh3mRwokUMDdE/7q0/DG34WmNy7/cee5FCUlJRQVFTEzM8O1a9dwOp3U19fnz+pzzjtFUZiensbv91NS - UkJfX9+enYmyqqpMT08zPT29b4PuBLkTg0gkssouAshms4yNjTE3N0dFRQXt7e23nCbdPwDuRr2y0Ngz - LNeELqCAOyP4shG636PX7i9q3fOQoihSVVVFaWlp/sSgtLRUD9eVZYLBIGNjY/tmkucgPfXUUx+SJImO - jo58ieXdYHFxEUmScLlcu/q+yWSirKwMi8WC1+vl+vXrLC0t4XA4aG9vp7i4eH0sgbNazyHIJGBuQG+g - UCCBAg5a+O2l8Piv6cLvqFr1diaTYWFhgcrKyt0JpCThdrspKSlhaWmJwcFBAoEAmqbR3Ny8pyPERCJB - NBqlrKws/zdZkqR8t5d7Aaqq5stp565ty9ZTjkp4yx9CaSe8+HsQmiqQQAEHh+rT8OT/hJa36rEqBygH - iqIgCELeDDiIFmzyI488krc93G439fX1+9MRaIcIhUL4fD4URaGxsRFBEGhra2NxcZErV65QVlZGTU3N - xseQsgUe/K9Q2gXf+jWYPFtYqAXsHzTAYIZj/w5e92tQ1HJgP7WyhkZFRQVdXV3Isozb7WZ0dDQfS7Nf - zXvEnO3R19eHKIpcvnyZycnJO9bwMR6Pc+3aNUZGRigrK6Ovry/f3TSXetzT00MqleLSpUvMzMywafRy - 41Pwff8P+t4HkrFQW6CA/RH+ogZ48x/C2z9yYMK/UQ2NXHkvTdNwu9309fVRVFTEtWvX8v0C9or8dmow - GGhubqaiogKv18vs7OyOWw3vlOlyTUgrKipoa2vL+x/WCvjK1ONcNdT6+vqNIwo9jfqDquiDl/4AwtMF - k6CA3Qm+KBIuOU3oxM9TefI9+1oYN/8zmpZP2LFarXR3d2/q4FvpKPT5fFy+fHnPDXzX3ZHNZqO7u5tg - MIjX68Xv9++rypGLLgwEAhQVFdHX17dtk8PpdNLb28vs7Gy+GuqGpcmMdjjzAb3c2HMfgomX9LDiAgrY - rvCbnXD6JzGf+hmm53Xts7a2ds9ReyuRa/QpSRKtra3bdqAbDAZaWlryuTZ72aw3pbSioiLcbjd+v59r - 167h8Xioq6vbtX9A0zQCgQBTU1O3ZbrbYW21k039A01vgJJ24t/8LQxX/wlDNlbQBgq4vfBX9sHjvwqd - 34tRNNBRpPuoVtba2+1pF5A/8k6n03tq9JnLtdnLZr2lTiOKItXV1ZSWljI+Ps7ly5c3DdbZCgsLC4yP - j+eZblfVgtZgZbUTr9e7OUM7axhv/6+UlJ6iZPgTMPnqcrZhYa0XsEbwDRa9IM3jH4TitlVvu1wuent7 - CQQCjIyMYLfbaWho2F4Y+zISiUQ+Tb66upqKiop96fW30WZdX1+/rePCbRk1RqNxlcqRKw9eVFS05fdy - OcnZbPbA/Alms5mOjo4tGVoVJNTO74Pet8FrH4NLfwvhQsmxApZlXwNK2hAe/WU4/oNg2FwzLS8vz2uf - /f39lJeXU1NTs2X8TCaTYWJiIt/ht7m5ed/9CWs3660ia3dMADnkVI6FhQW8Xr11cWNjIzabLX9eCbpn - 3+fzEYvFqK6uXtEH4ODgcrno6elhdnZ2Q4YWNBWctUQe+GWmlQaqxz+FfeZFyKQKRHDfSj5gshGufJJI - 73+h5uTbtvU1WZZpaGigvLwcn8/HxYsX84VyVyIXujszM4Pb7aa3t3dv5fK2gdxmHY1G8Xq9qzbrlZpx - JpPB7/fvriIQ6IEKfr8/H0KcSqUwGAyIosj8/Hw+wWc3TKdpGhcuXKCzs3NXfoJsNsvk5CSzs7NUVlay - tLSE2+0mmUyyFApRXV1LhcuAOPw5ePWjMHMJVLVABPeT4IsCVJ2GMz/HjPthFmNZOjvadjVcTvsUBIHS - 0lKmp6epra1lYmICs9lMQ0PD9qtjr8FuKwLlsLCwgM/nw2w243A48j06cr64XRPASibxer1cuHABURQ5 - ceLEtu2PgyKAHFKpFDdv3uTChQs4HA76+vrWq2shH1z8W7j897A4qi+OAhEcXcEX0GP3T/wH6PlhcNUR - CAQIBoN0du6tUcfs7Cz9/f1MTExw7Ngx2tvb9+zv2isB5ORpenqaS5cusbCwQG9vLy0tLdhstr1XBY7F - YiQSCWw2G6IoEo/HiUajB9defAeIRCKkUinsdjtWq5VoNEo8HsfhWNEh01Wvp3J2vgvO/xUMfhoiev/6 - AhEcMcG3l8PxfwcnfgzKe/b1J1KpFOFwGKPRuNxpWSMcDmOz2fat6s9ukUwmiUQimM1m7HY72WyWSCSC - xWLZPQGsTNHNqTgGgwG73c7Y2BhTU1PU19evFrY7KPg552NTUxMmkynvgBweHl4fPyAI+oJ465/C8R+C - Cx+Hm9+A8GRBIzgKgm8rho53wYn3Q/WDIO6fA05V1XzVrOLiYnp6ehgbG6O9vR2fz8fMzEy+/sVBptdv - hGw2m3c+VlRU0NPTk/cJeL1eJiYmdk4AKwctLy/Pp+guLS0Bt44kZmZmGB4exuFwULeLaqi7QTqdxufz - sbS0RHV1NZWVlQiCwNTUFKIoUlpaSnFxMdPT0wwMDFBUVERtbe2t2AZRhtqHoeoUBPp1s2D4C3qnokIF - osMFQdATxTrfrcfwV58GaX8dcPPz8/h8PiwWSz6uJRaLoWkaVquVzs7OfI5LrurP7U7O9oX3lmNuJicn - 863CTCYTwaBeqchut3Ps2DFCodD2CSA36MTExKpBN0IuZLGsrIzJyUkGBgb21Cdguyy8nUIJudLlFRUV - +XDKiooKqqqqbqlqklF3EFWegAd+CoY+DwOf1JuXZpIFIrhXsVyXL2atJ9v2LlwP/pCu2Qn7q4JHo1FG - R0e3VTUrdzo1Pz+P1+tlamqKhoaGA9OMl5aWGBsbQ5Ik2tvbV/3OWnefy+XaHgEsLS3h9XoRRXFHjo3c - ccnKqj+5PgH7ZRflWNhsNtPd3b1tb6vRaKS1tZV4PL6qrfKqQCJBgpJOeKxTdxiNPQP9/4Q6/hJierny - S4EM7g3Blw1Q9zgc/3eopWe4OZfBGDTTYE/sWxj7ZhrmdpCr+hMIBBgaGsLhcFBfX79vmnHOJI/H4xse - SW4qo7cb1Ov1EovFdjToWmxUDXVHfQI2YeFcd+LGxsZdq1ZWq5Wurq68qjY9Pb2xquasgd4fRWl5Jze/ - /f9oTvcj3fwqhKcKkYV3S+gFwOTQ08A7vw96fggcVTiAvmqVmZmZVcK2k6i9lVhZNau4uHjXVbNEUaSy - sjJ/VLihGbpD5EzyDatm7ZYAVp6jl5eXr8rU2wvWVkPNCdtOTgzWsvB+hVNuV1XTzC5CZY+gHvtxpMX/ - AjeehuEvwswFSCf1DxXI4GAFXxRRrCVILW+Gru/T/Ta28nXClsucy+WM7MYMzQW97VTD3FLols3Q8vLy - fIj9OjP0dtOwgUm+G4KT1w46OzvL+Pj4nga9HXLVUHN9Asxm8237BOwXC98OKws0bqiqaZoeVSgZ9JTj - ij6yx34Y/0v/iN3/PJ7IVd1pmLO3CmSwP0IPYLLr8930VkbUBtofezeicWsVemXx2Vw7++2EyOY0zEwm - sycNcyus1IxzKfjb6RMQCoUYGxtDEIQ9xxrIBzHodpHzym9WDTU3CbloJpPJtG8svBVWOjHXtnTKMbTA - ylzuAI6291D25E9D+IauEdx4GuaHILFYOErci9AbTHoRjsYn9S5R1Q+hyk6i/f1oO/Dq52pKRKPRvFc+ - Z9auXGu5OhWLi4v7qmFuhVwKfi6icKUZupIIEokEPp+PaDS6J5N8FQGsHXQvdvlehG1lNdSSkhKy2Syx - WIzR0VFSqdS2ko/2GytbOk1MTHDp0iVKS0tRFIVQKMTk5CQAbW0rMhytJ6DiBDzw0/pR4ug3YPSb+glC - OqqHHFMghE0FHvSsPHcd1D0GzW/RVXxn9a1JS6d1LWwXJZ/sdjvd3d0sLi4yPj7OzMwMJpMpH9o+MTFx - oBrmVshlHObMUL/fD+iawsTEBH6/n/LyclpbW/fNiS4/++yztLW1cfLkyQNnuq1gMBhoaGigqqqKoaEh - BgcHmZ2dpbe3l5qamjseRLESJpOJlpYW4vE4AwMDXL16laWlJfr6+igvL9/4S9ZifddqfFIvTjI7ANPn - YPwlmLuqOw8zyVufvx8JQeNWXL7Vrafg1pyBhif0vnrO6n0/wsvB4/Hg8XiYnZ3l1VdfZXFxkY6Ojn0t - ub1blJSU5ONVzp49SyqVoru7+0CSieSamhrC4XA+geduIpvNMjMzQzKZpLi4mLKyMhYWFrDZbHd891+L - dDqN3+9HVdW86RIIBDCbzbcvDmEr0+sVNj4FD8YgNA5T52D8BZLesxgTAcTkIiiZo0sI2ur/qxodSEUN - +jFrzUP6q6QDLMV37JJCoRCBQACr1YrZbEYURfx+/5688vuFxcVF5ufncTgcFBcX52XjdqnHOyaAnp6e - vP2fqyiyl2onu4Gq6kc209PT+SglWZbp6OggmUyuqnZy0Pb/WqwsYebxeOjp6eHatWv09PQQDAZ3XhzC - YNMXfUkn9PwQN8+9QL1Lw54Y102GmcuwNAbRGUjHV5cyO0ykkN/dAdmCYnKRtlRiqTtBxtPJ9bAVe10f - tR0nkQzmO3ppuePoRCJBbW0tJSUlhMNhmpubGRsb23Xhm/1AroaGoih5WRQEgYqKCkZHRzdNPd41AcAt - 22OzXPqDxPz8vB6TLMurIpdyUUu50OLp6WkGBwcpKiqirq7uwO2zlSXMVoZ6ZrPZ/LXtpjjEKggiGYMb - taoF7E/oEpOK6MK/cB3mBnXTIXBFNxnSYVCzeliyuoYU7jQ5aGv+KwCShCIYSYl2TMW1SMUteiReWTcx - qYSJEHSffhQjAs2pNN6xMS72X6VuOQDroJFKpZiYmGBxcXHVmXkgEEBVVWRZprW1NX8CkKu1dye0z3g8 - zvj4ONFoNO98FASBUCiEqqqYTKZ8aHFus25sbNyzsz5/CiAIwqoFvbLW3kFkM61kurWTvDZkMddQtKys - LB9ReJAe2rXFGrea5LXFIXKlybbvTNV0gc5Jkcmpv4rboO2dusAnFiDiR1saZ+7GeVKzI1TZFaT4rP5e - YhGyCUjH0dQMgqro427kIxO2IdSbfVaUdZtcNupVc0xO3bxx1aLaa5hJ25hJWalof5CKpuNgceUTb9Rw - hGx8LD+oxWSks6N9XSWngzh9ymaz+cIcxcXF9Pb2bqni2+12jh8/no8BOEjtM51OMzk5mU/YaWlp2bKG - xsrN+vr163sOcpI3W9BlZWWMjIwwMzNDd3f3voVTqqrKjRs3mJubyzv9tuvgy1U7CYfDjIyM4Pf76e7u - 3jdNJZvNMjQ0RCQSobm5eUe7ksVioaOjg2AwyI0bN5iZmaGzs3Pvmooog62clLGYwYBEtrKWlseakBxW - yMYhuaQTQGyWTHiGwMhFqj0mhNQSxGYhFYZsEpQ0KBnUVIR0ZB6TwYCwkjxFGWQTyGbdTJFMhJMq9pJq - RFuxLuzWEr0VltkF9kqwFIGliFgGrg7dQDaaaGluxmnfwImWI6UNFnRPTw/T09NcuXKFiooKmpqa9s3p - GwqFGBwczJuWO3HwFRcX4/F4GB8f5+LFizQ0NOT7Vu4H5ufnGR4epqioaEcOvpWb9djYGOfPn6e1tXVX - WtT/Dwq2uvjgV6RrAAAAAElFTkSuQmCC - - - \ No newline at end of file diff --git a/FloatToolGUI/App.config b/FloatToolGUI/App.config index 56efbc7..03a0a75 100644 --- a/FloatToolGUI/App.config +++ b/FloatToolGUI/App.config @@ -1,6 +1,26 @@ - + + + +
+ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FloatToolGUI/Benchmark.Designer.cs b/FloatToolGUI/Benchmark.Designer.cs new file mode 100644 index 0000000..9b281ec --- /dev/null +++ b/FloatToolGUI/Benchmark.Designer.cs @@ -0,0 +1,370 @@ +namespace FloatToolGUI +{ + partial class Benchmark + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Benchmark)); + this.startBenchmarkBtn = new System.Windows.Forms.Button(); + this.submitScoreBtn = new System.Windows.Forms.Button(); + this.cpuNameLabel = new System.Windows.Forms.Label(); + this.threadCountLabel = new System.Windows.Forms.Label(); + this.versionLabel2 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.speedLabel = new System.Windows.Forms.Label(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.Updater = new System.Windows.Forms.Timer(this.components); + this.customProgressBar1 = new FloatToolGUI.CustomProgressBar(); + this.panel4 = new System.Windows.Forms.Panel(); + this.label8 = new System.Windows.Forms.Label(); + this.closeBtn = new System.Windows.Forms.Button(); + this.panel3 = new System.Windows.Forms.Panel(); + this.flowLayoutPanel1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panel4.SuspendLayout(); + this.panel3.SuspendLayout(); + this.SuspendLayout(); + // + // startBenchmarkBtn + // + this.startBenchmarkBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.startBenchmarkBtn.FlatAppearance.BorderSize = 0; + this.startBenchmarkBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.startBenchmarkBtn.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.startBenchmarkBtn.ForeColor = System.Drawing.Color.White; + this.startBenchmarkBtn.Location = new System.Drawing.Point(394, 247); + this.startBenchmarkBtn.Name = "startBenchmarkBtn"; + this.startBenchmarkBtn.Size = new System.Drawing.Size(304, 39); + this.startBenchmarkBtn.TabIndex = 1; + this.startBenchmarkBtn.Text = "Начать бенчмарк"; + this.startBenchmarkBtn.UseVisualStyleBackColor = false; + this.startBenchmarkBtn.Click += new System.EventHandler(this.startBenchmarkBtn_Click); + // + // submitScoreBtn + // + this.submitScoreBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.submitScoreBtn.Enabled = false; + this.submitScoreBtn.FlatAppearance.BorderSize = 0; + this.submitScoreBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.submitScoreBtn.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 12F); + this.submitScoreBtn.ForeColor = System.Drawing.Color.White; + this.submitScoreBtn.Location = new System.Drawing.Point(394, 212); + this.submitScoreBtn.Name = "submitScoreBtn"; + this.submitScoreBtn.Size = new System.Drawing.Size(304, 29); + this.submitScoreBtn.TabIndex = 2; + this.submitScoreBtn.Text = "Опубликовать"; + this.submitScoreBtn.UseVisualStyleBackColor = false; + this.submitScoreBtn.Click += new System.EventHandler(this.submitScoreBtn_Click); + // + // cpuNameLabel + // + this.cpuNameLabel.AutoSize = true; + this.cpuNameLabel.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 11F); + this.cpuNameLabel.ForeColor = System.Drawing.Color.White; + this.cpuNameLabel.Location = new System.Drawing.Point(390, 9); + this.cpuNameLabel.Name = "cpuNameLabel"; + this.cpuNameLabel.Size = new System.Drawing.Size(137, 19); + this.cpuNameLabel.TabIndex = 3; + this.cpuNameLabel.Text = "AMD Ryzen 5 2600"; + this.cpuNameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // threadCountLabel + // + this.threadCountLabel.AutoSize = true; + this.threadCountLabel.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.threadCountLabel.ForeColor = System.Drawing.Color.White; + this.threadCountLabel.Location = new System.Drawing.Point(390, 28); + this.threadCountLabel.Name = "threadCountLabel"; + this.threadCountLabel.Size = new System.Drawing.Size(93, 20); + this.threadCountLabel.TabIndex = 3; + this.threadCountLabel.Text = "12 Потоков"; + this.threadCountLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // versionLabel2 + // + this.versionLabel2.AutoSize = true; + this.versionLabel2.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.versionLabel2.ForeColor = System.Drawing.Color.White; + this.versionLabel2.Location = new System.Drawing.Point(390, 48); + this.versionLabel2.Name = "versionLabel2"; + this.versionLabel2.Size = new System.Drawing.Size(93, 20); + this.versionLabel2.TabIndex = 3; + this.versionLabel2.Text = "v.0.5.0 beta"; + this.versionLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.ForeColor = System.Drawing.Color.White; + this.label4.Location = new System.Drawing.Point(390, 151); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(84, 20); + this.label4.TabIndex = 3; + this.label4.Text = "Скорость:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // speedLabel + // + this.speedLabel.AutoSize = true; + this.speedLabel.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.speedLabel.ForeColor = System.Drawing.Color.White; + this.speedLabel.Location = new System.Drawing.Point(390, 171); + this.speedLabel.Name = "speedLabel"; + this.speedLabel.Size = new System.Drawing.Size(45, 20); + this.speedLabel.TabIndex = 3; + this.speedLabel.Text = "0 к/с"; + this.speedLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.AutoScroll = true; + this.flowLayoutPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(26)))), ((int)(((byte)(26)))), ((int)(((byte)(26))))); + this.flowLayoutPanel1.Controls.Add(this.panel1); + this.flowLayoutPanel1.Controls.Add(this.panel2); + this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Left; + this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.flowLayoutPanel1.ForeColor = System.Drawing.Color.White; + this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Padding = new System.Windows.Forms.Padding(10); + this.flowLayoutPanel1.Size = new System.Drawing.Size(384, 321); + this.flowLayoutPanel1.TabIndex = 4; + this.flowLayoutPanel1.WrapContents = false; + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(151)))), ((int)(((byte)(10)))), ((int)(((byte)(27))))); + this.panel1.Controls.Add(this.label7); + this.panel1.Controls.Add(this.label6); + this.panel1.Location = new System.Drawing.Point(10, 10); + this.panel1.Margin = new System.Windows.Forms.Padding(0, 0, 0, 5); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(350, 35); + this.panel1.TabIndex = 0; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 8F); + this.label7.ForeColor = System.Drawing.Color.White; + this.label7.Location = new System.Drawing.Point(3, 18); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(128, 14); + this.label7.TabIndex = 3; + this.label7.Text = "1021779 к/с (v.0.5.0 beta)"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 8F); + this.label6.ForeColor = System.Drawing.Color.White; + this.label6.Location = new System.Drawing.Point(3, 3); + this.label6.Margin = new System.Windows.Forms.Padding(0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(260, 14); + this.label6.TabIndex = 3; + this.label6.Text = "AMD Ryzen 5 2600 Six-Core Processor (12 Threads)"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(125)))), ((int)(((byte)(195))))); + this.panel2.Controls.Add(this.label1); + this.panel2.Controls.Add(this.label2); + this.panel2.Location = new System.Drawing.Point(10, 50); + this.panel2.Margin = new System.Windows.Forms.Padding(0, 0, 0, 5); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(350, 35); + this.panel2.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 8F); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(3, 18); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(126, 14); + this.label1.TabIndex = 3; + this.label1.Text = "934030 к/с (v.0.5.0 beta)"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft JhengHei UI Light", 8F); + this.label2.ForeColor = System.Drawing.Color.White; + this.label2.Location = new System.Drawing.Point(3, 3); + this.label2.Margin = new System.Windows.Forms.Padding(0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(289, 14); + this.label2.TabIndex = 3; + this.label2.Text = "Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz (4 Threads)"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // Updater + // + this.Updater.Enabled = true; + this.Updater.Tick += new System.EventHandler(this.Updater_Tick); + // + // customProgressBar1 + // + this.customProgressBar1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37))))); + this.customProgressBar1.ForeColor = System.Drawing.Color.White; + this.customProgressBar1.Location = new System.Drawing.Point(394, 289); + this.customProgressBar1.Margin = new System.Windows.Forms.Padding(0); + this.customProgressBar1.Maximum = 184756; + this.customProgressBar1.Minimum = 0; + this.customProgressBar1.Name = "customProgressBar1"; + this.customProgressBar1.ProgressColor = System.Drawing.Color.Green; + this.customProgressBar1.ProgressFont = new System.Drawing.Font("Microsoft JhengHei UI", 11.25F, System.Drawing.FontStyle.Bold); + this.customProgressBar1.Size = new System.Drawing.Size(304, 24); + this.customProgressBar1.TabIndex = 0; + this.customProgressBar1.Value = 0F; + // + // panel4 + // + this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); + this.panel4.Controls.Add(this.versionLabel2); + this.panel4.Controls.Add(this.threadCountLabel); + this.panel4.Controls.Add(this.cpuNameLabel); + this.panel4.Controls.Add(this.startBenchmarkBtn); + this.panel4.Controls.Add(this.customProgressBar1); + this.panel4.Controls.Add(this.submitScoreBtn); + this.panel4.Controls.Add(this.flowLayoutPanel1); + this.panel4.Controls.Add(this.label4); + this.panel4.Controls.Add(this.speedLabel); + this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel4.Location = new System.Drawing.Point(0, 40); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(704, 321); + this.panel4.TabIndex = 6; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.BackColor = System.Drawing.Color.Transparent; + this.label8.Font = new System.Drawing.Font("Microsoft JhengHei Light", 22F); + this.label8.ForeColor = System.Drawing.Color.White; + this.label8.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.label8.Location = new System.Drawing.Point(1, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(154, 38); + this.label8.TabIndex = 0; + this.label8.Text = "Бенчмарк"; + this.label8.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DragWindowMouseDown); + // + // closeBtn + // + this.closeBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.closeBtn.BackColor = System.Drawing.Color.Transparent; + this.closeBtn.FlatAppearance.BorderSize = 0; + this.closeBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.closeBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; + this.closeBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.closeBtn.Font = new System.Drawing.Font("Microsoft JhengHei Light", 16F); + this.closeBtn.ForeColor = System.Drawing.Color.White; + this.closeBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.closeBtn.Location = new System.Drawing.Point(664, 0); + this.closeBtn.Name = "closeBtn"; + this.closeBtn.Size = new System.Drawing.Size(40, 40); + this.closeBtn.TabIndex = 3; + this.closeBtn.Text = "X"; + this.closeBtn.UseVisualStyleBackColor = false; + this.closeBtn.Click += new System.EventHandler(this.closeBtn_Click); + // + // panel3 + // + this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37))))); + this.panel3.Controls.Add(this.closeBtn); + this.panel3.Controls.Add(this.label8); + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(0, 0); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(704, 40); + this.panel3.TabIndex = 5; + this.panel3.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DragWindowMouseDown); + // + // Benchmark + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37))))); + this.ClientSize = new System.Drawing.Size(704, 361); + this.Controls.Add(this.panel4); + this.Controls.Add(this.panel3); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "Benchmark"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Бенчмарк"; + this.flowLayoutPanel1.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.panel4.ResumeLayout(false); + this.panel4.PerformLayout(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private CustomProgressBar customProgressBar1; + private System.Windows.Forms.Button startBenchmarkBtn; + private System.Windows.Forms.Button submitScoreBtn; + private System.Windows.Forms.Label cpuNameLabel; + private System.Windows.Forms.Label threadCountLabel; + private System.Windows.Forms.Label versionLabel2; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label speedLabel; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.Timer Updater; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Button closeBtn; + private System.Windows.Forms.Panel panel3; + } +} \ No newline at end of file diff --git a/FloatToolGUI/Benchmark.cs b/FloatToolGUI/Benchmark.cs new file mode 100644 index 0000000..b78bc3f --- /dev/null +++ b/FloatToolGUI/Benchmark.cs @@ -0,0 +1,352 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Management; +using System.Net; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace FloatToolGUI +{ + public partial class Benchmark : Form + { + private static bool NextCombination(IList num, int n, int k) + { + bool finished; + var changed = finished = false; + if (k <= 0) return false; + for (var i = k - 1; !finished && !changed; i--) + { + if (num[i] < n - 1 - (k - 1) + i) + { + num[i]++; + if (i < k - 1) + for (var j = i + 1; j < k; j++) + num[j] = num[j - 1] + 1; + changed = true; + } + finished = i == 0; + } + return changed; + } + + private static IEnumerable Combinations(IEnumerable elements, int k, int start, int skip) + { + var elem = elements.ToArray(); + var size = elem.Length; + if (k > size) yield break; + var numbers = new int[k]; + for (var i = 0; i < k; i++) + numbers[i] = i; + int step = 0; + do + { + if ((step + start) % skip == 0) + yield return numbers.Select(n => elem[n]); + step++; + } while (NextCombination(numbers, size, k)); + } + + public enum SearchMode + { + Less, + Equal, + Greater + } + SearchMode CurrentSearchMode = SearchMode.Equal; + + public static string setprecission(double number, int figures) + { + int e = 0; + + while (number >= 10.0) + { + e += 1; + number /= 10; + } + + while (number < 1.0) + { + e -= 1; + number *= 10; + } + + figures--; + + number = (float)Math.Round(number, figures); + + figures += 0 - e; + while (e > 0) + { + number *= 10; + e -= 1; + } + + while (e < 0) + { + number /= 10; + e += 1; + } + + if (figures < 0) + { + figures = 0; + } + + return number.ToString($"f{figures}"); + } + static public decimal craft(double[] ingridients, float minFloat, float maxFloat) + { + decimal avgFloat = 0; + foreach (double f in ingridients) + { + avgFloat += (decimal)f; + } + avgFloat /= 10; + return ((decimal)(maxFloat - minFloat) * avgFloat) + (decimal)minFloat; + } + static public string craftF(double[] ingridients, float minFloat, float maxFloat) + { + float avgFloat = 0; + float[] arrInput = new float[10]; + for (int i = 0; i < 10; i++) + { + arrInput[i] = Convert.ToSingle(ingridients[i]); + } + foreach (float f in arrInput) + { + avgFloat += Convert.ToSingle(f); + } + avgFloat /= 10; + return setprecission(((maxFloat - minFloat) * avgFloat) + minFloat, 10); + } + + public void parseCraft(double[] inputs, List outputs, string want) + { + decimal wantFloat; + decimal.TryParse(want, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out wantFloat); + + foreach (var item in outputs) + { + decimal flotOrigin = Math.Round(craft(inputs.ToArray(), item.MinFloat, item.MaxFloat), 14); + string flot = craftF(inputs, item.MinFloat, item.MaxFloat); + + if ( + ((flotOrigin.ToString(CultureInfo.InvariantCulture).StartsWith(want)) && CurrentSearchMode == SearchMode.Equal) || + ((flotOrigin < wantFloat) && CurrentSearchMode == SearchMode.Less) || + ((flotOrigin > wantFloat) && CurrentSearchMode == SearchMode.Greater) + ) + { + return; + } + } + } + + public void secndThread(List craftList, string wanted, double[] pool, int start, int skip) + { + foreach (IEnumerable pair in Combinations(pool, 10, start, skip)) + { + parseCraft(pair.ToArray(), craftList, wanted); + currComb++; + } + } + + private void runCycle() + { + Console.WriteLine("Thread loaded!"); + } + + List t2 = new List(); + int currComb; + Thread thread1; + + private void StartCalculation() + { + currComb = 0; + List outcomes = new List(); + outcomes.Add(new Skin("AK-47 | Safari Mesh", 0.06f, 0.8f, Quality.Industrial)); + + Invoke((MethodInvoker)(() => + { + customProgressBar1.Value = 0; + } + )); + + double[] pool = { + 0.246938750147820, 0.196652039885521, 0.154839321970940, + 0.333326697349548, 0.163415759801865, 0.291821509599686, + 0.374309629201889, 0.378754675388336, 0.231419935822487, + 0.311867892742157, 0.374067693948746, 0.377068012952805, + 0.244467452168465, 0.355135351419449, 0.352264583110809, + 0.227853879332542, 0.340960860252380, 0.375657349824905, + 0.157685652375221, 0.217334255576134 + }; + + Stopwatch timer = Stopwatch.StartNew(); + + var threads = Environment.ProcessorCount; + try + { + for (int i = 0; i < threads; i++) + { + Thread newThread = new Thread(() => secndThread(outcomes, "1", pool, i, threads)); + newThread.Start(); + t2.Add(newThread); + } + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } + + while (true) + { + bool okey = true; + foreach (Thread t in t2) + { + if (t.IsAlive) + { + okey = false; + break; + } + } + if (okey) break; + } + + timer.Stop(); + TimeSpan timespan = timer.Elapsed; + + Invoke((MethodInvoker)(() => + { + submitScoreBtn.Enabled = true; + speedLabel.Text = $"{Math.Round(currComb / timespan.TotalSeconds)} к/с"; + currComb = 184756; + thread1.Abort(); + } + )); + } + + public Benchmark(string version) + { + InitializeComponent(); + versionLabel2.Text = version; + threadCountLabel.Text = $"{Environment.ProcessorCount} Threads"; + ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor"); + foreach (ManagementObject mo in mos.Get()) + cpuNameLabel.Text = mo["Name"].ToString().Trim(); + + thread1 = new Thread(runCycle); + LoadStats(); + } + + private void startBenchmarkBtn_Click(object sender, EventArgs e) + { + thread1.Abort(); + thread1 = new Thread(StartCalculation); + thread1.Start(); + } + + private void Updater_Tick(object sender, EventArgs e) + { + customProgressBar1.Value = currComb; + } + + string uri = "https://prevterapi.000webhostapp.com/"; + + private void AddCpuToList(string cpu, string speed, string ver) + { + Color backColor = cpu.Contains("AMD") ? Color.FromArgb(157, 0, 20) : (cpu.Contains("Intel") ? Color.FromArgb(0, 125, 195) : Color.FromArgb(56, 56, 56)); + Color foreColor = Color.White; + + var tmpPanel = new Panel + { + BackColor = backColor, + Size = new Size(350, 35), + Margin = new Padding(0,0,0,5) + }; + tmpPanel.Controls.Add(new Label + { + Location = new Point(3,3), + Font = new Font("Microsoft JhengHei UI Light", 8f), + Text = cpu, + AutoSize = true, + ForeColor = foreColor + }); + tmpPanel.Controls.Add(new Label + { + Location = new Point(3, 18), + Font = new Font("Microsoft JhengHei UI Light", 8f), + Text = $"{speed} к/с ({ver})", + AutoSize = true, + ForeColor = foreColor + }); + flowLayoutPanel1.Controls.Add(tmpPanel); + } + + private void LoadStats() + { + flowLayoutPanel1.Controls.Clear(); + WebRequest request = WebRequest.Create($"{uri}getBenchmarks.php"); + request.Credentials = CredentialCache.DefaultCredentials; + WebResponse response = request.GetResponse(); + + using (Stream dataStream = response.GetResponseStream()) + { + StreamReader reader = new StreamReader(dataStream); + string responseFromServer = reader.ReadToEnd(); + Console.WriteLine(responseFromServer); + if(responseFromServer.Contains('|')) + { + foreach (var cpu in responseFromServer.Remove(responseFromServer.Length - 1).Split('&')) + { + var items = cpu.Split('|'); + AddCpuToList(items[0], items[1], items[2]); + } + } + } + response.Close(); + } + + private void submitScoreBtn_Click(object sender, EventArgs e) + { + submitScoreBtn.Enabled = false; + HttpWebRequest req = (HttpWebRequest)WebRequest.Create($"{uri}addBenchmark.php?cpu={cpuNameLabel.Text} ({threadCountLabel.Text})&speed={speedLabel.Text.Split(' ')[0]}"); + req.UserAgent = $"FloatTool/{versionLabel2.Text}"; + HttpWebResponse res = (HttpWebResponse)req.GetResponse(); + res.Close(); + MessageBox.Show("Ваш результат был принят."); + } + + private void closeBtn_Click(object sender, EventArgs e) + { + Close(); + } + + public const int WM_NCLBUTTONDOWN = 0xA1; + public const int HT_CAPTION = 0x2; + + [System.Runtime.InteropServices.DllImport("user32.dll")] + public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + [System.Runtime.InteropServices.DllImport("user32.dll")] + public static extern bool ReleaseCapture(); + + + private void DragWindowMouseDown(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + ReleaseCapture(); + SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + } + } + } +} diff --git a/FloatToolGUI/Benchmark.resx b/FloatToolGUI/Benchmark.resx new file mode 100644 index 0000000..5aa4a44 --- /dev/null +++ b/FloatToolGUI/Benchmark.resx @@ -0,0 +1,370 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + 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 + + + \ No newline at end of file diff --git a/FloatToolGUI/FloatToolGUI.csproj b/FloatToolGUI/FloatToolGUI.csproj index f24fe41..81ab64a 100644 --- a/FloatToolGUI/FloatToolGUI.csproj +++ b/FloatToolGUI/FloatToolGUI.csproj @@ -7,7 +7,7 @@ {A5906B52-BA1B-481C-BF4C-3028EF52A925} WinExe FloatToolGUI - FloatTool GUI + FloatTool v4.7.2 8.0 512 @@ -28,6 +28,8 @@ 1.0.0.%2a false true + + AnyCPU @@ -40,7 +42,7 @@ 4 - x64 + AnyCPU pdbonly true bin\Release\ @@ -77,15 +79,17 @@ true - - ..\packages\DiscordRichPresence.1.0.150\lib\net35\DiscordRPC.dll + + ..\packages\DiscordRichPresence.1.0.175\lib\net35\DiscordRPC.dll - - ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + + @@ -98,11 +102,23 @@ - + Form - - About.cs + + Benchmark.cs + + + UserControl + + + CustomProgressBar.cs + + + UserControl + + + CustomToggleSwitch.cs Form @@ -112,8 +128,23 @@ - - About.cs + + + Form + + + SettingsForm.cs + + + + + Benchmark.cs + + + CustomProgressBar.cs + + + CustomToggleSwitch.cs Main.cs @@ -134,6 +165,11 @@ Resources.resx True + + + + SettingsForm.cs + SettingsSingleFileGenerator @@ -149,15 +185,19 @@ - - - - - - - - + + + + + + + + + + + + @@ -171,5 +211,6 @@ false + \ No newline at end of file diff --git a/FloatToolGUI/FodyWeavers.xml b/FloatToolGUI/FodyWeavers.xml new file mode 100644 index 0000000..6e2fa02 --- /dev/null +++ b/FloatToolGUI/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/FloatToolGUI/Main.Designer.cs b/FloatToolGUI/Main.Designer.cs index 0cfce15..bd2761f 100644 --- a/FloatToolGUI/Main.Designer.cs +++ b/FloatToolGUI/Main.Designer.cs @@ -49,8 +49,8 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FloatTool)); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.timer1 = new System.Windows.Forms.Timer(this.components); + this.outputConsoleBox = new System.Windows.Forms.TextBox(); + this.DiscordUpdater = new System.Windows.Forms.Timer(this.components); this.panel1 = new System.Windows.Forms.Panel(); this.panel8 = new System.Windows.Forms.Panel(); this.panel13 = new System.Windows.Forms.Panel(); @@ -59,86 +59,90 @@ private void InitializeComponent() this.panel10 = new System.Windows.Forms.Panel(); this.panel7 = new System.Windows.Forms.Panel(); this.panel9 = new System.Windows.Forms.Panel(); - this.button10 = new System.Windows.Forms.Button(); - this.button9 = new System.Windows.Forms.Button(); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); - this.button7 = new System.Windows.Forms.Button(); - this.button6 = new System.Windows.Forms.Button(); - this.button8 = new System.Windows.Forms.Button(); + this.benchmarkButton = new System.Windows.Forms.Button(); + this.settingsButton = new System.Windows.Forms.Button(); + this.MaximizeButton = new System.Windows.Forms.Button(); + this.minimizeBtn = new System.Windows.Forms.Button(); + this.closeBtn = new System.Windows.Forms.Button(); this.button5 = new System.Windows.Forms.Button(); this.button4 = new System.Windows.Forms.Button(); this.button3 = new System.Windows.Forms.Button(); this.panel3 = new System.Windows.Forms.Panel(); - this.label9 = new System.Windows.Forms.Label(); + this.versionLabel = new System.Windows.Forms.Label(); this.label8 = new System.Windows.Forms.Label(); - this.progressBar1 = new System.Windows.Forms.ProgressBar(); this.panel6 = new System.Windows.Forms.Panel(); - this.checkBox1 = new System.Windows.Forms.CheckBox(); - this.button1 = new System.Windows.Forms.Button(); + this.stattrackCheckBox = new FloatToolGUI.CustomControls.CustomToggleSwitch(); + this.checkPossibilityBtn = new System.Windows.Forms.Button(); this.label3 = new System.Windows.Forms.Label(); - this.comboBox3 = new System.Windows.Forms.ComboBox(); + this.outcomeSelectorComboBox = new System.Windows.Forms.ComboBox(); + this.weaponQualityBox = new System.Windows.Forms.ComboBox(); + this.label12 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); - this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.weaponTypeBox = new System.Windows.Forms.ComboBox(); + this.label11 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.comboBox2 = new System.Windows.Forms.ComboBox(); + this.fullSkinName = new System.Windows.Forms.TextBox(); + this.weaponSkinBox = new System.Windows.Forms.ComboBox(); this.panel5 = new System.Windows.Forms.Panel(); this.panel16 = new System.Windows.Forms.Panel(); + this.downloadProgressBar = new FloatToolGUI.CustomProgressBar(); + this.searchmodeGreater_btn = new System.Windows.Forms.Button(); + this.searchmodeEqual_btn = new System.Windows.Forms.Button(); + this.searchmodeLess_btn = new System.Windows.Forms.Button(); + this.searchModeLabel = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); - this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); - this.panel14 = new System.Windows.Forms.Panel(); - this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); - this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.quantityInput = new System.Windows.Forms.NumericUpDown(); + this.skipValueInput = new System.Windows.Forms.NumericUpDown(); + this.ascendingCheckBox = new System.Windows.Forms.CheckBox(); this.label7 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); - this.textBox3 = new System.Windows.Forms.TextBox(); - this.checkBox2 = new System.Windows.Forms.CheckBox(); - this.button2 = new System.Windows.Forms.Button(); + this.searchFloatInput = new System.Windows.Forms.TextBox(); + this.sortCheckBox = new System.Windows.Forms.CheckBox(); + this.startBtn = new System.Windows.Forms.Button(); this.panel15 = new System.Windows.Forms.Panel(); + this.speedStatusLabel = new System.Windows.Forms.Label(); + this.combinationsStatusLabel = new System.Windows.Forms.Label(); + this.gpuSearch_btn = new System.Windows.Forms.Button(); this.label10 = new System.Windows.Forms.Label(); - this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); - this.checkBox4 = new System.Windows.Forms.CheckBox(); + this.threadCountInput = new System.Windows.Forms.NumericUpDown(); this.panel2 = new System.Windows.Forms.Panel(); this.panel4 = new System.Windows.Forms.Panel(); + this.WorkStatusUpdater = new System.Windows.Forms.Timer(this.components); this.panel1.SuspendLayout(); this.panel8.SuspendLayout(); this.panel13.SuspendLayout(); this.panel11.SuspendLayout(); this.panel7.SuspendLayout(); this.panel9.SuspendLayout(); - this.contextMenuStrip1.SuspendLayout(); this.panel3.SuspendLayout(); this.panel6.SuspendLayout(); this.panel5.SuspendLayout(); this.panel16.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); - this.panel14.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.quantityInput)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.skipValueInput)).BeginInit(); this.panel15.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.threadCountInput)).BeginInit(); this.panel2.SuspendLayout(); this.panel4.SuspendLayout(); this.SuspendLayout(); // - // textBox2 + // outputConsoleBox // - this.textBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); - this.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.textBox2.Cursor = System.Windows.Forms.Cursors.Default; - resources.ApplyResources(this.textBox2, "textBox2"); - this.textBox2.ForeColor = System.Drawing.Color.White; - this.textBox2.Name = "textBox2"; - this.textBox2.ReadOnly = true; - this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged); + this.outputConsoleBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); + this.outputConsoleBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.outputConsoleBox.Cursor = System.Windows.Forms.Cursors.Default; + resources.ApplyResources(this.outputConsoleBox, "outputConsoleBox"); + this.outputConsoleBox.ForeColor = System.Drawing.Color.White; + this.outputConsoleBox.Name = "outputConsoleBox"; + this.outputConsoleBox.ReadOnly = true; + this.outputConsoleBox.TextChanged += new System.EventHandler(this.textBox2_TextChanged); // - // timer1 + // DiscordUpdater // - this.timer1.Enabled = true; - this.timer1.Interval = 15000; - this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + this.DiscordUpdater.Enabled = true; + this.DiscordUpdater.Interval = 15000; + this.DiscordUpdater.Tick += new System.EventHandler(this.timer1_Tick); // // panel1 // @@ -164,7 +168,7 @@ private void InitializeComponent() // // panel11 // - this.panel11.Controls.Add(this.textBox2); + this.panel11.Controls.Add(this.outputConsoleBox); resources.ApplyResources(this.panel11, "panel11"); this.panel11.Name = "panel11"; // @@ -193,97 +197,76 @@ private void InitializeComponent() // panel9 // this.panel9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37))))); - this.panel9.Controls.Add(this.button10); - this.panel9.Controls.Add(this.button9); - this.panel9.Controls.Add(this.button7); - this.panel9.Controls.Add(this.button6); - this.panel9.Controls.Add(this.button8); + this.panel9.Controls.Add(this.benchmarkButton); + this.panel9.Controls.Add(this.settingsButton); + this.panel9.Controls.Add(this.MaximizeButton); + this.panel9.Controls.Add(this.minimizeBtn); + this.panel9.Controls.Add(this.closeBtn); resources.ApplyResources(this.panel9, "panel9"); this.panel9.Name = "panel9"; this.panel9.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel9_MouseDown); // - // button10 - // - resources.ApplyResources(this.button10, "button10"); - this.button10.BackColor = System.Drawing.Color.Transparent; - this.button10.FlatAppearance.BorderSize = 0; - this.button10.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.button10.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; - this.button10.ForeColor = System.Drawing.Color.White; - this.button10.Name = "button10"; - this.button10.UseVisualStyleBackColor = false; - this.button10.Click += new System.EventHandler(this.button10_Click); - // - // button9 - // - resources.ApplyResources(this.button9, "button9"); - this.button9.BackColor = System.Drawing.Color.Transparent; - this.button9.ContextMenuStrip = this.contextMenuStrip1; - this.button9.FlatAppearance.BorderSize = 0; - this.button9.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.button9.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; - this.button9.ForeColor = System.Drawing.Color.White; - this.button9.Name = "button9"; - this.button9.UseVisualStyleBackColor = false; - this.button9.Click += new System.EventHandler(this.button9_Click); - // - // contextMenuStrip1 - // - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripMenuItem2, - this.toolStripMenuItem3}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - resources.ApplyResources(this.contextMenuStrip1, "contextMenuStrip1"); - // - // toolStripMenuItem2 - // - this.toolStripMenuItem2.Image = global::FloatToolGUI.Properties.Resources.github; - this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - resources.ApplyResources(this.toolStripMenuItem2, "toolStripMenuItem2"); - this.toolStripMenuItem2.Click += new System.EventHandler(this.toolStripMenuItem2_Click); - // - // toolStripMenuItem3 - // - this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - resources.ApplyResources(this.toolStripMenuItem3, "toolStripMenuItem3"); - this.toolStripMenuItem3.Click += new System.EventHandler(this.toolStripMenuItem3_Click); - // - // button7 - // - this.button7.BackColor = System.Drawing.Color.Transparent; - this.button7.FlatAppearance.BorderSize = 0; - this.button7.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.button7.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; - resources.ApplyResources(this.button7, "button7"); - this.button7.ForeColor = System.Drawing.Color.White; - this.button7.Image = global::FloatToolGUI.Properties.Resources.unmutedWhite; - this.button7.Name = "button7"; - this.button7.UseVisualStyleBackColor = false; - this.button7.Click += new System.EventHandler(this.button7_Click); - // - // button6 - // - resources.ApplyResources(this.button6, "button6"); - this.button6.BackColor = System.Drawing.Color.Transparent; - this.button6.FlatAppearance.BorderSize = 0; - this.button6.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.button6.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; - this.button6.ForeColor = System.Drawing.Color.White; - this.button6.Name = "button6"; - this.button6.UseVisualStyleBackColor = false; - this.button6.Click += new System.EventHandler(this.button6_Click); - // - // button8 - // - resources.ApplyResources(this.button8, "button8"); - this.button8.BackColor = System.Drawing.Color.Transparent; - this.button8.FlatAppearance.BorderSize = 0; - this.button8.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.button8.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; - this.button8.ForeColor = System.Drawing.Color.White; - this.button8.Name = "button8"; - this.button8.UseVisualStyleBackColor = false; - this.button8.Click += new System.EventHandler(this.button8_Click); + // benchmarkButton + // + this.benchmarkButton.BackColor = System.Drawing.Color.Transparent; + this.benchmarkButton.BackgroundImage = global::FloatToolGUI.Properties.Resources.benchmarkWhite; + resources.ApplyResources(this.benchmarkButton, "benchmarkButton"); + this.benchmarkButton.FlatAppearance.BorderSize = 0; + this.benchmarkButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.benchmarkButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; + this.benchmarkButton.ForeColor = System.Drawing.Color.White; + this.benchmarkButton.Name = "benchmarkButton"; + this.benchmarkButton.UseVisualStyleBackColor = false; + this.benchmarkButton.Click += new System.EventHandler(this.benchmarkButton_Click); + // + // settingsButton + // + this.settingsButton.BackColor = System.Drawing.Color.Transparent; + this.settingsButton.BackgroundImage = global::FloatToolGUI.Properties.Resources.gearWhite; + resources.ApplyResources(this.settingsButton, "settingsButton"); + this.settingsButton.FlatAppearance.BorderSize = 0; + this.settingsButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.settingsButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; + this.settingsButton.ForeColor = System.Drawing.Color.White; + this.settingsButton.Name = "settingsButton"; + this.settingsButton.UseVisualStyleBackColor = false; + this.settingsButton.Click += new System.EventHandler(this.settingsButton_Click); + // + // MaximizeButton + // + resources.ApplyResources(this.MaximizeButton, "MaximizeButton"); + this.MaximizeButton.BackColor = System.Drawing.Color.Transparent; + this.MaximizeButton.FlatAppearance.BorderSize = 0; + this.MaximizeButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.MaximizeButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; + this.MaximizeButton.ForeColor = System.Drawing.Color.White; + this.MaximizeButton.Name = "MaximizeButton"; + this.MaximizeButton.UseVisualStyleBackColor = false; + this.MaximizeButton.Click += new System.EventHandler(this.MaximizeMinimizeButton); + // + // minimizeBtn + // + resources.ApplyResources(this.minimizeBtn, "minimizeBtn"); + this.minimizeBtn.BackColor = System.Drawing.Color.Transparent; + this.minimizeBtn.FlatAppearance.BorderSize = 0; + this.minimizeBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.minimizeBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; + this.minimizeBtn.ForeColor = System.Drawing.Color.White; + this.minimizeBtn.Name = "minimizeBtn"; + this.minimizeBtn.UseVisualStyleBackColor = false; + this.minimizeBtn.Click += new System.EventHandler(this.MaximizeMinimizeButton); + // + // closeBtn + // + resources.ApplyResources(this.closeBtn, "closeBtn"); + this.closeBtn.BackColor = System.Drawing.Color.Transparent; + this.closeBtn.FlatAppearance.BorderSize = 0; + this.closeBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.closeBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; + this.closeBtn.ForeColor = System.Drawing.Color.White; + this.closeBtn.Name = "closeBtn"; + this.closeBtn.UseVisualStyleBackColor = false; + this.closeBtn.Click += new System.EventHandler(this.button8_Click); // // button5 // @@ -315,17 +298,17 @@ private void InitializeComponent() // panel3 // this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37))))); - this.panel3.Controls.Add(this.label9); + this.panel3.Controls.Add(this.versionLabel); this.panel3.Controls.Add(this.label8); resources.ApplyResources(this.panel3, "panel3"); this.panel3.Name = "panel3"; this.panel3.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel3_MouseDown); // - // label9 + // versionLabel // - resources.ApplyResources(this.label9, "label9"); - this.label9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); - this.label9.Name = "label9"; + resources.ApplyResources(this.versionLabel, "versionLabel"); + this.versionLabel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.versionLabel.Name = "versionLabel"; // // label8 // @@ -334,49 +317,46 @@ private void InitializeComponent() this.label8.ForeColor = System.Drawing.Color.White; this.label8.Name = "label8"; // - // progressBar1 - // - resources.ApplyResources(this.progressBar1, "progressBar1"); - this.progressBar1.Cursor = System.Windows.Forms.Cursors.Default; - this.progressBar1.ForeColor = System.Drawing.Color.Black; - this.progressBar1.Name = "progressBar1"; - this.progressBar1.Step = 1; - // // panel6 // this.panel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(44)))), ((int)(((byte)(44))))); - this.panel6.Controls.Add(this.checkBox1); - this.panel6.Controls.Add(this.button1); + this.panel6.Controls.Add(this.stattrackCheckBox); + this.panel6.Controls.Add(this.checkPossibilityBtn); this.panel6.Controls.Add(this.label3); - this.panel6.Controls.Add(this.comboBox3); + this.panel6.Controls.Add(this.outcomeSelectorComboBox); + this.panel6.Controls.Add(this.weaponQualityBox); + this.panel6.Controls.Add(this.label12); this.panel6.Controls.Add(this.label1); this.panel6.Controls.Add(this.label4); - this.panel6.Controls.Add(this.comboBox1); + this.panel6.Controls.Add(this.weaponTypeBox); + this.panel6.Controls.Add(this.label11); this.panel6.Controls.Add(this.label2); - this.panel6.Controls.Add(this.textBox1); - this.panel6.Controls.Add(this.comboBox2); + this.panel6.Controls.Add(this.fullSkinName); + this.panel6.Controls.Add(this.weaponSkinBox); resources.ApplyResources(this.panel6, "panel6"); this.panel6.Name = "panel6"; // - // checkBox1 + // stattrackCheckBox // - resources.ApplyResources(this.checkBox1, "checkBox1"); - this.checkBox1.ForeColor = System.Drawing.Color.White; - this.checkBox1.Name = "checkBox1"; - this.checkBox1.UseVisualStyleBackColor = true; - this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); + this.stattrackCheckBox.Checked = false; + this.stattrackCheckBox.ForeColor = System.Drawing.Color.White; + resources.ApplyResources(this.stattrackCheckBox, "stattrackCheckBox"); + this.stattrackCheckBox.Name = "stattrackCheckBox"; + this.stattrackCheckBox.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.stattrackCheckBox.TurnedOnColor = System.Drawing.Color.Green; + this.stattrackCheckBox.OnToggled += new System.EventHandler(this.checkBox1_CheckedChanged); // - // button1 + // checkPossibilityBtn // - resources.ApplyResources(this.button1, "button1"); - this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); - this.button1.Cursor = System.Windows.Forms.Cursors.Hand; - this.button1.FlatAppearance.BorderSize = 0; - this.button1.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; - this.button1.ForeColor = System.Drawing.Color.White; - this.button1.Name = "button1"; - this.button1.UseVisualStyleBackColor = false; - this.button1.Click += new System.EventHandler(this.button1_Click); + resources.ApplyResources(this.checkPossibilityBtn, "checkPossibilityBtn"); + this.checkPossibilityBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.checkPossibilityBtn.Cursor = System.Windows.Forms.Cursors.Hand; + this.checkPossibilityBtn.FlatAppearance.BorderSize = 0; + this.checkPossibilityBtn.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; + this.checkPossibilityBtn.ForeColor = System.Drawing.Color.White; + this.checkPossibilityBtn.Name = "checkPossibilityBtn"; + this.checkPossibilityBtn.UseVisualStyleBackColor = false; + this.checkPossibilityBtn.Click += new System.EventHandler(this.button1_Click); // // label3 // @@ -384,21 +364,40 @@ private void InitializeComponent() this.label3.ForeColor = System.Drawing.Color.White; this.label3.Name = "label3"; // - // comboBox3 - // - resources.ApplyResources(this.comboBox3, "comboBox3"); - this.comboBox3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.comboBox3.Cursor = System.Windows.Forms.Cursors.Hand; - this.comboBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); - this.comboBox3.FormattingEnabled = true; - this.comboBox3.Items.AddRange(new object[] { - resources.GetString("comboBox3.Items"), - resources.GetString("comboBox3.Items1"), - resources.GetString("comboBox3.Items2"), - resources.GetString("comboBox3.Items3"), - resources.GetString("comboBox3.Items4")}); - this.comboBox3.Name = "comboBox3"; - this.comboBox3.SelectedIndexChanged += new System.EventHandler(this.comboBox3_SelectedIndexChanged); + // outcomeSelectorComboBox + // + resources.ApplyResources(this.outcomeSelectorComboBox, "outcomeSelectorComboBox"); + this.outcomeSelectorComboBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.outcomeSelectorComboBox.Cursor = System.Windows.Forms.Cursors.Hand; + this.outcomeSelectorComboBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.outcomeSelectorComboBox.FormattingEnabled = true; + this.outcomeSelectorComboBox.Items.AddRange(new object[] { + resources.GetString("outcomeSelectorComboBox.Items"), + resources.GetString("outcomeSelectorComboBox.Items1"), + resources.GetString("outcomeSelectorComboBox.Items2")}); + this.outcomeSelectorComboBox.Name = "outcomeSelectorComboBox"; + // + // weaponQualityBox + // + resources.ApplyResources(this.weaponQualityBox, "weaponQualityBox"); + this.weaponQualityBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.weaponQualityBox.Cursor = System.Windows.Forms.Cursors.Hand; + this.weaponQualityBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.weaponQualityBox.FormattingEnabled = true; + this.weaponQualityBox.Items.AddRange(new object[] { + resources.GetString("weaponQualityBox.Items"), + resources.GetString("weaponQualityBox.Items1"), + resources.GetString("weaponQualityBox.Items2"), + resources.GetString("weaponQualityBox.Items3"), + resources.GetString("weaponQualityBox.Items4")}); + this.weaponQualityBox.Name = "weaponQualityBox"; + this.weaponQualityBox.SelectedIndexChanged += new System.EventHandler(this.comboBox3_SelectedIndexChanged); + // + // label12 + // + resources.ApplyResources(this.label12, "label12"); + this.label12.ForeColor = System.Drawing.Color.White; + this.label12.Name = "label12"; // // label1 // @@ -412,50 +411,56 @@ private void InitializeComponent() this.label4.ForeColor = System.Drawing.Color.White; this.label4.Name = "label4"; // - // comboBox1 - // - resources.ApplyResources(this.comboBox1, "comboBox1"); - this.comboBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.comboBox1.Cursor = System.Windows.Forms.Cursors.Hand; - this.comboBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Items.AddRange(new object[] { - resources.GetString("comboBox1.Items"), - resources.GetString("comboBox1.Items1"), - resources.GetString("comboBox1.Items2"), - resources.GetString("comboBox1.Items3"), - resources.GetString("comboBox1.Items4"), - resources.GetString("comboBox1.Items5"), - resources.GetString("comboBox1.Items6"), - resources.GetString("comboBox1.Items7"), - resources.GetString("comboBox1.Items8"), - resources.GetString("comboBox1.Items9"), - resources.GetString("comboBox1.Items10"), - resources.GetString("comboBox1.Items11"), - resources.GetString("comboBox1.Items12"), - resources.GetString("comboBox1.Items13"), - resources.GetString("comboBox1.Items14"), - resources.GetString("comboBox1.Items15"), - resources.GetString("comboBox1.Items16"), - resources.GetString("comboBox1.Items17"), - resources.GetString("comboBox1.Items18"), - resources.GetString("comboBox1.Items19"), - resources.GetString("comboBox1.Items20"), - resources.GetString("comboBox1.Items21"), - resources.GetString("comboBox1.Items22"), - resources.GetString("comboBox1.Items23"), - resources.GetString("comboBox1.Items24"), - resources.GetString("comboBox1.Items25"), - resources.GetString("comboBox1.Items26"), - resources.GetString("comboBox1.Items27"), - resources.GetString("comboBox1.Items28"), - resources.GetString("comboBox1.Items29"), - resources.GetString("comboBox1.Items30"), - resources.GetString("comboBox1.Items31"), - resources.GetString("comboBox1.Items32"), - resources.GetString("comboBox1.Items33")}); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // weaponTypeBox + // + resources.ApplyResources(this.weaponTypeBox, "weaponTypeBox"); + this.weaponTypeBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.weaponTypeBox.Cursor = System.Windows.Forms.Cursors.Hand; + this.weaponTypeBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.weaponTypeBox.FormattingEnabled = true; + this.weaponTypeBox.Items.AddRange(new object[] { + resources.GetString("weaponTypeBox.Items"), + resources.GetString("weaponTypeBox.Items1"), + resources.GetString("weaponTypeBox.Items2"), + resources.GetString("weaponTypeBox.Items3"), + resources.GetString("weaponTypeBox.Items4"), + resources.GetString("weaponTypeBox.Items5"), + resources.GetString("weaponTypeBox.Items6"), + resources.GetString("weaponTypeBox.Items7"), + resources.GetString("weaponTypeBox.Items8"), + resources.GetString("weaponTypeBox.Items9"), + resources.GetString("weaponTypeBox.Items10"), + resources.GetString("weaponTypeBox.Items11"), + resources.GetString("weaponTypeBox.Items12"), + resources.GetString("weaponTypeBox.Items13"), + resources.GetString("weaponTypeBox.Items14"), + resources.GetString("weaponTypeBox.Items15"), + resources.GetString("weaponTypeBox.Items16"), + resources.GetString("weaponTypeBox.Items17"), + resources.GetString("weaponTypeBox.Items18"), + resources.GetString("weaponTypeBox.Items19"), + resources.GetString("weaponTypeBox.Items20"), + resources.GetString("weaponTypeBox.Items21"), + resources.GetString("weaponTypeBox.Items22"), + resources.GetString("weaponTypeBox.Items23"), + resources.GetString("weaponTypeBox.Items24"), + resources.GetString("weaponTypeBox.Items25"), + resources.GetString("weaponTypeBox.Items26"), + resources.GetString("weaponTypeBox.Items27"), + resources.GetString("weaponTypeBox.Items28"), + resources.GetString("weaponTypeBox.Items29"), + resources.GetString("weaponTypeBox.Items30"), + resources.GetString("weaponTypeBox.Items31"), + resources.GetString("weaponTypeBox.Items32"), + resources.GetString("weaponTypeBox.Items33")}); + this.weaponTypeBox.Name = "weaponTypeBox"; + this.weaponTypeBox.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // + // label11 + // + resources.ApplyResources(this.label11, "label11"); + this.label11.ForeColor = System.Drawing.Color.White; + this.label11.Name = "label11"; // // label2 // @@ -463,24 +468,23 @@ private void InitializeComponent() this.label2.ForeColor = System.Drawing.Color.White; this.label2.Name = "label2"; // - // textBox1 + // fullSkinName // - this.textBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; - resources.ApplyResources(this.textBox1, "textBox1"); - this.textBox1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); - this.textBox1.Name = "textBox1"; - this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); + this.fullSkinName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.fullSkinName.BorderStyle = System.Windows.Forms.BorderStyle.None; + resources.ApplyResources(this.fullSkinName, "fullSkinName"); + this.fullSkinName.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.fullSkinName.Name = "fullSkinName"; // - // comboBox2 + // weaponSkinBox // - resources.ApplyResources(this.comboBox2, "comboBox2"); - this.comboBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.comboBox2.Cursor = System.Windows.Forms.Cursors.Hand; - this.comboBox2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); - this.comboBox2.FormattingEnabled = true; - this.comboBox2.Name = "comboBox2"; - this.comboBox2.SelectedIndexChanged += new System.EventHandler(this.comboBox2_SelectedIndexChanged); + resources.ApplyResources(this.weaponSkinBox, "weaponSkinBox"); + this.weaponSkinBox.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.weaponSkinBox.Cursor = System.Windows.Forms.Cursors.Hand; + this.weaponSkinBox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.weaponSkinBox.FormattingEnabled = true; + this.weaponSkinBox.Name = "weaponSkinBox"; + this.weaponSkinBox.SelectedIndexChanged += new System.EventHandler(this.comboBox2_SelectedIndexChanged); // // panel5 // @@ -493,75 +497,122 @@ private void InitializeComponent() // panel16 // this.panel16.BackColor = System.Drawing.Color.Transparent; + this.panel16.Controls.Add(this.downloadProgressBar); + this.panel16.Controls.Add(this.searchmodeGreater_btn); + this.panel16.Controls.Add(this.searchmodeEqual_btn); + this.panel16.Controls.Add(this.searchmodeLess_btn); + this.panel16.Controls.Add(this.searchModeLabel); this.panel16.Controls.Add(this.label5); - this.panel16.Controls.Add(this.numericUpDown1); - this.panel16.Controls.Add(this.panel14); - this.panel16.Controls.Add(this.numericUpDown2); - this.panel16.Controls.Add(this.checkBox3); + this.panel16.Controls.Add(this.quantityInput); + this.panel16.Controls.Add(this.skipValueInput); + this.panel16.Controls.Add(this.ascendingCheckBox); this.panel16.Controls.Add(this.label7); this.panel16.Controls.Add(this.label6); - this.panel16.Controls.Add(this.textBox3); - this.panel16.Controls.Add(this.checkBox2); - this.panel16.Controls.Add(this.button2); + this.panel16.Controls.Add(this.searchFloatInput); + this.panel16.Controls.Add(this.sortCheckBox); + this.panel16.Controls.Add(this.startBtn); resources.ApplyResources(this.panel16, "panel16"); this.panel16.Name = "panel16"; // + // downloadProgressBar + // + resources.ApplyResources(this.downloadProgressBar, "downloadProgressBar"); + this.downloadProgressBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.downloadProgressBar.ForeColor = System.Drawing.Color.White; + this.downloadProgressBar.Maximum = 100; + this.downloadProgressBar.Minimum = 0; + this.downloadProgressBar.Name = "downloadProgressBar"; + this.downloadProgressBar.ProgressColor = System.Drawing.Color.Green; + this.downloadProgressBar.ProgressFont = new System.Drawing.Font("Microsoft JhengHei UI", 11.25F, System.Drawing.FontStyle.Bold); + this.downloadProgressBar.Value = 0F; + // + // searchmodeGreater_btn + // + resources.ApplyResources(this.searchmodeGreater_btn, "searchmodeGreater_btn"); + this.searchmodeGreater_btn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.searchmodeGreater_btn.Cursor = System.Windows.Forms.Cursors.Default; + this.searchmodeGreater_btn.FlatAppearance.BorderSize = 0; + this.searchmodeGreater_btn.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; + this.searchmodeGreater_btn.ForeColor = System.Drawing.Color.White; + this.searchmodeGreater_btn.Name = "searchmodeGreater_btn"; + this.searchmodeGreater_btn.UseVisualStyleBackColor = false; + this.searchmodeGreater_btn.Click += new System.EventHandler(this.changeSearchMode); + // + // searchmodeEqual_btn + // + resources.ApplyResources(this.searchmodeEqual_btn, "searchmodeEqual_btn"); + this.searchmodeEqual_btn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.searchmodeEqual_btn.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; + this.searchmodeEqual_btn.ForeColor = System.Drawing.Color.White; + this.searchmodeEqual_btn.Name = "searchmodeEqual_btn"; + this.searchmodeEqual_btn.UseVisualStyleBackColor = false; + this.searchmodeEqual_btn.Click += new System.EventHandler(this.changeSearchMode); + // + // searchmodeLess_btn + // + resources.ApplyResources(this.searchmodeLess_btn, "searchmodeLess_btn"); + this.searchmodeLess_btn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.searchmodeLess_btn.FlatAppearance.BorderSize = 0; + this.searchmodeLess_btn.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; + this.searchmodeLess_btn.ForeColor = System.Drawing.Color.White; + this.searchmodeLess_btn.Name = "searchmodeLess_btn"; + this.searchmodeLess_btn.UseVisualStyleBackColor = false; + this.searchmodeLess_btn.Click += new System.EventHandler(this.changeSearchMode); + // + // searchModeLabel + // + resources.ApplyResources(this.searchModeLabel, "searchModeLabel"); + this.searchModeLabel.ForeColor = System.Drawing.Color.White; + this.searchModeLabel.Name = "searchModeLabel"; + // // label5 // resources.ApplyResources(this.label5, "label5"); this.label5.ForeColor = System.Drawing.Color.White; this.label5.Name = "label5"; // - // numericUpDown1 + // quantityInput // - resources.ApplyResources(this.numericUpDown1, "numericUpDown1"); - this.numericUpDown1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.numericUpDown1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); - this.numericUpDown1.Minimum = new decimal(new int[] { + resources.ApplyResources(this.quantityInput, "quantityInput"); + this.quantityInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.quantityInput.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.quantityInput.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.quantityInput.Minimum = new decimal(new int[] { 10, 0, 0, 0}); - this.numericUpDown1.Name = "numericUpDown1"; - this.numericUpDown1.Value = new decimal(new int[] { + this.quantityInput.Name = "quantityInput"; + this.quantityInput.Value = new decimal(new int[] { 100, 0, 0, 0}); // - // panel14 - // - resources.ApplyResources(this.panel14, "panel14"); - this.panel14.BackColor = System.Drawing.Color.Transparent; - this.panel14.Controls.Add(this.progressBar1); - this.panel14.Name = "panel14"; - this.panel14.Paint += new System.Windows.Forms.PaintEventHandler(this.panel14_Paint); - // - // numericUpDown2 + // skipValueInput // - resources.ApplyResources(this.numericUpDown2, "numericUpDown2"); - this.numericUpDown2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.numericUpDown2.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.numericUpDown2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); - this.numericUpDown2.Maximum = new decimal(new int[] { + resources.ApplyResources(this.skipValueInput, "skipValueInput"); + this.skipValueInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.skipValueInput.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.skipValueInput.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.skipValueInput.Maximum = new decimal(new int[] { 9999999, 0, 0, 0}); - this.numericUpDown2.Name = "numericUpDown2"; - this.numericUpDown2.Value = new decimal(new int[] { + this.skipValueInput.Name = "skipValueInput"; + this.skipValueInput.Value = new decimal(new int[] { 20, 0, 0, 0}); // - // checkBox3 + // ascendingCheckBox // - resources.ApplyResources(this.checkBox3, "checkBox3"); - this.checkBox3.ForeColor = System.Drawing.Color.White; - this.checkBox3.Name = "checkBox3"; - this.checkBox3.UseVisualStyleBackColor = true; + resources.ApplyResources(this.ascendingCheckBox, "ascendingCheckBox"); + this.ascendingCheckBox.ForeColor = System.Drawing.Color.White; + this.ascendingCheckBox.Name = "ascendingCheckBox"; + this.ascendingCheckBox.UseVisualStyleBackColor = true; // // label7 // @@ -575,74 +626,95 @@ private void InitializeComponent() this.label6.ForeColor = System.Drawing.Color.White; this.label6.Name = "label6"; // - // textBox3 + // searchFloatInput // - resources.ApplyResources(this.textBox3, "textBox3"); - this.textBox3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.textBox3.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.textBox3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); - this.textBox3.Name = "textBox3"; + resources.ApplyResources(this.searchFloatInput, "searchFloatInput"); + this.searchFloatInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.searchFloatInput.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.searchFloatInput.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.searchFloatInput.Name = "searchFloatInput"; // - // checkBox2 + // sortCheckBox // - resources.ApplyResources(this.checkBox2, "checkBox2"); - this.checkBox2.ForeColor = System.Drawing.Color.White; - this.checkBox2.Name = "checkBox2"; - this.checkBox2.UseVisualStyleBackColor = true; + resources.ApplyResources(this.sortCheckBox, "sortCheckBox"); + this.sortCheckBox.ForeColor = System.Drawing.Color.White; + this.sortCheckBox.Name = "sortCheckBox"; + this.sortCheckBox.UseVisualStyleBackColor = true; // - // button2 + // startBtn // - resources.ApplyResources(this.button2, "button2"); - this.button2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); - this.button2.Cursor = System.Windows.Forms.Cursors.Hand; - this.button2.FlatAppearance.BorderSize = 0; - this.button2.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; - this.button2.ForeColor = System.Drawing.Color.White; - this.button2.Name = "button2"; - this.button2.UseVisualStyleBackColor = false; - this.button2.Click += new System.EventHandler(this.button2_Click); + resources.ApplyResources(this.startBtn, "startBtn"); + this.startBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.startBtn.Cursor = System.Windows.Forms.Cursors.Hand; + this.startBtn.FlatAppearance.BorderSize = 0; + this.startBtn.FlatAppearance.MouseOverBackColor = System.Drawing.SystemColors.WindowFrame; + this.startBtn.ForeColor = System.Drawing.Color.White; + this.startBtn.Name = "startBtn"; + this.startBtn.UseVisualStyleBackColor = false; + this.startBtn.Click += new System.EventHandler(this.button2_Click); // // panel15 // this.panel15.BackColor = System.Drawing.Color.Transparent; + this.panel15.Controls.Add(this.speedStatusLabel); + this.panel15.Controls.Add(this.combinationsStatusLabel); + this.panel15.Controls.Add(this.gpuSearch_btn); this.panel15.Controls.Add(this.label10); - this.panel15.Controls.Add(this.numericUpDown3); - this.panel15.Controls.Add(this.checkBox4); + this.panel15.Controls.Add(this.threadCountInput); resources.ApplyResources(this.panel15, "panel15"); this.panel15.Name = "panel15"; // + // speedStatusLabel + // + resources.ApplyResources(this.speedStatusLabel, "speedStatusLabel"); + this.speedStatusLabel.ForeColor = System.Drawing.Color.White; + this.speedStatusLabel.Name = "speedStatusLabel"; + // + // combinationsStatusLabel + // + resources.ApplyResources(this.combinationsStatusLabel, "combinationsStatusLabel"); + this.combinationsStatusLabel.ForeColor = System.Drawing.Color.White; + this.combinationsStatusLabel.Name = "combinationsStatusLabel"; + // + // gpuSearch_btn + // + resources.ApplyResources(this.gpuSearch_btn, "gpuSearch_btn"); + this.gpuSearch_btn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.gpuSearch_btn.FlatAppearance.BorderSize = 0; + this.gpuSearch_btn.ForeColor = System.Drawing.Color.White; + this.gpuSearch_btn.Name = "gpuSearch_btn"; + this.gpuSearch_btn.UseVisualStyleBackColor = false; + this.gpuSearch_btn.Click += new System.EventHandler(this.gpuSearch_btn_Click); + // // label10 // resources.ApplyResources(this.label10, "label10"); this.label10.ForeColor = System.Drawing.Color.White; this.label10.Name = "label10"; // - // numericUpDown3 + // threadCountInput // - this.numericUpDown3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.numericUpDown3.BorderStyle = System.Windows.Forms.BorderStyle.None; - resources.ApplyResources(this.numericUpDown3, "numericUpDown3"); - this.numericUpDown3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); - this.numericUpDown3.Minimum = new decimal(new int[] { - 2, + this.threadCountInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.threadCountInput.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.threadCountInput.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + resources.ApplyResources(this.threadCountInput, "threadCountInput"); + this.threadCountInput.Maximum = new decimal(new int[] { + 1024, + 0, + 0, + 0}); + this.threadCountInput.Minimum = new decimal(new int[] { + 1, 0, 0, 0}); - this.numericUpDown3.Name = "numericUpDown3"; - this.numericUpDown3.Value = new decimal(new int[] { + this.threadCountInput.Name = "threadCountInput"; + this.threadCountInput.Value = new decimal(new int[] { 2, 0, 0, 0}); // - // checkBox4 - // - resources.ApplyResources(this.checkBox4, "checkBox4"); - this.checkBox4.ForeColor = System.Drawing.Color.White; - this.checkBox4.Name = "checkBox4"; - this.checkBox4.UseVisualStyleBackColor = true; - this.checkBox4.CheckedChanged += new System.EventHandler(this.checkBox4_CheckedChanged); - // // panel2 // this.panel2.Controls.Add(this.panel5); @@ -657,15 +729,23 @@ private void InitializeComponent() resources.ApplyResources(this.panel4, "panel4"); this.panel4.Name = "panel4"; // + // WorkStatusUpdater + // + this.WorkStatusUpdater.Enabled = true; + this.WorkStatusUpdater.Interval = 250; + this.WorkStatusUpdater.Tick += new System.EventHandler(this.timer2_Tick); + // // FloatTool // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(44)))), ((int)(((byte)(44))))); resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(242)))), ((int)(((byte)(227))))); this.ControlBox = false; this.Controls.Add(this.panel4); this.Controls.Add(this.panel2); + this.DoubleBuffered = true; this.ForeColor = System.Drawing.Color.Black; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Name = "FloatTool"; this.Load += new System.EventHandler(this.Form1_Load); this.panel1.ResumeLayout(false); @@ -675,7 +755,6 @@ private void InitializeComponent() this.panel11.PerformLayout(); this.panel7.ResumeLayout(false); this.panel9.ResumeLayout(false); - this.contextMenuStrip1.ResumeLayout(false); this.panel3.ResumeLayout(false); this.panel3.PerformLayout(); this.panel6.ResumeLayout(false); @@ -683,12 +762,11 @@ private void InitializeComponent() this.panel5.ResumeLayout(false); this.panel16.ResumeLayout(false); this.panel16.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); - this.panel14.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.quantityInput)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.skipValueInput)).EndInit(); this.panel15.ResumeLayout(false); this.panel15.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.threadCountInput)).EndInit(); this.panel2.ResumeLayout(false); this.panel4.ResumeLayout(false); this.ResumeLayout(false); @@ -696,60 +774,66 @@ private void InitializeComponent() } #endregion - private System.Windows.Forms.TextBox textBox2; - private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.TextBox outputConsoleBox; + private System.Windows.Forms.Timer DiscordUpdater; private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Panel panel7; private System.Windows.Forms.Panel panel8; private System.Windows.Forms.Panel panel3; private System.Windows.Forms.Panel panel6; - private System.Windows.Forms.CheckBox checkBox1; - private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button checkPossibilityBtn; private System.Windows.Forms.Label label3; - private System.Windows.Forms.ComboBox comboBox3; + private System.Windows.Forms.ComboBox weaponQualityBox; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label4; - private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.ComboBox weaponTypeBox; private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.ComboBox comboBox2; + private System.Windows.Forms.TextBox fullSkinName; + private System.Windows.Forms.ComboBox weaponSkinBox; private System.Windows.Forms.Panel panel5; - private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.CheckBox ascendingCheckBox; private System.Windows.Forms.Label label6; - private System.Windows.Forms.ProgressBar progressBar1; - private System.Windows.Forms.CheckBox checkBox2; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.CheckBox sortCheckBox; + private System.Windows.Forms.Button startBtn; + private System.Windows.Forms.TextBox searchFloatInput; private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label5; - private System.Windows.Forms.NumericUpDown numericUpDown2; - private System.Windows.Forms.NumericUpDown numericUpDown1; + private System.Windows.Forms.NumericUpDown skipValueInput; + private System.Windows.Forms.NumericUpDown quantityInput; private System.Windows.Forms.Panel panel2; private System.Windows.Forms.Panel panel4; private System.Windows.Forms.Button button5; private System.Windows.Forms.Button button4; private System.Windows.Forms.Button button3; private System.Windows.Forms.Panel panel9; - private System.Windows.Forms.Button button6; - private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button minimizeBtn; + private System.Windows.Forms.Button closeBtn; private System.Windows.Forms.Label label8; private System.Windows.Forms.Panel panel13; private System.Windows.Forms.Panel panel11; private System.Windows.Forms.Panel panel12; private System.Windows.Forms.Panel panel10; - private System.Windows.Forms.Button button7; - private System.Windows.Forms.Button button9; - private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Panel panel14; - private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button settingsButton; + private System.Windows.Forms.Label versionLabel; private System.Windows.Forms.Panel panel16; private System.Windows.Forms.Panel panel15; - private System.Windows.Forms.CheckBox checkBox4; private System.Windows.Forms.Label label10; - private System.Windows.Forms.NumericUpDown numericUpDown3; + private System.Windows.Forms.NumericUpDown threadCountInput; + private System.Windows.Forms.Button gpuSearch_btn; + private System.Windows.Forms.Label combinationsStatusLabel; + private System.Windows.Forms.Timer WorkStatusUpdater; + private System.Windows.Forms.Label speedStatusLabel; + private System.Windows.Forms.Button searchmodeGreater_btn; + private System.Windows.Forms.Button searchmodeEqual_btn; + private System.Windows.Forms.Button searchmodeLess_btn; + private System.Windows.Forms.Label searchModeLabel; + private System.Windows.Forms.Button MaximizeButton; + private CustomProgressBar downloadProgressBar; + private System.Windows.Forms.ComboBox outcomeSelectorComboBox; + private System.Windows.Forms.Label label11; + private CustomControls.CustomToggleSwitch stattrackCheckBox; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Button benchmarkButton; } } diff --git a/FloatToolGUI/Main.cs b/FloatToolGUI/Main.cs index 8ebf5de..3b99cc1 100644 --- a/FloatToolGUI/Main.cs +++ b/FloatToolGUI/Main.cs @@ -1,4 +1,6 @@ using DiscordRPC; +using FloatToolGUI.Resources; +using static FloatToolGUI.Utils; using Newtonsoft.Json; using System; using System.Collections; @@ -17,14 +19,35 @@ using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; - +using Microsoft.Win32; +using System.Numerics; namespace FloatToolGUI { + public enum Quality + { + Consumer, + Industrial, + MilSpec, + Restricted, + Classified, + Covert + } + public partial class FloatTool : Form { Thread thread1; public bool muteSound = false; + string newLine; + public StringBuilder ConsoleBuffer; + public enum SearchMode + { + Less, + Equal, + Greater + } + + public SearchMode CurrentSearchMode = SearchMode.Equal; public static string setprecission(double number, int figures) { @@ -76,17 +99,16 @@ static public decimal craft(double[] ingridients, float minFloat, float maxFloat avgFloat /= 10; return ((decimal)(maxFloat - minFloat) * avgFloat) + (decimal)minFloat; } - static public string craftF(string[] ingridients, float minFloat, float maxFloat) + static public string craftF(double[] ingridients, float minFloat, float maxFloat) { float avgFloat = 0; float[] arrInput = new float[10]; for (int i = 0; i < 10; i++) { - arrInput[i] = Convert.ToSingle(ingridients[i].Replace(".", ",")); + arrInput[i] = Convert.ToSingle(ingridients[i]); } foreach (float f in arrInput) { - avgFloat += Convert.ToSingle(f); } avgFloat /= 10; @@ -140,40 +162,33 @@ static public string getSkinData(string name) } - public void parseCraft(double[] inputs, List outputs, string want, bool wasSort, bool asc) + public void parseCraft(double[] inputs, List outputs, string want) { - List results = new List(); + //List results = new List(); + decimal wantFloat; + decimal.TryParse(want, System.Globalization.NumberStyles.Any, CultureInfo.InvariantCulture, out wantFloat); + foreach (var item in outputs) { - //want = want.Replace(".", ","); - float minWear = item["minWear"]; - float maxWear = item["maxWear"]; - decimal flotOrigin = Math.Round(craft(inputs.ToArray(), minWear, maxWear), 14); - - string[] inputStr = new string[10]; - for(int i = 0; i < 10; i++) - { - inputStr[i] = "" + inputs[i]; - } - - //string flot = craftF(inputStr, minWear, maxWear); - //Console.WriteLine(flotOrigin + " | " + flot); - //Debug.WriteLine("[DEBUG] flot = " + flot); - // if (wasSort && ((!asc && (double.Parse(flot) > double.Parse(want))) || (asc && (double.Parse(flot) < double.Parse(want))))) { - // okSort = true; - //} - if (/*flot.StartsWith(want.Replace(".", ",")) ||*/ ("" + flotOrigin).StartsWith(want.Replace(".", ","))) + decimal flotOrigin = Math.Round(craft(inputs.ToArray(), item.MinFloat, item.MaxFloat), 14); + string flot = craftF(inputs, item.MinFloat, item.MaxFloat); + + if ( + ((flotOrigin.ToString(CultureInfo.InvariantCulture).StartsWith(want)) && CurrentSearchMode == SearchMode.Equal) || + ((flotOrigin < wantFloat) && CurrentSearchMode == SearchMode.Less) || + ((flotOrigin > wantFloat) && CurrentSearchMode == SearchMode.Greater) + ) { this.Invoke((MethodInvoker)(() => { - textBox2.AppendText("Коомбинация найдена!" + Environment.NewLine); - textBox2.AppendText("Возможный флоат: " + flotOrigin + Environment.NewLine); - //textBox2.AppendText("Проверочный флоат: " + flot + Environment.NewLine); - textBox2.AppendText("Список флоатов: ["); + ConsoleBuffer.Append($"[{DateTime.Now.ToString("HH:mm:ss")}] {strings.CombinationFound}{newLine}"); + ConsoleBuffer.Append($"{strings.PossibleFloat}: {flotOrigin}{newLine}"); + ConsoleBuffer.Append($"{strings.TestFloat}: {flot}{newLine}"); + ConsoleBuffer.Append($"{strings.FloatList}: "); if (!muteSound) { //play sound - SoundPlayer player = new SoundPlayer(); + SoundPlayer player = new SoundPlayer(Properties.Resources.notification); player.Play(); } client.SetPresence(new RichPresence() @@ -186,22 +201,13 @@ public void parseCraft(double[] inputs, List outputs, string want, bool LargeImageText = "FloatTool" } }); - for (int i = 0; i < 10; i++) - { - textBox2.AppendText(Math.Round(inputs[i], 14).ToString().Replace(",",".")); - if (i != 9) - { - textBox2.AppendText(", "); - } - else - { - textBox2.AppendText("]" + Environment.NewLine + "=====================================" + Environment.NewLine); - } - } + List floatStrings = new List(); + foreach (var fl in inputs) floatStrings.Add(Math.Round(fl, 14).ToString().Replace(",", ".")); + ConsoleBuffer.Append($"[{String.Join(", ", floatStrings)}]{newLine}====================================={newLine}"); } )); - //textBox2.AppendText( "IEEE754: " + flot + Environment.NewLine; + //textBox2.AppendText( "IEEE754: " + flot + newLine; return; } } @@ -209,41 +215,115 @@ public void parseCraft(double[] inputs, List outputs, string want, bool public void SwitchEnabled() { - comboBox1.Enabled = !comboBox1.Enabled; - comboBox2.Enabled = !comboBox2.Enabled; - textBox1.Enabled = !textBox1.Enabled; - comboBox3.Enabled = !comboBox3.Enabled; - textBox3.Enabled = !textBox3.Enabled; - numericUpDown1.Enabled = !numericUpDown1.Enabled; - numericUpDown2.Enabled = !numericUpDown2.Enabled; - checkBox1.Enabled = !checkBox1.Enabled; - checkBox2.Enabled = !checkBox2.Enabled; - checkBox3.Enabled = !checkBox3.Enabled; + weaponTypeBox.Enabled = !weaponTypeBox.Enabled; + weaponSkinBox.Enabled = !weaponSkinBox.Enabled; + fullSkinName.Enabled = !fullSkinName.Enabled; + weaponQualityBox.Enabled = !weaponQualityBox.Enabled; + searchFloatInput.Enabled = !searchFloatInput.Enabled; + quantityInput.Enabled = !quantityInput.Enabled; + skipValueInput.Enabled = !skipValueInput.Enabled; + stattrackCheckBox.Enabled = !stattrackCheckBox.Enabled; + sortCheckBox.Enabled = !sortCheckBox.Enabled; + ascendingCheckBox.Enabled = !ascendingCheckBox.Enabled; + outcomeSelectorComboBox.Enabled = !outcomeSelectorComboBox.Enabled; + threadCountInput.Enabled = !threadCountInput.Enabled; } + + public void UpdateOutcomes() + { + string skin = $"{weaponTypeBox.Text} | {weaponSkinBox.Text}"; + outcomeSelectorComboBox.Items.Clear(); + List craftList = new List(); + using (StreamReader r = new StreamReader("itemData.json")) + { + string json = r.ReadToEnd(); + dynamic items = JsonConvert.DeserializeObject(json); + foreach (var skn in items) + { + if (skn["name"].ToString() == skin) + { + foreach (var skin2 in items) + if (skn["case"].ToString() == skin2["case"].ToString()) + { + if (skin2["rarity"].ToString().Split(' ')[0] == getNextRarity(skn["rarity"].ToString().Split(' ')[0])) + craftList.Add(skin2); + } + } + } + int totalSkins = 0; + foreach (var skinRange in GroupOutcomes(craftList)) + totalSkins += skinRange.Count; + foreach (var skinRange in GroupOutcomes(craftList)) + { + string tmp = (skinRange.Count > 1) ? $" + {(skinRange.Count - 1)}" : ""; + outcomeSelectorComboBox.Items.Add($"{((float)skinRange.Count) / totalSkins * 100}% ({skinRange[0].Name}{tmp})"); + } + outcomeSelectorComboBox.Items.Add("* Искать всё *"); + outcomeSelectorComboBox.SelectedIndex = 0; + } + } + public void updateSearchStr() { string search = ""; - if (checkBox1.Checked) + if (stattrackCheckBox.Checked) { search += "StatTrak™ "; } - search += comboBox1.Text; + search += weaponTypeBox.Text; search += " | "; - search += comboBox2.Text; - search += " (" + comboBox3.Text + ")"; - textBox1.Text = search; + search += weaponSkinBox.Text; + search += " (" + weaponQualityBox.Text + ")"; + fullSkinName.Text = search; + UpdateOutcomes(); } + + RegistryKey registryData; public FloatTool() { InitializeComponent(); - this.SetStyle(ControlStyles.ResizeRedraw, true); + SetStyle(ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true); + ConsoleBuffer = new StringBuilder(); + newLine = Environment.NewLine; + registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool"); + if (registryData == null) + { + registryData = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\FloatTool"); + registryData.SetValue("darkMode", true); + registryData.SetValue("sound", true); + registryData.SetValue("updateCheck", true); + registryData.SetValue("bufferSpeed", 250); + registryData.Close(); + } + else + { + ChangeTheme(Convert.ToBoolean(registryData.GetValue("darkMode"))); + muteSound = !Convert.ToBoolean(registryData.GetValue("sound")); + WorkStatusUpdater.Interval = (int)registryData.GetValue("bufferSpeed"); + if (Convert.ToBoolean(registryData.GetValue("updateCheck"))) + { + string ver = CheckUpdates(); + if (ver != versionLabel.Text) + { + DialogResult result = MessageBox.Show( + $"Доступна версия {ver}! Хотите открыть страницу загрузки?", + "Обновление", + MessageBoxButtons.YesNo, + MessageBoxIcon.Information, + MessageBoxDefaultButton.Button1, + MessageBoxOptions.DefaultDesktopOnly); + + if (result == DialogResult.Yes) + System.Diagnostics.Process.Start("https://github.com/Nemeshio/FloatTool-GUI/releases/latest"); + } + } + } } public DiscordRpcClient client; - private bool darkTheme = true; private void Form1_Load(object sender, EventArgs e) { - comboBox2.Items.Clear(); + weaponSkinBox.Items.Clear(); using (StreamReader r = new StreamReader("itemData.json")) { string json = r.ReadToEnd(); @@ -251,15 +331,17 @@ private void Form1_Load(object sender, EventArgs e) foreach (var skin in items) { - if (skin["name"].ToString().Split('|')[0].TrimEnd() == comboBox1.Text) + if (skin["name"].ToString().Split('|')[0].TrimEnd() == weaponTypeBox.Text) { Console.WriteLine(skin["name"].ToString().Split('|')[1].Remove(0, 1)); - comboBox2.Items.Add(skin["name"].ToString().Split('|')[1].Remove(0, 1)); + weaponSkinBox.Items.Add(skin["name"].ToString().Split('|')[1].Remove(0, 1)); } } } updateSearchStr(); - button10.Text = darkTheme ? "🌙" : "☀"; + + //dev = 824349399688937543 + //main = 734042978246721537 client = new DiscordRpcClient("734042978246721537"); //Subscribe to events @@ -288,12 +370,7 @@ private void Form1_Load(object sender, EventArgs e) thread1 = new Thread(runCycle); this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea; - - } - - private void textBox1_TextChanged(object sender, EventArgs e) - { - + this.threadCountInput.Value = Environment.ProcessorCount; } private void runCycle() @@ -301,14 +378,9 @@ private void runCycle() Console.WriteLine("Thread loaded!"); } - private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) - { - - } - private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { - comboBox2.Items.Clear(); + weaponSkinBox.Items.Clear(); using (StreamReader r = new StreamReader("itemData.json")) { string json = r.ReadToEnd(); @@ -316,10 +388,10 @@ private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) foreach (var skin in items) { - if (skin["name"].ToString().Split('|')[0].TrimEnd() == comboBox1.Text) + if (skin["name"].ToString().Split('|')[0].TrimEnd() == weaponTypeBox.Text) { - Console.WriteLine(skin["name"].ToString().Split('|')[1].Remove(0,1)); - comboBox2.Items.Add(skin["name"].ToString().Split('|')[1].Remove(0,1)); + //Console.WriteLine(skin["name"].ToString().Split('|')[1].Remove(0,1)); + weaponSkinBox.Items.Add(skin["name"].ToString().Split('|')[1].Remove(0,1)); } } } @@ -390,20 +462,34 @@ private static IEnumerable Combinations(IEnumerable elements, int k, int s } while (NextCombination(numbers, size, k)); } - public void secndThread(List craftList, string wanted, double[] pool, int start, int skip) + public void secndThread(List craftList, string wanted, double[] pool, int start, int skip) { foreach (IEnumerable pair in Combinations(pool, 10, start, skip)) { - parseCraft(pair.ToArray(), craftList, wanted, checkBox2.Checked, checkBox3.Checked); + parseCraft(pair.ToArray(), craftList, wanted); + currComb++; + //Console.WriteLine(currComb); } } + public BigInteger Fact(int number) + { + if (number == 1) + return 1; + else + return number * Fact(number - 1); + } + public List t2 = new List(); + BigInteger totalComb = 0; + BigInteger currComb = 0; + public bool Searching = false; + private void StartCalculation() { client.SetPresence(new RichPresence() { Details = "Начал поиск", - State = "Ищу " + textBox3.Text, + State = "Ищу " + searchFloatInput.Text, Timestamps = Timestamps.Now, Assets = new Assets() { @@ -411,30 +497,34 @@ private void StartCalculation() LargeImageText = "FloatTool" } }); + + totalComb = quantityInput.Value == 10 ? 1 : Fact((int)quantityInput.Value) / (Fact(10) * Fact((int)quantityInput.Value - 10)); + currComb = 0; this.Invoke((MethodInvoker)(() => { - textBox2.Text = "Добро пожаловать в FloatTool!" + Environment.NewLine + "Инструмент для создания флоатов при помощи крафтов CS:GO" + Environment.NewLine; - textBox2.AppendText( "Время начала процесса: " + DateTime.Now.ToString("HH:mm:ss tt") + Environment.NewLine); - button2.Text = "Стоп"; - textBox1.SelectionStart = textBox1.Text.Length; - textBox2.ScrollToCaret(); + outputConsoleBox.Text = "Добро пожаловать в FloatTool!" + newLine + "Инструмент для создания флоатов при помощи крафтов CS:GO" + newLine; + outputConsoleBox.AppendText( "Время начала процесса: " + DateTime.Now.ToString("HH:mm:ss tt") + newLine); + startBtn.Text = "Стоп"; + fullSkinName.SelectionStart = fullSkinName.Text.Length; + outputConsoleBox.ScrollToCaret(); } )); - string count = "" + numericUpDown1.Value; - string start = "" + numericUpDown2.Value; - string wanted = textBox3.Text; - string q = textBox1.Text; + string count = "" + quantityInput.Value; + string start = "" + skipValueInput.Value; + string wanted = searchFloatInput.Text; + string q = fullSkinName.Text; string url = "https://steamcommunity.com/market/listings/730/" + q + "/render/?query=&language=russian&count=" + count + "&start=" + start + "¤cy=5"; Console.WriteLine(url); + this.Invoke((MethodInvoker)(() => { - textBox2.AppendText( "Загрузка скинов с торговой площадки..." + Environment.NewLine); - progressBar1.Maximum = int.Parse(count); - progressBar1.Value = 0; - textBox1.SelectionStart = textBox1.Text.Length; - textBox2.ScrollToCaret(); - + outputConsoleBox.AppendText( "Загрузка скинов с торговой площадки..." + newLine); + downloadProgressBar.Maximum = int.Parse(count); + downloadProgressBar.Value = 0; + fullSkinName.SelectionStart = fullSkinName.Text.Length; + outputConsoleBox.ScrollToCaret(); + combinationsStatusLabel.Text = $"Проверено комбинаций: 0 / {totalComb}"; } )); @@ -446,9 +536,9 @@ private void StartCalculation() dynamic r = JsonConvert.DeserializeObject(json); this.Invoke((MethodInvoker)(() => { - textBox2.AppendText( "Получение флоатов..." + Environment.NewLine); - textBox1.SelectionStart = textBox1.Text.Length; - textBox2.ScrollToCaret(); + outputConsoleBox.AppendText( "Получение флоатов..." + newLine); + fullSkinName.SelectionStart = fullSkinName.Text.Length; + outputConsoleBox.ScrollToCaret(); } )); int counter = 0; @@ -475,15 +565,15 @@ private void StartCalculation() } this.Invoke((MethodInvoker)(() => { - progressBar1.Value = counter; + downloadProgressBar.Value = counter; } )); } } - if (checkBox2.Checked) + if (sortCheckBox.Checked) { - if (checkBox3.Checked) + if (ascendingCheckBox.Checked) { floats.Sort((a, b) => a.CompareTo(b)); Console.WriteLine("Sorted ascending"); @@ -499,9 +589,15 @@ private void StartCalculation() //} this.Invoke((MethodInvoker)(() => { - textBox2.AppendText( "Поиск ауткамов..." + Environment.NewLine); - textBox1.SelectionStart = textBox1.Text.Length; - textBox2.ScrollToCaret(); + outputConsoleBox.AppendText( "Поиск ауткамов..." + newLine); + outputConsoleBox.SelectionStart = fullSkinName.Text.Length; + /*string line = "["; + foreach(var i in floats) + line += $"{i.ToString().Replace(',','.')}, "; + line = line.Remove(line.Length - 2); + textBox2.AppendText("Список флоатов:" + newLine + line + "]" + newLine);*/ + outputConsoleBox.ScrollToCaret(); + } )); string currData = getSkinData(q.Split('(')[0].TrimEnd()); @@ -523,54 +619,62 @@ private void StartCalculation() } } } + + int outcomeIndex = 0; + Invoke((MethodInvoker)(() => { outcomeIndex = outcomeSelectorComboBox.SelectedIndex; } )); + + var allOutcomes = GroupOutcomes(craftList); + List outcomes = new List(); + + if(allOutcomes.Length > outcomeIndex) { + outcomes.Add(allOutcomes[outcomeIndex][0]); + } + else + { + foreach (var i in allOutcomes) + outcomes.Add(i[0]); + } + this.Invoke((MethodInvoker)(() => { - textBox2.AppendText( "Ауткамы найдены! Начинаю подбор..." + Environment.NewLine + Environment.NewLine); - textBox1.SelectionStart = textBox1.Text.Length; - textBox2.ScrollToCaret(); + outputConsoleBox.AppendText( "Ауткамы найдены! Начинаю подбор..." + newLine + "Выбрано для поиска:" + newLine + String.Join(newLine, outcomes) + newLine + newLine); + fullSkinName.SelectionStart = fullSkinName.Text.Length; + outputConsoleBox.ScrollToCaret(); + downloadProgressBar.Value = 0; + downloadProgressBar.Maximum = 1000; } )); - //return; + double[] pool = floats.ToArray(); - //int n = floats.Count; - //if (10 > n) { Console.WriteLine("At least 10!"); return; } - //int[] indices = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - //List first = new List(); - //foreach (int i in indices) { first.Add(pool[i]); } - //Craft - //parseCraft(first.ToArray(), craftList, wanted, checkBox2.Checked, checkBox3.Checked); - // - //int iter = 2; - - var threads = 1; - if (checkBox4.Checked) - { - threads = (int)numericUpDown3.Value; - try - { - for (int i = 1; i < threads; i++) - { - Thread newThread = new Thread(() => secndThread(craftList, wanted, pool, i, threads)); - newThread.Start(); - t2.Add(newThread); - } - } - catch (Exception ex) + + Searching = true; + + int threads = (int)threadCountInput.Value; + try + { + for (int i = 1; i < threads; i++) { + Thread newThread = new Thread(() => secndThread(outcomes, wanted, pool, i, threads)); + newThread.Start(); + t2.Add(newThread); } } - - + catch (Exception ex) + { + Console.WriteLine(ex.Message); + } foreach (IEnumerable pair in Combinations(pool, 10, 0, threads)) { - parseCraft(pair.ToArray(), craftList, wanted, checkBox2.Checked, checkBox3.Checked); + parseCraft(pair.ToArray(), outcomes, wanted); + currComb++; } Console.WriteLine("Next group"); while (true) - { + { bool okey = true; + foreach (Thread t in t2) { if (t.IsAlive) @@ -581,68 +685,36 @@ private void StartCalculation() } if (okey) break; } - - - - - - /* - Parallel.For(2, 6, new ParallelOptions { MaxDegreeOfParallelism = 4 }, (iter) => { - while (true) - { - //var startTime = DateTimeOffset.Now.ToUnixTimeMilliseconds(); - //Debug.WriteLine("[DEBUG] start time = "+startTime); - Console.WriteLine("iter = " + iter); - int a = 9; bool run = true; - for (int i = 9; i >= 0; i--) { a = i; if (indices[i] != i + n - 10) { run = false; break; } } - if (run) { break; } - indices[a]++; - for (int j = a + 1; j < 10; j++) { indices[j] = indices[j - 1] + 1; } - List current = new List(); - foreach (int i in indices) { current.Add(pool[i]); } - //Craft - - //var endTime = DateTimeOffset.Now.ToUnixTimeMilliseconds(); - //Debug.WriteLine("[DEBUG] end time = " + endTime); - //Debug.WriteLine("[DEBUG] total time = " + (endTime - startTime)); - // - iter++; - } - }); - */ + Searching = false; this.Invoke((MethodInvoker)(() => { - textBox2.AppendText( "Программа завершила проверку всех комбинаций!" + Environment.NewLine); - textBox1.SelectionStart = textBox1.Text.Length; - textBox2.ScrollToCaret(); + outputConsoleBox.AppendText( "Программа завершила проверку всех комбинаций!" + newLine); + fullSkinName.SelectionStart = fullSkinName.Text.Length; + outputConsoleBox.ScrollToCaret(); thread1.Abort(); - button2.Text = "Старт"; - progressBar1.Value = 0; + startBtn.Text = "Старт"; + downloadProgressBar.Value = 0; SwitchEnabled(); } )); } - private void parseCraft(List[] lists, List craftList, string wanted, bool checked1, bool checked2) - { - throw new NotImplementedException(); - } - private void button2_Click(object sender, EventArgs e) { - if(button2.Text == "Старт") { + if(startBtn.Text == "Старт") { thread1.Abort(); thread1 = new Thread(StartCalculation); thread1.Start(); } else { + Searching = false; thread1.Abort(); - button2.Text = "Старт"; - progressBar1.Value = 0; + startBtn.Text = "Старт"; + downloadProgressBar.Value = 0; client.SetPresence(new RichPresence() { Details = "Настраиваю поиск", @@ -665,17 +737,17 @@ private void button2_Click(object sender, EventArgs e) private void textBox2_TextChanged(object sender, EventArgs e) { - textBox1.SelectionStart = textBox1.Text.Length; - textBox2.ScrollToCaret(); + fullSkinName.SelectionStart = fullSkinName.Text.Length; + outputConsoleBox.ScrollToCaret(); } private void button1_Click(object sender, EventArgs e) { updateSearchStr(); string skin = ""; - skin += comboBox1.Text; + skin += weaponTypeBox.Text; skin += " | "; - skin += comboBox2.Text; + skin += weaponSkinBox.Text; //search += " (" + comboBox3.Text + ")"; using (StreamReader r = new StreamReader("itemData.json")) @@ -686,9 +758,30 @@ private void button1_Click(object sender, EventArgs e) { if (skn["name"].ToString() == skin) { + #region Float ranges + /* + List craftList = new List(); + + foreach (var skin2 in items) + if (skn["case"].ToString() == skin2["case"].ToString()) + { + if (skin2["rarity"].ToString().Split(' ')[0] == getNextRarity(skn["rarity"].ToString().Split(' ')[0])) + craftList.Add(skin2); + } + + + foreach (var skinRange in GroupOutcomes(craftList)) + { + ConsoleBuffer.Append($"{newLine}--------Length: {skinRange.Count}--------"); + foreach (var skinObj in skinRange) + ConsoleBuffer.Append(newLine+skinObj.ToString()); + } + */ + #endregion + if (skn["highestRarity"] == "False") { - if (floatRangeText(comboBox3.Text, skn["minWear"].ToString(), skn["maxWear"].ToString())) + if (floatRangeText(weaponQualityBox.Text, skn["minWear"].ToString(), skn["maxWear"].ToString())) { MessageBox.Show("Данный скин доступен к поиску!", "FloatTool", MessageBoxButtons.OK, MessageBoxIcon.Information); return; @@ -707,7 +800,6 @@ private void button1_Click(object sender, EventArgs e) } } } - MessageBox.Show("Такого скина не существует! Перепроверьте настройки.", "FloatTool", MessageBoxButtons.OK, MessageBoxIcon.Error); } @@ -719,6 +811,40 @@ bool testOverlap(float x1, float x2, float y1, float y2) (y2 >= x1 && y2 <= x2); } + private Quality FromString(string value) + { + if (value == "Consumer") return Quality.Consumer; + else if (value == "Industrial") return Quality.Industrial; + else if (value == "Mil-Spec") return Quality.MilSpec; + else if (value == "Restricted") return Quality.Restricted; + else if (value == "Classified") return Quality.Classified; + else return Quality.Covert; + } + + private List[] GroupOutcomes(List skins) + { + var allList = new List>(); //List with all outcomes + float[] currIter = { 0f, 1f }; //Last iteration wear range + List floatRanges = new List(); //List of all ranges that has been parsed + + foreach(var skin in skins) + { + float[] curr = { skin["maxWear"], skin["minWear"] }; + List list = new List(); + if (curr.SequenceEqual(currIter) || floatRanges.Any(x => (x.SequenceEqual(curr)))) continue; //If range already exists + else { + currIter = curr; + floatRanges.Add(currIter); + } + foreach (var skin1 in skins) + if ((skin["maxWear"] == skin1["maxWear"]) && (skin["minWear"] == skin1["minWear"])) + list.Add(new Skin(skin1["name"].ToString(), float.Parse(skin1["minWear"].ToString().Replace('.', ',')), float.Parse(skin1["maxWear"].ToString().Replace('.', ',')), FromString(skin1["rarity"].ToString().Split(' ')[0]))); + allList.Add(list); + } + + return allList.ToArray(); + } + private bool floatRangeText(string text, string minVal, string maxVal) { Console.WriteLine(text + " in float range [" + minVal + ", " + maxVal + "]"); @@ -760,9 +886,15 @@ private void button8_Click(object sender, EventArgs e) Application.Exit(); } - private void button6_Click(object sender, EventArgs e) + private void MaximizeMinimizeButton(object sender, EventArgs e) { - this.WindowState = FormWindowState.Minimized; + var buttonText = ((System.Windows.Forms.Button)sender).Text; + if(buttonText == "_") WindowState = FormWindowState.Minimized; + else + { + WindowState = WindowState == FormWindowState.Maximized ? FormWindowState.Normal : FormWindowState.Maximized; + } + } public const int WM_NCLBUTTONDOWN = 0xA1; @@ -773,16 +905,51 @@ private void button6_Click(object sender, EventArgs e) [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern bool ReleaseCapture(); - private void panel3_MouseDown(object sender, MouseEventArgs e) + + private const int + HTLEFT = 10, + HTRIGHT = 11, + HTTOP = 12, + HTTOPLEFT = 13, + HTTOPRIGHT = 14, + HTBOTTOM = 15, + HTBOTTOMLEFT = 16, + HTBOTTOMRIGHT = 17; + + const int _ = 16; + + Rectangle TopCursor { get { return new Rectangle(0, 0, this.ClientSize.Width, _); } } + Rectangle LeftCursor { get { return new Rectangle(0, 0, _, this.ClientSize.Height); } } + Rectangle BottomCursor { get { return new Rectangle(0, this.ClientSize.Height - _, this.ClientSize.Width, _); } } + Rectangle RightCursor { get { return new Rectangle(this.ClientSize.Width - _, 0, _, this.ClientSize.Height); } } + + Rectangle TopLeft { get { return new Rectangle(0, 0, _, _); } } + Rectangle TopRight { get { return new Rectangle(this.ClientSize.Width - _, 0, _, _); } } + Rectangle BottomLeft { get { return new Rectangle(0, this.ClientSize.Height - _, _, _); } } + Rectangle BottomRight { get { return new Rectangle(this.ClientSize.Width - _, this.ClientSize.Height - _, _, _); } } + + + protected override void WndProc(ref Message message) { - if (e.Button == MouseButtons.Left) + base.WndProc(ref message); + + if (message.Msg == 0x84) // WM_NCHITTEST { - ReleaseCapture(); - SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + var cursor = this.PointToClient(Cursor.Position); + + if (TopLeft.Contains(cursor)) message.Result = (IntPtr)HTTOPLEFT; + else if (TopRight.Contains(cursor)) message.Result = (IntPtr)HTTOPRIGHT; + else if (BottomLeft.Contains(cursor)) message.Result = (IntPtr)HTBOTTOMLEFT; + else if (BottomRight.Contains(cursor)) message.Result = (IntPtr)HTBOTTOMRIGHT; + + else if (TopCursor.Contains(cursor)) message.Result = (IntPtr)HTTOP; + else if (LeftCursor.Contains(cursor)) message.Result = (IntPtr)HTLEFT; + else if (RightCursor.Contains(cursor)) message.Result = (IntPtr)HTRIGHT; + else if (BottomCursor.Contains(cursor)) message.Result = (IntPtr)HTBOTTOM; } } - private void panel9_MouseDown(object sender, MouseEventArgs e) + private void panel3_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { @@ -791,74 +958,49 @@ private void panel9_MouseDown(object sender, MouseEventArgs e) } } - void updateMuteIcon() + private void panel9_MouseDown(object sender, MouseEventArgs e) { - if (!muteSound) - { - if (darkTheme) - { - button7.Image = FloatToolGUI.Properties.Resources.unmutedWhite; - } - else - { - button7.Image = FloatToolGUI.Properties.Resources.unmutedBlack; - } - } - else + if (e.Button == MouseButtons.Left) { - if (darkTheme) - { - button7.Image = FloatToolGUI.Properties.Resources.mutedWhite; - } - else - { - button7.Image = FloatToolGUI.Properties.Resources.mutedBlack; - } + ReleaseCapture(); + SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); } } - private void button7_Click(object sender, EventArgs e) + private void settingsButton_Click(object sender, EventArgs e) { - if (muteSound) + SettingsForm settings = new SettingsForm(); + settings.ShowDialog(); + registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool"); + if (registryData == null) { - muteSound = false; - SoundPlayer player = new SoundPlayer(); - player.Play(); + registryData = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\FloatTool"); + registryData.SetValue("darkMode", true); + registryData.SetValue("sound", true); + registryData.SetValue("updateCheck", true); + registryData.SetValue("bufferSpeed", 250); + registryData.Close(); } else { - muteSound = true; + ChangeTheme(Convert.ToBoolean(registryData.GetValue("darkMode"))); + muteSound = !Convert.ToBoolean(registryData.GetValue("sound")); + WorkStatusUpdater.Interval = (int)registryData.GetValue("bufferSpeed"); } - updateMuteIcon(); - } - - private void button9_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://github.com/Nemeshio/FloatTool-GUI/wiki/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F"); - } - - private void toolStripMenuItem2_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start("https://github.com/Nemeshio/FloatTool-GUI/"); - } - - private void toolStripMenuItem3_Click(object sender, EventArgs e) - { - About aboutForm = new About(); - aboutForm.Show(); } - private void panel14_Paint(object sender, PaintEventArgs e) + private void benchmarkButton_Click(object sender, EventArgs e) { - + Benchmark benchmark = new Benchmark(versionLabel.Text); + benchmark.ShowDialog(); } - void changeTheme(bool dark) + void ChangeTheme(bool dark) { if (dark) { - textBox2.BackColor = Color.FromArgb(31, 31, 31); - textBox2.ForeColor = Color.FromArgb(255, 255, 255); + outputConsoleBox.BackColor = Color.FromArgb(31, 31, 31); + outputConsoleBox.ForeColor = Color.FromArgb(255, 255, 255); panel10.BackColor = Color.FromArgb(31, 31, 31); panel12.BackColor = Color.FromArgb(31, 31, 31); @@ -874,60 +1016,85 @@ void changeTheme(bool dark) label6.ForeColor = Color.FromArgb(255, 255, 255); label7.ForeColor = Color.FromArgb(255, 255, 255); label8.ForeColor = Color.FromArgb(255, 255, 255); + label11.ForeColor = Color.FromArgb(255, 255, 255); + label12.ForeColor = Color.FromArgb(255, 255, 255); panel5.BackColor = Color.FromArgb(44, 44, 44); panel6.BackColor = Color.FromArgb(44, 44, 44); - comboBox1.BackColor = Color.FromArgb(32, 32, 32); - comboBox1.ForeColor = Color.FromArgb(150, 150, 150); - comboBox2.BackColor = Color.FromArgb(32, 32, 32); - comboBox2.ForeColor = Color.FromArgb(150, 150, 150); - comboBox3.BackColor = Color.FromArgb(32, 32, 32); - comboBox3.ForeColor = Color.FromArgb(150, 150, 150); - - button6.ForeColor = Color.FromArgb(255, 255, 255); - updateMuteIcon(); - button8.ForeColor = Color.FromArgb(255, 255, 255); - button9.ForeColor = Color.FromArgb(255, 255, 255); - button10.ForeColor = Color.FromArgb(255, 255, 255); - - button6.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - button7.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - button8.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - button9.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - button10.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); - - checkBox1.ForeColor = Color.FromArgb(255, 255, 255); - checkBox2.ForeColor = Color.FromArgb(255, 255, 255); - checkBox3.ForeColor = Color.FromArgb(255, 255, 255); - - button1.BackColor = Color.FromArgb(56, 56, 56); - button2.BackColor = Color.FromArgb(56, 56, 56); - button1.ForeColor = Color.FromArgb(255, 255, 255); - button2.ForeColor = Color.FromArgb(255, 255, 255); - - button1.FlatAppearance.MouseOverBackColor = Color.FromName("WindowFrame"); - button2.FlatAppearance.MouseOverBackColor = Color.FromName("WindowFrame"); - - textBox1.BackColor = Color.FromArgb(32, 32, 32); - textBox1.ForeColor = Color.FromArgb(150, 150, 150); - textBox3.BackColor = Color.FromArgb(32, 32, 32); - textBox3.ForeColor = Color.FromArgb(150, 150, 150); - - numericUpDown1.BackColor = Color.FromArgb(32, 32, 32); - numericUpDown1.ForeColor = Color.FromArgb(150, 150, 150); - numericUpDown2.BackColor = Color.FromArgb(32, 32, 32); - numericUpDown2.ForeColor = Color.FromArgb(150, 150, 150); - - checkBox4.ForeColor = Color.FromName("White"); + weaponTypeBox.BackColor = Color.FromArgb(32, 32, 32); + weaponTypeBox.ForeColor = Color.FromArgb(150, 150, 150); + weaponSkinBox.BackColor = Color.FromArgb(32, 32, 32); + weaponSkinBox.ForeColor = Color.FromArgb(150, 150, 150); + weaponQualityBox.BackColor = Color.FromArgb(32, 32, 32); + weaponQualityBox.ForeColor = Color.FromArgb(150, 150, 150); + + outcomeSelectorComboBox.BackColor = Color.FromArgb(32, 32, 32); + outcomeSelectorComboBox.ForeColor = Color.FromArgb(150, 150, 150); + + stattrackCheckBox.TurnedOffColor = Color.FromArgb(56, 56, 56); + stattrackCheckBox.TurnedOnColor = Color.Green; + + minimizeBtn.ForeColor = Color.FromArgb(255, 255, 255); + closeBtn.ForeColor = Color.FromArgb(255, 255, 255); + MaximizeButton.ForeColor = Color.FromArgb(255, 255, 255); + settingsButton.BackgroundImage = Properties.Resources.gearWhite; + benchmarkButton.BackgroundImage = Properties.Resources.benchmarkWhite; + + minimizeBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); + settingsButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); + closeBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); + MaximizeButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); + settingsButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); + benchmarkButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(0, 0, 0); + + sortCheckBox.ForeColor = Color.FromArgb(255, 255, 255); + ascendingCheckBox.ForeColor = Color.FromArgb(255, 255, 255); + + checkPossibilityBtn.BackColor = Color.FromArgb(56, 56, 56); + startBtn.BackColor = Color.FromArgb(56, 56, 56); + checkPossibilityBtn.ForeColor = Color.FromArgb(255, 255, 255); + startBtn.ForeColor = Color.FromArgb(255, 255, 255); + + checkPossibilityBtn.FlatAppearance.MouseOverBackColor = Color.FromName("WindowFrame"); + startBtn.FlatAppearance.MouseOverBackColor = Color.FromName("WindowFrame"); + + fullSkinName.BackColor = Color.FromArgb(32, 32, 32); + fullSkinName.ForeColor = Color.FromArgb(150, 150, 150); + searchFloatInput.BackColor = Color.FromArgb(32, 32, 32); + searchFloatInput.ForeColor = Color.FromArgb(150, 150, 150); + + quantityInput.BackColor = Color.FromArgb(32, 32, 32); + quantityInput.ForeColor = Color.FromArgb(150, 150, 150); + skipValueInput.BackColor = Color.FromArgb(32, 32, 32); + skipValueInput.ForeColor = Color.FromArgb(150, 150, 150); + label10.ForeColor = Color.FromName("White"); - numericUpDown3.BackColor = Color.FromArgb(32, 32, 32); - numericUpDown3.ForeColor = Color.FromArgb(150, 150, 150); + threadCountInput.BackColor = Color.FromArgb(32, 32, 32); + threadCountInput.ForeColor = Color.FromArgb(150, 150, 150); + + searchModeLabel.ForeColor = Color.White; + speedStatusLabel.ForeColor = Color.White; + combinationsStatusLabel.ForeColor = Color.White; + + searchmodeLess_btn.BackColor = Color.FromArgb(56, 56, 56); + searchmodeLess_btn.ForeColor = Color.FromArgb(255, 255, 255); + searchmodeEqual_btn.BackColor = Color.FromArgb(56, 56, 56); + searchmodeEqual_btn.ForeColor = Color.FromArgb(255, 255, 255); + searchmodeGreater_btn.BackColor = Color.FromArgb(56, 56, 56); + searchmodeGreater_btn.ForeColor = Color.FromArgb(255, 255, 255); + + gpuSearch_btn.BackColor = Color.FromArgb(56, 56, 56); + gpuSearch_btn.ForeColor = Color.FromArgb(255, 255, 255); + + downloadProgressBar.ForeColor = Color.White; + downloadProgressBar.ProgressColor = Color.Green; + downloadProgressBar.BackColor = Color.FromArgb(32, 32, 32); } else { - textBox2.BackColor = Color.FromArgb(255, 255, 255); - textBox2.ForeColor = Color.FromArgb(0, 0, 0); + outputConsoleBox.BackColor = Color.FromArgb(255, 255, 255); + outputConsoleBox.ForeColor = Color.FromArgb(0, 0, 0); panel10.BackColor = Color.FromArgb(255, 255, 255); panel12.BackColor = Color.FromArgb(255, 255, 255); @@ -943,68 +1110,171 @@ void changeTheme(bool dark) label6.ForeColor = Color.FromArgb(0, 0, 0); label7.ForeColor = Color.FromArgb(0, 0, 0); label8.ForeColor = Color.FromArgb(0, 0, 0); + label11.ForeColor = Color.FromArgb(0, 0, 0); + label12.ForeColor = Color.FromArgb(0, 0, 0); panel5.BackColor = Color.FromArgb(222, 222, 222); panel6.BackColor = Color.FromArgb(222, 222, 222); - comboBox1.BackColor = Color.FromArgb(255, 255, 255); - comboBox1.ForeColor = Color.FromArgb(10, 10, 10); - comboBox2.BackColor = Color.FromArgb(255, 255, 255); - comboBox2.ForeColor = Color.FromArgb(10, 10, 10); - comboBox3.BackColor = Color.FromArgb(255, 255, 255); - comboBox3.ForeColor = Color.FromArgb(10, 10, 10); - - button6.ForeColor = Color.FromArgb(0, 0, 0); - updateMuteIcon(); - button8.ForeColor = Color.FromArgb(0, 0, 0); - button9.ForeColor = Color.FromArgb(0, 0, 0); - button10.ForeColor = Color.FromArgb(0, 0, 0); - - button6.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - button7.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - button8.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - button9.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - button10.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); - - checkBox1.ForeColor = Color.FromArgb(0, 0, 0); - checkBox2.ForeColor = Color.FromArgb(0, 0, 0); - checkBox3.ForeColor = Color.FromArgb(0, 0, 0); - - button1.BackColor = Color.FromArgb(249, 249, 249); - button2.BackColor = Color.FromArgb(249, 249, 249); - button1.ForeColor = Color.FromArgb(0, 0, 0); - button2.ForeColor = Color.FromArgb(0, 0, 0); - - textBox1.BackColor = Color.FromArgb(255, 255, 255); - textBox1.ForeColor = Color.FromArgb(10, 10, 10); - textBox3.BackColor = Color.FromArgb(255, 255, 255); - textBox3.ForeColor = Color.FromArgb(10, 10, 10); - - button1.FlatAppearance.MouseOverBackColor = Color.FromArgb(240, 240, 240); - button2.FlatAppearance.MouseOverBackColor = Color.FromArgb(240, 240, 240); - - numericUpDown1.BackColor = Color.FromArgb(255, 255, 255); - numericUpDown1.ForeColor = Color.FromArgb(10, 10, 10); - numericUpDown2.BackColor = Color.FromArgb(255, 255, 255); - numericUpDown2.ForeColor = Color.FromArgb(10, 10, 10); - - checkBox4.ForeColor = Color.FromName("Black"); + weaponTypeBox.BackColor = Color.FromArgb(255, 255, 255); + weaponTypeBox.ForeColor = Color.FromArgb(10, 10, 10); + weaponSkinBox.BackColor = Color.FromArgb(255, 255, 255); + weaponSkinBox.ForeColor = Color.FromArgb(10, 10, 10); + weaponQualityBox.BackColor = Color.FromArgb(255, 255, 255); + weaponQualityBox.ForeColor = Color.FromArgb(10, 10, 10); + outcomeSelectorComboBox.BackColor = Color.FromArgb(255, 255, 255); + outcomeSelectorComboBox.ForeColor = Color.FromArgb(10, 10, 10); + + stattrackCheckBox.TurnedOffColor = Color.FromArgb(200, 200, 200); + stattrackCheckBox.TurnedOnColor = Color.LimeGreen; + + minimizeBtn.ForeColor = Color.FromArgb(0, 0, 0); + closeBtn.ForeColor = Color.FromArgb(0, 0, 0); + MaximizeButton.ForeColor = Color.FromArgb(0, 0, 0); + settingsButton.BackgroundImage = Properties.Resources.gearBlack; + benchmarkButton.BackgroundImage = Properties.Resources.benchmarkBlack; + + minimizeBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); + settingsButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); + closeBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); + MaximizeButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); + settingsButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); + benchmarkButton.FlatAppearance.MouseOverBackColor = Color.FromArgb(230, 230, 230); + + sortCheckBox.ForeColor = Color.FromArgb(0, 0, 0); + ascendingCheckBox.ForeColor = Color.FromArgb(0, 0, 0); + + checkPossibilityBtn.BackColor = Color.FromArgb(249, 249, 249); + startBtn.BackColor = Color.FromArgb(249, 249, 249); + checkPossibilityBtn.ForeColor = Color.FromArgb(0, 0, 0); + startBtn.ForeColor = Color.FromArgb(0, 0, 0); + + fullSkinName.BackColor = Color.FromArgb(255, 255, 255); + fullSkinName.ForeColor = Color.FromArgb(10, 10, 10); + searchFloatInput.BackColor = Color.FromArgb(255, 255, 255); + searchFloatInput.ForeColor = Color.FromArgb(10, 10, 10); + + checkPossibilityBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(240, 240, 240); + startBtn.FlatAppearance.MouseOverBackColor = Color.FromArgb(240, 240, 240); + + quantityInput.BackColor = Color.FromArgb(255, 255, 255); + quantityInput.ForeColor = Color.FromArgb(10, 10, 10); + skipValueInput.BackColor = Color.FromArgb(255, 255, 255); + skipValueInput.ForeColor = Color.FromArgb(10, 10, 10); + label10.ForeColor = Color.FromName("Black"); - numericUpDown3.BackColor = Color.FromArgb(255, 255, 255); - numericUpDown3.ForeColor = Color.FromArgb(10, 10, 10); + threadCountInput.BackColor = Color.FromArgb(255, 255, 255); + threadCountInput.ForeColor = Color.FromArgb(10, 10, 10); + + searchModeLabel.ForeColor = Color.Black; + speedStatusLabel.ForeColor = Color.Black; + combinationsStatusLabel.ForeColor = Color.Black; + + searchmodeLess_btn.BackColor = Color.FromArgb(249, 249, 249); + searchmodeLess_btn.ForeColor = Color.FromArgb(0, 0, 0); + searchmodeEqual_btn.BackColor = Color.FromArgb(249, 249, 249); + searchmodeEqual_btn.ForeColor = Color.FromArgb(0, 0, 0); + searchmodeGreater_btn.BackColor = Color.FromArgb(249, 249, 249); + searchmodeGreater_btn.ForeColor = Color.FromArgb(0, 0, 0); + + gpuSearch_btn.BackColor = Color.FromArgb(249, 249, 249); + gpuSearch_btn.ForeColor = Color.FromArgb(0, 0, 0); + + downloadProgressBar.ForeColor = Color.Black; + downloadProgressBar.ProgressColor = Color.FromArgb(119, 194, 119); + downloadProgressBar.BackColor = Color.FromArgb(234, 234, 234); } } - private void button10_Click(object sender, EventArgs e) + private void gpuSearch_btn_Click(object sender, EventArgs e) + { + double[] floats = { + 0.246938750147820, 0.196652039885521, + 0.154839321970940, 0.333326697349548, + 0.163415759801865, 0.291821509599686, + 0.374309629201889, 0.378754675388336, + 0.231419935822487, 0.311867892742157, + 0.374067693948746, 0.377068012952805, + 0.244467452168465, 0.355135351419449, + 0.352264583110809, 0.227853879332542, + 0.340960860252380, 0.375657349824905, + 0.157685652375221, 0.217334255576134, + 0.323678821325302, 0.363768666982651, + 0.350994020700455, 0.369551151990891, + 0.350340574979782, 0.338801741600037, + 0.329752802848816, 0.369740217924118, + 0.370476812124252, 0.205233186483383, + 0.360520750284195, 0.373722523450851, + 0.161364838480949, 0.263432979583740, + 0.314681977033615, 0.310743361711502, + 0.349280923604965, 0.355936050415039, + 0.269742101430893, 0.199420168995857, + 0.364472836256027, 0.218964993953705, + 0.239638179540634, 0.325499594211578, + 0.228406846523285, 0.307701110839844, + 0.156294032931328, 0.179465100169182, + 0.327553898096085, 0.150170117616653 + }; + + client.SetPresence(new RichPresence() + { + Details = "GPU Тест", + State = "Тестирование подбора на видеокарте", + Timestamps = Timestamps.Now, + Assets = new Assets() + { + LargeImageKey = "icon", + LargeImageText = "FloatTool" + } + }); + SwitchEnabled(); + } + + BigInteger last = 0; + private void timer2_Tick(object sender, EventArgs e) { - darkTheme = !darkTheme; - changeTheme(darkTheme); - button10.Text = darkTheme ? "🌙" : "☀"; + var hundrMilsCount = currComb - last; + var speed = (double)(hundrMilsCount) * 1000 / WorkStatusUpdater.Interval; + speedStatusLabel.Text = $"Текущая скорость: {speed} комбинаций/сек"; + last = currComb; + combinationsStatusLabel.Text = $"Проверено комбинаций: {currComb} / {totalComb}"; + + if (ConsoleBuffer.Length > 0) + { + outputConsoleBox.Text += ConsoleBuffer.ToString(); + ConsoleBuffer.Clear(); + outputConsoleBox.ScrollToCaret(); + } + + if (totalComb != 0 && currComb < totalComb && Searching) + downloadProgressBar.Value = ((float)((double)(currComb) / (double)(totalComb) * 1000)); } - private void checkBox4_CheckedChanged(object sender, EventArgs e) + private void changeSearchMode(object sender, EventArgs e) { - numericUpDown3.Enabled = checkBox4.Checked; + var selectedMode = ((System.Windows.Forms.Button)sender).Text; + + if(selectedMode == "=") + { + searchmodeLess_btn.FlatAppearance.BorderSize = 0; + searchmodeEqual_btn.FlatAppearance.BorderSize = 1; + searchmodeGreater_btn.FlatAppearance.BorderSize = 0; + CurrentSearchMode = SearchMode.Equal; + } + else if(selectedMode == ">") + { + searchmodeLess_btn.FlatAppearance.BorderSize = 0; + searchmodeEqual_btn.FlatAppearance.BorderSize = 0; + searchmodeGreater_btn.FlatAppearance.BorderSize = 1; + CurrentSearchMode = SearchMode.Greater; + } + else if(selectedMode == "<") + { + searchmodeLess_btn.FlatAppearance.BorderSize = 1; + searchmodeEqual_btn.FlatAppearance.BorderSize = 0; + searchmodeGreater_btn.FlatAppearance.BorderSize = 0; + CurrentSearchMode = SearchMode.Less; + } } } } diff --git a/FloatToolGUI/Main.resx b/FloatToolGUI/Main.resx index 523c54c..2d9767d 100644 --- a/FloatToolGUI/Main.resx +++ b/FloatToolGUI/Main.resx @@ -118,50 +118,50 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + Fill - + Microsoft JhengHei UI Light, 10pt - + 0, 0 - + 40, 40, 40, 40 - + True - + Both - - 377, 334 + + 459, 408 - + 0 - + Добро пожаловать в FloatTool! Инструмент для создания флоатов при помощи крафтов CS:GO - - textBox2 + + outputConsoleBox - + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel11 - + 0 - - 132, 17 + + 65, 16 Fill @@ -170,7 +170,7 @@ 0, 10 - 377, 334 + 459, 408 2 @@ -194,7 +194,7 @@ 0, 0 - 377, 10 + 459, 10 3 @@ -218,7 +218,7 @@ 10, 0 - 377, 344 + 459, 418 4 @@ -242,7 +242,7 @@ 0, 0 - 10, 344 + 10, 418 1 @@ -266,7 +266,7 @@ 0, 40 - 387, 344 + 469, 418 2 @@ -283,217 +283,190 @@ 0 - - Top, Right + + Zoom - + Flat - - Microsoft JhengHei Light, 16pt + + Microsoft JhengHei Light, 40px - + NoControl - - 219, 0 + + 40, 0 - - 1, 1, 1, 1 + + 0, 0, 0, 0 - - 40, 40 + + Yes - - 5 + + 40, 40 - - O + + 3 - - button10 + + benchmarkButton - + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel9 - + 0 - - Top, Right - - - 219, 17 - - - 149, 22 + + Zoom - - GitHub - - - Ссылка на репозиторий проекта - - - 149, 22 - - - О программе - - - Информация о разработчике - - - 150, 48 - - - contextMenuStrip1 - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + Flat - - Microsoft JhengHei Light, 16pt + + Microsoft JhengHei Light, 40px - + NoControl - - 265, 1 + + 0, 0 - - 40, 40 + + 0, 0, 0, 0 - - 4 + + Yes - - ? + + 40, 40 + + + 3 - - button9 + + settingsButton - + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel9 - + 1 - + + Top, Right + + Flat - - Microsoft JhengHei Light, 40px + + Microsoft JhengHei Light, 16pt - + NoControl - - 0, 1 - - - 1, 1, 1, 1 + + 389, 1 - - Yes - - + 40, 40 - - 3 + + 2 + + + O - - button7 + + MaximizeButton - + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel9 - + 2 - + Top, Right - + Flat - + Microsoft JhengHei Light, 16pt - + NoControl - - 305, 1 + + 349, 1 - - 40, 40 + + 40, 39 - + 2 - + _ - - button6 + + minimizeBtn - + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel9 - + 3 - + Top, Right - + Flat - + Microsoft JhengHei Light, 16pt - + NoControl - - 347, 1 + + 429, 1 - + 40, 40 - + 0 - + X - - button8 + + closeBtn - + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel9 - + 4 @@ -503,7 +476,7 @@ 0, 0 - 387, 40 + 469, 40 3 @@ -533,7 +506,7 @@ NoControl - 297, 0 + 379, 0 30, 26 @@ -569,7 +542,7 @@ NoControl - 327, 0 + 409, 0 30, 26 @@ -605,7 +578,7 @@ NoControl - 357, 0 + 439, 0 30, 26 @@ -635,7 +608,7 @@ 0, 0 - 387, 40 + 469, 40 1 @@ -659,7 +632,7 @@ 0, 0 - 387, 384 + 469, 458 7 @@ -676,34 +649,34 @@ 0 - + True - + NoControl - - 137, 20 + + 138, 20 - - 38, 15 + + 36, 15 - + 1 - - v.0.4.2 + + v.0.5.1 - - label9 + + versionLabel - + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel3 - + 0 @@ -716,7 +689,7 @@ NoControl - 1, 2 + 5, 2 140, 38 @@ -763,109 +736,61 @@ 2 - - None - - - NoControl - - - -1, 7 + + 79, 61 - - 226, 27 + + 38, 24 - - 1 - - - progressBar1 - - - System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel14 - - - 0 - - - None - - - True - - - Microsoft JhengHei Light, 10pt - - - NoControl - - - 167, 61 - - - Yes - - - 88, 22 - - - 8 - - - :StatTrack - - - MiddleCenter + + 2 - - checkBox1 + + stattrackCheckBox - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + FloatToolGUI.CustomControls.CustomToggleSwitch, FloatTool, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - + panel6 - + 0 - + Bottom, Right - + Flat - + Microsoft JhengHei Light, 10pt - + NoControl - - 156, 90 + + 150, 90 - - 265, 24 + + 267, 24 - + 10 - + Проверить - - button1 + + checkPossibilityBtn - + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel6 - + 1 @@ -881,7 +806,7 @@ NoControl - 285, 11 + 285, 10 71, 18 @@ -904,54 +829,132 @@ 2 - + + None + + + Flat + + + Microsoft JhengHei Light, 9pt + + + 80% (AK-47 | Safari Mesh + 3) + + + 20% (Tec-9 | Varicamo) + + + * Искать всё * + + + 203, 61 + + + 214, 24 + + + 6 + + + 80% (AK-47 | Safari Mesh + 3) + + + outcomeSelectorComboBox + + + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel6 + + + 3 + + None - + Flat - + Microsoft JhengHei Light, 9pt - + Factory New - + Minimal Wear - + Field-Tested - + Well-Worn - + Battle-Scarred - + 288, 31 - - 130, 24 + + 129, 24 - + 6 - + Field-Tested - - comboBox3 + + weaponQualityBox - + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel6 - + + 4 + + + None + + + True + + + Microsoft JhengHei Light, 10pt + + + NoControl + + + 9, 64 + + + 70, 18 + + 3 + + StatTrack: + + + label12 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel6 + + + 5 + None @@ -965,7 +968,7 @@ NoControl - 9, 11 + 9, 10 88, 18 @@ -986,7 +989,7 @@ panel6 - 4 + 6 Bottom, Left @@ -1001,7 +1004,7 @@ NoControl - 14, 93 + 9, 93 127, 18 @@ -1025,142 +1028,178 @@ panel6 - 5 + 7 - + None - + Flat - + Microsoft JhengHei Light, 9pt - + AK-47 - + AUG - + AWP - + CZ75-Auto - + Desert Eagle - + Dual Berettas - + FAMAS - + Five-SeveN - + G3SG1 - + Galil AR - + Glock-18 - + M249 - + M4A1-S - + M4A4 - + MAC-10 - + MAG-7 - + MP5-SD - + MP7 - + MP9 - + Negev - + Nova - + P2000 - + P250 - + P90 - + PP-19 Bizon - + R8 Revolver - + Sawed-Off - + SCAR-20 - + SG 553 - + SSG 08 - + Tec-9 - + UMP-45 - + USP-S - + XM1014 - + 12, 31 - + 132, 24 - + 2 - + Nova - - comboBox1 + + weaponTypeBox - + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel6 - - 6 + + 8 + + + None + + + True + + + Microsoft JhengHei Light, 10pt + + + NoControl + + + 129, 64 + + + 68, 18 + + + 4 + + + Ауткамы: + + + label11 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel6 + + + 9 None @@ -1175,7 +1214,7 @@ NoControl - 147, 11 + 147, 10 43, 18 @@ -1196,79 +1235,79 @@ panel6 - 7 + 10 - + Bottom - + Microsoft JhengHei Light, 12pt - + 0, 120 - + 10, 12, 10, 12 - + 2, 25 - + 427, 25 - + 0 - + Nova | Predator (Field-Tested) - + Right - - textBox1 + + fullSkinName - + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel6 - - 8 + + 11 - + None - + Flat - + Microsoft JhengHei Light, 9pt - + 150, 31 - + 132, 24 - + 5 - + Predator - - comboBox2 + + weaponSkinBox - + System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel6 - - 9 + + 12 Top @@ -1294,6 +1333,177 @@ 1 + + None + + + 12, 160 + + + 0, 0, 0, 0 + + + 405, 24 + + + 12 + + + downloadProgressBar + + + FloatToolGUI.CustomProgressBar, FloatTool, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + panel16 + + + 0 + + + None + + + Flat + + + Microsoft JhengHei UI, 12.75pt, style=Bold + + + NoControl + + + 169, 32 + + + 70, 32 + + + 11 + + + > + + + searchmodeGreater_btn + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel16 + + + 1 + + + None + + + Flat + + + Microsoft JhengHei UI, 12.75pt, style=Bold + + + NoControl + + + 91, 32 + + + 70, 32 + + + 11 + + + = + + + searchmodeEqual_btn + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel16 + + + 2 + + + None + + + Flat + + + Microsoft JhengHei UI, 12.75pt, style=Bold + + + NoControl + + + 12, 32 + + + 70, 32 + + + 11 + + + < + + + searchmodeLess_btn + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel16 + + + 3 + + + None + + + True + + + Microsoft JhengHei Light, 10pt + + + NoControl + + + 9, 11 + + + 105, 18 + + + 5 + + + Режим поиска: + + + searchModeLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel16 + + + 4 + None @@ -1307,7 +1517,7 @@ NoControl - 12, 12 + 9, 70 108, 18 @@ -1328,118 +1538,94 @@ panel16 - 0 + 5 - + None - + Microsoft JhengHei Light, 10pt - - 125, 41 + + 122, 99 - + 116, 21 - + 3 - - numericUpDown1 + + quantityInput - + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel16 - - 1 - - - None - - - 15, 99 - - - 225, 42 - - - 10 - - - panel14 - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel16 - - - 2 + + 6 - + None - + Microsoft JhengHei Light, 10pt - - 125, 72 + + 122, 130 - - 116, 21 + + 117, 21 - + 4 - - numericUpDown2 + + skipValueInput - + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel16 - - 3 + + 7 - + None - + True - + NoControl - - 248, 36 + + 245, 42 - + 136, 22 - + 9 - + По возрастанию - - checkBox3 + + ascendingCheckBox - + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel16 - - 4 + + 8 None @@ -1451,7 +1637,7 @@ NoControl - 12, 71 + 9, 129 67, 18 @@ -1472,7 +1658,7 @@ panel16 - 5 + 9 None @@ -1487,7 +1673,7 @@ NoControl - 12, 40 + 9, 98 89, 18 @@ -1508,106 +1694,106 @@ panel16 - 6 + 10 - + None - + Microsoft JhengHei Light, 10pt - - 125, 12 + + 122, 70 - + 116, 18 - + 2 - - 0.250000000 + + 0.25000000032783 - - textBox3 + + searchFloatInput - + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel16 - - 7 + + 11 - + None - + True - + NoControl - - 248, 8 + + 245, 18 - + 111, 22 - + 8 - + Сортировать - - checkBox2 + + sortCheckBox - + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel16 - - 8 + + 12 - + None - + Flat - + Microsoft JhengHei Light, 18pt - + NoControl - - 247, 60 + + 244, 70 - - 177, 82 + + 173, 81 - + 0 - + Старт - - button2 + + startBtn - + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel16 - - 9 + + 13 Fill @@ -1616,7 +1802,7 @@ 0, 0 - 427, 149 + 427, 197 12 @@ -1633,11 +1819,122 @@ 0 + + True + + + Microsoft JhengHei Light, 9pt + + + NoControl + + + 9, 34 + + + 221, 16 + + + 5 + + + Текущая скорость: 0 комбинаций/сек + + + speedStatusLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel15 + + + 0 + + + True + + + Microsoft JhengHei Light, 9pt + + + NoControl + + + 9, 50 + + + 179, 16 + + + 5 + + + Проверено комбинаций: 0 / 0 + + + combinationsStatusLabel + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel15 + + + 1 + + + Bottom + + + False + + + Flat + + + Microsoft JhengHei Light, 14pt + + + NoControl + + + 261, 6 + + + 160, 60 + + + 3 + + + GPU Тест + + + False + + + gpuSearch_btn + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + panel15 + + + 2 + True + + NoControl + - 220, 18 + 9, 2 72, 18 @@ -1658,67 +1955,37 @@ panel15 - 0 - - - False + 3 - - 298, 17 + + 87, 2 - + 120, 21 - + 1 - - numericUpDown3 + + threadCountInput - + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + panel15 - - 1 - - - True - - - 15, 16 - - - 148, 22 - - - 0 - - - Многопоточность - - - checkBox4 - - - System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - panel15 - - - 2 + + 4 Bottom - 0, 149 + 0, 197 - 427, 50 + 427, 76 11 @@ -1745,7 +2012,7 @@ 0, 185 - 427, 199 + 427, 273 0 @@ -1766,10 +2033,10 @@ Left - 0, 0 + 2, 0 - 427, 384 + 427, 458 8 @@ -1784,16 +2051,16 @@ $this - 2 + 1 Fill - 427, 0 + 429, 0 - 387, 384 + 469, 458 9 @@ -1808,586 +2075,295 @@ $this - 1 + 0 + + 198, 16 + True 60 - - 6, 15 - Center - 814, 384 + 900, 460 Microsoft JhengHei Light, 8.25pt - AAABAAEAAAAAAAEAIACyfAAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAfHlJ - REFUeNrtvXd4ZOlV5/+5oXJWzjmrW1KHmelJ9sw4B4KNDcsSvAaWXZYFDPyANSyLl7DAko29BryYvBiD - cxqnCZ4ZT89MR7VaLbW6pSqlUimUVDnee39/XFW1cit2t9T1fZ7yuFVVb9373vd833POe4KgaZrGHhCN - Rrl58yZjY2NIkkRdXR1NTU04HI5dj6lpGhcuXKCzsxOr1brrcZaWlvLXZrPZ8tdmsVh2PWY2m+XSpUv0 - 9vZiMBh2Pc78/Dw3b97E5/Ph8Xioq6ujoaEBk8m03UmCbBLSEUiFIB4kHZlj6vpFGio9CMkliM9DOgZK - CtLR5c9GQc2Apt4aRxBBlEGUwOxGM1hZjKaZmpnDU15HVdsJRIsbLB6wloHZBZYiMDnBaAfJuK1n4fP5 - 6O3t3fWcqarK5OQkY2Nj+P1+qqurqa+vp6amBlEUdz1uIBAgGAzS2dm5p3UxPj7O2NgY8/Pz1NbW0tjY - SEVFBYIg7Hpcr9eLpmk0Njbueox0Os3Y2Bher5dwOEx9fT1NTU2UlJQg73bQTCbDxMQECwsLVFdXY7Va - kWUZs9nM0NAQLpeL+vr67S/ofUQqlcLr9RKJRKirq8NsNuPxeMhmswwMDFBSUkJNTc2eBHi3iMfjeL1e - kskkLS0tGI1GampqCIfD9Pf3U1FRSVV1NZK4vGg0RRfeaADCExCegugMhCchNAFRPyRDkAphVDLUp2MI - V1RQVdCyuoCvIo7bXKAAAuDRoEgAbeIVhOnP6SQhGUC2gmzWycBSBK5acFSCc/m/jiqwV+nvGSz690An - F3YvCMFgEJ/Ph8Fg4Pjx49hsNlpbW5mcnOTSpUvU1tZSWlrK3cDs7CwTExPYbDZ6e3sZHx+nqamJ8fFx - AoEA9fX1eDyeO35dmqbh9/uZmpqiqKiInp4e5ufnqa6uxufzMTk5uXMCWDmo2+2mt7cXo9HI6OgokiRR - WVlJSUkJExMT9Pf3U1paSk1NDbIsH/gNK4rC1NQUgUCAkpIS+vr6kGWZ+fl5DAYDVVVVlJWVMT4+zqVL - l6isrKSyshJJkg782lYSZmVlJR0dHYiiyMTEJCaLlebSUioqKvBdv8K1sddoKZYwh0dg7hosjsHiTX1H - zyZBVXRB1tbLlHg7GdumDOY2LQENlLT+j2wSkhH9/y/51vywqGsCRjvYy8FZA45qKOmAyhOIYhFSbpwd - EubY2BjJZJL6+npKSkrIZDIAOBwOuru7WVxcxOfzMT09TX19PW63+44IWDgcxuv1oqoqzc3NuN1uYrEY - AG63G7fbzdzcHGNjY0xNTdHQ0IDdbr8j17a4uIjX60WWZTo7O7Hb7QSDQQRBoKioCLfbzfz8/M4IYKNB - VxJDDgaDgaamJqqqqvD5fFy8eJHq6moqKir2pKpthbm5OXw+HzabjWPHjm2q5pvNZtra2ojFYni9XgKB - QH732Iuqtn3C7MNoXNY8NBVDOog49SokvNhmr9I1O0DSP4icDIIaB1XbWHgF9rKh7h6b/aam6gSRSUJs - HmauLhMDYHJis5TQ5GiApYeh7DiUdeskYXZtOGgmk2F8fJyFhQWqqqro7OzMr53cWsv91+Px4Ha7mZ2d - 5caNG1itVurr67HZbAcyBTkNMxwOU1tbS3l5+aZrp7S0lOLiYvx+P9euXcPlcuW10oPARoS5kYyKokhZ - Wdn2CGDloHV1ddtWtcxmM+3t7USjUbxeL36/f0ff3w4ikQhjY2N5Ft6uqmWz2eju7s7bprndYz9VtTxh - Ggx0dB3DYbNAJgaz18F/HsZfoHXsO8iJWUiHIKvvbOaVgnY3hHw/CGLldafCSMkw1sVRmHhGNyFspeBu - hLJjUP0gVD8A7kZU2cJMYJapyXFcThe9vb3bMiMFQaC8vJySkhL8fj+Dg4O43W7q6ur2zQzNaZgzMzOU - lpZy4sSJbWm2oihSXV1NWVkZU1NTqzTj/TJDVxJmZWXlKsLcCvLtBp2YmGB+fj6vtu5GXbbb7Rw7dmxf - VbWVLFxTU7NrZ4vb7cblcjE/P79vqlo8HmfM6yOZSlFXU0OpVYPAizD1Kkychbmrui2fTWNcKTiHTdh3 - QwygawpLE/pr7Nsg/5WuDVSeIGjrZNHQSEffG3CU79zxJUkSNTU1lJWVMTk5uW9maE7DtFqtHDt2bFfO - aYPBQENDAxUVFXkztKqqisrKyl1rxpqmMTMzw+TkZN4k3wnhybcb1OVy7XjQzbBSVbt58yYWi2XHqpqi - KExPT+P3+yktLaWvr2/PLCoIwr6oaplslonJKeZnA1Q6JTocC0gD/wY3vwmBK5CJ33LCHXWB3y4hCICa - hUUvBL0UiZ+jxFoE403Q+BQ0vxkqesFSvKPhjUYjTU1NVFZW4vP58sK2UzN0txrmVsiZodFoFJ/PRyAQ - oKamZsdm6EqTvKOjY1cnb+sIYGlpKX+kt9tBbydsOVVtenqaq1ev5o/Bbkcy8/Pz+Hw+LBbLrll4K6xU - 1dbuHluRjAoEZmaZHOnHlRyjN3EZU/9rsDACicXVzrr7WehvRwgCiGgQW9BfU6/B+Y9DaTc0vA6a3gCV - p0C0oQnbE2KLxUJHRweRSASv18vMzAx1dXWrbOONkEql8Pl8hEKhPWmYW8Fut+fNUK/Xy/T0NA0NDbfV - jHMnSYlEYs8mdZ4AEokEY2Nj+zLodiBJUt6BMjk5yeXLlykvL6e6uhpZlhEEIT/hORZWFIWmpqYDP1Ix - GAw0NjZSWVm5TlXLL4LlBRgJBZm69E3U4S/Tkb6GIzGmO8EKO/3eyCC/2oPge0F/vfYxqD2DUP9GbJlq - BLUbtmmSOhwOjh8/TjAYZHx8PG/quVwu/SeXn+tKDTN3knTQx8U51T0XG2IymfJmqCAIeeddLtYgZ5K3 - t7fv+QRLzmazTExMMDc3t2+D7gSbqWqqqpJKpZicnGRpaenAWHgrbKSqVVRVo2qgRWeIjjxD9OKnqJk9 - i11ZuOWxLwj9wZHB8FcwjDxNm6UcMfJN6HgX1Dykxx1sA0VFRXg8nvyJgc1mw2g0omkawWCQsbGxA9Mw - t7zNZTO0qKgIv9/P0NAQbrcbRVEwGAzMzs7i8/n21SQHkJ9//nmqq6vp6+vDaDRyt5BT1aLRKCMjIwwN - DbGwsEBra+u2va0HhZyqtrgYxHfxW1jGvgUXL2OZuYhdSRXU+ztNBpqKHPPDuY/DlU/qPoKeH4KWt4G7 - flvCVl5eTmlpKdPT01y+fJloNEpjYyPt7e15reBuIOfErKioYGJigitXrqAoCs3NzeuO3veFABwOB6lU - ing8flcJAHTnYywWI5vNYrFYsFqtJBIJksnkHQug2BBqBmav4rn6L3gG/hVtyYugKoWd/l4gg3QEfMsn - LMUfhfbvguM/CCVdy9GHmyOVShGLxTAYDNhsNgRBIBqN4nA4DixeZbtIJpMkEgmMRiOSJKGqKrFYLH+d - +0YADz74IHNzc3l1qKGhYU+x8rvFwsIC4+PjSJJEW1sbkiTR3t5OOBzm2rVruN1u6uvr7yxJZVMwfQ6u - /CMMf1E/utOWo+QKgn9vkYGShsAAzA7AwCd1baDvfVB5AsTVNnw6nWZiYoJgMEhFRQXd3d1Eo1Hq6uoY - HR0lEAhsy1F4EEgkEoyPjxOJRKipqcFsNiOKIiUlJdy8eRO/378tR+G2CQDI2x6Tk5NcuXKF0tJSamtr - 74jaHQ6HGR8fJ51Or5p0TdMQBCEfWjw+Ps7ly5eprKykqqrqYBk6m4KpV3QP9M2vQWzulie/IPj3NhEA - BMfg1f8Dw1+AlrfAifdD9UNkNQn/9CQzMzO43W56enowmUwEAgFUVcVisdDd3U0wGMyfGNyp8N1MJsPk - 5CRzc3OUlZXR3NyMLMv5ZCC73U5vb+8q38V+bNZ5CZckifr6esrLy/POuJqami3DHPfKdD6fL8905eXl - 60I9czAYDDQ3N1NRUYHX62V2dvZgGFrN6kdP5/4Crn8Z4gu3FlZB8A8fEYQm4fxfw/Uvo7a8g5vO16OU - 9dF97DhWy+bxHblY+ZmZmQPXPhVFYWZmZlVuzVYOvrKyMoqLi/ObdVlZ2Z6CnNZ9Kxe+Gw6HGRsbY2Zm - hsbGxn1zjKwMWSwvL6elpWXbF58L391/htb0QJ0Lfw1XPwWRmdULqYDDTQSRGYQLf02T/csYen4Ayv8j - WLq3/KooilRVVVFaWorP59t37VPTNObm5piYmMBsNtPd3b3tgLiVm7XX681nQ5aVle14s95U8pxOZ17l - GBkZ2bPKkTtfzalfeznKyDF0LmpvTwwd8sHFv4WLn4DQ+IYZdgUcfiIQBDDEZuDsn8H1L0Hff9Bfzpot - v2owGGhpaSEWizE2Nsbs7Cz19fUUFxfv+nJyIfGCIOSzCHcDs9lMR0cHoVAon2uz0836tlvvXlUOTdOY - nZ1lcnISi8VCV1fXvmRprYzayzH0juKqU2EY/DS88mEIXNbP8Auq/pEnAgAWbsKzH9J9BI/+EprzNAhb - nxjkskwXFhbw+Xx5YdvJWs7Fk+SS6kpKSvbFvM7FBgQCAUZGRrDb7TQ0NGwrjH1bUrxblSMXqyyKIi0t - LQdyvrqWoQOBAA0NDRQVbRIYoqng+7Yu+DeehnSiIPj3IxFoCky+Bl/4CSyVT5E99hNA222/WlxcjMfj - yWcc5sLYt9I+k8kkPp+PcDi85+SfrVBeXk5xcXE+47C8vJyampotA/t25DlYq3LkbHCXy7UudNfr9ZLJ - ZO7YccpKhs7FVd9iaEGPHY9Mwisfhct/B2F/QfALRADJMK7Rz+FcugLZG9D7PjC7t/xaTvssLS3Nn05V - VVVRVVW1akPMefbn5+f3LXHtdpBledVmffHiRerq6tZt1slkkqmpKYTd1gTMqfYTExO4XC4ymUw+hj8U - Cu0q82rl2HupCaiqKn6/n+npaYpLyoiF5qmMnKNk+BMw+WrBzi9gg0UHyEZofRs89t+g5sy2v5qrd5HJ - ZCgtLWVmZobKykr8fj9Op3NPBUD2WhMwt1kLgoDT6WRpaYni4uK8L07Ya1FQVVXxer2cPXsWSZJ44IEH - qK+v31M+wX4VBU1nFCb6n8Vw7iNUzX0TORMrCH4BtycCdy08+DNw8se3nWMAet3C8+fP4/V6OXHiBF1d - XXvOJ9iPoqCgFz599dVXmZ+f59SpU7S3t2MymdizIRIMBgmHwxQVFVFUVEQ4HCYYDLJHXtk71CzGG1+g - +cKvUjfzBeRsQfgL2AYE9EIl3/o1+Oz7YPLlbX0tHo8zOzuLxWKhtLQUTdMIBAL5+oV3E5FIhLm5ORwO - R76m4uzsLNlsdvcaQM7Oz2azNDU1sbCwgMFgwOVyMTo6CrDrkMW9agCZxXGEs3+GdPkTCImlguAXsDto - gLsOznwATv4YmNY7sXMpugsLC1RUVOTXf2dnJ+Pj4ywuLuYdf7vRiveiAaysaZCL7A0EAjQ3NzM2NkYk - Etl5VeB0Oo3P51uXojs/P4+mafn4gbm5OUZHRzGZTNTX19+RcMpkMkV08Gmsr/welsArCJpWEP4Cdg8B - WBqHb/43GH8RHv9VqDqlc8PyDj85OYnT6cyHFcdiMVRVxWQy0draSiwWW1X1ZzfBOjuFqqr52oXFxcV5 - 5+PCwgKqqmI2m+ns7CQajW6fAHKDbqdQgiAIlJWV5av+HHQ11KyiMuW9TvrsX1A19o9YMwsFD38B+0cC - ShoGPwMzF+Gx/0a44Xu4OTGDJAq0t7dvWTXLZrPR1dWVLz7r9/sPtE/AyqpZ3d3d6zToleRjt9u3RwC5 - QXcasiiKYj7OP1diq6ysjOrq6n05DtE0jcDcPBMDL1E08DEag88gky0IfgEHQwTBMXj650mUfYnqJ36d - stYHtv31XJ+A+fn5vGa8n4lG0WiUsbGxvEm+XYKRtztoY2Pj5sE1t8FWJbZ2GxCxtHy8IU6/RvvNv8K5 - eI7bt70poIA9kkAmTvn0F+GlMJh+C+oe39EQJSUlFBUVMTMzw9DQEA6Hg/r6+l1rxitN8t303pAPYtDN - sLLE1tqmHNtFIpHA6/MRi4Spi52jbORPIThSWJwF3DlowNjz8JkfhSd+A3p+WO+tuE3kEo1yxWevXLlC - cXExtbW129aMVVVlenpaj3VZYefvFPJBDHo7rOwTkIvau12fgGw2y+TkJLNz85QX2WmLfxPp1T/Wq8cW - VP4C7jQE9FLmX/05vVDMmZ/T26LtRPhkmYaGhlX1MLfTri4X7bpTk3xLAsglOZhMpj0Pul3k+gTkKhJZ - LBYaGhryZY9yDotAIMDExAQOp4uelmrMr/0RvPpRvQ1VQfgLuJskkAzD878JS2Pw1G+B6N7xMCaTaVW7 - ulzp8rUnBjnNOZ1O78kkX0UAuQylVCq1dRLNQc3h8olBrinH4OAgLpeLdDpNKBTi+vXrALS1d+LUFuFb - vwJX/hmUgrOvgHuEBJS0Xksi6kd79Ddvm1m4Gda2q5uZmUHTNCwWC6Ojo/lO3PvZY1N+9tlnOXbsGN3d - 3Xd1HldWQ7127RqDg4PMzs5y+vRpqqqqYH4QvvrzcPPrtya+gALuJVz/CnJwCsexXwL6dj1M7sTA7/fz - 0ksvkUwm6enpOZDq2GJraysLCwtMTU2hqupdnb+c8zGZTFJRUUFtbS0zgTnCg1+Hz/843Ph6YZHtB4QN - XgXsC8yzl2m68jvgfX7XY+SCjPx+Px6Ph8bGRrLZLD6fb99Di6WPfOQjH3K5XPkW1kajcVfht4uLi0iS - tKucf0VRmJyczPcLbG1tJZlM0tHZhSf4KvJXfxrD/NXCQt0HqBosxGEpCZGU/korYDEUpndfIIAYn4fJ - 70BRCxS37ujrwWCQ4eFh4vE4zc3NWCwWnE4nra2t+RZiQL5r0E6QSCSIRqOUlZXl/ybD/lQ72QvTTU1N - YbVaV0UuqaqGdv3LOF74IMTGC6tznxBJwc98FS7NgCSAosEjNfDRd4BZLszPfpEA89fhS/8Z3von0Pnu - 2z+XSASfz7euOvbCwgKapiHLMi0tLauO0PfDZ7fqkeeqnUxPT+erndTX1x/IUWAwGMTn8yFJEq2trTid - zlvEABTPv4ih//chOl0Q/n1cmCkFBudgaP7Wnx1miemUFacgYBOTWIR0Ya72gwSWxuErP6s7CY/9uw0/ - lusDEA6Ht+Xgyx2hb1z4Zo8EALfCd3O19vYjam8t0+WiCzcrrigMf5H6q3+EUBD+fUdKgUR29d8mkk7+ - fP4JrFYz77Sf52HL9cJE7RcJhKfga7+g/3sFCWQyGSYmJpifn6e8vDzfB2C7WLtZFxUVUVdXt+PNetNf - NBqNtLa25sOB96pyJBIJvF4vsViM6urqVX0AVuH6l+CrP4MQKqj9B4FYGhJr/EiJjEogbcVudBBWLPfn - xBwoCfjh6Z8HQUTp+D6m/X5m/P49V8feaLOurq5e3cV6twSQg91u5/jx48zPzzM2Npb3D2zXUbiyDVNZ - WRmtra2bM92Nr+mRVYu+gvAf0GKMbEAAiqKgLfc6TGrG+3NuDpoEIjPw9f+PiakAsZo37Ft1bNh8s95O - QtC2dY5cEsP09DQDAwOUlJRsGbu8ss96UVFRPl96U4w9A1/5aQiOFoT/ABFKrjcBFEXJHy8lCgRwcCSw - NEHtlT9Eam4HW9e+/8TKzXp0dDQfWbvVZr0joz6ncvT19aEoCpcuXcLv9+v3tyJ0d2ZmhosXLxKNRjl2 - 7BgtLS1bC//0a/DVn9XrtReE/0AxE9WP/VYik8mQSCQAgbQqoxUewoGRgBQe19f65CsH9jMlJSWcOHEC - h8PBwMAAo6OjZLPZVSb30tIS/f397OrgZ63KMTc3h6IoSJLE4uIiAK2trduLCZgfgq9+AAKFc/4Dhwbe - JciuifdSFIVYLAZAXDOiaCKyoBTm64BIgLlhePoD8K6/g+K2A/kZURTzvTtyjXOsViuxWIyhoSHi8bju - 2N/Lj+RUDo/Hw5UrV+jv78+r+9sS/vCkbvOPf6cg/HcAigo3FzfgBU0jGo0CGiHFSlorBAQcOAlMnIVv - /ArEZg/0p3KJRk1NTVy/fp1Lly6hqip9fX1UVlaypyedS9FdWFigsbERSZLylVBramq2PpJILum11m5+ - vSD8d2jRhZNwfWHjtxcXF1EUhahkIaEZsZIqzNlBk8DwF8BRCW/+AzAcTNDdymC7yspKHA4HqVSK69ev - 6y3+djtorimIw+Hg+PHjTE1NIcsyFRUVjI2NbZ3brKTghf+lZ/UdlYe58r/qcm2i5QYkwkbx9hp3toCR - ADcWYGQTAlhYWCAejRL3mIioZoqlyJ2bO2H9vGw6f3d63g4SmqpnETpr4bFf3nUW4WYIhUKMjY0hiiJt - bW1kMhn8fj+dnZ1MTU0xODi4cwLIdRoBaGtry0fwqaqKpmkYDIZ8bnOuGmqu6o/uJNTg/Mfh1f8Dqnq4 - d//law8lwBvSd1fvEszG9PP2tAIGCexGKDJDqQ0qHVBhgzIbuC1gM4AoLo+lrVjk+77Y4BujMBff+O1w - OMzExDgeVxeBrJsGw9zBkaQGigLRDCwm9Pmaieqv2RgsJvX5y6pgXJ6/KgfUu6GtCOrc4DAd4FzdSWTT - 8NL/Bk/jptGCO0UikcDn8xGNRvN1BeBWWHHOP7AjEyCZTOL1eolEIhsWK1iLtdVQp6f91Dc04gk8pxdQ - SB/iRh0CZBW4HIAvX4dvjunCH0xAZgvfmSjcWtBFFn1RN7qhtRjai6HJo//NYwaDvI+kIMBoED45sAU/ - aBpDQ0PU1NYzYq3iAcsNxN3+6BphT2f1uZkM6z6I4XkYCepk6Y/cEvi0Clt1qTBKUGKFzhJ4UzO8sxW6 - SkEQDzERCEBiCb71q+CqhdpHd88luapZs7OUl5fT2tq6dWNQWb49AWSzWaampggEApSVldHS0rKjkMVc - bvPs/AIzl76K/fJvYIjOHWrhH56Dj74G/zYI/uj2v6pqkMzqr/m4ThrPrVjcbrNOAG3F0F0Kx8p0cqiy - g8sMssTOVOFl1Xk+Ch96Dq7cxt+0sLDAhQvnqXrsGE/ZiqmS57f+jbWmz7KwLyVhOqLf39U5uDqrC/x0 - RI9DyOwy6zyt6GNMR+BbY/AX5+AHj8FPnoIGzyEngeAYfP2X4d1/D57mHX19pUlut9vp6enZdpFReatB - 5+bmGB8f3/GgG6HMqlI29fcQHD60wq+o8K+D8DsvwMA+O2/Tiq7+zsb0TL0cKRRZoMYJLUXQUaKTQ6Mb - Ku26CWE1gEFktS2t6eZlKAkXZ+DPzsIXtxnef2PkOp/PZqh7uJifbAhiNajrSEfRIJWFaFrf2f1RGFvU - hfz6Aowu6kK6mNxaI9orvEvwuy/qps2HnhB4e+shjmAQ0E/Dnvl1eMf/uW2H4hxyJrmmads/er8dAYTD - YcbGxnY96HrJScMLvwc3vnpohT+jwv95Td9Jl5J35jfTyi3b+Nz08gMTdROixArldl07qLDr/7YZdRU6 - ltHV7aF5ffdd3MH1aprG6OgoHwqYeKYWest0zURdHjeU1LWX2RgEorCQ0OcjntE/czdwbhp+/AsCv/qU - hZ/ozWAV734/vl2TwNVPgacJnvjQlpWGd2qSb4sAkskkPp+PcDi8p0HXYeCTcP6v9BVyCAlAA/72EvyP - ZyF8l0/HsqoucEtJuBE8uN8JxVJ8cQi+OHQ4nlEgqvLBr2eZVGr4hb5FKuSlw0kCigKvfARKOvRy4+ve - 1ovn7NYk35AA1g66r7XHps/rTr9U9HDu/gI8M6rv/Hdb+AvYGvFkmo99e4GstZsPtN2kTp49fDchAMkQ - PPsbUNKOIFaCqidvzM7OMj4+js1m27NJnieAXJCAxWLh+PHjWCz7mA4an4dnf/3wxvgLMB2G33xet2kL - uPcRjYT51MtTOF0n+c/lr1AhLx5OEgiOonztl1lq+xVwVDMwMEA2m90fk3wFxJdffpmSkhI6Ozv3V/g1 - FV79iJ7ie1g9M5qu+r8wXhCswwT/9CRfH4zw2ciDxFTT4bwJASTfc/Di73Pl4mtoQG9v774KP4D44IMP - Mjc3x/DwMKnUPuq4N78Br31MD/Y5pA9gaB7+5tLWZ9MF3HtQVZXhoWu8NO/hhUTXob6XruTLvKk2hqrB - lStXiET2VxUVq6qq6O3txWg0cvnyZcbHx1GUPZ7dRKbhhd+B6OyhjvT7zLWDdbTdTUiSRFVV1b41mLjX - sLi4yM2xcV6IdzKRKT6092FQU5SPfIKeKhNl5RUMDw/v62Ytgh4R1NjYyPHjx4nFYly8eJG5ud2Egi6H - fr3yYfC9eKiDfWaj8Lnhoyn8oAdo5XLGjyI0TcPn9TIZN/FiohP1sC5GAfBfQnj5j6goddPX17evm/Uq - +rdYLHR2dtLS0sLU1BT9/f07UzlEEbzP6AkOh1lvFuC1aRg8hE7kbd2eINDS0kJ1dTXNzc1H8yaBYHCB - 4MIC/akGpjNFh/tm+v8Rrn0+v1kfO3aMaDS6h816AwLIIVessLS0lKGhIa5fv357lUMQ9bpnL/wexOYP - fYrvlYAe+HIUUVlZSVtbG4Ig0NnZQV3FIReOTZBKpZgNzLCo2BhI1R7ym4nB2T/VzWvAarXS1dVFc3Mz - k5OTO9+styIA0HeJyspK+vr6kGWZy5cvMzExsanKIaAhXPy/4H3uSOT3Zw+p7/J2cLlcPPDAA1itVlQN - mtwqv/sGjXrX0bzf+fl5MlmVwVTN4a53KACTL8O5v2Rl0oPH46Gvr29nm/V2CCAHg8FAU1MTx44dIxKJ - cOnSJebn59d9zpPy4bn5L3rX3gLuSTgcDh5++GEqKir01G1B4QnLAP++ZZE/fLOec3DUEAqFSKeT+BUP - 89lD7u9QNbj4CZg+t5obNtmst9Prc9su4JzK0dTUxMTExOojiWwSz/DfYc8ewqCL+wSlpaW8/vWvp66u - Dm3ZP/OwZZhHrbqn8z1d8FffBcfLjtZ9x+NxEvEEMdXCVPaQmzoCEJqEsx+GbGLd2ys363A4zMWLFzfc - rHNQFGXnBUE8Hg9ut5uZmRmGhoZwFxXTEH0Fw+CnC6W97kEYDAaam5vp6+vD5XKhaiCi8qDlBt/jOIdJ - uOXoeFsr1Lngf35b4nNDGpkjYAfpFY/jKJQyfdgJIIfhz8ON74OO793w7VyfzcXFRbxeL36/n6ampnzl - bk3TmJ6eZnp6enclwXIqR0lpKVPDF0k89/sYDmus/xGFJEmUl5fT1dWVbxmlaGAR0rzOeo232i9hF9ek - CWrQXQYf/y6NR5psfOQ1iZuBCKiHt0KwoigkEgk0YDbrJKuJyMIhJjYBSEbg7J9B3WNgLdn0o7nN2u/3 - MzQ0lC/+evnyZYxGI+3t7XsrCmqQZRpiZyE0UBD+ewRWq5Xy8nKampqoqanBbDajaqBqGjXyIm+xX+K0 - eXTzst8auEwqHzgZ45HGYj5+rY1vDsfwz86TSsQP3XxompZ3ioUUG2lNRj7szU8FYPxFuPL/4KGf3fqj - gkBVVRVWq5Xnn3+emZkZHn/8cTo7OxEEYW8EoC7cQDz3V3oKY4EA7tzzFwREUUQURUwmE1arFbfbTVlZ - GeXl5bjdbmTZgKqBpqkUS1FOm0d5zHqNcjm0DakBUHnQM0f7mQQvdDbwVX8L/dMp/IF5wkuLxOMx0uk0 - qqrm60Heq1AUBQGNuGYkpRmxcgS6HytZ/USg9e1Q1LLpxzKZDOPj4ywuLtLc3Ex5eTlAvunvrgggN6j5 - pd+ieraw+6+EKIrYbDZcLhcOhwOr1YrRaESUpH2ZJlEUESUJo8GA2WzGbLFgNpsxGk2Ioqh39dFUjKSo - NCxy3DTBCfMYVYZFhJ3WzNLAJUR5p3uAM04Xl+vruRhvYTTmYCGuEkukSKWSZNJpVFVBU/deslcDVEUh - nU4Ti8WJRMKEw2Fisdi2vNobIfe9lGYgdVR6HgjA3KB+KvDU7yyXTl59zzMzM0xNTeHxeOjt7SUajTI1 - NUVXVxfBYJDx8fGdEYCmafj9fqamZ/CkxykLPJMv3Xy/w2g0UlNTQ2NjI6WlpVitViRZXq5YKSCgIQr7 - WbJK08dEQ0LBJMRwiElKpTA1hgWaDAFqDEEcYmJffq1EDPEGaz8PW4bxuzx4M+WMZ0oIKC7CSilJzUAW - CVUTUfMrdLcUoAeSappGJpslGksQCMwyOjqK3z9FNrOzCK1cURtFEw5vSPBmU9X/j9D1Xqg8kf9zMBjE - 5/NhMBjo7OzEbrevIkKAoqIiioqKtk8AOY+iJMt0trdgP/vPEJssCD/ki6jU1NToqjcgaCoOMUGZHKJC - DlEkRXCISYxCFom9O6EENCRBQyaLRUxjF1PYxSQWIX2gbb2sQopmwwzNhhkURBKqkZhqIqaaSWhGUpqM - oon70l9QRSCjyUSLLCxV2ZnoaOfcWBXPnR9mbn5h2+NIy9qXhoiqHaEFu9xwlFc/At/1l8SSabxjYyST - Serr6ykpKbntELclgHg8ztjaQWcu6U09Crs/dXV1PPLII7hcruVdS6VGDvKA5SZdpklKpRAWMbNz9fsQ - QELFLiaXTxNCB/pbGpB2GAiWOHmp2szvfsPMhYnbFzsUBCFf3UrXwo7gIrz+RfyvvY0JqZGqinI6Ozu3 - neW5KQFkMhkmJiaYn5+nsrLy1qCaBpf/HkJT973wl5aW8vDDD+fP1y1Cmset13jCdpUSqVBCaD8hACYh - Q6W0wHvqoentIj/6Gb3s+O0IwGg0ogGioCJyxGK8BSA6h+3Gv9H77v+LyWLf0dfX0UTOzr906RLZbJbe - 3l5qa2tvMcrsFRj89H2/II1GIydOnMDtdqNqumr8LservMvxakH4DxoqnKxU+cWHwXQbHTZ3UgJgQDmy - XY+d/ucwBQd3/L1VBLC4uMilS5eYm5ujo6ODtra2/OTlMfBJCI3f97t/TU0NNTU1aJqGhMobbFd4nW0Q - 6TAHmRwyfE8HnKne+jMGgwGLxYIGGIUsRuEI5qoIQCSwbJbvzNQUQbfzBwcHGR0dpaamhp6eno0LRSxc - h6v/enSaM+4SkiTR3NyMwWBARaDV6OcJ29Xdt9IqYOfQoMiq5zBsZdcbjUZ9E9PAIqYxHlENAIDrX9Rl - dCcEMDIywuDgIA6HI59WuCmufQaCN+773d/lclFWVoYGmIQsj1uv4RCT9/ek3CU80aA3XN0MDocDs9mM - BjjFOAaOaLaqAARvwrWdmefitWvXKCkpoba2dstGgkT8hd1/GcXFxVgsFlQNauQFOk1ThUm5G9D0hqq9 - 5Zt/RI+KlAENjxQ72iaahi6jEf/2CeCJJ54gEolw8eJFlpaWNv/kjach0H/f7P5meWsCyJ0td5im1yfV - FHDHYDXC6aqN3xMEgeLiYgRBQEI9vN2CtgsBmL0Ko9/YPgE4nU6OHz9OTU0NN2/e5Nq1ayQSa6LH0lG9 - Z1n2/in20VWqN95cC1mW8Xg8gIBRyNJoCBSk8C4v+q5SMGygvJpMpvyzMgkZKo86AQBkM7qjPr29ttX5 - U4DS0lL6+vqw2WxcuXKFsbExsjmBn34NJs/eP7a/pi+q6g0q5BgMBmw2GxpgFxPbS64p4EBR5wLbBmTt - dDpxOp2omoZbilN8PxzPCsDE2XVVg25LAKB7t+vq6ujt7SWdTnPx4kUCMzNoV/8NEkv3FQFUOeB05fq3 - TCYTJpMJTYMiKYZTPHwpskftWRVbwLlBA6CysrJlB6BAhby0b3kR9zwBJBaX/XW7LAlmMplob2+nvaOT - Je9FUoNfvO/WldGge5jXHjEZjUZkWUYDPGIUk1iogXi3YTWs1wAkSaKyslJPnUal0TCL4SgfAa7Fjaf1 - E7vdEEAOToeddsMk5vh9GParwWN16wtlGo3G/GmJS4rvS2JPAXuDWV7vtHU6nfmjWouQpsl4H/lqBGDJ - CyNf3RsBkE3A9S+Bch8ucg1aiuCRNeXkZVnWa6uhFbz/9whkEYxrnICVlZX50uflcojKw9gleC9QVBj+ - AqQjeyCAuWsw9cp9G/hjNMD3tK9eXKIoLquVGjYxdX9OzL0ETTfTjCs0ANlgoL6+Xn9WQLtp6v4L1BJB - mz5PaOg5ssqt4J2VlZvi8fht0oFvfgOigfs38k/T/QBPNMBSSkIobqG0rm05MUpbVVG3gLsHqwF+5VE9 - IOg7kxJBY5Wu/i8naXUZJ+/LeRGSIcIX/pWRdBV1dXqgnyiKpFIpvF4vS0tLWxBAKqw7ElR20D3g6BFA - uQ3+5nvAKGt8KVXJS4kaVDQMZO8vp9I9DFmEd7TBO1rhXKiYv1g4A0YzWU2g1jhPnWHhvp2b2ux1nNUe - xgOzLC4GiUQiJJNJSkpKOHny5BYEELgCM5fv+7h/QYAqJ4DKafEm/qyHCnmJZuMMLcaZgvTdK1jWbLuc - IX7CeJEb6XImMiU8YLmJ9X411ZbrBrriN6moPIXXO8bs7Cx1dXVUVlZiMBgQtM3KuT7/m/DMbxRKfq1A - VpNIaAZsYvroFZY4cnwgEFNNRzcFePsTwWzLj+Dv+f9wOOyEQiE8Hg9zc3Nb1ARMRWDs2ULJrzWQBQVH - Qe0/FCic0txCUewaZW01BJMC8XichoYGysvLmZyc3MS6nx+6rxJ/CijgKENeugHz19BWiLvFYqG1tXUT - Aph4CRLBAgEUUMBhhwAkl8D3Ahvl8q8nACWtf7hg4hZQwNGACkx8B9KxbRBAeFIv+13Y/Qso4GhAQDfp - Q77lRjVbEUDgCkSmCwRQQAFHiQCifvBfYK1g5wlAVVUmJ6eYufAFyBa8pwUUcKSQTcPUa2ja6lMsGWBh - YQGvz4dZzNIcHSkc/xVQwBGEMH0OoW11ARv53LlzyLJMY1MzRVk/POstzFQBBRxBmGITWLPzq/4mBoNB - rFYrDodT7/pzPyf/FFDAEYZZjVKqza4mgCeeeAJJkrh08QJLw9/WjwELKKCAIwdJ07CFVzcOkY1GI83N - zVSEFuDS1YL9X0ABRxji/KBe6Ee26P/OvWETk9hShRLXBRRwZCGg1wmM3WqpfCsOYMmrn/8XUEABR5cA - ogFd1tcRwNyQXgSkoP4XUMDRRToCCyMbEMDswP1Z/LOAAu4nqCrMDa4hgGwSFm8WJqeAAo46NPQW4svR - vnpBkOQSLI4V1P8CCjjqEIDwBGpiiWDauEwAsQBEC/XtCijgfoASmuL6+W+TcLUvE8CSr+AALKCA+wEC - kIpQ6xax9fUu+wBCE6AUatwXUMD9AElLY83MI5DzASyNgartf/3/nWoU2gHe9X5oN9od/K2DmJ976Xns - 9HrupWu5E9dzkNA0Zq6dZc78GDJKWq8CtF/Qm+aQzEA0DWnl9nMlACYJ7CYwyct/2McTSQ0IxvVr2q1w - yoJ+fTbj1gtA02A+DunsPhOBpv+227yLhS1ANguRNCSzOtffDgYR7Ea9607ume4LAQmgKRDNQDwD2W08 - Z0nQr8NuBFHap2tZsVYTy2s1s821apbBYQSDfEjJQIVym4pQ7EYmm4CIf18mM56C16bg66NwwQ/TEX3B - bXdSa13wQBW8qQlOVYLJsD+Tm1Xh15+Fr90AaZdajixAhR1e3wA/0A0dpRtfWzwLP/dVeGVq97+1ERQV - 3tcL/+OJbc6JoH/nagC+MQovT8DYEsQytycAYZkAyux6u603NMKjdeCx7PJ5LBPhVAie8cJzXhieh2AC - stsYTxJ04msrhtfV69fT4F4edzfXI0IkAS9P6nNzeQb80e1vVlYD1LvhTDW8qRl6ysEgHS4ikGLTVJYV - I2iLXo1/egfMXt3djiWApsJzPvizV+DZMQjvsRGLxwxvaYGfewjO1Oz9ZtMKvPdf4QvD+zN5rcXw20/C - e7vXT1kkDW/7R3hpYv8f2r8/aeV/vsWFJChUy8HNG14IMDQHH3kVPjME/sjeftcsw0PV8F8fhO9uX27E - uQNzaDEOf3cZ/voiXJvfW7yZKEBrEbyvD378hE5SO7mWrKJvBB9+FV4a1wlxLyi1wXe16Wu1p+KQkIAG - 1DwAP/gFpA/9wo99iAv/V28GslMCECCRhj8+Cz//Nbjoh9Q+9M1IZmFgFr56AywGgZ5yAVna/XiKBp++ - BkPz+zN/wQQ85xOwuctoLxYwC7dSqDMK/L8rMB7a/+cmFDUzW/okg+kajpkmN+14+7kh+Mkvwldu6Krt - XpFVwReCr4zAfELgVJWIzbiNlS7AtTn46a/AR16DQEw3kfa6dhcS8K0xuDgDXaUiVc7tXUsoCb/zAvzK - N2FwDjL7YGbGM/p1fP0mFFkFussExMNwmibK0P39iMQXQN0dDSYz8D+f19Xr+fj+X+N0BH7x6/DBF53M - pBx7GkvdZ2aej2n89gsCH/E/xFS2+I48s6wmktCMJFQj6iZs/f+u6MJ/bX7/fz+WgQ+/ovFjXzbTH/Lo - jRO3ELiBALz/c/DF6/s//wDfGoUf+qzEp8eKyWDY8lrCSfiVb8Dvvbh3DXUjjC7CT38ZfvsVF8Gs7d4n - ACUDqRAysdldxwD81Xn407P6rrcWBoMBq9WKLMsIwtaDa5pGJpMhHo+TzWbXkIzGn78YJ2ho54OnF2k3 - Tu34OgUBmj26rZbCyILiQEPY0S2n02kikciq/uqzs3M8MyZitz7M+13fwiklNtQAJUnC6XQiSbtXY1RV - xW6359bzhov8eS/88jdgbgMyFkURm82G0Wjc1vNQFIVEIkEqtV5avjyYIGSo4DffUMrrHDeQ1npsBQhE - dfJ+ZZPHZbFYsFgsy63Wb3/vyWSSRCLB2laW1+cy/NzTMP/OLv599QgOIb7B9+GPX4aPX9iYiIxGI1ar - FUmStjU36XSaeDyOoqxe+JGUxu89l2TB2Mb/1zNDvTx7bwq/gJ4UFPUjk96FXibA+Wn4w++sV/lzBUaa - m5txuVxIsu7W124jbqqSYWlxkesjI4yOjqFkb2kl2WyGz746haP0If5rPTsmAYMIv/kk/Mbr4WKykr9b - ej0KOxPGTCbDxYsXGL42uGphzgb8XGt+mFeMrbzJ1r/hXVosFp566ikcDgeqxm3nYjNIkoSqCet3f0E/ - 5fit52Eqsl7wa2pqaGtro7S0FIPRuK3noakK8ViUsbExhoavk4ivbCqh8fLVSf6k4hGEHiOvt15FWEl9 - GvzFOV0tXouioiI6OjqoqqrCarWCIN5+PjSNdCqB3+/n6uA1FubnVr09FVjgI69UIj/5IP/OfRbbStNI - hOdu6v6QtcJvNptpbW2lsbERp9OJKMnbeDYaSjbD4sICQ8PX8fp8aOotIUilkvzz2RlsxSf5qarz1Bvm - 7k0SUNKQDCMTn9sxASgKfPw8TIRX/91qtfLwww/T1NSEKEqoml5opEwO4RZjSMJ6o0tEfzBX5zRCGYXH - jtXQVynx5bMjxFO3tIFwaJEXBmep8DzIf3R/izI5vKNrtuvrngYpwWNMouww6EESBKo7TXhviKRWGI+x - WIyMCheTDTxqHQbW75iCIGA0GjGZTFRKQaoMi7vzFWm6DWwVU1hW+B0Q4PPD8LxvPWH09fVx/PhxzGYz - igZGMpRKYYrlyIZORAHd0eZbgv54lo4aDyerO/nqd64xHbxFAko2zfmBG3y6+jGKpTDHTeP5Aa7Nwd9e - Wn/59fX1nDlzBrfbvayBqXjEKOVyCIuQRhC0DeZdt93PLaoUWSW+//UdvNovcH5k9e564+ZNvtLaQomx - h++yn8t3b06m4WPndL/BSjidTh599FFqa2sRBBFN07CJScrlJVxiHHGTtZpVoT+gEVYV3nCygdkKia+d - GyW1Qg1emJvluaEw5Y6HeL/rGdzSAdjH+4HkEvL08DmqduIDEGAkqDvo1i62Bx54gJaWFjQNJDKcNHt5 - nXWIGsMCZiGz7gFLgu47+Mvz8G+vafgjGsVWkV9/ykTXIxq/89zqY6Jx3xiD3V08azzOe5wvr1c9tyFA - 9YY5/oP7uZ3vvgK8FNb4uKitEnFN0xA0jbmsi6Bix0NqU+HWgFPmUd7huLCpDb/NR7CqPXk8BZ+6uv5M - vb29nb6+PiRZRlVVmg0BnrRdpc3oxyYmETd4HsksfHYIPv8iXJ1VMUgC7z9l4vefUvn5r6z29czNBrgZ - iPJ12wnqDXM4RV3KvnQdvEurr6WkpIRHHnkEp9OJqkGRFOb11mv0mccokmLIKKtsm+WQAc5Nw/96AZ6+ - oZFW4eE6md94XOb3kvCdFSctyUSCUe843y4/Rrthkg7TNIhwOaCfTK2E0WjkzJkz1NXVoWpgJM1py00e - tQ5TJS9iFDKr3Bs5UpyOwJ+/Av92UWM+rlHllPjNNxppPAUfPrv6AMA7Nkp/eysvGjt5h/38vRdlr2Qg - MoVsELWd1QEU4LVpmFqzAVdXV9PU1ISmgSxkebPtMm+xX8YsZDZewZp+DPPb39ZVxZx6Nh9T+ctzGj/z - lnbqy3zcDNzadcLhMMHgAhdcTZzJDFNv2LmnS0BD2s3+K7CldzetycRVE0Xb+P1dX8Mm1zW6CJfW5HI5 - HA6OHTuGLMtomkafeYzvd56lWIpsPk4Q/uA78I/9t04PFFXjny6laW1s5lRLiK/139p5M5kMAb+fmzUn - 6U/W85htiGRGP+dftXOKIt3d3Xnhr5AX+UHnS3Sapja9lkgS/vYy/NF39BOIHF7yZvhKQwmP9lTy6rSX - 7IozxRn/NPPJPl5KdNBiDCCj8J2J9bt/fX09dXV1aBqYhTTvtJ/nSdtVDBu1fhd0H8LXb+pr9YXxW29N - hRQ+fkHihx9vo2J4DP/iLdNjaWmRYCjMq/ZWHjTfoEw+gGOhvUDTIB1FLPU4dhySeW1OP1pbibq6OoxG - Ixpw0jzGWzcTflG3V3/3RXjvp+DpG+tts5m0jbPaA7iqWleTlqIQWloipNgYSNXuWXB2+oql1++ygiAg - CLpdr6IfAZnWuBcURSGbzSIIor6z7OS1jfsYW4TFNYu8oqICl8uFqkGNvMC7Ha9uLPyCHifxqQF417/o - tvvao8OEIvF84hhS1Yl1jsylpUVSClxO1pPVZBYT+vWshN1up6qqCg2wCGm+235uY+Ffvufz0/C+z8Ev - fG218OdwLlZLoOgRHE7nqr9Ho1FSyTgj6SoCWReo+nHfWjKqr69f9k1pPGy5zlO2gY2FX4SZiH7K9YOf - Xi38OfhSTs5LZ/CU16/eENJpIqEl5hUXQ+mqe0v4c8gml52AOySO2TVfkWUZl8sFCNjFOK+zDmJaK/y5 - Xd8Lv/VtPQJrI4+sLMt0tLdjNptxutwIgrDK8xuPx1E1GE1XkNbkzYNhNhN6DUIpfZGr6va/F0rC31zS - z31XwmKxIIgioOg7igGqnWsEKJFgaGiIzs4uZpU0k+r23C6yBC4TWG8TfjwXh/Sae3G73bqHXVN5xHqd - 8o12oBW7/j/06wS3ERobGyku8hCJyBiNRhKJxKp7UxWFyWwxi4qNSDq07pjNbrdjsVhQNYF20xQ95vEN - ryWS1H0Hf/TyxoIPUFxcTGNDPUaTGbvdweLiUv69TCZDOpUirDoZz5ZQLgaZW7NWjUYjTqcTTQOPFOV1 - 1mvIwvpTDFWFb47oa/XF8Y2vxWQy0d7Whslkwun2rJETTT/V0kRupCt4zDq8ymy76xCAbAqZ+PyOTABN - Wx89JYoisiyjIlAlL1IjB9cxaTCm2/offgVmohuP7fF4OHHiBE1NTQiCgMFgXEcA+jGhxoJiJ66aMErb - IwBV08NhPzmg25VzsfVazFaIZ9YfrwmCQFlZGaIgIqIhCwpI8FidrkbnCE7TNAYGBrh58ybPyVms2/Q/ - GiWoderjvacLjpVt/LlYZj2hGAwGQMAhJmkzTq97+OllW/9/vQD9mxSDtlgsdHd3093djcFgRJTkdRpA - NpsFTSWmmllU7aSV0LqTIYPBgCAISKh0mqZWk/byujs/Db/zbT1mYKP8AEmSaGxs5MSJExQVFaEoKrJh - 9dm/oij6C5FA1oVi2HitSpJugNUZ5ter5iLMhPV1+pfn9aCvjVBaWsrJkyd1UwIwGIzrN9jlI+25rJOk - asAqHkAAwl6QCiOT3nmc6FZBHR4phknM3Hq4Grzo1e2nrXb9lpYWent7cbvdqBpIKJTLS0iCtoo3c2SQ - 1IykNHlb15vMwp+c1c+C9zNgqbS0lJqaGjRNwyxl9Mg8Dd7aosccrLTLczvCTn/++oIe9fZ3l+GDj8GP - nQBZXE/KG5I1+imMQ0ysErjRIPzvl+Afr2y+61dXV3Py5EkqKyvzD7JMCmEWM2zE31kk4qoJWdv8emRB - oViKrrqWyLJm9cdb7PpOp5O+vj5aWlowGAyoGjjFOB4pxtiG9y0QVc2om8xN7qy/WIreUv23uesbjUba - 29s5fvx4/ljXSIZyOYQorF/fAhoJzUhG20Mo60FAA+LzyKjKvo5rQNFJfYe7fmNjI7Iso2hQLEV4s32A - afswn9pE793wPHwTfOwcfOg53dbdL1itVk6dOoXNZkPRoFaexyNFQdOTmn71cfhPX4TFfWq07F2CX/g6 - zKpufuqksrkzb53QqUiCtuNdv6ura1lt1+32h60jNEj9fEFIMb/JelIQ2YqS81rSNnd9URTzu35xcbEu - XJpKp3GaN1kv4jPMcmGT39rOMa+BbO7Cdrjr1yIsH3OXSUu8zdHPBesNPr3J76iIezr1OTAoaWS0/bVL - cscnL3p1Jv3mDnZ9QVPoNU3wNvslms0BPrfXbDoB+mf03X8/hb+0tJTTp09TW1urxzoIKR61DmPKqbYa - fF8npLLwoefhZnB/fjeWhj94USXiOcV/rB+mxbC9LE5x5a7fv3kCzKpdXxBQNY06wwJvsV3ilMWLd3Hv - kygKEEvpiUF/9PLmORNOp5Pe3l5aW1sxGAwoGriX/UtP2Aaxkthz+QpB0DWEb+xi15fJ0mf28lb7JWpN - CwxucTH3bH6QpiHv5vI2Ow4TBFhKavzuFf28dGe7fpSnrAM8ah3CtmwrqZuobzvh0s8Pw8SaRSZJEg6H - A1mWt3/Poojdbqe6upq6ujrsdjuKBiYhyxttVzhmGl83Rz/cCycrBT7c7+GrPivxZJqdEG4mkyESiaCu - 8FaGw2GeGUnicD/Kj7u/SaVxaYuQfIGsovHJAY0/f0k/E98IG+36ZtI8ZB3hTbZ+PehqWVhumy4rbJEi - IMAFv8avnYUv7GLXf7v9Iu0mPwIaWXX9tWwUxrvRtWiahojuzP7vr8Jf3GbXP3HiBHV1dYhSbtcP8SZb - Pw9ZR/InXdp+1Si4o1CRd/oVQQDbmrwLVVXJZrNoSpa/Pxvg4oC2oYNNlmWam5vp6+tbs+tP8jb7RZqN - q1doZINjN1mWt+2wTGZWB4vkFtjJkyfp6OhAFEVUTdjWc8s5OiVJWpYEhSo5xJPWAR6xXl/vSV6m/q4y - jT96KsFTS028GG0mlDVvSx0UgKySZWDgKgP9l1Y5QhfmAnhTx3ku3s0PGr+DzaDld7Mc0uk0oqDxneE5 - vvNSelNbv6qqipMnT1JVVZXf9WvlBd5qv8QJs1dX2ZcRz+r+lLXPQxDE/P0apfXHoJlMBk3TmF0I80vP - hJhe2PhaNtr1XWKc11sHeb1tMB9oBPq6iKTWP6O8k1LTSXjtWs05CrPZDB99YZaB6xvLrcFgoL29nZ6e - no13fcPqmwin1o9jMBjuafFPxOPIO80CEpYLY6xENptlaWkJl8vFtbGpDYXf4/HQ19dHU1NTftcvEqM8 - ZRvgsRW7/krhGZ5frwXYbDZy1yzcRoJi6fVHllarlZaWFqxWGyIK1fLCasfUbQVTxSEmqTPM026cpvR2 - Icka2IQE3+e5wAP2Ca6lqphV3KTU28edi6JAyzETvhGZ8Irzx2QyiaIoXE3Vsph1UGEPY5R0kyOHxcVF - 0uk0wzd9xNLryclsNuc9/Ct3/QetN3izrX+9d3w53iCUWj+fkiQuhylruEzgMq/OSYhEIiSTSSampple - iG5Irhvv+n7eZr9Ih2l6da6BoO/Y42umPhdunSNLowTl9vVkFAqFEEWR676ZDYW/pKQk7+Ffueu/0dbP - mRW7fv4RKzC8sFZOBD3XAWEbmRd3BwaDERlhh5aUoB9HyeLq3dnn81FdXY3RaGSlzEmSREtLy7pdv8c0 - yds32PVzvzEX073fa3cbt9utX7ygrNqdNoKirdcgDAaDfmSpQadpkh91fRunmNj2IxLQEIWdu3QkVBoN - ARoNAVQEVO32kT6SCENZjU/IKivXurasb4YVK3NZBy2eMCXW1dGZMzMzLC0tYTavryG22a7/luVdf6Og - GFXRw79T2fXELkkSIlkMZCmy6AU7VgbgRKNRJicnMZlMrFVVNtv1c7b+yl1/5fp4aWJ9wJHD4cBi0bve - moQMggjH1xydqqqK1+vF4/FgMMisTHbcbNfvNft4q/0idYaFDa/Ft7Tef2A0GpdjYzQMKBvmwdxtyEYj - MuIOrQBNL9tV59JDUHOYnp5mcnKS3mNd9J8/Syih4HR56OvrXb3rS1GetA7w+Ea7/orf+LtLelmxlXC5 - XBQXF6NpYBcTqxNidggBjU7jFB4pdscnXkRbF4e/OXFsThNZRKKqkWNuvYTaSgKIxWJcvXqV1pYWokE/ - c8EIBrOVzs7O7e/6ty6YZ2/CZ66tX+S5Y0KTkMUpJpAN8FSj7ntZSVgDAwM8+uijdDbX4fX6yGCgvr6O - vr4+SkpK8rt+h9HP2zfa9Vdcy0wYPvrqenOksrISo9GIqqn55/pILZTZVmuC4+Pj1NbW0XOsi6uXzxFN - QVFxMX19fdTX1+d3/dJlW3+jXT8n/Kqqp8UPrzkaKS4uzkdiOqXE+sC4ewGijIzZtWMCaPTA21v1FMuV - zHrhwkUeeuAkH/reBrLpJBeMj2Ozu9DQkFA5Zp7g7fZLNBlnNpNKUhn4h8vw+y+t370bGhr0hYtGlbyI - RVydEbddJ0wufNcsZg+mWvB+6XuiHrG4dqGLooi47N1SNQGjEd7bpYdVrzztGBkZwWgy8WNvbKeZmzyv - PorBXb38XY06wzxvsV/mpHkMaZM4eFR4flQPy11rTlVUVCwLr0aRHKVYjoAGb2vVS26tPP0IBoOcv3CR - Nz/Qwn9/MMyrqXbCrm6MRgOapuGS4rzOeo0nrIM4NsqeW55T3yL86rfg22syH61WKw0NDYDumK0xBEGD - 7jK9huA/D9z6bCaT4bVzr/Hogyf53++uIZiSGTQ/gtVuR9M0DGTptfiWbf35TddqLKWHTn/k1dVLQBAE - GhsbMZlMKJpGjbywPvhJ23Rn2nod77YO4kbXn5GQsRTteMGKIvzHk+uzvpLJBC++/CrqnIv396RplKaZ - iIFJzHDaMsJj0hC2VAr/WnNf0xf64Bz8y1W9dt/akNuioiLa2tpAEDCi0GmaQkQ/346m9IXvsdz+VnIB - OaqqMi9mCah7KECs6fXy3Ct+V9P0XIe0snciiKb1c+mFNfJgt9uXnV3LhosG72zTF/rKLE1VVbly5Qrx - hSJ++mSG455JBhNWFEQ6jZO80XyFimyIueiaNaVBUtGf7Zev61WG/GtMd6PRSHd3N0ajEUWDVqM/HwjV - WqTX6/u1Z1Y7JqenJvlsJISzT6S3fpoLmXJiaRsV8iJvtPfToU0Ti2vrAo2yqk4+L47rmuHFDfaPtrY2 - PUJQg1rDEjXyAmh6lemfekA3J1cSWCwa5dkXX0Fst/OD3SohcYaZaClWMcUj1mEeFq9jTGbwJ9ev1VBK - j6P45ys66a6NfCwvL9cT49BjKDpyeQ/LlYkUdbnA6gZYjOumn9O8RtCXtY3FuB5ubjPunQgMrnJkDNZd - Lfyecj0y7QNPQ2IFuSnZDC8MzfPqCLitL6LKFmRB5Tkxzh9scs2apnv85+Mbn9ebTCZOnTqF0+lcfsDz - +Un98nU9Y2wxqZ+9//wZsJk2v/RIJMI3vvENBEHg22ICm7j7eVRUeHMz/Olbb0XnxbPwc0/Dq9N6eu1e - CWA6sn53qaioQBRFBLIYBL3sstsCv/46GJzXbdKVk3tzaoFfmgaP9TKi4ToIIt8W43xCUDe990QG5hMb - RwoKgkB3dzc1NdWoyzb7KfPoLZVdgJ88qZ/AfOn66u+GwhE+/G1wmUOYTQFU0YhNTPF5Ib3ptWRU3em3 - uMlRXVVVFceOHVvOfdA4ZR7FldMiNHisFj5wBv7Hs6u1ykw6xdNXUjx/DZzW51AlM0ZB4RkxselGq2q6 - x38hvnFNwVyAmNVqRdGgxTRDk3EWTYN/GdC1hWQWfqQXfuq07qgE3bfysXN6nIbZAD/7IHx/9y3hX4zr - WvFXb0ClXQ80e13D3kjAaHMjI5t3lg68Av+hTz/r/90X16upKQUCEQWW+Xy3hceNRiOnT5+moaFBt1mF - DE/aBnBKCbyL8Etfv1X/7uosuB1WfqRXxLWJZ19RFEIh3dZdYu+oLTYxknJjljUq5CU0LY13CUYWOBAU - FxdTW1urFwYR0rd8GBo8XAd/8mb4r1/ViWPVfWt6HUOWg5F3W6xKEAQ6Ojro7e1FEPUj0QctN2g0zK7a - IIpt8Edv1o/q1hYqAT25KpRMASn2UjOnrKyMRx55JB+R2WwI8JBlZPU1i/CzD+mO5T9/db1pmchCIpzN - r9XdwmKxcObMGaqrdWJ0iEmetA1gkdJc8cMvfQMml/00QwtQ7LLzPe0aDinGN0fhvz9zK0jLtyRQ4nHw - cGUai5DkH/p1AgBd+5hPinzivQ46nHGMu/EvaIBkQvrQj77uQ0y+vKsbliR4uAZKrHrce2QfKtCuhNPp - 5MyZM7S3tyMIIiIqT9gGecp2FUnUGAjA/zl3S2tQNZiztLNY+jAuKY5DXeIf+vVqtAcF0VnNUtUbuZxu - pNk4i5PIgVUFNpvNnDlzhvLyclQN2ox+HretzmbrLNU934Nz69X2vcJkMtHT08OpU6cwmUz6SYpxiu9z - voJVXP/wi216Hf/ZmH5Mtp+FQQVBoKGhgUcffTSv+heJUb7f9fKG3nqjrCdVWQ16QFR8n31yRUVFPPLI - I8uqv4CMwpttl3nUOoIgaLwyCX9z8dYcZBSYd/Sw5DlFuRzmpRsRvryCt6IZkaXSh1m0tVMjLfCvlxOr - nOKLGRORyicJm6poNAQwizu8IQGofxwZZzVIRr1G2C5YxCjBTz8AJypFfueslWduZkkm9xYAn3PodHV1 - 5c+FRRQesV7n7fYL+jGVpjeHaC26ZRPKsoy7pIKJbAlPR0/wHmMATUtwkMhqAnHViKCq+QAf5QAiwlwu - F6dPn6a+vj4fn/+IZXhD7/SbW6C1WOAPXzXzz1dFFsNx9qIr5rz93d3dVFdXIwgiqgbtxmm+3/ny5icp - GjQVwce/Cx5rMPKn50zcnEugKdldX4soivm6gi0tLcuONv106T2Os3SbJje9FpsR/tuj8EC1xO+ctfAd - b4Z0em8Zena7naamJrq6uvJef4OQ5UnrVd5ov6KnAGt6U5M69y3HqMlkwllczs1MOU9He2krn8VjzuRz - RxwOByZnGVeSRZRJIU5WvYR8SctrLx6PB9VSzNl4NTXyHG+yXdnZhUtGcFQtOwH3AY/UqvxducI/+Rr4 - 7E0r43Nh4rEY2Ux6XSXXjdjcaDRit9spLS2lqqoKj8eDIEoomoZbjPOE7SpPWQduef41qHHCn71NT+IY - iBRRXNdFfX09gqYSUcwoGGgvTqBqENMshFXLvgqlpmk4HI5V4abScuOKpSQkNRNL6u5LREuShNVqpaKi - goaGBlxu93K5NYXXWQfpMfs2XeyNHo0/flOGp45V8w83Srg2HSMSiZBJp1aFFm+GXFXnoqIiqqqq9IKi - BuNy+HOak+ZR3mm/sK1AKLsJfvp0hodaXPzfG828PK4QXAyTSiZQtkEGkiRhNptxuVxUVlZSUVGB1WrV - Yyk0lRZDgO9ynKfLNHnbaxEEeGOzQlcV/J23mS+NmpiaC5OMx8hkMrclSkEQMJlM2O12ysvLqaysxOVy - I4giiqZRIkV4o62fx61Dtzz/GnSUwJ+/TbfzhxOlVDUd049QNZXFrJV/Xyfzp2/N8Pf9IuNqFS2dPbjd - LhQ0goqNHzwmEkkqfG5EZt5Yz7HjvVgtZhRNYEnZ5RqzliBog5/W+MyPQGZ/8mSzyFxN1fJCtJXriWLC - WeNtw20FQciH2uplojVETcElxukwTfGYdYhmY0D3+q/7st737rlYO5+PP0ZSMyCg8ph1iB9wvEQyo+gl - naI9fDF6CmGfA7YlSUKWDZjFDD/t+RqdpknCKd1j+2K8nU+FH971LwqCgCzLyzkLGoKmUiRFedx6jSdt - V7cXByEI+DJlfDvaRn+8koWMmawq3m6ZI4rCrdBn9OAtq5iiwTDLI5br9Jh9t5Kftn1DsKQ4eDnewiux - eqZTDlKqdPtWZYKILEu3ynZrKkYhQ4Uc4pT5JmcsI7uK50hj5HKynhejLdxMeIgqhl2tVUlTcEtRuk2T - PGYdomGzSsCC7uz7WqSHp5MPkdEkJBTeZOvnXc7XEAWVaFriXyMPczbdjaLpTWfe63yZ19uugQZzKRP/ - EHmKoUw9KuAWY7zf/Rzdph22ojJY4F3/gJC68awmf/oHEGOz+9rMMqUZmM4W4c2UMpN1E1XNKJq4NT0D - MgpOKUGVvEiDYZYKeWnjOPu1D1OTOZ9sYiRVQakc5mHL9VvVWAW4mGjklUQr+w/9ug2Cwltsl/Tz5+Xf - vJaq4duxzj0GgurfNgtpqg1BOoxTVBsWd0xkCiKzWRfeTBlTWQ8hxUpWk7a4Nn18kVy13BANhrl8gde9 - Ykmx4cuUMpEtYUGxk1QNt5mnW/NQLEWpNcxTb5jbl4q7Cc3IVKYYb6aU2ayLmGba1lo1CPomVW0I0mCY - pUwOb6tQbVIz8kqiBW+6lGpDkDOWEewrSpmHVCsvx9uYzTppNc5wyjK6Ko5gJuvm5UQrMdVMj2mcY+Zx - xJ2sBw1wVMAPfBrhW5/8c+3hm/8TS/oAWsmsgLrNiGgBbWc3s8Ey2Ug4cjX7DhJrs7738zfF5WKid+N5 - HHQs+07mab/nYSPZ0O7yWt3++7vcszXAVQM/8jXkurbjaNMlkJrnIJ+yyJ3Jl9xswva1Eu8OrkW6R3NE - 79TzOGzzJOTX0N1bq9t/fw+wloDJhdhy7DRWT+UhzGUuoIACdgUNsHjA7EJEMoGr9r6fkwIKuK/gqAbZ - jIgog6OyMCEFFHBfEUAliPJyWTV3I4ejqXkBBRSwZ4iCLvOQI4B6/VywgAIKOPqQzXmzXycAZzUYHQVH - YAEFHHVogMkOrroVBGAr1wMDCiiggKMPW5n+yhOAyQWu+oIGUEABRx0a4KojnBIYGLi6TACyCYpbuSdL - lxZQQAH7BwFmMk5GvJN4PO4VfQFKu/RaX9q9V720gAIK2B9oAlhqT9F34hSSyIruSsXtYHIWZqiAAo4y - ARjszGRd3Lh5g3g8voIA3PVgryj4AQoo4MhKP4jOKppOvQGT0ciVK1dWmADWEihqgdmhgi+ggAKOKAFQ - 1ILBXUVDiYXqqsoVGoBshvKegvAXUMARhlrSCbIe9GcwGNZ0WK48AbKxMEsFFHAEoQgCUWf7qr+tJoDy - 4wU/QAEFHFEkRAdzQvkWBOCshdLOAgEUUMARRMpWQ0Iu3pwAUqpMyFYICCqggCOJqgfQ1vQClUHvITc9 - Pc30zCw1nuO4jBbIJO7LOSqggCMJgwXqHkUQpNUEMDc3x+TkJEajkWPdXViTbrhUAYtjBU2ggAKOAjR0 - 3155D6RX2/fiSy+9RFFREd3d3VgtZj01uLKv4AcooICjRAAVfeCsWRfqL54+fZq5uTlGRkZIp9MgmaDh - iUKFoAIKOCoQgfrHwWhf/1ZNTQ29vb2Iosjly5eZnPajVp8BW2lBCyiggMMODbAUQe0jm3IDBoOB5uZm - urq6CC0ucmkiTsRSV5g8QNP0dk4Iy7NVUIzuTYj6K6PqrwJWEED5cT3bV1PWvS2v/IfNZqO7u4uFYBWZ - wOMwf+7+njwBBgLwG89Ba7HeCv2RWiiz3d/Tcq8hrcCFSfjOBLw0AW9php88TUGDXV7DNDy5XPJvYWsC - yKG4yA0n3w1DfwOJpft61/vskP4CkEX4gzfBBx4BCrvMPbPAJ8Lwo5+FkeW2jNMReHenQJFV0Ntz36/Q - AIsbGp/a9CObd0AsOwYVvff1wpqPwZdGbv0pq8Kr4Upei7cSyLoOuGNeAdtFMgPh1K1/Xw7An1xv5dOR - h4mrpvubAMqP668dE4DZDc1vvn93fwHO+2FwTafnwUQFn1h6kn8OP0pKMxSk714gAAWyK9T9RAY+fd3A - c9F2RjNl9+/EiEDLW3RZ3jEBgK46WIruT1tKha/dgFh69Z+VbIasJhBRrChaQQO46xD03T+VXf3ngH+K - xWiai8mm+1ZTyxhcREoe2nyJq+ptCKD8OFQ/eP8RgAALcXhxfP1bqVQKTdNQELjd9BVwZ7CYWE8AkUiE - hYV5RjJVLCj2+29SNNAqTzMatXL16qBe/ksUEQSdDP1+PxcuXLjNCjbYoPNdIMv3HQEML9xyKq1EIpFA - VRSySGQ0qSB99wCmI+uP/hRFYcbvZy5r52b6Pux5IYoYe97L8dOP4HI5GRwcZGxsjIWFBS5fvszCwgIt - LS3b2MIan9K7iNxnWsCrU7CUXP/3eDxOJpMho8mktfuMGO9FaOALbfzW3Nws8ZTCcLrq/jIDNMDdAI1P - IQpQU1NDS0sL4+PjDA4OYjAY6O7uxu12c/sV7GmCpjdAcPS+mT8lCxf8G78Xj8eJx2KkbC5i97OH+R5B - MgND8xu/Fw6HiceieG3lhFULLjF+/0xMy1uguIVsNsvExAQLCws0NTVRVlaGqqpcvnyZmpqabWgAgghd - 79H7id0PEGAxud77n0MqlSIYXCCDzJJaiAi6289qLg4jC5uQQzJJOBxiQXXgz7jvn3mxONHav5eZ2QUu - XrxIJpOhp6eH2tpanE4nx44do6amhomJiW16sWrOQM1D903wy3REDy7ZCJqm4ff7SSvgz3oKQniXCeDa - HExu8qwURWFpcZGkamAiW3J/zIkGUWcXlxfMzM74aW9vp62tDaPRiKreEuCSkhL6+vq2SQAmJ8mmd6Le - DxmCAtxc3Nj+z2FmZoZINMZEtoRswRF496DCN0chltn8I0tLSyiqxmSm+P7wA4gi4Zo3UdXUTU/PcZzO - zZv9CIJwewJIJBJcGxpmhFZUT+t94QycCOnx5ZshHA4zNTnBZKaE4P14xHQvQADv0upIzY0Qi8VQlCyz - ioukesQDtzSgrJuqJ/4jZaXF2+OLzd7IZrN4vV6uXLmC1WKm8+G3Ih///qMfGahtrlLmP6JpjFwfZioi - cDNTaKt+t57TP12BobmtP5ZMJslmMiwqNsKq5ejPS+e79eK+24S40eIOBAJcunSJZDJJT08P9fX1yJIE - 3e9dripydOdPVWF+G87i2dlZrgwOcz7RUDgOvNMQ9SCtj712+6WYTqfJZjIkNBORo0wAGuBpgO4f2OlU - 3kIoFKK/v5+ZmRlaW1vp6OjAbDbf+kDZMWh755FeW1l1a/s/P9+axsCVfr7QH2YoVVWoE3AHhf/KDPzi - 12Eqso3nmc2SzepxGyHVerTnpvPdUNKxcwJIJpMMDQ0xMjJCRUUFvb29uFyu9Z8WROj9EbAVH1ktIKtC - NL29z6bTKZ59+QK/96LKVNRQKBhyUFguxpJR4YtD8COf1QO1tgNFUchms6gIRBTz0ZwfDXBWQc8Pg7Cz - BSiPjo4SDAYpKSmhtbUVSbqNV7vqAej4Xjj/10dzLrWtHYDrCCOd4pPfmWJsXODH+uCNTVDjBIN0gGSg - bfL/77RQbvT/9/tWVQjG4MIM/FM/fG4IQqmdPE+NbDaLhkhcO8KBWx3fCxU9O/6afOXKFXp7e2loaNje - NyQDnHg/DH8RorNHbsfT0LWAnZGGxtkJjdcmod4NfRVwvAwa3Hr1IKsBDPugHQjoRUlMEtiN4DSBwwRm - GV370A6QEITllwZZRdeSQkmIpCGZ1XdndR9+W1H18RaTMBXWA7IuzcDQwvrMzO1AVVUURUEDEuoR7Hup - AY5y6HsfCDs/kpZf//rX4/P5uHz5Mo2NjVueG+ZR/aDuC7jwiaM3oYC0yyQ/RYPRRf31mWu6vBglfbx9 - 4UkBJEHXLqwyuMxQ7YD2EjhRAaeqoNkDVtM+koEIqqIfjV6e0WskXJ2F8ZAehRfPQErRBVfbh9/T0Ikk - o+pj7nnKBAFR1B/oka3f0PluqDq1q6/Kbrcbl8vF7Ows169fx+FwUF9fv9r5t25RGOD0T8LIVyAyc6S0 - AFHQhXY/oKELB8r+X+cCerTiwCx87aZ+3aVWOFEJ39MOb2+FOveKC9mF4EeS8IJPJ7PnfbrQpw/gXg70 - eYoi8nI2awYJjSO0XHO2/8kf39XuD8s1AQVBoLy8nOLiYiYnJ+nv76eiooLq6urNfQJVp+H4D8LLf3J0 - pB9dxXYeQlNR1SAQg6dv6ITQWQLv64Uf7oEq5w5IQNATbJ6+AX9xDl4Y13f5wwpJkjAaddVfQj1SFqsG - qMd/GKny1K7HWKXsyrJMQ0MDx48fJxaLcfHiRebmNom0ECQ4/VNQ1n2kTgSMEpQf8hwfTdNt51/5Jrzr - X+DzQ7p5ctvVL8DwPPzUl+GHP6MTyWEWfgCj0YjBYABNwyQc8ptZI/2Kq4FrxgfxTUyiKLtTzTa0di0W - C52dnbS0tDA1NUV/fz/h8AbhccWtcObnwXCEjlcE3Yt/VPDqFLzvc/Bb34ZIamsS+PJ1eO+n4G8vbR1f - f5hgNpuXNQANm5g6GjcFIErID/4nmh96O/FoZOvNeqcEkIPb7aa3t5eysjKGh4cZHh4mlVozid3fD81v - OjpagAAtRbopcFQQSsJvfxt+4esic3FpHQlowN9fhh/7PFyZPTr3DWC325FlGRENp3hEOl5rQPUD0Pu+ - VZt1znyPRCLbHuq2y1wQBCoqKjhx4gRGo5HLly8zPj5+S+UwOeDRXwZn5dEgAU0nAM8RixlRVPi/5zV+ - 7ls2ppL2WyQg6E6+X/w6zMaO1j0DeDweJElCEhRc0hEpCGK0wkM/A47K/J/cbjd9fX2UlpYyNDTE9evX - 12/WuyGAHGRZprGxkePHjxONRrl06dItlaPuMdTe9x8ZJaDBDY1HMtVf45OX4nzwlSp86VIQ4bIfPvjN - 7eU/HDZIkkRJSQkgYBYyeMQjwHAa0Pp2aP+edW8JgkBlZSUnTpxAlmX6+/uZmJhY5R/QVpzVJpPJnZe1 - tVgsdHV10dzcnFc5orE4s/XvYdHWfiQm2GOGB6qOIgGApmT57PkAH/V24014+KOXNy5+ehTgcDgoLi5G - 1cAtxXBJh5wANHRN+8zPgXFzT7UsyzQ1NdHd3U0kEuHSpUssLOhlk0RRJJPJMDIywuXLl9l1GltO5ZiZ - meH68BALwSWcFe/mgcmPIKYjh25uV0KQ4K0t8ImLkMgePcGIhkN8Y3CJUKydLwyfPZrSD1RVVWG1WnWT - WQ4efiegKMKp/wS1j27r41arla6uLhYXFxkfHycSiRCJREgmkxQVFe2gItBmgrLsHyguLiYw42dM7mSm - /Ag4BDV4qAZ6yo+sbOD1evnqRf+O4uoPEwwGA/X19YiiiIRCm9GPeJgXZs7xd+ondpzw4/F4qK6uJhgM - MjU1hclkoqamBpPJxJ4S2RcWFvD5fFgsFvr6epFkA+lEFanIVUyLw4c35EqDUhv8UA+8Nr0/Me73GkKh - EKFQ6GhKP1BRUUFFRQWqBsVSjFaj/3ALv8UNj30QHNU7+mosFmNsbIxMJkN3dzc1NTVYrVYuXbpESUnJ - 7jSAWCzGwMAAPp+P+vp6Ojs7sVqt2G1WGk68AeNT/0OvInzIBec9XfBA9eG+h03XlKatcggdJRgMBrq6 - ujAajWhAh3GKUjl8eG9IQE/2aXvHtr+STqe5ceMGg4ODeDwe+vr68Hg8GI1Gmpqa6OrqIp1O70wDyGQy - +Hw+FhcXqaqqorKyMp9osXJBCV3fB2PfOtzJQhpUOuADD8GPBw5/RNz9hKamJmpqatA0sAkpHrTcOLzq - vwbUnNYD7sTbi6uqqvj9fqanp/F4PPT29uZDoVcSvs1mo729fXsEsHLQXHBQbtANIZv02ICpVyEwcKhN - gXd16uWnPvpaQbAOA3LOLVmWUTToMftoMc4c2vtJSVbUB34Ri7v+tp8NBoN4vV4MBgOdnZ3Y7bcvWCsf - xKAAlLTDo78EX/opyBzeQ2aTDL/2uJ7i+9UbBQG7l2G1WnnooYdwu93Ltn+Ep2wDGIRDlsKYgygxW/su - NPeD1G3xsZydn06nqa+vp7i4eNs/IW81qNfrJZVKUVdXtxxQsUN0fz+MvwTn/upQawGVTvizt0Hmy3od - +nsBsixjMBgwGo2YTCZMJhMGgwFRFNE0jUQiQSgUIhbb3dm3JEnY7XZsNhtmsxlJktA0jXQ6TTKZJJVK - kUqlSKfTqxpO3C1YLBbOnDlDbW0tmqYhCypvtvXTYJi769e223VH8xtR+n4WjY0zcjOZDOPj4wSDQSor - K6mqqsqb5LsmgP0Y9NboZt0UmD4H0xcONQm0FsNffzd88BmBfxkA5Q4dDUiShMlkwmaz4XA4cLlcOJ1O - 7HY7VqtVP8qRDYiSiCBICIKAhl4LLxKJcOPGDYauDZJKbi8OXhRF6urqaG9vp6SkBJPJhChJIIho2q0K - O5lMhmQyQSwaJRIOEwotEQqFiEQiJBIJMpk75zQpKirigQceoL7+lpr8qGWYx6xDh1f43XXwxIdAqdSb - Va58e7k71dTU1PZM8u0QwH4OuvrpNMPr/jt8/scgsXSoSaDODX/xDuiocvKR12B2Icx+HnWIoojZbMZu - t+NyuSgqKsLj8eB0OrFYLBiMRkRRLzaoLf+vhIJByGIWUpiFNFYhjUlMYxQURAc8VlHBa+USn3/+MrFE - 6ra/f/z4cU6ePInJZNKPPzUVu5jELcVxinEMgoKARhaZuGoirnmIa+UkFJlERiORTBOJRgktLRIMBlla - DBIOh0kmk/tOCiaTiebmZo4fP55X+wU0HrTc4Lsd5zAKhzOKS5VN8Nh/Q6w+A17fqveCwSA+nw9Zlndm - km9FAIuLi3i93n0bdB3avxtO/2d46X/rVR4PKzRwmDQ++FCMYw11/OVAE5dHZ1lcWCCVSm57GEEQMBgM - +Z3d6XTidrvzwm612TAajAiiuCzmGiIqJjLYxSgeKUqJFKFMDlEs6f92iEksQgqjoCALCuJy8QsFichp - M20Zgd9+dut6h/X19Zw8eRKj0YiiapRKIR61DtNlmqRIimIWMkioIICqiWQ0iaRmIKqaWVKtzGedzCku - ZkvcBJUKQkojkbRANJEmEokQCi2xtLRIaGmJaDSa1xR2kssuyzIOh4Pq6up8t1tJklA0sAhpHrEO8077 - Bexi8t5dR1svDiLN72VMOEHNwgKapiKKIslkkps3b+7NJN9oPi9evAhAbW3tvg26DqIEj/wizF6B4S8f - 7ppMGshkeVfFGF2ear50rJPXZq1MzYcJLS0Si+qhloqioGkaoijmhd1isWCz2ZZta12FN5t1FV4QxeXe - dRqipmIUMjjEBCVShEp5iSpDkHI5RJEUxSEmMAnZZT1ga0ioFMsZ/ssJ+NowvDy58edyTl6TyYiiQp1h - nn/veoEmw8b5wZKgYhCyWElRJEV1J9VyJaW0JhNTTSwqNmYVN1PZIvxlRcxnq1hSmollBBLpLIlEglgs - RiwaJRaLkojHSSaTpNPpPCnk5s9qteJyuSguLqaoqAir1QqCqO/6mkKTYZ432vo5YfYiH1annwY0vQHn - d/0+DaqdcZ+X6elpDAYD8/PzlJeX780k34gAAoEAzc3NuN3ug705awk89dsQvAlzQ4e/MJum0W6cpK5s - lkF3HefrmhlNHWcpayKlgKrrzwiCgCSKiKKIIIj5ME69yK6KhIJZSGIXkxRJUcqkEJXyEhXyEiVyZFnY - 96g6a1Bqhx84BmcnNzZaiouLl3vHg0NM8B7H2U2F/3YwClmMUhaPFKOJ2TwpRFUzQcVOIOtmRnETUNwE - FQcRtYS4aiCjimRVUFR1ef5AXC7qqfs4xPzcCyjYhDh1xnl6TV76zF7chzndVwNK2+FNv4fgqMKpqng8 - Hm7cuEE6naa4uFiP3BP3t1CF/OSTTzI+Ps7FixepqamhoqICQTgg6azogzf+HnzxJ49MSXGLkOaU6QY9 - xjHmFBcTmWIms0UsKA7CipWMJpFFRETDICiYhTR2MYlLjOORYhRJUTxSDJcYxyqmDtRufV0dlFj1ar5r - UV5erreQBnrNPtpM0/v620YhS5EUpUiK5s/lM5pEQjMSUSwsqjaCip2gYiek2oiqZhKqkbQmoyAgoSIL - CnYxRZEUoVoOUmtYoEJewnzYS31pgK0E3vi7aJWnmA0EmJycxGaz0dHRgclkwmw209/fT2lpKTU1NXqZ - s/0gAJPJRGtrK5FIhLGxMWZmZmhoaMDjOaCE+PbvhqUx+NavQjpxZEq0GgSFKjlIlRzkIUDRRDLIZLVb - qr2EikFQkAT1rkSm1br011oCEASBoqIiBFHEpGXoM3nvyPUZBAWDkMApJqgmuEIehOX5k1A03Zshrpi/ - Q6vibyb8Jiu87tdYLHsdvkuXEASBlpYWXC4XPp8PVVWprq6mpKQEn8/HpUuX9m2zzp8COBwOenp6mJub - Y3R0FIvFQkNDg25r7ScEAR74L2ihCXj5TxE4xE7BLSAJKhLpe4fgNHAY9XqHF9bkxRgMBhwOB5oGRVKU - WsP8Xb1UAQ1ZUJBRjn6rNUki0vZDeE2PkvGOU1e32he3MnzXZDLR1taW36wDgQANDQ17Mt/XxQGUlpZS - VFTE1NQUAwMDlJaWUltbm6+tvh9YCMWYcn83jfXXcfi+dMSf8L0DkwxVjg3+bjLpefMalEkhHIfVg37I - oGkw6XqUQPl7qaqooaK8fFs2/srN+saNG9hsNurr63e1Wcsbk5JEXV0d5eXleL3effMPhMNhxsfHSafT - 1LX2YG/7MHwhBqPPFppq3gkIUOfamABymXNlcvhoqdj3rPRDuvb1mJ/8Y3rr+zDsogrtfmzWW37SZDLR - 3t5OJBJhdHR01ypHIpHA5/MRiUSoqamhPM90Hnjbn8Hn3g9T5wskcAcIoGSDTcJoNOYr55ZIhzht9hAJ - P3UPY/zuj1Fa2rmnoTbarGtraykvL9/WZr0tqnA4HPT29jI3N8fNmzexWq00NDRgsVi2/F46nWZiYoJg - MEhZWRktLS3r2ansOLz1z+DzPw7zh7iIyCGBzaD3F1RW+PhMJpNeOUdQ8Bz2unmHQfjLu+Ftf4awR+Ff - idxmHQ6H8Xq9eWf+7TbrHekdpaWl9PX1YbPZGBgYYGxsjGx2/bGVoihMTExw+fJlVFWlp6eH+vr6zVWT - ukfhHX+uhw0fzRoV9w4BGNf3PDCZTAiiiISK9Sg1z7gXhb+4Bd7251D1wIH8hNPppKenh6qqKm7evMm1 - a9dIJPQ8kJUagaZpBIPBnZcEy6kcZWVl+SOJurq6/KBzc3OMj4/nqwfbbNvss9X0Jnjbn8CX/guEJgua - wAHBadIJILXCzDcYDHp4spDFIqTv38k5aOEvaoJ3fBQanzzwnysrK8v3+rxy5Qrl5eV5jT2nJWQymd3X - BDSbzXmVY3x8nNHRUURRpKGhgdbW1u21GV+Ltu+CN8fh6Z+HiL9AAgcAuwE8Fr3AbEaTUTQBk8kECMuB - SoXSRwci/J56ePuHofnNd+xnJUmivr6e8vJyJiYmuH79OqFQaFU+wZ7P9nJ56KlUClEU8/npu8axH9Bn - 7OkPQCRQIIH9hAqdpfCZ74eEKvHp8EOMZcpw2K2omoaR7KHNoLunhb+oUVf7W99xVy7BYDBgNpuXU7iT - SJKE2WxGEITdE4CiKExNTTEzM0N5eTm9vb3IspzvSFJSUrLrkEWt+weYmJig8tLvY0guFEhgH2E3wgO1 - +hn0tUU7SqoEEQVVy2IV00jC0QzMulvCH7dWob7+97G33R3hn52dZWJiApvNRm9vLwsLC1RUVHD9+nXd - 96PtojRszs5feRowOjqKLMvU1dWRTCYZHx8nHA5TWVm5qnjoNueNC+fP0ckw1hd/HYJjBRLY97UpMJkp - IqJalhOOBcxCmnrDfIEE9kn4Kesk9MhvckNrxmazUl9Xd9uTs7Xwer1omkZjY+OOvpez81VVzZ8GBINB - pqenOXbsGNlslkAgsDMNIBeCqKrqugzClTxiNptpa2vL1yqbmZmhtraW0tLS7QUSaRoIInS+G5we+MrP - 6lmEBRLYNwho1BoWChNxUMJf2Qfv+Ciu2kfozWaZmpriypUrlJSUUFtbu2/JPGuRSqXwer2Ew+F18QAr - ZVSWZaqrq7dHACsH3UlEoM1m49ixYywtLeHz+Zient5+IJGm6a/Wt8P32OBrPw/TFwskUMC9LfsqZKoe - xPg9H4PKk3lhq6+vp6KiIp95myurL0nSvvzuSpO8pKQk3yD0dpAPYtC1cLvduFyufKKRyWSivr5++5WH - Gl4P3/s38PQvwNgzhVVWwD0o+YAkkWx6G97m/0TnsvCvRC7zNhaL4fP5CAQC1NTUUFZWtqcQ+5VH78eO - HdtRToB8EINuBEEQKCsro6SkhOnpaa5du4bL5aKurg6z2Xz7Acp74V1/i/atX0fr/0dE9T7IFCvg8Ai/ - 0QanfxLl5AdITG7dbtlms9HV1ZXXjP1+P/X19TtOwV9pkjc1Ne0qhV/ebFBFUXY96FYQRTGfD5BrL15W - VkZ1dfVt7aIlzYWv+ieowU3xyD9ALFgggQLuvvC7quH1/wP63oeQVEDbXjq12+3G7XYzPz+f14wbGhpu - qxmnUil8Ph+hUGjPSXryQQy6HRgMBhobG6msrGR8fJxLly6tazeWQyKRYGxsjEQiQV1TB0Wn/hCGHoZn - fh3mRwokUMDdE/7q0/DG34WmNy7/cee5FCUlJRQVFTEzM8O1a9dwOp3U19fnz+pzzjtFUZiensbv91NS - UkJfX9+enYmyqqpMT08zPT29b4PuBLkTg0gkssouAshms4yNjTE3N0dFRQXt7e23nCbdPwDuRr2y0Ngz - LNeELqCAOyP4shG636PX7i9q3fOQoihSVVVFaWlp/sSgtLRUD9eVZYLBIGNjY/tmkucgPfXUUx+SJImO - jo58ieXdYHFxEUmScLlcu/q+yWSirKwMi8WC1+vl+vXrLC0t4XA4aG9vp7i4eH0sgbNazyHIJGBuQG+g - UCCBAg5a+O2l8Piv6cLvqFr1diaTYWFhgcrKyt0JpCThdrspKSlhaWmJwcFBAoEAmqbR3Ny8pyPERCJB - NBqlrKws/zdZkqR8t5d7Aaqq5stp565ty9ZTjkp4yx9CaSe8+HsQmiqQQAEHh+rT8OT/hJa36rEqBygH - iqIgCELeDDiIFmzyI488krc93G439fX1+9MRaIcIhUL4fD4URaGxsRFBEGhra2NxcZErV65QVlZGTU3N - xseQsgUe/K9Q2gXf+jWYPFtYqAXsHzTAYIZj/w5e92tQ1HJgP7WyhkZFRQVdXV3Isozb7WZ0dDQfS7Nf - zXvEnO3R19eHKIpcvnyZycnJO9bwMR6Pc+3aNUZGRigrK6Ovry/f3TSXetzT00MqleLSpUvMzMywafRy - 41Pwff8P+t4HkrFQW6CA/RH+ogZ48x/C2z9yYMK/UQ2NXHkvTdNwu9309fVRVFTEtWvX8v0C9or8dmow - GGhubqaiogKv18vs7OyOWw3vlOlyTUgrKipoa2vL+x/WCvjK1ONcNdT6+vqNIwo9jfqDquiDl/4AwtMF - k6CA3Qm+KBIuOU3oxM9TefI9+1oYN/8zmpZP2LFarXR3d2/q4FvpKPT5fFy+fHnPDXzX3ZHNZqO7u5tg - MIjX68Xv9++rypGLLgwEAhQVFdHX17dtk8PpdNLb28vs7Gy+GuqGpcmMdjjzAb3c2HMfgomX9LDiAgrY - rvCbnXD6JzGf+hmm53Xts7a2ds9ReyuRa/QpSRKtra3bdqAbDAZaWlryuTZ72aw3pbSioiLcbjd+v59r - 167h8Xioq6vbtX9A0zQCgQBTU1O3ZbrbYW21k039A01vgJJ24t/8LQxX/wlDNlbQBgq4vfBX9sHjvwqd - 34tRNNBRpPuoVtba2+1pF5A/8k6n03tq9JnLtdnLZr2lTiOKItXV1ZSWljI+Ps7ly5c3DdbZCgsLC4yP - j+eZblfVgtZgZbUTr9e7OUM7axhv/6+UlJ6iZPgTMPnqcrZhYa0XsEbwDRa9IM3jH4TitlVvu1wuent7 - CQQCjIyMYLfbaWho2F4Y+zISiUQ+Tb66upqKiop96fW30WZdX1+/rePCbRk1RqNxlcqRKw9eVFS05fdy - OcnZbPbA/Alms5mOjo4tGVoVJNTO74Pet8FrH4NLfwvhQsmxApZlXwNK2hAe/WU4/oNg2FwzLS8vz2uf - /f39lJeXU1NTs2X8TCaTYWJiIt/ht7m5ed/9CWs3660ia3dMADnkVI6FhQW8Xr11cWNjIzabLX9eCbpn - 3+fzEYvFqK6uXtEH4ODgcrno6elhdnZ2Q4YWNBWctUQe+GWmlQaqxz+FfeZFyKQKRHDfSj5gshGufJJI - 73+h5uTbtvU1WZZpaGigvLwcn8/HxYsX84VyVyIXujszM4Pb7aa3t3dv5fK2gdxmHY1G8Xq9qzbrlZpx - JpPB7/fvriIQ6IEKfr8/H0KcSqUwGAyIosj8/Hw+wWc3TKdpGhcuXKCzs3NXfoJsNsvk5CSzs7NUVlay - tLSE2+0mmUyyFApRXV1LhcuAOPw5ePWjMHMJVLVABPeT4IsCVJ2GMz/HjPthFmNZOjvadjVcTvsUBIHS - 0lKmp6epra1lYmICs9lMQ0PD9qtjr8FuKwLlsLCwgM/nw2w243A48j06cr64XRPASibxer1cuHABURQ5 - ceLEtu2PgyKAHFKpFDdv3uTChQs4HA76+vrWq2shH1z8W7j897A4qi+OAhEcXcEX0GP3T/wH6PlhcNUR - CAQIBoN0du6tUcfs7Cz9/f1MTExw7Ngx2tvb9+zv2isB5ORpenqaS5cusbCwQG9vLy0tLdhstr1XBY7F - YiQSCWw2G6IoEo/HiUajB9defAeIRCKkUinsdjtWq5VoNEo8HsfhWNEh01Wvp3J2vgvO/xUMfhoiev/6 - AhEcMcG3l8PxfwcnfgzKe/b1J1KpFOFwGKPRuNxpWSMcDmOz2fat6s9ukUwmiUQimM1m7HY72WyWSCSC - xWLZPQGsTNHNqTgGgwG73c7Y2BhTU1PU19evFrY7KPg552NTUxMmkynvgBweHl4fPyAI+oJ465/C8R+C - Cx+Hm9+A8GRBIzgKgm8rho53wYn3Q/WDIO6fA05V1XzVrOLiYnp6ehgbG6O9vR2fz8fMzEy+/sVBptdv - hGw2m3c+VlRU0NPTk/cJeL1eJiYmdk4AKwctLy/Pp+guLS0Bt44kZmZmGB4exuFwULeLaqi7QTqdxufz - sbS0RHV1NZWVlQiCwNTUFKIoUlpaSnFxMdPT0wwMDFBUVERtbe2t2AZRhtqHoeoUBPp1s2D4C3qnokIF - osMFQdATxTrfrcfwV58GaX8dcPPz8/h8PiwWSz6uJRaLoWkaVquVzs7OfI5LrurP7U7O9oX3lmNuJicn - 863CTCYTwaBeqchut3Ps2DFCodD2CSA36MTExKpBN0IuZLGsrIzJyUkGBgb21Cdguyy8nUIJudLlFRUV - +XDKiooKqqqqbqlqklF3EFWegAd+CoY+DwOf1JuXZpIFIrhXsVyXL2atJ9v2LlwP/pCu2Qn7q4JHo1FG - R0e3VTUrdzo1Pz+P1+tlamqKhoaGA9OMl5aWGBsbQ5Ik2tvbV/3OWnefy+XaHgEsLS3h9XoRRXFHjo3c - ccnKqj+5PgH7ZRflWNhsNtPd3b1tb6vRaKS1tZV4PL6qrfKqQCJBgpJOeKxTdxiNPQP9/4Q6/hJierny - S4EM7g3Blw1Q9zgc/3eopWe4OZfBGDTTYE/sWxj7ZhrmdpCr+hMIBBgaGsLhcFBfX79vmnHOJI/H4xse - SW4qo7cb1Ov1EovFdjToWmxUDXVHfQI2YeFcd+LGxsZdq1ZWq5Wurq68qjY9Pb2xquasgd4fRWl5Jze/ - /f9oTvcj3fwqhKcKkYV3S+gFwOTQ08A7vw96fggcVTiAvmqVmZmZVcK2k6i9lVhZNau4uHjXVbNEUaSy - sjJ/VLihGbpD5EzyDatm7ZYAVp6jl5eXr8rU2wvWVkPNCdtOTgzWsvB+hVNuV1XTzC5CZY+gHvtxpMX/ - AjeehuEvwswFSCf1DxXI4GAFXxRRrCVILW+Gru/T/Ta28nXClsucy+WM7MYMzQW97VTD3FLols3Q8vLy - fIj9OjP0dtOwgUm+G4KT1w46OzvL+Pj4nga9HXLVUHN9Asxm8237BOwXC98OKws0bqiqaZoeVSgZ9JTj - ij6yx34Y/0v/iN3/PJ7IVd1pmLO3CmSwP0IPYLLr8930VkbUBtofezeicWsVemXx2Vw7++2EyOY0zEwm - sycNcyus1IxzKfjb6RMQCoUYGxtDEIQ9xxrIBzHodpHzym9WDTU3CbloJpPJtG8svBVWOjHXtnTKMbTA - ylzuAI6291D25E9D+IauEdx4GuaHILFYOErci9AbTHoRjsYn9S5R1Q+hyk6i/f1oO/Dq52pKRKPRvFc+ - Z9auXGu5OhWLi4v7qmFuhVwKfi6icKUZupIIEokEPp+PaDS6J5N8FQGsHXQvdvlehG1lNdSSkhKy2Syx - WIzR0VFSqdS2ko/2GytbOk1MTHDp0iVKS0tRFIVQKMTk5CQAbW0rMhytJ6DiBDzw0/pR4ug3YPSb+glC - OqqHHFMghE0FHvSsPHcd1D0GzW/RVXxn9a1JS6d1LWwXJZ/sdjvd3d0sLi4yPj7OzMwMJpMpH9o+MTFx - oBrmVshlHObMUL/fD+iawsTEBH6/n/LyclpbW/fNiS4/++yztLW1cfLkyQNnuq1gMBhoaGigqqqKoaEh - BgcHmZ2dpbe3l5qamjseRLESJpOJlpYW4vE4AwMDXL16laWlJfr6+igvL9/4S9ZifddqfFIvTjI7ANPn - YPwlmLuqOw8zyVufvx8JQeNWXL7Vrafg1pyBhif0vnrO6n0/wsvB4/Hg8XiYnZ3l1VdfZXFxkY6Ojn0t - ub1blJSU5ONVzp49SyqVoru7+0CSieSamhrC4XA+geduIpvNMjMzQzKZpLi4mLKyMhYWFrDZbHd891+L - dDqN3+9HVdW86RIIBDCbzbcvDmEr0+sVNj4FD8YgNA5T52D8BZLesxgTAcTkIiiZo0sI2ur/qxodSEUN - +jFrzUP6q6QDLMV37JJCoRCBQACr1YrZbEYURfx+/5688vuFxcVF5ufncTgcFBcX52XjdqnHOyaAnp6e - vP2fqyiyl2onu4Gq6kc209PT+SglWZbp6OggmUyuqnZy0Pb/WqwsYebxeOjp6eHatWv09PQQDAZ3XhzC - YNMXfUkn9PwQN8+9QL1Lw54Y102GmcuwNAbRGUjHV5cyO0ykkN/dAdmCYnKRtlRiqTtBxtPJ9bAVe10f - tR0nkQzmO3ppuePoRCJBbW0tJSUlhMNhmpubGRsb23Xhm/1AroaGoih5WRQEgYqKCkZHRzdNPd41AcAt - 22OzXPqDxPz8vB6TLMurIpdyUUu50OLp6WkGBwcpKiqirq7uwO2zlSXMVoZ6ZrPZ/LXtpjjEKggiGYMb - taoF7E/oEpOK6MK/cB3mBnXTIXBFNxnSYVCzeliyuoYU7jQ5aGv+KwCShCIYSYl2TMW1SMUteiReWTcx - qYSJEHSffhQjAs2pNN6xMS72X6VuOQDroJFKpZiYmGBxcXHVmXkgEEBVVWRZprW1NX8CkKu1dye0z3g8 - zvj4ONFoNO98FASBUCiEqqqYTKZ8aHFus25sbNyzsz5/CiAIwqoFvbLW3kFkM61kurWTvDZkMddQtKys - LB9ReJAe2rXFGrea5LXFIXKlybbvTNV0gc5Jkcmpv4rboO2dusAnFiDiR1saZ+7GeVKzI1TZFaT4rP5e - YhGyCUjH0dQMgqro427kIxO2IdSbfVaUdZtcNupVc0xO3bxx1aLaa5hJ25hJWalof5CKpuNgceUTb9Rw - hGx8LD+oxWSks6N9XSWngzh9ymaz+cIcxcXF9Pb2bqni2+12jh8/no8BOEjtM51OMzk5mU/YaWlp2bKG - xsrN+vr163sOcpI3W9BlZWWMjIwwMzNDd3f3voVTqqrKjRs3mJubyzv9tuvgy1U7CYfDjIyM4Pf76e7u - 3jdNJZvNMjQ0RCQSobm5eUe7ksVioaOjg2AwyI0bN5iZmaGzs3Pvmooog62clLGYwYBEtrKWlseakBxW - yMYhuaQTQGyWTHiGwMhFqj0mhNQSxGYhFYZsEpQ0KBnUVIR0ZB6TwYCwkjxFGWQTyGbdTJFMhJMq9pJq - RFuxLuzWEr0VltkF9kqwFIGliFgGrg7dQDaaaGluxmnfwImWI6UNFnRPTw/T09NcuXKFiooKmpqa9s3p - GwqFGBwczJuWO3HwFRcX4/F4GB8f5+LFizQ0NOT7Vu4H5ufnGR4epqioaEcOvpWb9djYGOfPn6e1tXVX - WtT/Dwq2uvjgV6RrAAAAAElFTkSuQmCC + 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 - 830, 400 + 900, 460 + + + 2, 0, 2, 2 CenterScreen - - timer1 - - - System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + FloatTool - - toolStripMenuItem2 + + DiscordUpdater - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - toolStripMenuItem3 + + WorkStatusUpdater - - System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 FloatTool diff --git a/FloatToolGUI/Properties/Resources.Designer.cs b/FloatToolGUI/Properties/Resources.Designer.cs index 7f761d8..65c0a30 100644 --- a/FloatToolGUI/Properties/Resources.Designer.cs +++ b/FloatToolGUI/Properties/Resources.Designer.cs @@ -60,6 +60,46 @@ internal Resources() { } } + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap benchmarkBlack { + get { + object obj = ResourceManager.GetObject("benchmarkBlack", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap benchmarkWhite { + get { + object obj = ResourceManager.GetObject("benchmarkWhite", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap gearBlack { + get { + object obj = ResourceManager.GetObject("gearBlack", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap gearWhite { + get { + object obj = ResourceManager.GetObject("gearWhite", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Поиск локализованного ресурса типа System.Drawing.Bitmap. /// @@ -90,6 +130,15 @@ internal static System.Drawing.Bitmap mutedWhite { } } + /// + /// Поиск локализованного ресурса типа System.IO.UnmanagedMemoryStream, аналогичного System.IO.MemoryStream. + /// + internal static System.IO.UnmanagedMemoryStream notification { + get { + return ResourceManager.GetStream("notification", resourceCulture); + } + } + /// /// Поиск локализованного ресурса типа System.Drawing.Bitmap. /// diff --git a/FloatToolGUI/Properties/Resources.resx b/FloatToolGUI/Properties/Resources.resx index 7ff753a..257ea90 100644 --- a/FloatToolGUI/Properties/Resources.resx +++ b/FloatToolGUI/Properties/Resources.resx @@ -118,19 +118,34 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\benchmarkBlack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\benchmarkWhite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\gearBlack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\gearWhite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + - ..\github.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\github.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\mutedBlack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\mutedBlack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\mutedWhite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\mutedWhite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\notification.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - ..\unmutedBlack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\unmutedBlack.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\unmutedWhite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\unmutedWhite.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/FloatToolGUI/Properties/Settings.Designer.cs b/FloatToolGUI/Properties/Settings.Designer.cs index 73c373d..e1c20db 100644 --- a/FloatToolGUI/Properties/Settings.Designer.cs +++ b/FloatToolGUI/Properties/Settings.Designer.cs @@ -1,30 +1,35 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. // //------------------------------------------------------------------------------ -namespace FloatToolGUI.Properties -{ - - +namespace FloatToolGUI.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { + + public static Settings Default { + get { return defaultInstance; } } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Nova { + get { + return ((string)(this["Nova"])); + } + } } } diff --git a/FloatToolGUI/Properties/Settings.settings b/FloatToolGUI/Properties/Settings.settings index 3964565..17c701c 100644 --- a/FloatToolGUI/Properties/Settings.settings +++ b/FloatToolGUI/Properties/Settings.settings @@ -1,7 +1,9 @@  - - - - - - + + + + + + + + \ No newline at end of file diff --git a/FloatToolGUI/Resources/benchmarkBlack.png b/FloatToolGUI/Resources/benchmarkBlack.png new file mode 100644 index 0000000..9bbee40 Binary files /dev/null and b/FloatToolGUI/Resources/benchmarkBlack.png differ diff --git a/FloatToolGUI/Resources/benchmarkWhite.png b/FloatToolGUI/Resources/benchmarkWhite.png new file mode 100644 index 0000000..bd3d5bd Binary files /dev/null and b/FloatToolGUI/Resources/benchmarkWhite.png differ diff --git a/FloatToolGUI/Resources/floattool.ico b/FloatToolGUI/Resources/floattool.ico new file mode 100644 index 0000000..5c5c73c Binary files /dev/null and b/FloatToolGUI/Resources/floattool.ico differ diff --git a/FloatToolGUI/Resources/gearBlack.png b/FloatToolGUI/Resources/gearBlack.png new file mode 100644 index 0000000..fb32656 Binary files /dev/null and b/FloatToolGUI/Resources/gearBlack.png differ diff --git a/FloatToolGUI/Resources/gearWhite.png b/FloatToolGUI/Resources/gearWhite.png new file mode 100644 index 0000000..dfcbf80 Binary files /dev/null and b/FloatToolGUI/Resources/gearWhite.png differ diff --git a/FloatToolGUI/github.png b/FloatToolGUI/Resources/github.png similarity index 100% rename from FloatToolGUI/github.png rename to FloatToolGUI/Resources/github.png diff --git a/FloatToolGUI/Resources/itemData.json b/FloatToolGUI/Resources/itemData.json new file mode 100644 index 0000000..d557cc0 --- /dev/null +++ b/FloatToolGUI/Resources/itemData.json @@ -0,0 +1,7355 @@ +[ + { + "name": "M4A1-S | Printstream", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Operation Broken Fang Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AWP | The Prince", + "rarity": "Covert Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "MAG-7 | Cinquedea", + "rarity": "Classified Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Stained Glass", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Red Filigree", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Baroque Orange", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Baroque Red", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Emerald", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Orange Filigree", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | Violet Murano", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AK-47 | Baroque Purple", + "rarity": "Industrial Grade Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Candy Apple", + "rarity": "Industrial Grade Rifle", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Orange Murano", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Dark Filigree", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Canals Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Indigo", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Canals Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Stone Mosaico", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.50", + "case": "The Canals Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Navy Murano", + "rarity": "Consumer Grade Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Canals Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Negev | Boroque Sand", + "rarity": "Consumer Grade Machine Gun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Canals Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AWP | Containment Breach", + "rarity": "Covert Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Shattered Web Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "MAC-10 | Stalker", + "rarity": "Covert SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Shattered Web Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "SSG 08 | Bloodshot", + "rarity": "Classified Sniper Rifle", + "minWear": "0.14", + "maxWear": "0.60", + "case": "The Shattered Web Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Colony IV", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Shattered Web Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Decimator", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.75", + "case": "The Shattered Web Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AK-47 | Rat Rod", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Shattered Web Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Arctic Wolf", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The Shattered Web Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Neon Ply", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Shattered Web Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Obsidian", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Shattered Web Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Embargo", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Shattered Web Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Balance", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Shattered Web Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP5-SD | Acid Wash", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.68", + "case": "The Shattered Web Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Torn", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.45", + "case": "The Shattered Web Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "R8 Revolver | Momento", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Shattered Web Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "G3SG1 | Black Sand", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Shattered Web Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M249 | Warbird", + "rarity": "Mil-Spec Machine Gun", + "minWear": "0.05", + "maxWear": "0.65", + "case": "The Shattered Web Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Plume", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Shattered Web Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AWP | Wildfire", + "rarity": "Covert Sniper Rifle", + "minWear": "0.01", + "maxWear": "0.70", + "case": "The CS20 Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "FAMAS | Commemoration", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The CS20 Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "MP9 | Hydra", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The CS20 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Death by Puppy", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The CS20 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Nostalgia", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "0.57", + "case": "The CS20 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP5-SD | Agent", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The CS20 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Inferno", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.68", + "case": "The CS20 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Plastique", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The CS20 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Buddy", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.55", + "case": "The CS20 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M249 | Aztec", + "rarity": "Restricted Machine Gun", + "minWear": "0.00", + "maxWear": "0.75", + "case": "The CS20 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Sacrifice", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The CS20 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "FAMAS | Decommissioned", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The CS20 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAC-10 | Classic Crate", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The CS20 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Popdog", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The CS20 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Flash Out", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The CS20 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Elite 1.6", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The CS20 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Assault", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.62", + "case": "The CS20 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-Seven | Angry Mob", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The Prisma Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | The Emperor", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Prisma Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "XM1014 | Incinegator", + "rarity": "Classified Shotgun", + "minWear": "0.14", + "maxWear": "0.65", + "case": "The Prisma Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "R8 Revolver | Skull Crusher", + "rarity": "Classified Pistol", + "minWear": "0.25", + "maxWear": "0.80", + "case": "The Prisma Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Momentum", + "rarity": "Classified Rifle", + "minWear": "0.05", + "maxWear": "1.00", + "case": "The Prisma Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | Atheris", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Prisma Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Bamboozle", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Prisma Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Light Rail", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.90", + "case": "The Prisma Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP5-SD | Gauss", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Prisma Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Moonrise", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Prisma Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Crypsis", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.55", + "case": "The Prisma Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | Uncharted", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.75", + "case": "The Prisma Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAC-10 | Whitefish", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Prisma Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Mischief", + "rarity": "Mil-Spec SMG", + "minWear": "0.10", + "maxWear": "1.00", + "case": "The Prisma Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P250 | Verdigris", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The Prisma Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP5-SD | Lab Rats", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.35", + "case": "The Blacksite Collection", + "lowestRarity": true, + "highestRarity": true + }, + { + "name": "AK-47 | Asiimov", + "rarity": "Covert Rifle", + "minWear": "0.05", + "maxWear": "0.70", + "case": "Danger Zone Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AWP | Neo-Noir", + "rarity": "Covert Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Danger Zone Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "MP5-SD | Phosphor", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Danger Zone Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Mecha Industries", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Danger Zone Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Momentum", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Danger Zone Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Pipe Down", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.90", + "case": "Danger Zone Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Flashback", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Danger Zone Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Nevermore", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "Danger Zone Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Signal", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Danger Zone Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | Scavenger", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.65", + "case": "Danger Zone Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Magnesium", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Danger Zone Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Fubar", + "rarity": "Mil-Spec Pistol", + "minWear": "0.14", + "maxWear": "1.00", + "case": "Danger Zone Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Glock-18 | Oxide Blaze", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.85", + "case": "Danger Zone Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SG 553 | Danger Close", + "rarity": "Mil-Spec Rifle", + "minWear": "0.02", + "maxWear": "0.80", + "case": "Danger Zone Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP9 | Modest Threat", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.75", + "case": "Danger Zone Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Sawed-Off | Black Sand", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.90", + "case": "Danger Zone Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Wood Fired", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.75", + "case": "Danger Zone Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | Neon Rider", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Horizon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Desert Eagle | Code Red", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Horizon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A1-S | Nightmare", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Horizon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Devourer", + "rarity": "Classified Shotgun", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Horizon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Eye of Athena", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Horizon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | PAW", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Horizon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Eco", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Horizon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | High Seas", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Horizon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Toy Soldier", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Horizon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Powercore", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Horizon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Warhawk", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Horizon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P90 | Traction", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Horizon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Amber Slipstream", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.55", + "case": "Horizon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Snek-9", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Horizon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP9 | Capillary", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Horizon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "R8 Revolver | Survivalist", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Horizon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Shred", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Horizon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A4 | Neo-Noir", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.90", + "case": "Clutch Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "MP7 | Bloodsport", + "rarity": "Covert SMG", + "minWear": "0.00", + "maxWear": "0.65", + "case": "Clutch Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "USP-S | Cortex", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Clutch Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | Mortis", + "rarity": "Classified Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.64", + "case": "Clutch Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Stymphalian", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.63", + "case": "Clutch Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Moonrise", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.65", + "case": "Clutch Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Arctic Wolf", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Clutch Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAG-7 | SWAG-7", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.92", + "case": "Clutch Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Wild Six", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Clutch Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Negev | Lionfish", + "rarity": "Restricted Machine Gun", + "minWear": "0.00", + "maxWear": "0.55", + "case": "Clutch Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Aloha", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.55", + "case": "Clutch Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Flame Test", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.65", + "case": "Clutch Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "R8 Revolver | Grip", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Clutch Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P2000 | Urban Hazard", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Clutch Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP9 | Black Sand", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Clutch Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "XM1014 | Oxide Blaze", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Clutch Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Night Riot", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Clutch Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | The Empress", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Spectrum 2 Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P250 | See Ya Later", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Spectrum 2 Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A1-S | Leaded Glass", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Spectrum 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "R8 Revolver | Llama Cannon", + "rarity": "Classified Pistol", + "minWear": "0.03", + "maxWear": "0.70", + "case": "Spectrum 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | High Roller", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Spectrum 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Tacticat", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Spectrum 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Phantom", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Spectrum 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Exposure", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.55", + "case": "Spectrum 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Ziggy", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.72", + "case": "Spectrum 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Goo", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Spectrum 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Off World", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Spectrum 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Triqua", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Spectrum 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Cracked Opal", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Spectrum 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAC-10 | Oceanic", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Spectrum 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "G3SG1 | Hunter", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Spectrum 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Sawed-Off | Morris", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Spectrum 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Jungle Slipstream", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Spectrum 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A1-S | Mecha Industries", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Gamma Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Glock-18 | Wasteland Rebel", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "0.54", + "case": "Gamma Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | Desolate Space", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SCAR-20 | Bloodsport", + "rarity": "Classified Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Gamma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Imperial Dragon", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.63", + "case": "Gamma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | Phobos", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.40", + "case": "Gamma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Aristocrat", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.66", + "case": "Gamma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "R8 Revolver | Reboot", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Chopper", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Gamma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Limelight", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Violent Daimyo", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Gamma Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SG 553 | Aerial", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Gamma Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P250 | Iron Clad", + "rarity": "Mil-Spec Pistol", + "minWear": "0.05", + "maxWear": "0.80", + "case": "Gamma Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Ice Cap", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Gamma Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAC-10 | Carnivore", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Exo", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Gamma Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Harvester", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | Neon Revolution", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Gamma 2 Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "FAMAS | Roll Cage", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma 2 Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AUG | Syd Mead", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Gamma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Airlock", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Fuel Injector", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Directive", + "rarity": "Restricted Pistol", + "minWear": "0.06", + "maxWear": "1.00", + "case": "Gamma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Weasel", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Triarch", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SCAR-20 | Powercore", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAG-7 | Petroglyph", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.44", + "case": "Gamma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Grim", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Gamma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "UMP-45 | Briefing", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Imprint", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Negev | Dazzle", + "rarity": "Mil-Spec Machine Gun", + "minWear": "0.10", + "maxWear": "0.65", + "case": "Gamma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Scumbria", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Gamma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "XM1014 | Slipstream", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Gamma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "G3SG1 | Ventilator", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Gamma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A4 | Buzz Kill", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Glove Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "SSG 08 | Dragonfire", + "rarity": "Covert Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Glove Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P90 | Shallow Grave", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "0.75", + "case": "Glove Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Mecha Industries", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Glove Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Wasteland Princess", + "rarity": "Classified Shotgun", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Glove Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Cyrex", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.55", + "case": "Glove Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | Flashback", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Glove Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Royal Consorts", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Glove Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Gila", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.30", + "case": "Glove Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | Stinger", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Glove Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Ironwork", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Glove Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Cirrus", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.75", + "case": "Glove Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P2000 | Turf", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Glove Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Galil AR | Black Sand", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Glove Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Polymer", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Glove Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Sonar", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Glove Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP9 | Sand Scale", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Glove Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | Bloodsport", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Spectrum Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "USP-S | Neo-Noir", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Spectrum Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AWP | Fever Dream", + "rarity": "Classified Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.55", + "case": "Spectrum Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | Decimator", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.85", + "case": "Spectrum Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Xiangliu", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.56", + "case": "Spectrum Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Scaffold", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Spectrum Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Seasons", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Spectrum Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M249 | Emerald Poison Dart", + "rarity": "Restricted Machine Gun", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Spectrum Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Crimson Tsunami", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.55", + "case": "Spectrum Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Last Dive", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.52", + "case": "Spectrum Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Oxide Blaze", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Spectrum Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Capillary", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Spectrum Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P250 | Ripple", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Spectrum Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Sawed-Off | Zander", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.05", + "maxWear": "1.00", + "case": "Spectrum Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Blueprint", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.75", + "case": "Spectrum Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Jungle Slipstream", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Spectrum Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Akoben", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Spectrum Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AWP | Lightning Strike", + "rarity": "Covert Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.08", + "case": "CS:GO Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AK-47 | Case Hardened", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "CS:GO Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Hypnotic", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "CS:GO Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Dragon Tattoo", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "CS:GO Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Dark Water", + "rarity": "Restricted Pistol", + "minWear": "0.10", + "maxWear": "0.26", + "case": "CS:GO Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | Dark Water", + "rarity": "Restricted Rifle", + "minWear": "0.10", + "maxWear": "0.26", + "case": "CS:GO Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Ultraviolet", + "rarity": "Mil-Spec Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "CS:GO Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Wings", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.14", + "case": "CS:GO Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Skulls", + "rarity": "Mil-Spec SMG", + "minWear": "0.10", + "maxWear": "0.26", + "case": "CS:GO Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SSG 08 | Blood in the Water", + "rarity": "Covert Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.20", + "case": "CS:GO Weapon Case 2", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P90 | Cold Blooded", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "0.08", + "case": "CS:GO Weapon Case 2", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Serum", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.25", + "case": "CS:GO Weapon Case 2", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Case Hardened", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "CS:GO Weapon Case 2", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Hypnotic", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.08", + "case": "CS:GO Weapon Case 2", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Hemoglobin", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.20", + "case": "CS:GO Weapon Case 2", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Graphite", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.12", + "case": "CS:GO Weapon Case 2", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SCAR-20 | Crimson Web", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "CS:GO Weapon Case 2", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A1-S | Blood Tiger", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.30", + "case": "CS:GO Weapon Case 2", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "FAMAS | Hexane", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.40", + "case": "CS:GO Weapon Case 2", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P250 | Hive", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.30", + "case": "CS:GO Weapon Case 2", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Blue Titanium", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.04", + "case": "CS:GO Weapon Case 2", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Victoria", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "0.75", + "case": "CS:GO Weapon Case 3", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "CZ75-Auto | The Fuschia Is Now", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "CS:GO Weapon Case 3", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Undertow", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.20", + "case": "CS:GO Weapon Case 3", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Heirloom", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "CS:GO Weapon Case 3", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Copper Galaxy", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.20", + "case": "CS:GO Weapon Case 3", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Tread Plate", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.20", + "case": "CS:GO Weapon Case 3", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Titanium Bit", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.20", + "case": "CS:GO Weapon Case 3", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Crimson Web", + "rarity": "Mil-Spec Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "CS:GO Weapon Case 3", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "USP-S | Stainless", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "CS:GO Weapon Case 3", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Glock-18 | Blue Fissure", + "rarity": "Mil-Spec Pistol", + "minWear": "0.06", + "maxWear": "0.58", + "case": "CS:GO Weapon Case 3", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Panther", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.58", + "case": "CS:GO Weapon Case 3", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P2000 | Red FragCam", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "CS:GO Weapon Case 3", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Galil AR | Chatterbox", + "rarity": "Covert Rifle", + "minWear": "0.35", + "maxWear": "0.85", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AWP | Man-o'-war", + "rarity": "Covert Sniper Rifle", + "minWear": "0.10", + "maxWear": "0.20", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | 龍王 (Dragon King)", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.75", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AK-47 | Cartel", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.75", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Muertos", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Naga", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Serenity", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Malachite", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Urban Shock", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.47", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Catacombs", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Deadly Poison", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M249 | System Lock", + "rarity": "Mil-Spec Machine Gun", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Quicksilver", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SCAR-20 | Grotto", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Chroma Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | Hyper Beast", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Chroma 2 Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "MAC-10 | Neon Rider", + "rarity": "Covert SMG", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Chroma 2 Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Five-SeveN | Monkey Business", + "rarity": "Classified Pistol", + "minWear": "0.10", + "maxWear": "0.90", + "case": "Chroma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Djinn", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Chroma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Eco", + "rarity": "Classified Rifle", + "minWear": "0.10", + "maxWear": "0.85", + "case": "Chroma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | Worm God", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Chroma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAG-7 | Heat", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Chroma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Pole Position", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Chroma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Grand Prix", + "rarity": "Restricted SMG", + "minWear": "0.25", + "maxWear": "0.35", + "case": "Chroma 2 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AK-47 | Elite Build", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Chroma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Desert Eagle | Bronze Deco", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.46", + "case": "Chroma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P250 | Valence", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Chroma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Sawed-Off | Origami", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.55", + "case": "Chroma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Armor Core", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Chroma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Negev | Man-o'-war", + "rarity": "Mil-Spec Machine Gun", + "minWear": "0.10", + "maxWear": "0.20", + "case": "Chroma 2 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A1-S | Chantico's Fire", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.99", + "case": "Chroma 3 Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "PP-Bizon | Judgement of Anubis", + "rarity": "Covert SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Chroma 3 Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P250 | Asiimov", + "rarity": "Classified Pistol", + "minWear": "0.10", + "maxWear": "1.00", + "case": "Chroma 3 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Primal Saber", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "0.77", + "case": "Chroma 3 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Fleet Flock", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Chroma 3 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Ghost Crusader", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Chroma 3 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Red Astor", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Chroma 3 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Black Tie", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.75", + "case": "Chroma 3 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Firefight", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Chroma 3 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Re-Entry", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.43", + "case": "Chroma 3 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Atlas", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.81", + "case": "Chroma 3 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP9 | Bioleak", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Chroma 3 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P2000 | Oceanic", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Chroma 3 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Ventilators", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Chroma 3 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M249 | Spectre", + "rarity": "Mil-Spec Machine Gun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Chroma 3 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "G3SG1 | Orange Crash", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.52", + "case": "Chroma 3 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Sawed-Off | Fubar", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.40", + "maxWear": "1.00", + "case": "Chroma 3 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P90 | Death by Kitty", + "rarity": "Covert SMG", + "minWear": "0.08", + "maxWear": "0.32", + "case": "eSports 2013 Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AK-47 | Red Laminate", + "rarity": "Classified Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "eSports 2013 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | BOOM", + "rarity": "Classified Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.28", + "case": "eSports 2013 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Orange DDPAT", + "rarity": "Restricted Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "eSports 2013 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Orange DDPAT", + "rarity": "Restricted Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "eSports 2013 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Splash", + "rarity": "Restricted Pistol", + "minWear": "0.06", + "maxWear": "0.18", + "case": "eSports 2013 Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Faded Zebra", + "rarity": "Mil-Spec Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "eSports 2013 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Memento", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.02", + "maxWear": "0.18", + "case": "eSports 2013 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "FAMAS | Doomkitty", + "rarity": "Mil-Spec Rifle", + "minWear": "0.08", + "maxWear": "0.22", + "case": "eSports 2013 Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A4 | X-Ray", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.30", + "case": "eSports 2013 Winter Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AWP | Electric Hive", + "rarity": "Classified Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.40", + "case": "eSports 2013 Winter Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Cobalt Disruption", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.20", + "case": "eSports 2013 Winter Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Afterimage", + "rarity": "Classified Rifle", + "minWear": "0.02", + "maxWear": "0.40", + "case": "eSports 2013 Winter Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AK-47 | Blue Laminate", + "rarity": "Restricted Rifle", + "minWear": "0.02", + "maxWear": "0.40", + "case": "eSports 2013 Winter Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Blind Spot", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "eSports 2013 Winter Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Ghost Camo", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.40", + "case": "eSports 2013 Winter Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Galil AR | Blue Titanium", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.04", + "case": "eSports 2013 Winter Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P250 | Steel Disruption", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.20", + "case": "eSports 2013 Winter Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Nightshade", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "eSports 2013 Winter Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Water Sigil", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "eSports 2013 Winter Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "G3SG1 | Azure Zebra", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.28", + "case": "eSports 2013 Winter Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | Jaguar", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | Bullet Rain", + "rarity": "Covert Rifle", + "minWear": "0.02", + "maxWear": "0.46", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AWP | Corticera", + "rarity": "Classified Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.30", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Bengal Tiger", + "rarity": "Classified Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Bloomstick", + "rarity": "Classified Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Corticera", + "rarity": "Classified Pistol", + "minWear": "0.06", + "maxWear": "0.30", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Crimson Web", + "rarity": "Restricted Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Blue Streak", + "rarity": "Restricted SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Virus", + "rarity": "Restricted SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Ocean Foam", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.08", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Steel Disruption", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.20", + "case": "eSports 2014 Summer Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Ultraviolet", + "rarity": "Mil-Spec SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "eSports 2014 Summer Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "USP-S | Blood Tiger", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.30", + "case": "eSports 2014 Summer Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Negev | Bratatat", + "rarity": "Mil-Spec Machine Gun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "eSports 2014 Summer Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Hexane", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "eSports 2014 Summer Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SSG 08 | Dark Water", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.10", + "maxWear": "0.26", + "case": "eSports 2014 Summer Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "XM1014 | Red Python", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.08", + "maxWear": "0.50", + "case": "eSports 2014 Summer Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AWP | Hyper Beast", + "rarity": "Covert Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Falchion Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AK-47 | Aquamarine Revenge", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Falchion Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "SG 553 | Cyrex", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Falchion Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Nemesis", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "0.32", + "case": "Falchion Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Yellow Jacket", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Falchion Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Evil Daimyo", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.52", + "case": "Falchion Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Negev | Loudmouth", + "rarity": "Restricted Machine Gun", + "minWear": "0.14", + "maxWear": "0.65", + "case": "Falchion Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Handgun", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Falchion Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Neural Net", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Falchion Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Ruby Poison Dart", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Falchion Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Torque", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.46", + "case": "Falchion Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Galil AR | Rocket Pop", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Falchion Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Glock-18 | Bunsen Burner", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Falchion Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P90 | Elite Build", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Falchion Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "UMP-45 | Riot", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Falchion Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Ranger", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Falchion Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A4 | Howl", + "rarity": "Contraband Rifle", + "minWear": "0.00", + "maxWear": "0.40", + "case": "", + "lowestRarity": true, + "highestRarity": true + }, + { + "name": "USP-S | Orion", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Huntsman Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Curse", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Huntsman Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Poison Dart", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The Huntsman Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Retribution", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.45", + "case": "The Huntsman Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Desert Warfare", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Huntsman Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Desert-Strike", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Huntsman Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AK-47 | Vulcan", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.90", + "case": "Huntsman Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "USP-S | Caiman", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "Huntsman Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | Atomic Alloy", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.90", + "case": "Huntsman Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SCAR-20 | Cyrex", + "rarity": "Classified Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Huntsman Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Tatter", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Huntsman Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Torque", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Huntsman Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Heaven Guard", + "rarity": "Restricted Shotgun", + "minWear": "0.03", + "maxWear": "0.50", + "case": "Huntsman Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Antique", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Huntsman Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Module", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.35", + "case": "Huntsman Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Twist", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Huntsman Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P2000 | Pulse", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Huntsman Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Isaac", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Huntsman Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SSG 08 | Slashed", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.15", + "maxWear": "0.80", + "case": "Huntsman Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Galil AR | Kami", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Huntsman Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | Fire Serpent", + "rarity": "Covert Rifle", + "minWear": "0.06", + "maxWear": "0.76", + "case": "Operation Bravo Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Desert Eagle | Golden Koi", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "0.12", + "case": "Operation Bravo Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P90 | Emerald Dragon", + "rarity": "Classified SMG", + "minWear": "0.06", + "maxWear": "0.52", + "case": "Operation Bravo Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Ocean Foam", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.12", + "case": "Operation Bravo Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | Graphite", + "rarity": "Classified Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.12", + "case": "Operation Bravo Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Overgrowth", + "rarity": "Restricted Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "Operation Bravo Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Zirka", + "rarity": "Restricted Rifle", + "minWear": "0.06", + "maxWear": "0.42", + "case": "Operation Bravo Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Graven", + "rarity": "Restricted SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "Operation Bravo Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | Bright Water", + "rarity": "Restricted Rifle", + "minWear": "0.10", + "maxWear": "0.22", + "case": "Operation Bravo Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Shattered", + "rarity": "Mil-Spec Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "Operation Bravo Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "UMP-45 | Bone Pile", + "rarity": "Mil-Spec SMG", + "minWear": "0.06", + "maxWear": "0.34", + "case": "Operation Bravo Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Tempest", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.06", + "maxWear": "0.22", + "case": "Operation Bravo Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Black Limba", + "rarity": "Mil-Spec Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "Operation Bravo Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SG 553 | Wave Spray", + "rarity": "Mil-Spec Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "Operation Bravo Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "G3SG1 | Demeter", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "Operation Bravo Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P90 | Asiimov", + "rarity": "Covert SMG", + "minWear": "0.00", + "maxWear": "0.92", + "case": "Operation Breakout Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A1-S | Cyrex", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Operation Breakout Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Glock-18 | Water Elemental", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Operation Breakout Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Conspiracy", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.30", + "case": "Operation Breakout Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Fowl Play", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Breakout Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Tigris", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Breakout Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Supernova", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "Operation Breakout Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Koi", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.30", + "case": "Operation Breakout Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Osiris", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Operation Breakout Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Abyss", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Breakout Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P2000 | Ivory", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Breakout Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "UMP-45 | Labyrinth", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.40", + "case": "Operation Breakout Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Urban Hazard", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Operation Breakout Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Negev | Desert-Strike", + "rarity": "Mil-Spec Machine Gun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Operation Breakout Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AWP | Oni Taiji", + "rarity": "Covert Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Operation Hydra Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Five-SeveN | Hyper Beast", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Hydra Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | Hellfire", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Operation Hydra Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Sugar Rush", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.55", + "case": "Operation Hydra Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Cobra Strike", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Operation Hydra Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AK-47 | Orbit Mk01", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.55", + "case": "Operation Hydra Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Death's Head", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.51", + "case": "Operation Hydra Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Death Grip", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Hydra Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Red Rock", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Hydra Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Woodsman", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Operation Hydra Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Blueprint", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.86", + "case": "Operation Hydra Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A1-S | Briefing", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Operation Hydra Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Hard Water", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Operation Hydra Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "UMP-45 | Metal Flowers", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Operation Hydra Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Cut Out", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Hydra Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "FAMAS | Macabre", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Operation Hydra Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAC-10 | Aloha", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.65", + "case": "Operation Hydra Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AWP | Asiimov", + "rarity": "Covert Sniper Rifle", + "minWear": "0.18", + "maxWear": "1.00", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AUG | Chameleon", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AK-47 | Redline", + "rarity": "Classified Rifle", + "minWear": "0.10", + "maxWear": "0.70", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Antique", + "rarity": "Classified Shotgun", + "minWear": "0.00", + "maxWear": "0.30", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Trigon", + "rarity": "Classified SMG", + "minWear": "0.08", + "maxWear": "0.75", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Guardian", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.38", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Pulse", + "rarity": "Restricted Rifle", + "minWear": "0.10", + "maxWear": "0.60", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Heat", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Sergeant", + "rarity": "Restricted Rifle", + "minWear": "0.10", + "maxWear": "1.00", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Corporal", + "rarity": "Mil-Spec SMG", + "minWear": "0.05", + "maxWear": "0.75", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Sandstorm", + "rarity": "Mil-Spec Pistol", + "minWear": "0.10", + "maxWear": "0.70", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Heaven Guard", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.40", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Negev | Terrain", + "rarity": "Mil-Spec Machine Gun", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Operation Phoenix Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | Wasteland Rebel", + "rarity": "Covert Rifle", + "minWear": "0.05", + "maxWear": "0.70", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P2000 | Fire Elemental", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P250 | Cartel", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.75", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Tranquility", + "rarity": "Classified Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SCAR-20 | Cardiac", + "rarity": "Classified Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Griffin", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | Basilisk", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.68", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Grinder", + "rarity": "Restricted Pistol", + "minWear": "0.02", + "maxWear": "0.25", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Highwayman", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAG-7 | Firestarter", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.06", + "maxWear": "0.49", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP9 | Dart", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.46", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "UMP-45 | Delusion", + "rarity": "Mil-Spec SMG", + "minWear": "0.06", + "maxWear": "0.35", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Urban Hazard", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.25", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "G3SG1 | Murky", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.25", + "case": "Operation Vanguard Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | Fuel Injector", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Wildfire Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | The Battlestar", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.64", + "case": "Operation Wildfire Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Desert Eagle | Kumicho Dragon", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.76", + "case": "Operation Wildfire Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Hyper Beast", + "rarity": "Classified Shotgun", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Operation Wildfire Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | Elite Build", + "rarity": "Classified Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Wildfire Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Royal Legion", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Wildfire Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Valence", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Operation Wildfire Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Triumvirate", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.61", + "case": "Operation Wildfire Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Impire", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.40", + "case": "Operation Wildfire Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAG-7 | Praetorian", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.45", + "case": "Operation Wildfire Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Lead Conduit", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Wildfire Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SSG 08 | Necropos", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Wildfire Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Photic Zone", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Wildfire Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Cartel", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Wildfire Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Jambiya", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Operation Wildfire Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAC-10 | Lapis Gator", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Operation Wildfire Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A4 | Royal Paladin", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "R8 Revolver | Fade", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "G3SG1 | The Executioner", + "rarity": "Classified Sniper Rifle", + "minWear": "0.14", + "maxWear": "0.85", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AK-47 | Point Disarray", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.67", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Shapewood", + "rarity": "Classified SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Negev | Power Loader", + "rarity": "Restricted Machine Gun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Tiger Moth", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Retrobution", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Teclu Burner", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.65", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Avalanche", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Fuel Rod", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Revolver Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Corinthian", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.44", + "case": "Revolver Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "R8 Revolver | Crimson Web", + "rarity": "Mil-Spec Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "Revolver Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Ricochet", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Revolver Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P2000 | Imperial", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.20", + "case": "Revolver Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Sawed-Off | Yorick", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Revolver Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Outbreak", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Revolver Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "USP-S | Kill Confirmed", + "rarity": "Covert Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Shadow Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A1-S | Golden Coil", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Shadow Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AK-47 | Frontside Misty", + "rarity": "Classified Rifle", + "minWear": "0.02", + "maxWear": "0.87", + "case": "Shadow Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | Flux", + "rarity": "Classified Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.90", + "case": "Shadow Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Big Iron", + "rarity": "Classified Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.64", + "case": "Shadow Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Wingshot", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.90", + "case": "Shadow Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Stone Cold", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.90", + "case": "Shadow Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M249 | Nebula Crusader", + "rarity": "Restricted Machine Gun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Shadow Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Special Delivery", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.62", + "case": "Shadow Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Wraiths", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Shadow Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Dualing Dragons", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Shadow Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "FAMAS | Survivor Z", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "Shadow Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAC-10 | Rangeen", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Shadow Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Cobalt Core", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Shadow Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Green Marine", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "Shadow Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "XM1014 | Scumbria", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Shadow Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A4 | Asiimov", + "rarity": "Covert Rifle", + "minWear": "0.18", + "maxWear": "1.00", + "case": "Winter Offensive Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Sawed-Off | The Kraken", + "rarity": "Covert Shotgun", + "minWear": "0.00", + "maxWear": "0.40", + "case": "Winter Offensive Weapon Case", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AWP | Redline", + "rarity": "Classified Sniper Rifle", + "minWear": "0.10", + "maxWear": "0.40", + "case": "Winter Offensive Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Mehndi", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "Winter Offensive Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | Guardian", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Winter Offensive Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Marina", + "rarity": "Restricted Pistol", + "minWear": "0.05", + "maxWear": "0.50", + "case": "Winter Offensive Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Rose Iron", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.30", + "case": "Winter Offensive Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Pulse", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.40", + "case": "Winter Offensive Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Rising Skull", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "Winter Offensive Weapon Case", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Sandstorm", + "rarity": "Mil-Spec Rifle", + "minWear": "0.10", + "maxWear": "0.60", + "case": "Winter Offensive Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Cobalt Halftone", + "rarity": "Mil-Spec SMG", + "minWear": "0.05", + "maxWear": "0.45", + "case": "Winter Offensive Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Kami", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.30", + "case": "Winter Offensive Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M249 | Magma", + "rarity": "Mil-Spec Machine Gun", + "minWear": "0.00", + "maxWear": "0.70", + "case": "Winter Offensive Weapon Case", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP5-SD | Lab Rats", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.35", + "case": "The Blacksite Collection", + "lowestRarity": true, + "highestRarity": true + }, + { + "name": "SG 553 | Integrale", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Dual Berettas | Twin Turbo", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AK-47 | Safety Net", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Fade", + "rarity": "Restricted SMG", + "minWear": "0.00", + "maxWear": "0.25", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Vino Primo", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Converter", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Check Engine", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Hand Brake", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Brake Light", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | High Beam", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "R8 Revolver | Nitro", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Calf Skin", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Candy Apple", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The 2018 Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP5-SD | Dirt Drop", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The 2018 Inferno Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP9 | Slide", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The 2018 Inferno Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Sweeper", + "rarity": "Consumer Grade Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The 2018 Inferno Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "UMP-45 | Mudder", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The 2018 Inferno Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Rust Coat", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The 2018 Inferno Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A1-S | Control Panel", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Tec-9 | Remote Control", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Glock-18 | Nuclear Garden", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Random Access", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAG-7 | Core Breach", + "rarity": "Restricted Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | Acheron", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.83", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP5-SD | Co-Processor", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Facility Negative", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Exchanger", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Mainframe", + "rarity": "Industrial Grade Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Cold Fusion", + "rarity": "Industrial Grade Rifle", + "minWear": "0.00", + "maxWear": "0.83", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Negev | Bulkhead", + "rarity": "Industrial Grade Machine Gun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Motherboard", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Facility Draft", + "rarity": "Consumer Grade Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Coolant", + "rarity": "Consumer Grade Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "UMP-45 | Facility Dark", + "rarity": "Consumer Grade SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Facility Sketch", + "rarity": "Consumer Grade SMG", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Mandrel", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The 2018 Nuke Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "FAMAS | Spitfire", + "rarity": "Restricted Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "SCAR-20 | Emerald", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Alpha Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "MAG-7 | Hazard", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Anodized Navy", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Alpha Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Rust Coat", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Alpha Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Facets", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Sand Dune", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Mayan Dreams", + "rarity": "Industrial Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Negev | Palm", + "rarity": "Industrial Grade Machine Gun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Mosaico", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Dry Season", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M249 | Jungle DDPAT", + "rarity": "Consumer Grade Machine Gun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Tornado", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Groundwater", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "XM1014 | Jungle", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Alpha Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Anodized Gunmetal", + "rarity": "Consumer Grade Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Alpha Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Glock-18 | Fade", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Assault Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "MP9 | Bulldozer", + "rarity": "Restricted SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Assault Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AUG | Hot Rod", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Assault Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Negev | Anodized Navy", + "rarity": "Mil-Spec Machine Gun", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Assault Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Candy Apple", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Assault Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Caramel", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Assault Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Tornado", + "rarity": "Consumer Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Assault Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Ossified", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Aztec Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | Jungle Tiger", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Aztec Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AK-47 | Jungle Spray", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Aztec Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Lichen Dashed", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Aztec Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Jungle", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Aztec Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Forest Leaves", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Aztec Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | Jet Set", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Baggage Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Desert Eagle | Pilot", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Baggage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AK-47 | First Class", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Baggage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | First Class", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Baggage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Business Class", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Baggage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Red Leather", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.56", + "case": "The Baggage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Traveler", + "rarity": "Industrial Grade Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Baggage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Commuter", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Baggage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Leather", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Baggage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Coach Class", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Baggage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Sand Dune", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Baggage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Olive Plaid", + "rarity": "Consumer Grade SMG", + "minWear": "0.00", + "maxWear": "0.58", + "case": "The Baggage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "G3SG1 | Contractor", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Baggage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Green Plaid", + "rarity": "Consumer Grade Pistol", + "minWear": "0.00", + "maxWear": "0.58", + "case": "The Baggage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP9 | Green Plaid", + "rarity": "Consumer Grade SMG", + "minWear": "0.00", + "maxWear": "0.58", + "case": "The Baggage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P250 | Franklin", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Bank Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AK-47 | Emerald Pinstripe", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Bank Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Meteorite", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.18", + "case": "The Bank Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Tuxedo", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Bank Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Tuxedo", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Bank Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Silver", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Bank Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Death Rattle", + "rarity": "Industrial Grade Pistol", + "minWear": "0.08", + "maxWear": "0.50", + "case": "The Bank Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Carbon Fiber", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "0.12", + "case": "The Bank Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | Green Apple", + "rarity": "Industrial Grade Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Bank Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Caged Steel", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.00", + "maxWear": "0.20", + "case": "The Bank Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "R8 Revolver | Bone Mask", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Bank Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Urban DDPAT", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Bank Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Sawed-Off | Forest DDPAT", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Bank Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Forest DDPAT", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Bank Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Negev | Army Sheen", + "rarity": "Consumer Grade Machine Gun", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Bank Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SG 553 | Army Sheen", + "rarity": "Consumer Grade Rifle", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Bank Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Galil AR | Cerberus", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.90", + "case": "The Cache Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "FAMAS | Styx", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Cache Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Glock-18 | Reactor", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Cache Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Setting Sun", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Cache Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Toxic", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The Cache Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Nuclear Garden", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The Cache Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Bone Machine", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Cache Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Radiation Hazard", + "rarity": "Industrial Grade Rifle", + "minWear": "0.00", + "maxWear": "0.55", + "case": "The Cache Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SG 553 | Fallout Warning", + "rarity": "Industrial Grade Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Cache Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Hot Shot", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Cache Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P250 | Contamination", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "0.83", + "case": "The Cache Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Chemical Green", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "0.90", + "case": "The Cache Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Negev | Nuclear Waste", + "rarity": "Industrial Grade Machine Gun", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Cache Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A1-S | Hot Rod", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Glock-18 | Twilight Galaxy", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.20", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "SG 553 | Bulldozer", + "rarity": "Restricted Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Duelist", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Whiteout", + "rarity": "Mil-Spec Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Fade", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Emerald", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Nitro", + "rarity": "Mil-Spec Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Full Stop", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Night", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Para Green", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Urban Rubble", + "rarity": "Industrial Grade Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Chop Shop Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M249 | Impact Drill", + "rarity": "Consumer Grade Machine Gun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Chop Shop Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Seabird", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Chop Shop Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Army Sheen", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Chop Shop Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Army Sheen", + "rarity": "Consumer Grade Pistol", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Chop Shop Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AWP | Dragon Lore", + "rarity": "Covert Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The Cobblestone Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A1-S | Knight", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.10", + "case": "The Cobblestone Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Hand Cannon", + "rarity": "Restricted Pistol", + "minWear": "0.01", + "maxWear": "0.70", + "case": "The Cobblestone Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Chalice", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.10", + "case": "The Cobblestone Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Dark Age", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.22", + "case": "The Cobblestone Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Chainmail", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.22", + "case": "The Cobblestone Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Royal Blue", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Cobblestone Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAG-7 | Silver", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Cobblestone Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Green Apple", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Cobblestone Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Rust Coat", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Cobblestone Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Indigo", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Cobblestone Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAC-10 | Indigo", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Cobblestone Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P90 | Storm", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Cobblestone Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Storm", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Cobblestone Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Briar", + "rarity": "Consumer Grade Pistol", + "minWear": "0.00", + "maxWear": "0.22", + "case": "The Cobblestone Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Desert Eagle | Blaze", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Dust Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Glock-18 | Brass", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Dust Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P2000 | Scorpion", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Dust Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AWP | Snake Camo", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Copper", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Dust Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Copperhead", + "rarity": "Mil-Spec Rifle", + "minWear": "0.12", + "maxWear": "0.38", + "case": "The Dust Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Desert Storm", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AK-47 | Predator", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Palm", + "rarity": "Industrial Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "R8 Revolver | Amber Fade", + "rarity": "Classified Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Dust 2 Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P2000 | Amber Fade", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Dust 2 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Damascus Steel", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Dust 2 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | VariCamo", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Dust 2 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Brass", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Dust 2 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AK-47 | Safari Mesh", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust 2 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Orange Peel", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust 2 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Palm", + "rarity": "Industrial Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust 2 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Snake Camo", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust 2 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | VariCamo", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Dust 2 Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Sand Dune", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust 2 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "G3SG1 | Desert Storm", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust 2 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP9 | Sand Dashed", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust 2 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P90 | Sand Spray", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust 2 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Predator", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust 2 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Sand Mesh", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Dust 2 Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AWP | Medusa", + "rarity": "Covert Sniper Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Gods and Monsters Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | Poseidon", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.33", + "case": "The Gods and Monsters Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | Chronos", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Gods and Monsters Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | Icarus Fell", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.10", + "case": "The Gods and Monsters Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Minotaur's Labyrinth", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.39", + "case": "The Gods and Monsters Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Pandora's Box", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Gods and Monsters Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | Sun in Leo", + "rarity": "Industrial Grade Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Gods and Monsters Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Pathfinder", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "0.35", + "case": "The Gods and Monsters Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Hades", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Gods and Monsters Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M249 | Shipping Forecast", + "rarity": "Industrial Grade Machine Gun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Gods and Monsters Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Moon in Libra", + "rarity": "Consumer Grade Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Gods and Monsters Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Moon in Libra", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Gods and Monsters Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Daedalus", + "rarity": "Consumer Grade Rifle", + "minWear": "0.00", + "maxWear": "0.55", + "case": "The Gods and Monsters Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Asterion", + "rarity": "Consumer Grade SMG", + "minWear": "0.00", + "maxWear": "0.55", + "case": "The Gods and Monsters Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Brass", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Inferno Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Dual Berettas | Anodized Navy", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Inferno Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | Tornado", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Gunsmoke", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Inferno Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Walnut", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Inferno Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Sand Dune", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Inferno Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AWP | Pit Viper", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.08", + "maxWear": "0.50", + "case": "The Italy Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "MP7 | Anodized Navy", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Italy Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Full Stop", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Italy Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Candy Apple", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Italy Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Candy Apple", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Italy Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A1-S | Boreal Forest", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Italy Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | CaliCamo", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Italy Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Gunsmoke", + "rarity": "Industrial Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Italy Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Dual Berettas | Stained", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Italy Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Granite Marbleized", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Italy Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Colony", + "rarity": "Consumer Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Italy Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Contractor", + "rarity": "Consumer Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Italy Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Sand Dashed", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Italy Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Sand Dune", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Italy Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Groundwater", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Italy Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Cobalt Quartz", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Lake Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "USP-S | Night Ops", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Lake Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Teardown", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Lake Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Anodized Navy", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Lake Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AWP | Safari Mesh", + "rarity": "Industrial Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Lake Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Mudder", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Lake Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Night Ops", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Lake Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Blue Steel", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Lake Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Cyanospatter", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Lake Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | Jungle Dashed", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Lake Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Galil AR | Sage Spray", + "rarity": "Consumer Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Lake Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Storm", + "rarity": "Consumer Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Lake Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SG 553 | Waves Perforated", + "rarity": "Consumer Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Lake Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P250 | Boreal Forest", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Lake Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "XM1014 | Blue Spruce", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Lake Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SCAR-20 | Splash Jam", + "rarity": "Classified Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | Modern Hunter", + "rarity": "Restricted Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Modern Hunter", + "rarity": "Mil-Spec Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Modern Hunter", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Nova | Blaze Orange", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Modern Hunter", + "rarity": "Mil-Spec SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Blaze Orange", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Grassland Leaves", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Tornado", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "XM1014 | Grassland", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Forest Leaves", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Militia Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Bulldozer", + "rarity": "Restricted Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Mirage Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "UMP-45 | Blaze", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Mirage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Hot Rod", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Mirage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Amber Fade", + "rarity": "Mil-Spec SMG", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Mirage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Groundwater", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Mirage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Tropical Storm", + "rarity": "Industrial Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Mirage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Orange Peel", + "rarity": "Industrial Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Mirage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SG 553 | Gator Mesh", + "rarity": "Industrial Grade Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Mirage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Negev | CaliCamo", + "rarity": "Industrial Grade Machine Gun", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Mirage Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | Safari Mesh", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Mirage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P90 | Scorched", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Mirage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Contractor", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Mirage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Colony", + "rarity": "Consumer Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Mirage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "P250 | Bone Mask", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Mirage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Galil AR | Hunting Blind", + "rarity": "Consumer Grade Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Mirage Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Nuclear Threat", + "rarity": "Restricted Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Nuke Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P250 | Nuclear Threat", + "rarity": "Restricted Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Nuke Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "M4A4 | Radiation Hazard", + "rarity": "Mil-Spec Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Fallout Warning", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "UMP-45 | Fallout Warning", + "rarity": "Industrial Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Fallout Warning", + "rarity": "Industrial Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Nuke Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAG-7 | Irradiated Alert", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Nuke Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Sawed-Off | Irradiated Alert", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Nuke Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Irradiated Alert", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Nuke Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Whiteout", + "rarity": "Mil-Spec SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Office Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "P2000 | Silver", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Office Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "G3SG1 | Arctic Camo", + "rarity": "Industrial Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Office Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M249 | Blizzard Marbleized", + "rarity": "Industrial Grade Machine Gun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Office Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Winter Forest", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Office Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Contrast Spray", + "rarity": "Consumer Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Office Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A1-S | Master Piece", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Overpass Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AWP | Pink DDPAT", + "rarity": "Restricted Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Road Rash", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Overpass Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "CZ75-Auto | Nitro", + "rarity": "Mil-Spec Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SSG 08 | Detour", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.43", + "case": "The Overpass Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | VariCamo Blue", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Overpass Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Glock-18 | Night", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Urban DDPAT", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP7 | Gunsmoke", + "rarity": "Industrial Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P2000 | Grassland", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Storm", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "UMP-45 | Scorched", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M249 | Contrast Spray", + "rarity": "Consumer Grade Machine Gun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAG-7 | Storm", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Sawed-Off | Sage Spray", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Overpass Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "AUG | Akihabara Accept", + "rarity": "Covert Rifle", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AK-47 | Hydroponic", + "rarity": "Classified Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Sunset Storm 弐", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.75", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Sunset Storm 壱", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.75", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Neon Kimono", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Daybreak", + "rarity": "Restricted Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Tec-9 | Terrace", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "1.00", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAG-7 | Counter Terrace", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.65", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | Aqua Terrace", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.70", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Desert Eagle | Midnight Storm", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "0.75", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Crimson Kimono", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Rising Sun Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Mint Kimono", + "rarity": "Consumer Grade Pistol", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Rising Sun Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "G3SG1 | Orange Kimono", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Rising Sun Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Bamboo Forest", + "rarity": "Consumer Grade Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Rising Sun Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Bamboo Print", + "rarity": "Consumer Grade SMG", + "minWear": "0.00", + "maxWear": "0.80", + "case": "The Rising Sun Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Sawed-Off | Bamboo Shadow", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Rising Sun Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "M4A1-S | Nitro", + "rarity": "Restricted Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Safehouse Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "SSG 08 | Acid Fade", + "rarity": "Mil-Spec Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.03", + "case": "The Safehouse Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "FAMAS | Teardown", + "rarity": "Mil-Spec Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Safehouse Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Five-SeveN | Silver Quartz", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Safehouse Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M249 | Gator Mesh", + "rarity": "Industrial Grade Machine Gun", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Safehouse Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "USP-S | Forest Leaves", + "rarity": "Industrial Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Safehouse Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "AUG | Condemned", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Safehouse Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Galil AR | VariCamo", + "rarity": "Industrial Grade Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Safehouse Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | VariCamo", + "rarity": "Industrial Grade Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Safehouse Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MP9 | Orange Peel", + "rarity": "Industrial Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Safehouse Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SCAR-20 | Contractor", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Safehouse Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Contractor", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Safehouse Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "SSG 08 | Blue Spruce", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Safehouse Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Army Mesh", + "rarity": "Consumer Grade Pistol", + "minWear": "0.00", + "maxWear": "0.60", + "case": "The Safehouse Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MP7 | Army Recon", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Safehouse Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Tec-9 | Red Quartz", + "rarity": "Restricted Pistol", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Train Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "Desert Eagle | Urban Rubble", + "rarity": "Mil-Spec Pistol", + "minWear": "0.00", + "maxWear": "0.50", + "case": "The Train Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "Sawed-Off | Amber Fade", + "rarity": "Mil-Spec Shotgun", + "minWear": "0.00", + "maxWear": "0.40", + "case": "The Train Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "M4A4 | Urban DDPAT", + "rarity": "Industrial Grade Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Train Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P250 | Metallic DDPAT", + "rarity": "Industrial Grade Pistol", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Train Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAC-10 | Candy Apple", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "0.30", + "case": "The Train Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "SCAR-20 | Carbon Fiber", + "rarity": "Industrial Grade Sniper Rifle", + "minWear": "0.00", + "maxWear": "0.12", + "case": "The Train Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "MAG-7 | Metallic DDPAT", + "rarity": "Industrial Grade Shotgun", + "minWear": "0.00", + "maxWear": "0.08", + "case": "The Train Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Ash Wood", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "0.45", + "case": "The Train Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "G3SG1 | Polar Camo", + "rarity": "Consumer Grade Sniper Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Train Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "UMP-45 | Urban DDPAT", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Train Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Five-SeveN | Forest Night", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Train Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Colony", + "rarity": "Consumer Grade Pistol", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Train Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Nova | Polar Mesh", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Train Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "PP-Bizon | Urban Dashed", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Train Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "Dual Berettas | Demolition", + "rarity": "Restricted Pistol", + "minWear": "0.26", + "maxWear": "0.60", + "case": "The Vertigo Collection", + "lowestRarity": false, + "highestRarity": true + }, + { + "name": "AK-47 | Black Laminate", + "rarity": "Mil-Spec Rifle", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Vertigo Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "P90 | Glacier Mesh", + "rarity": "Mil-Spec SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Vertigo Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "PP-Bizon | Carbon Fiber", + "rarity": "Industrial Grade SMG", + "minWear": "0.00", + "maxWear": "0.12", + "case": "The Vertigo Collection", + "lowestRarity": false, + "highestRarity": false + }, + { + "name": "XM1014 | Urban Perforated", + "rarity": "Consumer Grade Shotgun", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Vertigo Collection", + "lowestRarity": true, + "highestRarity": false + }, + { + "name": "MAC-10 | Urban DDPAT", + "rarity": "Consumer Grade SMG", + "minWear": "0.06", + "maxWear": "0.80", + "case": "The Vertigo Collection", + "lowestRarity": true, + "highestRarity": false + } +] diff --git a/FloatToolGUI/mutedBlack.png b/FloatToolGUI/Resources/mutedBlack.png similarity index 100% rename from FloatToolGUI/mutedBlack.png rename to FloatToolGUI/Resources/mutedBlack.png diff --git a/FloatToolGUI/mutedWhite.png b/FloatToolGUI/Resources/mutedWhite.png similarity index 100% rename from FloatToolGUI/mutedWhite.png rename to FloatToolGUI/Resources/mutedWhite.png diff --git a/FloatToolGUI/Resources/notification.wav b/FloatToolGUI/Resources/notification.wav new file mode 100644 index 0000000..d1de9d5 Binary files /dev/null and b/FloatToolGUI/Resources/notification.wav differ diff --git a/FloatToolGUI/Resources/strings.Designer.cs b/FloatToolGUI/Resources/strings.Designer.cs new file mode 100644 index 0000000..3588872 --- /dev/null +++ b/FloatToolGUI/Resources/strings.Designer.cs @@ -0,0 +1,99 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace FloatToolGUI.Resources { + using System; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом StronglyTypedResourceBuilder + // с помощью такого средства, как ResGen или Visual Studio. + // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen + // с параметром /str или перестройте свой проект VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class strings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal strings() { + } + + /// + /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FloatToolGUI.Resources.strings", typeof(strings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Перезаписывает свойство CurrentUICulture текущего потока для всех + /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Ищет локализованную строку, похожую на Коомбинация найдена!. + /// + public static string CombinationFound { + get { + return ResourceManager.GetString("CombinationFound", resourceCulture); + } + } + + /// + /// Ищет локализованную строку, похожую на Список флоатов. + /// + public static string FloatList { + get { + return ResourceManager.GetString("FloatList", resourceCulture); + } + } + + /// + /// Ищет локализованную строку, похожую на Возможный флоат. + /// + public static string PossibleFloat { + get { + return ResourceManager.GetString("PossibleFloat", resourceCulture); + } + } + + /// + /// Ищет локализованную строку, похожую на Проверочный флоат. + /// + public static string TestFloat { + get { + return ResourceManager.GetString("TestFloat", resourceCulture); + } + } + } +} diff --git a/FloatToolGUI/Resources/strings.en.resx b/FloatToolGUI/Resources/strings.en.resx new file mode 100644 index 0000000..4f6623e --- /dev/null +++ b/FloatToolGUI/Resources/strings.en.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Combination found! + + + Float list + + + Possible float + + + Test float + + \ No newline at end of file diff --git a/FloatToolGUI/Resources/strings.resx b/FloatToolGUI/Resources/strings.resx new file mode 100644 index 0000000..bab157a --- /dev/null +++ b/FloatToolGUI/Resources/strings.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Коомбинация найдена! + + + Список флоатов + + + Возможный флоат + + + Проверочный флоат + + \ No newline at end of file diff --git a/FloatToolGUI/unmutedBlack.png b/FloatToolGUI/Resources/unmutedBlack.png similarity index 100% rename from FloatToolGUI/unmutedBlack.png rename to FloatToolGUI/Resources/unmutedBlack.png diff --git a/FloatToolGUI/unmutedWhite.png b/FloatToolGUI/Resources/unmutedWhite.png similarity index 100% rename from FloatToolGUI/unmutedWhite.png rename to FloatToolGUI/Resources/unmutedWhite.png diff --git a/FloatToolGUI/SettingsForm.Designer.cs b/FloatToolGUI/SettingsForm.Designer.cs new file mode 100644 index 0000000..c3142b2 --- /dev/null +++ b/FloatToolGUI/SettingsForm.Designer.cs @@ -0,0 +1,281 @@ +namespace FloatToolGUI +{ + partial class SettingsForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm)); + this.panel3 = new System.Windows.Forms.Panel(); + this.closeBtn = new System.Windows.Forms.Button(); + this.label8 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.saveChangesBtn = new System.Windows.Forms.Button(); + this.resetChangesBtn = new System.Windows.Forms.Button(); + this.bufferSpeedNUP = new System.Windows.Forms.NumericUpDown(); + this.label4 = new System.Windows.Forms.Label(); + this.checkUpdatesToggle = new FloatToolGUI.CustomControls.CustomToggleSwitch(); + this.soundToggle = new FloatToolGUI.CustomControls.CustomToggleSwitch(); + this.darkModeToggle = new FloatToolGUI.CustomControls.CustomToggleSwitch(); + this.panel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bufferSpeedNUP)).BeginInit(); + this.SuspendLayout(); + // + // panel3 + // + this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(37)))), ((int)(((byte)(37)))), ((int)(((byte)(37))))); + this.panel3.Controls.Add(this.closeBtn); + this.panel3.Controls.Add(this.label8); + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(0, 0); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(390, 40); + this.panel3.TabIndex = 1; + this.panel3.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DragWindowMouseDown); + // + // closeBtn + // + this.closeBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.closeBtn.BackColor = System.Drawing.Color.Transparent; + this.closeBtn.FlatAppearance.BorderSize = 0; + this.closeBtn.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.closeBtn.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Black; + this.closeBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.closeBtn.Font = new System.Drawing.Font("Microsoft JhengHei Light", 16F); + this.closeBtn.ForeColor = System.Drawing.Color.White; + this.closeBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.closeBtn.Location = new System.Drawing.Point(350, 0); + this.closeBtn.Name = "closeBtn"; + this.closeBtn.Size = new System.Drawing.Size(40, 40); + this.closeBtn.TabIndex = 3; + this.closeBtn.Text = "X"; + this.closeBtn.UseVisualStyleBackColor = false; + this.closeBtn.Click += new System.EventHandler(this.CloseForm); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.BackColor = System.Drawing.Color.Transparent; + this.label8.Font = new System.Drawing.Font("Microsoft JhengHei Light", 22F); + this.label8.ForeColor = System.Drawing.Color.White; + this.label8.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.label8.Location = new System.Drawing.Point(1, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(167, 38); + this.label8.TabIndex = 0; + this.label8.Text = "Настройки"; + this.label8.MouseDown += new System.Windows.Forms.MouseEventHandler(this.DragWindowMouseDown); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft JhengHei Light", 14F); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(75, 52); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(122, 24); + this.label1.TabIndex = 3; + this.label1.Text = "Тёмная тема"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft JhengHei Light", 14F); + this.label2.ForeColor = System.Drawing.Color.White; + this.label2.Location = new System.Drawing.Point(75, 95); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(205, 24); + this.label2.TabIndex = 3; + this.label2.Text = "Звук при нахождении"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("Microsoft JhengHei Light", 14F); + this.label3.ForeColor = System.Drawing.Color.White; + this.label3.Location = new System.Drawing.Point(75, 137); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(214, 24); + this.label3.TabIndex = 3; + this.label3.Text = "Проверка обновлений"; + // + // saveChangesBtn + // + this.saveChangesBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.saveChangesBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.saveChangesBtn.Enabled = false; + this.saveChangesBtn.FlatAppearance.BorderSize = 0; + this.saveChangesBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.saveChangesBtn.Font = new System.Drawing.Font("Microsoft JhengHei Light", 14F); + this.saveChangesBtn.ForeColor = System.Drawing.Color.White; + this.saveChangesBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.saveChangesBtn.Location = new System.Drawing.Point(8, 250); + this.saveChangesBtn.Name = "saveChangesBtn"; + this.saveChangesBtn.Size = new System.Drawing.Size(185, 32); + this.saveChangesBtn.TabIndex = 4; + this.saveChangesBtn.Text = "Применить"; + this.saveChangesBtn.UseVisualStyleBackColor = false; + this.saveChangesBtn.Click += new System.EventHandler(this.saveChangesBtn_Click); + // + // resetChangesBtn + // + this.resetChangesBtn.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.resetChangesBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.resetChangesBtn.FlatAppearance.BorderSize = 0; + this.resetChangesBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.resetChangesBtn.Font = new System.Drawing.Font("Microsoft JhengHei Light", 14F); + this.resetChangesBtn.ForeColor = System.Drawing.Color.White; + this.resetChangesBtn.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.resetChangesBtn.Location = new System.Drawing.Point(199, 250); + this.resetChangesBtn.Name = "resetChangesBtn"; + this.resetChangesBtn.Size = new System.Drawing.Size(185, 32); + this.resetChangesBtn.TabIndex = 4; + this.resetChangesBtn.Text = "Отмена"; + this.resetChangesBtn.UseVisualStyleBackColor = false; + this.resetChangesBtn.Click += new System.EventHandler(this.resetChangesBtn_Click); + // + // bufferSpeedNUP + // + this.bufferSpeedNUP.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(24)))), ((int)(((byte)(24))))); + this.bufferSpeedNUP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.bufferSpeedNUP.Font = new System.Drawing.Font("Microsoft JhengHei Light", 14F); + this.bufferSpeedNUP.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.bufferSpeedNUP.Location = new System.Drawing.Point(12, 207); + this.bufferSpeedNUP.Maximum = new decimal(new int[] { + 5000, + 0, + 0, + 0}); + this.bufferSpeedNUP.Minimum = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.bufferSpeedNUP.Name = "bufferSpeedNUP"; + this.bufferSpeedNUP.Size = new System.Drawing.Size(366, 32); + this.bufferSpeedNUP.TabIndex = 5; + this.bufferSpeedNUP.Value = new decimal(new int[] { + 250, + 0, + 0, + 0}); + this.bufferSpeedNUP.ValueChanged += new System.EventHandler(this.bufferSpeedNUP_ValueChanged); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("Microsoft JhengHei Light", 14F); + this.label4.ForeColor = System.Drawing.Color.White; + this.label4.Location = new System.Drawing.Point(8, 180); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(320, 24); + this.label4.TabIndex = 3; + this.label4.Text = "Скорость обновления буфера (мс)"; + // + // checkUpdatesToggle + // + this.checkUpdatesToggle.Checked = true; + this.checkUpdatesToggle.ForeColor = System.Drawing.Color.White; + this.checkUpdatesToggle.Location = new System.Drawing.Point(8, 131); + this.checkUpdatesToggle.Name = "checkUpdatesToggle"; + this.checkUpdatesToggle.Size = new System.Drawing.Size(64, 36); + this.checkUpdatesToggle.TabIndex = 2; + this.checkUpdatesToggle.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.checkUpdatesToggle.TurnedOnColor = System.Drawing.Color.Green; + this.checkUpdatesToggle.OnToggled += new System.EventHandler(this.checkUpdatesToggle_OnToggled); + // + // soundToggle + // + this.soundToggle.Checked = true; + this.soundToggle.ForeColor = System.Drawing.Color.White; + this.soundToggle.Location = new System.Drawing.Point(8, 89); + this.soundToggle.Name = "soundToggle"; + this.soundToggle.Size = new System.Drawing.Size(64, 36); + this.soundToggle.TabIndex = 2; + this.soundToggle.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.soundToggle.TurnedOnColor = System.Drawing.Color.Green; + this.soundToggle.OnToggled += new System.EventHandler(this.soundToggle_OnToggled); + // + // darkModeToggle + // + this.darkModeToggle.Checked = true; + this.darkModeToggle.ForeColor = System.Drawing.Color.White; + this.darkModeToggle.Location = new System.Drawing.Point(8, 46); + this.darkModeToggle.Name = "darkModeToggle"; + this.darkModeToggle.Size = new System.Drawing.Size(64, 36); + this.darkModeToggle.TabIndex = 2; + this.darkModeToggle.TurnedOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(56)))), ((int)(((byte)(56))))); + this.darkModeToggle.TurnedOnColor = System.Drawing.Color.Green; + this.darkModeToggle.OnToggled += new System.EventHandler(this.darkModeToggle_OnToggled); + // + // SettingsForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(31)))), ((int)(((byte)(31)))), ((int)(((byte)(31))))); + this.ClientSize = new System.Drawing.Size(390, 294); + this.Controls.Add(this.bufferSpeedNUP); + this.Controls.Add(this.resetChangesBtn); + this.Controls.Add(this.saveChangesBtn); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.checkUpdatesToggle); + this.Controls.Add(this.soundToggle); + this.Controls.Add(this.label1); + this.Controls.Add(this.darkModeToggle); + this.Controls.Add(this.panel3); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "SettingsForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Настройки"; + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bufferSpeedNUP)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Button closeBtn; + private CustomControls.CustomToggleSwitch darkModeToggle; + private System.Windows.Forms.Label label1; + private CustomControls.CustomToggleSwitch soundToggle; + private System.Windows.Forms.Label label2; + private CustomControls.CustomToggleSwitch checkUpdatesToggle; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button saveChangesBtn; + private System.Windows.Forms.Button resetChangesBtn; + private System.Windows.Forms.NumericUpDown bufferSpeedNUP; + private System.Windows.Forms.Label label4; + } +} \ No newline at end of file diff --git a/FloatToolGUI/SettingsForm.cs b/FloatToolGUI/SettingsForm.cs new file mode 100644 index 0000000..4ea3f70 --- /dev/null +++ b/FloatToolGUI/SettingsForm.cs @@ -0,0 +1,128 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace FloatToolGUI +{ + public partial class SettingsForm : Form + { + RegistryKey registryData; + + public SettingsForm() + { + InitializeComponent(); + registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool"); + if (registryData == null) + { + registryData = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\FloatTool"); + registryData.SetValue("darkMode", true); + registryData.SetValue("sound", true); + registryData.SetValue("updateCheck", true); + registryData.SetValue("bufferSpeed", 250); + registryData.Close(); + } + else + { + darkModeToggle.Checked = Convert.ToBoolean(registryData.GetValue("darkMode")); + soundToggle.Checked = Convert.ToBoolean(registryData.GetValue("sound")); + checkUpdatesToggle.Checked = Convert.ToBoolean(registryData.GetValue("updateCheck")); + bufferSpeedNUP.Value = (int)registryData.GetValue("bufferSpeed"); + } + } + + private void CloseForm(object sender, EventArgs e) + { + Close(); + } + + public const int WM_NCLBUTTONDOWN = 0xA1; + public const int HT_CAPTION = 0x2; + + [System.Runtime.InteropServices.DllImport("user32.dll")] + public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + [System.Runtime.InteropServices.DllImport("user32.dll")] + public static extern bool ReleaseCapture(); + + + private void DragWindowMouseDown(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + ReleaseCapture(); + SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); + } + } + + private void darkModeToggle_OnToggled(object sender, EventArgs e) + { + saveChangesBtn.Enabled = true; + } + + private void soundToggle_OnToggled(object sender, EventArgs e) + { + saveChangesBtn.Enabled = true; + } + + private void checkUpdatesToggle_OnToggled(object sender, EventArgs e) + { + saveChangesBtn.Enabled = true; + } + + private void bufferSpeedNUP_ValueChanged(object sender, EventArgs e) + { + saveChangesBtn.Enabled = true; + } + + private void saveChangesBtn_Click(object sender, EventArgs e) + { + registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool", true); + if (registryData == null) + { + registryData = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\FloatTool"); + registryData.SetValue("darkMode", darkModeToggle.Checked); + registryData.SetValue("sound", soundToggle.Checked); + registryData.SetValue("updateCheck", checkUpdatesToggle.Checked); + registryData.SetValue("bufferSpeed", bufferSpeedNUP.Value); + registryData.Close(); + } + else + { + registryData.SetValue("darkMode", darkModeToggle.Checked); + registryData.SetValue("sound", soundToggle.Checked); + registryData.SetValue("updateCheck", checkUpdatesToggle.Checked); + registryData.SetValue("bufferSpeed", (int)bufferSpeedNUP.Value); + registryData.Close(); + } + saveChangesBtn.Enabled = false; + } + + private void resetChangesBtn_Click(object sender, EventArgs e) + { + registryData = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\FloatTool"); + if (registryData == null) + { + registryData = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\FloatTool"); + registryData.SetValue("darkMode", true); + registryData.SetValue("sound", true); + registryData.SetValue("updateCheck", true); + registryData.SetValue("bufferSpeed", 250); + registryData.Close(); + } + else + { + darkModeToggle.Checked = Convert.ToBoolean(registryData.GetValue("darkMode")); + soundToggle.Checked = Convert.ToBoolean(registryData.GetValue("sound")); + checkUpdatesToggle.Checked = Convert.ToBoolean(registryData.GetValue("updateCheck")); + bufferSpeedNUP.Value = (int)registryData.GetValue("bufferSpeed"); + } + saveChangesBtn.Enabled = false; + } + } +} diff --git a/FloatToolGUI/SettingsForm.resx b/FloatToolGUI/SettingsForm.resx new file mode 100644 index 0000000..d6bb1e0 --- /dev/null +++ b/FloatToolGUI/SettingsForm.resx @@ -0,0 +1,367 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAAAAAAAEAIACUOAAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAOFtJ + REFUeNrtnXeYnVW59u+13rp7nV4yKZPeCyGNJMRAgiFIFzCgR8ByRFDUTw8eBFHEo0gTARWUIi0CoUhA + JIQUk5BCyswkk5lMptc9u/e3fX9kAkRCSJmyZ8/6XddwkZm93/Ks9dzrWc9qBIyMI0fg0aWomGW3YZbT + jqkOG+a6nZgwcwrIvY9xY80m6xy301VqknM9olDo4PkiC88VmTiuUKY0T+aoVyDEJVLOxhHYeEpliRIi + UQqBUPCUgAKghMAAYBgGNAPQDB1p3UBK15HSdV01jIRmGNG0rocV3fCndN2X0LSOuKa3xDStJaQoLb60 + 0lYfT3S+5/MHW9JKzLjhan37/lpsCwSxOxTB9mAYe6MxWDkOUU1jhZthEGaCgYUDoAEYYzZhgceJuS4n + rijKh3XtexgpS9Zled6c4WZTaa4kjXAJfLmd50dYeK7YzHF5EqVOiVKLQInIE8JRQkAJATlBwRqnWSGM + nh/dMKAZBlTD0BTdSKV0PZrU9UBC0zqiqtYYVtS6gKLUdqRSh2pjiebVLe2+gKbFm5cuwOvtXfi3P4iN + /iAakilW+EwAhh4CIVAMA2PMJizN8WBpjhsr580CeeBx6YaSgrxxNuuoQlma6BGFyU5BGGvj+RIzR70S + 5cwiPeLg9DQcuz8qjg5AMwwoum4kNT0W07SuiKo2BBV1vy+d3tuSSFXsDUfqnmnt6DJWXaI8V1GNd7v8 + eKurGz8eXoKbDxyCzqoIE4Bso0SW0JRM4eI8Ly7I9eL6SWNBnl0jfWdYUdF4m3VikSzP8krCDJcgjLHy + fL6Jo2aBUHBk4By8NyuVZhhIGwYSmhaNKGprQFH3d6XSO5qSye17Q5Gqx5vb2oyVS9UHauvxVmc33vL5 + 4RF4dCsqqzxMAAYnk6xm1MWTuKooD5cX5uO8rbuwItfjXeR1TxhhNs3Nl6V5blGYaOf5AhPHiXxP6D7Y + nP10KpsBQNENxDUtGVbVFl86vac9mdpUG0tsebOj68CmFx8J/v0n9+CVtk4829qBUklEYyrNKhUTgMxm + tNmEg/EEri8pwKriQizcspN8rbigaLbLcVaZybQkTxbnukVhlJXjrAKlWe/wpyIIKV1HVNVC3el0dXsy + tbEunnh3Y3dg14ttnR2vzZqC51va8VxbJwolEa1MDJgAZApWjiKq6bgo14uvFBfg8l37cF1RftE8t3Pu + cIt5eYEkzneJQpmF4wSOkCHt8CdbGVXDQFTVkn5FqW1NJN8/FEu89a6v+4OXN63pfOLSG/BsSxv+9doT + kOZfirTBrMkEYAC4MMeDqmgMXystxG2L5+HcF193fakgd/Zoq/nCYlle4hHFkWaO8szpz1wMYqqW6kqn + q5sTyX/uj8beeKKhZdf+8xdGfrJ3Px6pb8JoiwXbwxFmNCYAfYuJUsQr38HFC6/EN8uKseyD3fxto8rG + T3PYVpSZTSvzJGmyledMPHP6PqmkimEgrKiR9lRqZ10ssWZ7ILT2vvqm2menTdD/3NCCm4aX4PJdFVBZ + VMAEoDcZJktoSKZw07BiPDhtAhas3+K8qrjgnHFWy5eLTfK5blHIkyhlTt9PFdYAkNR1dKfSjY2J5NsV + 4eiLD9Q1bNkwf1bsjgOH8NeWdngFHj42ivC5cMwEn80kqxmdaQXfG16K9x7+BV5++/3SqKKsurq48O5Z + TsfNZRbzVDvPW4+G+Yz+gycEDoF3FMrSjJFW86Xn53rmbQ+GaUU41l511UWxju4AtgTDKJUlhFQ2A5EJ + wCkwy2FDSFHx3RGleMfnx0ynfVxsd+VNy/Ny7plst68qkKVSmaM8s9TAQwiBmePEXEkaOcxkunCa0750 + Q0OzrSYWb93+598E/dv3YIM/iHKzCX4WEXzafswEHzPVZsHuSAy/GTcKP9xfS24bVTZ5jstx3UiL+bIc + SSxhYf7gqMwJXUdHMlVTE4s/974v8Lf7D289+NPyefhlbT3KTBLqE2wa8lEoMwEwymwCAFxckAsACCrq + lH+cNfWBa0sK1871uL5XbJJLREo/mg/PyEyOlo9MKcrMpvJzPK7bbywrfuuVWcvviqhqufH8H3BJ/pEy + zhMFZrChLgAenodhGFiZ54Xxz2cRUtSxr82a8ttrSwrfnON23lQoSwV8z4o5xuATA5FSlJrk4ed4XD+9 + sazkrZd+88j/hhV1mPG1K7Ei1wvlgnNhokO7DRySOQAewB8mjgEAXL7pXaxubitStu66+bxc773jbdYL + nAJvoyyxlz2VnBA4Bd5VbJIXj7NZzlvX2Mx9EAwdmu60JyrCESzL8WBHaGjOIxhyArDU4wIAXFlUgFfa + O+0yIatWFuQ+MMlhu8ojCk7m+NkLTwjcopBTYpLPn+qwz98aCEUeq28+fOOwYvW1Dh+m2axoTw+tacZD + Jv4pkkQAwDkeF2oTSW5/NLr0/kljVy/N9T4y0mKeIvX08RnZjQHAzHF0jNUy74t5OU+9NWf6ky3J5Owj + dcMJ46c3w8oNnXYx69+UALilrBgyR1G9fDFebmodefvoEXee43X9osxsniBTSpnjD01MHOXzJWnCcLP5 + wsUel2NnKFw9NZGMbOj242ynA/tjcSYAg5lRZhl+RcV1xQV4trnNnMNxq1bk5/x+vN16gY3nZeYCDEII + bDxvLTLJ54yzWRa+3x3w/6mptfbqonz9ve4AcgUBMT17tynJSgEgAG4dXgKJUlR9/0as2V059YflZb87 + y+X4QZ4k5bF+PuM/4QmBRxQLS83yivO97pLdocj+bQtn+19r68Bspx1V0eyMBrIuB1AkiTAAlJlN2BWK + WJ5+/Z3vXFNcsGa6w36ZnecFFu4zToRbEMyz3c4bvj6s6NU/Hm66elMwLI6zWWA8+ivYsjA3kFVvdEme + FzwhaLzoPLzU0DLh1lFl953lct6SI4luwlp9xklCe0YLik2mC5Z63UXbg6F95a0doedb2jDFZkNjFm1o + mhUCIFGKqoVnoz6RxAttnUIRpVd/MT/nkTFWywITx5J8jNPDxFGhQJZnjLKYF67z+ZtXt3fVfsHrxtWF + +XjH58+Kdxz0XYCRZhkpXcf+aAyNiWT+67Om3Lssz/vHMrOpnGOz+BhngAFAoATlVsu0C/Nzn1k9Y9Lt + B6Ixh5k/0m56hMG/HmxQRwAX53lBATT891exet+BOdcUFzw2xWG7wsr6+oxexspzcqEsLZxit43/IBDa + +/bZ07oeqW/CZJsVTYO4SzAoBYACuHfcKKR1Ay93+PiSWPy683O9D4+0mifzrK/P6CNESkmuJI4dZpbP + XdPe1bS6vat6ttOOc9zOQTuVeNB1AawcB+13t4MSgv2RqGvNzMl3n5frebjEJJcw12f0JQaOrCsYYTGP + W5GX89dnp0380b86u01uQcC6s6eDDsIKOKgigFJZQpeiYEk4io3+wKhvDS/9/Qyn4+s2FvIz+hkrz5kK + ZXnxfI+zYJ3Pvz1XkqKvtHfBznNI6YOnNg6aCOAshw2GYcC49lJs6A7Mu6606LmpDtvFJo7N4Wf0PwYA + G8/xs1yO6787YthTlZHohAOL5iCsahhpGjyTTAeFAFyY64GN49CYTOHhXRWXXlyY97fRVstMluVnDLQI + SJRiot269KrigufWtHcuNm76GtK6juk266B4h4zvAtxYWggCgtc6u/kRa1Z/a0mO575CWcpn1Y+RKZAj + E4fyCmRpyYuV1S3Pt3VWlltMmGCzoiaeYAJwutw+qgyKbuC51nbTs9Mn/WS+x32nVxRsrNVnZCIOgbcX + yPIXptqtkQfrm3dNtVuNmQ479kSiTABOld9PGIOgqmJDd8D+0KRxd5/tct7qEHiJOT8jk7HynKlAlhaf + 7bQbP6+p/2Cmw6bNcTqwPUOHCTNOAAiA56dOQHMqia2BkOe2MSPvnem0f8PKcxxzfsZgwMxxQr4sLZjv + dkq/O9SwZYLdqix2O7E5GGYC8HmsPWsKDsbi2BkI594ycthD0532VSaOI8z5GYMJmVIuT5bmzHTY7U80 + NG8abjGnv+B1Y4M/yATgeBAAa2dNQWU0hl2hSP63hpc8PNVpv0JmW3UxBikSpTRPFs+aYLe5nmxq3Vgs + y6klXldGiUDGCMDzUyfgYDyOXaFI/jfKSv4wxWG7hO3TxxjsiJSSHEmcOdZqcT/R2LKhQBZT810O/DtD + ugMZIQC/nzAGzakkdgZCud8aXvrwFIftEpE5PyO7RGDGGKvZ+YfDTe8Xm0zpGQ57RqwfGHABuH1UGYKq + iq2BkOeWkcMemuq0X8FafkY2ioBXEmeMs1msv6g5vKHcYlYmWi3YG4kNXQG4oaQQqmFgQ3fAftuYkfdO + d9pXsT4/I5tFIEeWZk132LmfHDi0cbTFrA0zyagdwMlCAyYAF+Z6QAjBc63tpocmjbt7ptP+DZbtZ2Q7 + EqU0RxJnz3LY03fV1m8plEQjRxTRmhqYA0kGZAHjWQ4brByHdf4gv3r6pJ/O87hus/Ecz5yfMRQgAPyK + ElvX5b/1q7srHyuWJAiUoH4ANhbpdwEYbpKh6joakyk8NW3Ctxd7Pb91CbyJOT9jqIlARyrtf7vTd+O3 + Z097iTz+PKwch6imZa8A2DgOEU2D8eWVeKSi+pLzc71/ypVEN3N+xlAVgaZEsnFNW+eqZbmeDdM2bANH + CfpzO4F+EwAKQPvt/2Lzy29iQ3dw7pcKcv9WYpLLmPMzhjo10fjuZ5pbrxpntRzwigIu2bmv3+7db0nA + e8eNwge7K/F+d2DUZYV5fy6zmMezomcwAKfA57tFceRTTa3vxHU9Ntpswu5+WkHYLwLwpTwv0rqBTd0B + 17eHl/5+vM26hB3PxWD0OOGR/QTK82TJ+t8V1e+WmiTVwfFo6YeRgT73wpFmGQWiiE3BML9m5uS757pd + P2TbeDEYn3bEsKoq73X5f3TNhxX32zkOPKUIqOrgFQCJEqR0A8at38Dj72z42nm5noddgsAy/gzGZzhj + Ryrd/Vp756ov5eeuHf7uJvT1kXZ9evWDi+ZgfzSGPeHonMsK814oMcklzPkZjBNTG4vv+2tjy2VlJtNB + v5LGL2ob+uxefZYDuCTPi7pEEpv9wfxrigseG2k1T2ZFy2B8Pg6Bz3PwfP6vag6/JXJcWiK0z2YK9kkE + UCSJGGaS8e9gWHh91pR757idN4k0604iZzD6zCljmqav9/lvu3LnvntMlIBSirimZ74AEBzZLtm48kL8 + qarmK8vyvH9k/X4G49T9qCOV9r3S1nHVHJfzX/OK8kFWv5H5AnDr8BIMM5vQnEhOWFVS+EqZ2VTOnJ/B + OD0ORGLbHqpruLRAlloqI1H8o6t3jyXv1RzAKJMMiVK83NZpuXVk2X1jbJYFhI33MxinjV3gix0Cz3+n + 8uC/LBzVk7qBpN57XYFe65gTALWJJF76xlfw87GjvjbWZr2YndTLYJwZEqWYZLf918MTx6x8ffY0BN57 + vlev32seenNZMcZaLWhOpqZeU1ywpsQkD2OhP4PRO9RE47sfqW+8KFcUG3cEw/hnd6BXrtsrXYB8UYCJ + cniupc38w/Ky3422Wuay0J/B6D3sPJdv4Tju2xXV7/CEGDFNg9oLLWyvCEBU01G9cik8BNfOdjlvNXHc + oDp2nMHIdHhCYOX5ccNN0u5vl5XU/HTUcNx3uGngBWCpx4VriwvwUkPLqBX5ub/Pl6Q8FvozGL2PmeMk + iaPDflVz+I1doUg8qqroVs5srcAZJQE5AIfjCdxRc5hbnue9pdgkj2XOz2D0DQTAcLN5/leKC67/49MP + 4GAvbCZ6Rh31RyeOQYlJxv5obOklhXmrc0TRwQSAwehbEWhOJJuebmq9MFcS92zyB/H39q7Tvt5pdwFc + /JGvrmnvtF9fVnx/mdk8gRUPg9H3WHjOIVJqumZ35T/MlOqdaQWnOzPgtAUgqRuoPO8ciAZWzXI6bpIp + m+zPYPQHHCEwc9yoMpO865rigpqFbide7fD1nwCMMpuwqqgAzze2Fn+pIPeBAlkqYKE/g9F/mDhO5CnJ + +0Hlwdc60ulUSyKFlHHqXnharXZtPIH7//hrrMjP+VqxSZ7MnJ/B6F96EoKLvlVWfMnzMyYjpDae9nVO + iak2Cy4uyEVIUcd+fVjx2lK2sy+DMWAiUB2N7fh1zeEVLkHoeLm9Cz5FOaVrnHIEsDsSw88OHsYir/v6 + fElizs9gDCAlJnnGxQW5Vz22dMEpOz9wihHALIcNlxfmIaioU64tKXyzSJYKmQAwGAMHAXAoFq+8v65x + uY3nmla3dqA9ffJCcEoRQFUkhh/tryVz3c6v50oic34GY4AxABSa5AnLcj1ffvBLy07J+Y8KyEkxyWrG + quJChFR1yrUlhWsLWeafwcgICIC6WKLq/rqGZVaea3qmuQ0B9eTOGDzpCGBfNI4fHajFHJfjuhxJZM7P + YGQIBoACWRp/Xq7n8gcXzTlp5wdOch7AMFnC94aXYqbTPm5JjudXLkFwMLMzGJmDQAkIIXnf27b71bOd + 9mh1NA7lJOYFnFQE0JBM4Wd3/QBz3c4v50gi29ufwchACmVp8gX53gsfnDQWsVtvPKnvfG4OwEQpri8p + RFzTSm8eOeyfw82mMUwAGIzMZH8kuvHmfQcuzJOk0Oudvs9dI/C5XQClej2WV1QjqiirJtttXxEoZVv9 + MBgZCAEgUpovc3TXF/NyDiiahn3R2Am/87ldgIvnX4oF67c4yy2WL5s4jrDWn8HITAwANoGXxtusVy/Z + ukvcdxJHjJ8wAliR48G3h5egyCSfN8vpuFnmKM/MzGBkLhQAT0i+VxDenetytlRFogidYFTghBFAVTSG + ZR/s5sdZLV+2CbzEWn8GI7MxALhEwT3VYbvsu9vfQGMydcLPf2Z/3spR/HhUGeKaNvmrJUX/LJCzeK8/ + wwBBFr4dITA+L8+bre/eG9WCEPTxAdp9U+wADscT+++trV8qUdryeHMrtM8o4s8M6aOajtsWz8NL23ev + cItCFm/0aUAxO5Gw52Xba4EPtsKcigAn2KI9ZctFyuI+8gXGJ+ynwxRohqgkB6VlciRx9EKva8nZLudT + JkrwQEPLqQnARblenPvi667fTBi9UqI0a6sH0XX4ymaj6tybsssHDB3mf9yD8tr34RXF47+7oaN50goc + nnE5iK5l0cufaaUAkE4i5+XbMLqjCiaeH1RVwwBg5jhulMV8yfj1W16YaDV/Zj/guAIw2mzCV4oL0JpK + zc6TpMnZXt46J0CVLNkjAASAbiDFizikGYCqwcsfP9+r8yJUSQbRs+Tde8t+hEOA8jioaCinFOZB1ghS + AIWyPPf2UWXjTRz34V01hxE/zpmCx00CHowncPmufRhtNa+08twQONrbyLLW/8h/CAwohOKQZsCnshb+ + VOx3JHtCECIUBxUdMV0fVNkAA4BT4HMmOWzLfjxn+nGd/zMF4PqSAlxXlF9ULMvnsgM+Bz9pJgKnDQEQ + 7hGBqDa4RECkFKUm0/LJf/+H7Qse18kJwNFlv/PczrkeURzJqkB2VGImAmdmvwihOKjqiAwiESAAciVx + yjXFBVMuLciF+Tgbd3/qN3XxJBZu2UmGW0zLzRzlWW6YiQDjiP2iPSIQHiQiYACw87x9jNWy9JvLF59c + DuCqojx8rbigqECS5nMs/GciwDjGfrEeEQgNEhEQKUGRSV4y/dGn7Us8zhMLQIks4fLCfMx2Oc5yiUIZ + K3ImAoxP2y/eIwJBTRsUIpAjihMvL8yfcFF+LjhyAgFoSqZw3tZdKDObllg4TmDhf/aLQGCQJbYyxX4J + QnFQNeBXM1sEDAA2nnOUW83n3DR53KdmBB4jABfnebEi1+PNk8S5LPwfGiIQZe5/2vZLEooazUB3houA + SCkKZWkRee5VeYrNcszfPpoIxBOC5blehFR1glsURrEiZjA+XwRShKJW02FAg4fnMvY5vaI45YcjSss4 + Qg7siXy8R8BHEYBqGLhh0lgMN5vmWjjOysJ/BuNURCCzcyoOgc8bZ7PMvLQgD/mi8GkBGG02gTy7RsqX + pXkiO+iXwTglEUj3iEBXBoqAAUCmlBbJ8vyZG7cdc3bAR55+Xo4b/z2sqMgjCBNZr5DBOHURODrtuiMD + RYAjBDmSOHOJx+Ve7nUfKwAcgKU5HkywWSfaBb6AFWcW1EYMzrXs2SACdZqBdiXzRMAp8CMXe90jz835 + WAB4ANAArJw3C69t3jHLxHEi6/+fCQaIkgT0AV5eZ+iApp5cte0PrejtStXn2kZO6x4EgEYoDusGDEVF + gZAZu+gZAKwc7ywzm6bNczu3P1rfjEOJ5BEBGGM2gTzwuLR53swZbPHPGaKmIf7rIdCOgwAZyKywARJs + A06UzyEE/MENIOE2wOgb2SeGAd2RD2XmpQAv9YpfUl8j+A9fBXQVfQXRVZBAC0BOLx+mEYLDOqArKgoF + PiNiMZES5EnizBHrNv/xaM3kAWCBx4lzPM48lyCMIWB7w5xZxdFBfQ2grfsBOkACYKCnVf+8pp2AtuwD + bd7bd8+ia9ALx0OddhGMXhIAEu6E8OEaQE2hT0MBSk+4m9LnvjohaNABQ1FRlAEiwBECjyhMnmW3Oiw8 + H1rvDx4RgLluJ4KKOsrK8/nMhc+8goLQj38G6hlO+rO0b8NpQnpfCI9ecxBsUq0TgsYeESjOABGwC/zw + JTmeYo6Q0Hp/EDRH4HFFYT4KZWmiiaNm1vozGH0hAgRNaRWGMbAeZuF493Czacx8txMcANqlqLCufQ8e + UZgsEDb+z2D0BQYhaDIIGhUN+gCJgAFA4iifK4kTl40rhwaAn2W3wZ9OW52CMJYjrP/PYPSlCDQbgKFo + KBU40AFIuPOEwCUIE8mTqzkHx2n8LKcdhCDHxvMlrIgYjP4TgWEDIAIUgEPgRy12O+0cIQF+qsOGiKqV + mjnqZcXDYPQDhKDFAHRFQ5nAob9X3lp5rnCW054HIEDnup3IkcQREuVYApDB6EcRaDMIDisatH7OCZgo + 5yw2yaVTHDbQCTOnwCXw5SI79ZvB6HcRaDcI6hQNqmH0yxBhTyJQ8ojCiHM8LlBy72OcjedHUDYDkMEY + EBHo6BEBpZ9EgCcETkEYWbxsMehYs8lq5bliNgDIYAycCHQaBIcUDel+EAGOENh4roz84C6eznU7XWaO + y7KTMRmMQSoC6b4XAQLAwnFFEy1mCy02ybkSpU5WAgzGQGsAQRcIavtBBEwclzPLZXdRrygUSpRamPkZ + jMwQAR8IatIaUnrfiYBEqaNYlr3UwfNFAiUiMz2DkTki0E0IahQNyT4SAZFSi0cU8qmF54p4Qjg2B4DB + yCARAIGfUNT2kQgIlIh2ni+gJo4rZEOADEYmigDgJxQ1ioZELx5PbgDgCeHNPFdAZUrzmAAwGJkrAgFC + UaPovSoClBCYOC6Pyhz1MvdnMDJbBIKE4qCiI95LIkABmCjNoQKhLiYADEbmi0CoJxLoDREghECgxEtF + Sm3MvAzG4BGBg4qO2BmKAAEgUc5BOQImAL0OG1Nh9J0IhHtBBAgAjsDB85TKzKy9W0TG0Q0rB+qINT1z + z6hj9I4IRHpEYLQAWCg9rSZHpNTMS2wIoFcxOAHKwhugJMIDUDMoaLgDwvt/AklFwE4GGhoiUM4DVu7U + RYAjROIldhBo70I5aCUTB6xWGL5mCJv++vHZAIzsFwFVx2icuggQwMwLhLIea28zUKeCEQz8kWSMfi/y + aI8IlAOwnYIIUEIEyrOdgBiMrBGBiHbyiUFKCGUdAAYjS0QgdooiwBEQynKADMbQFAECAsr6/wxGdopA + +CREgA70WWUMBqNvRKDmcyIBAwaoxvyfwchaEThRd0AzYFDNYMNGDMZQFAHNMHSa1g02X4TBGIIioBtG + mqbYxBEGY0iIQI2qI3qsCMRpSmcKwGAMBRE4Olko2rOKUDWMFNUMI8HMw2AMHRE4uqmIqusxqhpGhJmG + wRg6IhDpEYGQpof4tK5HAOQz0/SylQfqvmxmJ+MkqkkQBHVpNcQruuFnUwF6EU2BsPNl0EAzDNLfKy0I + SDICko4zIWCcEANAwoCPT+m6jy0d70UX1FTw1e+DNu4GKDcwDzFQ92UMKgFI63onn9C0Dt0wwLEWo5cU + AADhjjghc0RGhqIbBlKa1kETmt6isfUADMaQQjMMNanprTSqaS2qYWis/WcwhgYEgKobqZiqttOQorQo + upFiZmEwhg6KoUdD6XQ77UorbSldjzKTMBhDSAA0PdiZTPpoQzzRmdL1ADMJgzF0SOla575AMEjf8/mD + cU3rYCZhMIYGBoCEprW0p9Jx2pJWYlFVa2QrghiMoYFmGIir2mHjOzdq1Ljhaj2sqHVsKJDBGDoCEFWU + uqc/3Au6Y38tAopSq+i6wYYCGYzshgBI63oilFbqKoNB8NsCQcQ0/VBS02NmjrMyEzEY2U1K0wIdyWRT + RxLgPwxFQAlpjmlalxsCEwAGI8tJqFrzvkCwU6QUdHswjNUt7b6IqjYw0zAY2Y0OIKaqNdWRaKQ6HAHd + G40hoGnxoKLuZ4lABiO70XQDYUWpqFi5XF+ZlwNq5Tg0L10AXzq9N80EgMHIWo4kALV0IJWueLmhCS+1 + d4KPahpeb+9CVNUqEpoWNVFqZTLAYGQnCU3ztcbjB1sTCRgAKAD82x/E3nCkLqKorcxEDEZ2YgCIqWrd + ps6u1opAEDgqABv9QTzT2tEVUNT9rPVnMLIT3TAQTit7WhLJaFU48rEANCRTMFZdqnSm0jsUnUkAg5GN + KLpu+FOp7X+eexYcPA8A4I/+8bmKA+hKK9vjmpZ0Ul5mMsBgZA8EQELTulviid0dySRCqgqgJwIAgHe7 + /NgbilSFVbWFmYvByD4iilKzpct3eFf3x6v/PxKAt7q68XhzW5svnd7DWn8GI7vQDAPBtLK9Zu+/w3uC + oU8LwP8rK4GxcqnalkxtYgeGMhjZAwGQ0nW1M5ncdN/l18HMfbxb9Uc5gO9VH4LOUcQ0bctslzMki9TB + IgEGIzuIKWprXSS6qz4SRVzTPvr9RxGABmBtZzfe7PAd6E6nq5nJGIzswAAQTKc/fKWppWmrr/uYvx1z + dtXbPj82vfhosD2Z3qiyacEMRlag6Dq6ksl17513bvr/pkz8bAHwCDz+/pNf4XA8/m5U1ZJsgxAGY3BD + AMRUtbsxFt/4bF09rtm645i/85/8R7ei4pW2Tqi6vuscr7vWKfATmQkZjMFLT/i/Z01j88FCs+lTf//U + 8bXPtnbghbbOjrZkagPrBjAYg5sj4X/qn/suuiC2v2f67wkFoFSW8NqsKaiNxtfGVC3FugEMxuCkJ/z3 + 10ej7969txL8cQ4A5v/zF43JFJ5vaUdS1z+Y73FWOwR+MjMlgzH4MAAEUukdzx9uqCqzWnG8iJ4e74vP + tXXi5c2vdjYlkv9UWDeAwRiUpHUd7YnEP945b0m86savHvczxxWAQknEE5dcjwPR2BthRY2wbgCDMbgg + ACKK0nowHHnn0eoacPf+/rif44/3y9ZUGs+2tKE1kdq1wOPa6RaFRcykDMbgQQfQlUy9/0JDU02OJEL/ + jEieftYF/vXOs6g6f1HkcCyxJpn1awPIEUuQM/yhgEG4I//POMLRekdo79iY9FyLcaLajISqKs2x2Ev3 + z5ymlprNn/lZ/rP+IM34Ir4/ohQpTV871WH7frFJLs3KbAChsLTvh2XdY0gTcoa+SwBNAQm1s0r6kUkI + SKQLwqYnAE78hCKcfnmRYCuga8y2JyCQTlds6+resCcQxM6e7b8+Syw+EwdHEdJ0+vbsaY/OdjluoCRL + mzbDgE9RcEgzoPSG41IKFgYcY2CgN6NIQpjAngBV17HbH/jZ/y6a/3PywKMn/Cx3oj9Otlnx2/HlRl0s + kRhpNV9q5jgxKy1GCMwcB5kQhAxAoxwIoUcq2en8MOf/TwOfvi2P+8PsewJLI5BOt2/t8t32Zm1d56FI + FCda3n9CAWhNpRFIK1jb6es4P9czL1eSRmaz8cyUQoaBsG5AO+PuAIPR/+iGgYZo7KV791c/3hiLGUFF + PeHnPzeOunl4CTbMnxU7EI09G1M1LdudwstzGMkRiIYONgOCMZjomfkXOxyJ/u1nkydoRSdI/h2F+7wP + /L29C/5UGpWRWNs0p32pRxQKst2QLBJgDFaa4/F1D1ZV39ueSCqf3PrrtAVAB7A7EkXllStjGxpbbCVm + 03n8EOiDMRFgDCYIgLiqKpXB0J1XjyjbZeV5bPmPzT9OSwAAwCvw6OwOoCYWbx1vs37RJQieoWBUM6Uw + wUCIiQBjENAWT2xbXd/48+pwJPliQ9NJdWFPaizFp6i493ATHvndz+prYvHnhtKmoR6ewyiWE2BkOElN + 0+tjsb/cM3NaYP1lK3GyHnrSjVqpLOHa4gJEVG30jWXFb5Wa5OFDxSEIAJ+qoVYzkCaURQKMjKMpFt/x + 1KG6C6w83/VeRxfSJ9lIn/RsisZkCr+orcf9h7cdrI7G/jaUogADR0YHWCTAyESSmqbXR6OP/27W9K63 + WttP2vlPSQAAoNxswk/L52K9z/9UeypdN5RaQiYCjEylK5nc8X5750u3f7gXFp4/pe+ekgDUxBP4ZW09 + Hrjnf2oORKJ/zf5FQp8tAhITAcYA03Pen1oXiT52+5SJXW/d8s1j9vw/2WucEmUmCZfk5yKsqMNuGjHs + zREW0/ih5ggEQHdPTiDFcgKMAaQ+Gn3/kQM1X/JIUnCLrxun2jXnTvWGQVXDlmAYOy/9YuhfDc18iVk+ + X6R0yPnA0SHCsG5AZUOEjH6GAIiqanK3P/DjFcVFH05y2rGmufWUr8Odzs3zRAGVHV3YFggdmuawL/BK + YslQLAQmAoyBwgDQEIm+9qt9Vb9uiMXUvxyqx+l0yE9LAGKajg8XzcUMhy3+b38wMsxsutDEUT6zTcZE + gJEdEADBdLr7A1/395YWFRxKaxqqjrPl98lw2k5reuMdzHM5sLE7+MYYm+X16Q775Vm7X8AJMHBkshCg + oVbTWU6A0ecohoH6aOyZP9XWbXYLAgKKctrX4k73i6oBLMvx4MZhxWplJNo43Gy+0Mbz1qFaKGZKYe6Z + NswiAUZfQQB0JpPV77V33DLb6+mOaxo6kqkzul6v8PKMyXct8Lp+KtGhu1MLAeBXNdSw0QFGH9WvuKap + O3zdN906Ydyj3hdePuNrcmd6gWk2C75cmIcdoXD1OJtloUcUC4dyIbFIgNFXGAAaorG3nqg5dMdbLa2p + SFpB4gzn4pyxALSnFWz57+swNZmMvN8d8Jea5RVmjhOYCLDEIKP3IAD8qVTnVp/vO3Nzc2pljsOmk1ju + ezLXPWOsHIfxVjM+CEWEtWdNfXi223nDUNgz4HMLrGeyUJJ1BxhnSFrXsccfuOP23fvuJD2NSm9MwOuV + DntU01Aiy7hr9AjlzQ7f/zXGE1VDvcIbANw8h1E8gcymDTPOkNZ4fMPbLW1/uKi4COU2a6/VJ663HnB/ + LI73ugPYtnC2/7W2zmCxyXSBiaNDuisA9HQHCOsOME6Pnl1+uz/o6v7OvFxv5SSXA0/WNfTa9Xt18k6O + IGDBhm3YFAz//U2TvHC2y3mjMPRmCR+DAcDFcSiHhhpVZ90BximR1HSjJhR56LGaQ+tkQtDbx6FwvXmx + uK7jbKcdlxXkaduD4X2jLKaFHlHM+k1ETwYTiwQYp4gBoCEW/ecLhxv+33S3K2EA6EylevUeXG8/dGU0 + jvW//BHKWztC63yB5mKTfIGV52RWnEwEGCcPAdCVTDZt7vR9c4bHfcgrSXi1pbVP7tPr2DgONo6iNa2Q + 1TMm3X6Ox/UzM8cRlgjrmcetaTiostEBxmfXkaiqpnb4um+659yFfyIPPdZrWf//hOuLF0gbBqbYbFji + deONjq49U+y2cbmSOHYorhU4HiZKYemJBBQWCTD+A1XXcTAUfvzOvZW/fqP2kAYDiKhqn9yL66uXaEym + cE1hPmY47ckPAqG9w8zyuS5RyGHFy0SA8dkYAJpisU3/aG696WyvJ6gbBvaexAEfp0u/1LvwskX4S1Pr + yhV5OX/NlUQX6wp8bPygpqFGNZBg3QFWHwB0JpON69s7riy327aOdzjwpfWb+vyefYpH4CERgta0guem + TfzRQq/7lzae45kIMBFgHFsPwooS+8DX/a3fnj3rafLEM+AJgWr0radwff1iCV3HZJsNs512PHS4cdd8 + t7MgT5amD/Wpwp+EdQeY8yc1Ta8Mhv7v7or9v3++ts6QOYqQovb5vbn+eMGmZArnuJ04x+NS1/n820da + zFNyJHEkYSLARIAB1TBQG448+8eDtf9ztteT1A0DByLRfrk3118vuSMUwZ1jRiJXkqIb/YFdxSZ5gVsU + 8ljxHysCVgKEdZ2JwBDBMAw0RmPr32xu/fZkt9MnUoq32zr67f79WscoAXQDOLBoDta0dy6+KD/3qWKT + XMzyAccWSEjTUaPqiLOcQNbTEo9XrGvruHqUzbpvktOBKzZu6ff61q84eA4hVYPx3f/Co+s2X3FervdR + NjLARGAocmSmX9e1i/Lz1l+9cQsoIdCN/vUErr9fOqUbGGGS8MDOfXimtaNyht0WyZelxaYhvonIfyJT + AgsBIqw7kHUcXeG3w9f9nYfnzF47+bW1sHDcKZ3pN2gFAAACqoYxFjNGW8y4r75p12yn3ciXpQUypQPy + PEwEGP3p/CFFiXzY7f/BvVXVf/NceRXsZ7iz75kwYDt4bgtFYOI4XJGfq315V8VvtwVC90Y1TWOV/GMM + AA6OopynMLNNRbLC+SOKmtgXCN7+m6rqJ8Y77PBI0hnt6numDGiLWxNPYKbDhpkOm3bvoYYtMx02e54s + nTUUjxo7ETIlbHQgC5w/qqqpfYHAXb/YV3XfWR6XzhGCylB4QJ9rwEPuPZEo5jgdmGizKo83tGyeYLO5 + ciRxJhMBJgLZ5PwxVU1XBoK/+vm+ql8vyPGoBoDt/sCAP1tG9Lm3hyJY7HZihMWcfrK5deNYq8WdI4kz + mAgwEcga5w+G7rljb+XdS/JyFADY1NWdEc+XMUm3zcEwvuB1o1iWU39patkwxmJ2epkIfKYIRHQdaSYC + Ge/8UVVNVQaCv7pjb+XdS/Nz04QQrOvoyphnzKis+wZ/EEu8LhRIYuoPh5veH2ezWnNkcZZEh/BxQ0wE + Bq3zH0n4Be76+b6qXy/Jy1EIIXinvTOjnjPjht02+IOY73Kg2GRK/7KmbsN0h53LkcTZbIjw0yJgYyKQ + sc4fUpTI3kDwp7/YV3XfghyvCiCjWv6MFQAA+HcwjBkOO0ZZzMpPDhzaOMthT3sl8Wwzx4msen2MxEQg + Iwmk0t0fdvt/cE/lgUfP8rh0A5nT5/9PMrrOfKUwD0ldx9/bu7i/Thl//XyP6+48SXSz8fBjCzCi6Tio + 6oixacMDTmcy2bTT5//egwcOvjTeYYeJ47ArEMzY583ovvUzrR2IaRrOcTm063ZXPvZ2p+/GpkSykVWz + jzEA2DiK0TyFhU0WGrhyMAy0xOMVmzo6r33w7JkvuUQBqmFktPNnvAAAwNouP+KajmJJwrdnT3tpTVvn + qppofLduGKy1YyIw4BAcWc9fH42tX9fWcfWi/Lz15MnnIFAONf20pv9MGBSJtdZUGh6Bx/e278Fvxpc3 + PNPc9r5bFEe5RWEU21noY47mBKIsJ9Bvzp/UNL02HHn2zZbWb092OWtv2fEhrByH4ADN7T9VBs3wWn0y + BRvHYdqGbRhntRz4XW39ddsCoUfCqqqwin6Eo5FAOU9hZZFAnzt/WFFiewPBXz584OC3iszmlslOBygh + iGraoHmPQTW+HtE0cITAK4oot5o7v/jB7u+/1+X/UUcqnZkp1gEUgdFMBPrUxp3JZOMHvu5v/WxPxZ1j + 7PZIStNw+cYt/b6e/0wZtI3nV4vyEVAUrOnw4b4Jo5cv9rp/XWY2TeIJYZW+p2CjPaMDUTY60Gs2VXQd + zfH4pu2+7h8+sXD+1rGr18AhCPggA+b1nw6DdobdX1va0ZZKw85xuDg/d+1fG1su+zAYXh3TNJ1V9iOt + lJVFAr3q/FFVTVWFwo+93NB0ZbndtpU88QyiqjponX9QCwAAfBCKgKcUZe9uwjCT6eB39x34+nqf/7aO + VNrHqiwTgd60Y2cy2bTD133Tj3ftuTlPllsnOBzgCUFLIjmo323Qz7EPqCoIIfArCqY4bJErd+6755W2 + jqsORGLb0ro+5EPfT4qAjYnAKUEApDTdqItE3l7X1nHpPecu/NMMtzPVkUziovWb+vzQjv56x6xhpt2G + ikgU786ZgUfrm4quKMr/0SS77b/comBllfnI8GCNoiPCcgInRSCd7q4JRx56rbH5oeVFhf5fVlShQJbR + lhzcrf4nyapVdjvCEVBKMLc4HwWy1HLh9j23/qOj67qaaHy3MsSjAQOAlVKUCywSOBEEQFrXUR+NbtjQ + 3nnFHXsq7iwwmfyqcaT+ZJPzA4NkItCpoBgG7qw8CCfPwcJR/c6xI/f/9lD9WgvHcVaeH2fmOGkoC4FE + COz0yAhBik0WOsbxDQD+VLpzfyj0mzUNzT+cm+ut3NjRCQPAq82tWfneWbvO/h9dftQnUij+2S3IFcXG + C7fv+f6rbR1XVUWimxLa0I0GDAAWSjGaRQLHOH9c09RD4cib69vbL7l99747PbLUZRd4aAZwIBzJ2nfP + 6o02gqoKsuAy7AiGMcZs0mY5HW/efbDukvd83f/TnEg2aUN0PQETgY8dXzUMtCUS1Tt83Tc9UHXgqkKT + aTMhBAdCYXxj204oWZDoG7ICcJR/dgfQkEyi1CQhT5K6rrj/jl893dR64fZA6MnutBI9WhmGqgjYh5gI + HA33A+l0d0Ug+MDrTS0rfjBh3KPFFnO4I5EEAXBwECzk6S1bDCnGmE2ojidw//hy3FJVIzwwfvTSmS77 + 94abzYtsPMcfdY6h5AyxntGBcJaPDhx1/KiqJlti8TergqH7/1Rbt/m6EWX6k3X1cA3gAR0DxZDbZqu7 + 58x1K8fBTKm+qqSg5taKg6+5RL6WJ6TYzHEFQ20jUpEQ2CgQy/LEYELT1JZ4fOPu7sCP79lX9evzigoO + VQSCRlzT0JFMITkAR3MxARggqqJxdKYVLHK70J5Op+4aO2r39yuqX5UobeUJKTHxXK4whJYai1k8OpDU + NL0tkdheEQje8Vxdw89WlBR92BCLqWlNw+5gaEBP5hlohvRuu6ph4Lo9VXjH5wf/xotwCkLHVdMm3n9/ + XePydV3dP6qLJ6qSPSMG2S4FBgBzluQEyMeOrzXF4ju2+7r/+8nawysW5+c94ZGkIAwd+4IhrGluHfKj + IGy7bQBhVQMhHrzS3gXyxAuw81zTleec/Zv7DzUse9fXfWtNLL47pmk6slwIBrsIHC2bmKoqjdHYvz/w + dX/zqUN1F1xUWvyoTeC7zl+6CFt83bhx286smMbbmzZjfIJ8UUB7WsFNZcV4cNEcfPmt9fkX5OdcONZq + WVUky2fZBF6iyN5kIQEQ70kMhgZBYpAA0AwDMVWNdSaTGxuisafebW1/656Z0wK/q9yPt1rbYeF5xAfR + Rh1MADIAF88hoGr4enEBHpw8Fl/YvMOxqqTw3PE269UlJvlclyi4j+YJsk0MMl0Ejj6PousIKUp7RyL5 + 9uFI9G/PHq7f/JuZ0+JPH6rH+stWQnr0L0gPweTeycIO2zgBSf2IW1dH47jj4mV4fV916ot5OQfO3brr + 1RxBeDet60EAboFSt0Cz7/iio4nBmKYjmSGJwaNDeXFVVTqTyb214cij27p8t927v/rxC4oKatuTScXG + 83ihoQl3bP8QGgv1P9eejJOEAriqMBd7w1FcX1qM7+58E18dNb9oode1ZJTFfEmhLM91CnyOSOlHFTUb + KshARwJHbZnWdUQUpbUrmXq/ORZ7aVtX94ZN11ze9fU33sarTc0oMpuxNxhiFZUJQN9TKktoTKZwY0kh + bhk5DOPXb5FuLy8bP8luW1ZqMi3Pk8QpNp63i3TwdxEGQgSOOr2i64ipqj+QSu9sTyTeOBiOvPNCQ1PN + /TOnqa83t+Dd9k7YeR5hVWWV8jRgXYDTJKQeSSjtjkTAGQbimqZNd9jbb5wxadPydZv/zhG8G9W05rRh + 8ABx8ITIXE8YPRhVVyQEjj7sDnzSLoquI6wo3e2JxNZD4ehju/z+n/+uqvqhO6dN3rTbH/C1JRJ6QzSG + zb4je8GmWB//jOzO6CXMlCKu6/iCx4XLCnLxjeWLMf3Rp+2XF+ZPKLeazymUpcU5ojjZLvB5MqWUG2QJ + RAIg0RMJBHshEjj6fc0wkNJ1NaaorcF0+sOuZPK9xlh8w6uNzQf3XnRB7O69lXi/oxNV3/gquN/+ftDt + vMsEYAiLwRKPCxfl5+CmyeNAnntV/uGI0rJxNsvMIlmenyuJMx0CP9LK8U6REnCfmHmYqVX8dEWAfOK9 + dMOAoutGQtO6I4paE0ynt3cmk5vqItFdrzS1NL133rnpZ+vqsamzC/vDEfCEsHF7JgCDF44AmgFMsVmw + PNeLywrzMGPDNnzB43Iv8rpHlplN0/IkcZZHFCbZBX64hePdMkd5jpBjZmpligt8ngh88t86AE03kNa1 + dELTfDFVrQunlT3+VHp7azy+e0uX7/DBiq3h+y5dhc2dXdjq68Y9UyZi1dYdrOIwAchOCkQBbWkFF+S4 + sdjrxmUFeRi+bjNm2a2OJTme4uFm05hcSZzoFoSJdoEfaeW5IhPlnBJHJZ4ciRSOV3D9JRDkIxEwUKtq + CPTIlGYY0AwDaV1PpDQtkFC15piq1oQVpSKQSle0xuMHN3V2tbYkktE/zz0L/+7swofdAewOhmDhOMTY + RB0mAEORkSYZ9YkkFridmOd2Yr7biWXjykGeXM0tdjvts5z2vGKTXOoVxREOgR9p47kyC8cVmTguR6LU + IVJqESgReUJ42hM1kF5KOBpHfwzjSGtuGFANQ1V0I6XoetSvqMGKtNIZ0o2WuKodjipKXSit1HUkk037 + AsHO6kg0UrFyuf5yQxMqAiFUBIOoCkfg4HmEWOaeCQDj03AANAAOjsMspx3THTZMcdhwjseF4mWLQH7w + C36ixWyZ5XK4imXJ6xGFfDvPF5h5rsDEcXkmSnMESrwy5RyUwCFSauYIkQhgpoQIHCGUEnwURxiGAQ0w + NMPQdcNIA4irhpFSdD2mGQgldS2U1g1fStM745rWEdO01rCqtvtS6fbWZMq32ecP1qTSceM7N2pPf7gX + lcEgDkWiqA6FUR2O4OL8XLzY1sG2H8tA/j8A3hg1hV1H6QAAAABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/FloatToolGUI/Skin.cs b/FloatToolGUI/Skin.cs new file mode 100644 index 0000000..ee358f1 --- /dev/null +++ b/FloatToolGUI/Skin.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FloatToolGUI +{ + public class Skin + { + public string Name { get; set; } + public float MinFloat { get; set; } + public float MaxFloat { get; set; } + public Quality Rarity { get; set; } + + public Skin(string name, float minWear, float maxWear, Quality rarity) + { + Name = name; + MinFloat = minWear; + MaxFloat = maxWear; + Rarity = rarity; + } + + public override string ToString() + { + return $"{Name} ({Rarity.ToString()}) | {MinFloat}-{MaxFloat}"; + } + } +} diff --git a/FloatToolGUI/Utils.cs b/FloatToolGUI/Utils.cs new file mode 100644 index 0000000..c0473dd --- /dev/null +++ b/FloatToolGUI/Utils.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; + +namespace FloatToolGUI +{ + class Utils + { + public static string CheckUpdates() + { + using (var client = new HttpClient()) + { + client.DefaultRequestHeaders.Add("User-Agent", + "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)"); + using (var response = client.GetAsync("https://api.github.com/repos/nemeshio/FloatTool-GUI/releases/latest").Result) + { + var json = response.Content.ReadAsStringAsync().Result; + + dynamic release = JsonConvert.DeserializeObject(json); + return release["tag_name"]; + } + } + } + } +} diff --git a/FloatToolGUI/packages.config b/FloatToolGUI/packages.config index aac34c4..f1f6d4b 100644 --- a/FloatToolGUI/packages.config +++ b/FloatToolGUI/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file diff --git a/packages/DiscordRichPresence.1.0.150/DiscordRichPresence.1.0.150.nupkg b/packages/DiscordRichPresence.1.0.150/DiscordRichPresence.1.0.150.nupkg deleted file mode 100644 index 2c3e1a2..0000000 Binary files a/packages/DiscordRichPresence.1.0.150/DiscordRichPresence.1.0.150.nupkg and /dev/null differ diff --git a/packages/DiscordRichPresence.1.0.150/lib/net35/DiscordRPC.dll b/packages/DiscordRichPresence.1.0.150/lib/net35/DiscordRPC.dll deleted file mode 100644 index bd52898..0000000 Binary files a/packages/DiscordRichPresence.1.0.150/lib/net35/DiscordRPC.dll and /dev/null differ diff --git a/packages/DiscordRichPresence.1.0.150/lib/net35/DiscordRPC.pdb b/packages/DiscordRichPresence.1.0.150/lib/net35/DiscordRPC.pdb deleted file mode 100644 index 4de1fc1..0000000 Binary files a/packages/DiscordRichPresence.1.0.150/lib/net35/DiscordRPC.pdb and /dev/null differ diff --git a/packages/DiscordRichPresence.1.0.150/lib/netstandard2.0/DiscordRPC.dll b/packages/DiscordRichPresence.1.0.150/lib/netstandard2.0/DiscordRPC.dll deleted file mode 100644 index 62222ad..0000000 Binary files a/packages/DiscordRichPresence.1.0.150/lib/netstandard2.0/DiscordRPC.dll and /dev/null differ diff --git a/packages/DiscordRichPresence.1.0.150/lib/netstandard2.0/DiscordRPC.pdb b/packages/DiscordRichPresence.1.0.150/lib/netstandard2.0/DiscordRPC.pdb deleted file mode 100644 index e6819b0..0000000 Binary files a/packages/DiscordRichPresence.1.0.150/lib/netstandard2.0/DiscordRPC.pdb and /dev/null differ diff --git a/packages/DiscordRichPresence.1.0.150/.signature.p7s b/packages/DiscordRichPresence.1.0.175/.signature.p7s similarity index 88% rename from packages/DiscordRichPresence.1.0.150/.signature.p7s rename to packages/DiscordRichPresence.1.0.175/.signature.p7s index 8b6c107..612689d 100644 Binary files a/packages/DiscordRichPresence.1.0.150/.signature.p7s and b/packages/DiscordRichPresence.1.0.175/.signature.p7s differ diff --git a/packages/DiscordRichPresence.1.0.175/DiscordRichPresence.1.0.175.nupkg b/packages/DiscordRichPresence.1.0.175/DiscordRichPresence.1.0.175.nupkg new file mode 100644 index 0000000..e432865 Binary files /dev/null and b/packages/DiscordRichPresence.1.0.175/DiscordRichPresence.1.0.175.nupkg differ diff --git a/packages/DiscordRichPresence.1.0.175/lib/net35/DiscordRPC.dll b/packages/DiscordRichPresence.1.0.175/lib/net35/DiscordRPC.dll new file mode 100644 index 0000000..cb8b0bf Binary files /dev/null and b/packages/DiscordRichPresence.1.0.175/lib/net35/DiscordRPC.dll differ diff --git a/packages/DiscordRichPresence.1.0.175/lib/net35/DiscordRPC.pdb b/packages/DiscordRichPresence.1.0.175/lib/net35/DiscordRPC.pdb new file mode 100644 index 0000000..099f7f3 Binary files /dev/null and b/packages/DiscordRichPresence.1.0.175/lib/net35/DiscordRPC.pdb differ diff --git a/packages/DiscordRichPresence.1.0.150/lib/netstandard2.0/DiscordRPC.xml b/packages/DiscordRichPresence.1.0.175/lib/net35/DiscordRPC.xml similarity index 96% rename from packages/DiscordRichPresence.1.0.150/lib/netstandard2.0/DiscordRPC.xml rename to packages/DiscordRichPresence.1.0.175/lib/net35/DiscordRPC.xml index defbfbf..407026c 100644 --- a/packages/DiscordRichPresence.1.0.150/lib/netstandard2.0/DiscordRPC.xml +++ b/packages/DiscordRichPresence.1.0.175/lib/net35/DiscordRPC.xml @@ -233,21 +233,21 @@ - Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. + Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. The details of the Rich Presence Updated Rich Presence - Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. + Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. The state of the Rich Presence Updated Rich Presence - Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. + Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. The party of the Rich Presence Updated Rich Presence @@ -1507,46 +1507,52 @@ - + - The Rich Presence structure that will be sent and received by Discord. Use this class to build your presence and update it appropriately. + The base rich presence structure - + - The user's current status. For example, "Playing Solo" or "With Friends". + The user's current status. For example, "Playing Solo" or "With Friends". Max 128 bytes - + + Inernal inner state string + + What the user is currently doing. For example, "Competitive - Total Mayhem". Max 128 bytes - + + Inernal inner detail string + + The time elapsed / remaining time data. - + The names of the images to use and the tooltips to give those images. - + The party the player is currently in. The must be set for this to be included in the RichPresence update. - + The secrets used for Join / Spectate. Secrets are obfuscated data of your choosing. They could be match ids, player ids, lobby ids, etc. Make this object null if you do not wish too / unable too implement the Join / Request feature. To keep security on the up and up, Discord requires that you properly hash/encode/encrypt/put-a-padlock-on-and-swallow-the-key-but-wait-then-how-would-you-open-it your secrets. Visit the Rich Presence How-To for more information. - + Marks the as a game session with a specific beginning and end. It was going to be used as a form of notification, but was replaced with the join feature. It may potentially have use in the future, but it currently has no use. @@ -1554,91 +1560,31 @@ - - - Clones the presence into a new instance. Used for thread safe writing and reading. This function will ignore properties if they are in a invalid state. - - - - - - Merges the passed presence with this one, taking into account the image key to image id annoyance. - - - - - - Updates this presence with any values from the previous one - - - - + Does the Rich Presence have valid timestamps? - + Does the Rich Presence have valid assets? - + Does the Rich Presence have a valid party? - + Does the Rich Presence have valid secrets? - - - Sets the state of the Rich Presence. See also . - - The user's current status. - The modified Rich Presence. - - - - Sets the details of the Rich Presence. See also . - - What the user is currently doing. - The modified Rich Presence. - - - - Sets the timestamp of the Rich Presence. See also . - - The time elapsed / remaining time data. - The modified Rich Presence. - - - - Sets the assets of the Rich Presence. See also . - - The names of the images to use and the tooltips to give those images. - The modified Rich Presence. - - - - Sets the Rich Presence's party. See also . - - The party the player is currently in. - The modified Rich Presence. - - - - Sets the Rich Presence's secrets. See also . - - The secrets used for Join / Spectate. - The modified Rich Presence. - - + Attempts to call on the string and return the result, if its within a valid length. @@ -1648,13 +1594,13 @@ The encoding to count the bytes with True if the string fits within the number of bytes - + Operator that converts a presence into a boolean for null checks. - + Checks if the other rich presence differs from the current one @@ -1837,6 +1783,21 @@ Structure representing the part the player is in. + + + Privacy of the party + + + + + The party is private, invites only. + + + + + THe party is public, anyone can join. + + A unique ID for the player's current party / lobby / group. If this is not supplied, they player will not be in a party and the rest of the information will not be sent. @@ -1853,6 +1814,106 @@ The maxium size of the party / lobby / group. This is required to be larger than . If it is smaller than the current party size, it will automatically be set too when the presence is sent. + + + The privacy of the party + + + + + A Rich Presence button. + + + + + Text shown on the button + Max 32 bytes. + + + + + The URL opened when clicking the button. + Max 512 bytes. + + + + + The Rich Presence structure that will be sent and received by Discord. Use this class to build your presence and update it appropriately. + + + + + The buttons to display in the presence. + Max of 2 + + + + + Does the Rich Presence have any buttons? + + + + + + Sets the state of the Rich Presence. See also . + + The user's current status. + The modified Rich Presence. + + + + Sets the details of the Rich Presence. See also . + + What the user is currently doing. + The modified Rich Presence. + + + + Sets the timestamp of the Rich Presence. See also . + + The time elapsed / remaining time data. + The modified Rich Presence. + + + + Sets the assets of the Rich Presence. See also . + + The names of the images to use and the tooltips to give those images. + The modified Rich Presence. + + + + Sets the Rich Presence's party. See also . + + The party the player is currently in. + The modified Rich Presence. + + + + Sets the Rich Presence's secrets. See also . + + The secrets used for Join / Spectate. + The modified Rich Presence. + + + + Clones the presence into a new instance. Used for thread safe writing and reading. This function will ignore properties if they are in a invalid state. + + + + + + Merges the passed presence with this one, taking into account the image key to image id annoyance. + + + self + + + + Operator that converts a presence into a boolean for null checks. + + + A rich presence that has been parsed from the pipe as a response. diff --git a/packages/DiscordRichPresence.1.0.175/lib/netstandard2.0/DiscordRPC.dll b/packages/DiscordRichPresence.1.0.175/lib/netstandard2.0/DiscordRPC.dll new file mode 100644 index 0000000..31356ff Binary files /dev/null and b/packages/DiscordRichPresence.1.0.175/lib/netstandard2.0/DiscordRPC.dll differ diff --git a/packages/DiscordRichPresence.1.0.175/lib/netstandard2.0/DiscordRPC.pdb b/packages/DiscordRichPresence.1.0.175/lib/netstandard2.0/DiscordRPC.pdb new file mode 100644 index 0000000..85c5777 Binary files /dev/null and b/packages/DiscordRichPresence.1.0.175/lib/netstandard2.0/DiscordRPC.pdb differ diff --git a/packages/DiscordRichPresence.1.0.150/lib/net35/DiscordRPC.xml b/packages/DiscordRichPresence.1.0.175/lib/netstandard2.0/DiscordRPC.xml similarity index 96% rename from packages/DiscordRichPresence.1.0.150/lib/net35/DiscordRPC.xml rename to packages/DiscordRichPresence.1.0.175/lib/netstandard2.0/DiscordRPC.xml index defbfbf..407026c 100644 --- a/packages/DiscordRichPresence.1.0.150/lib/net35/DiscordRPC.xml +++ b/packages/DiscordRichPresence.1.0.175/lib/netstandard2.0/DiscordRPC.xml @@ -233,21 +233,21 @@ - Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. + Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. The details of the Rich Presence Updated Rich Presence - Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. + Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. The state of the Rich Presence Updated Rich Presence - Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. + Updates only the of the and sends the updated presence to Discord. Returns the newly edited Rich Presence. The party of the Rich Presence Updated Rich Presence @@ -1507,46 +1507,52 @@ - + - The Rich Presence structure that will be sent and received by Discord. Use this class to build your presence and update it appropriately. + The base rich presence structure - + - The user's current status. For example, "Playing Solo" or "With Friends". + The user's current status. For example, "Playing Solo" or "With Friends". Max 128 bytes - + + Inernal inner state string + + What the user is currently doing. For example, "Competitive - Total Mayhem". Max 128 bytes - + + Inernal inner detail string + + The time elapsed / remaining time data. - + The names of the images to use and the tooltips to give those images. - + The party the player is currently in. The must be set for this to be included in the RichPresence update. - + The secrets used for Join / Spectate. Secrets are obfuscated data of your choosing. They could be match ids, player ids, lobby ids, etc. Make this object null if you do not wish too / unable too implement the Join / Request feature. To keep security on the up and up, Discord requires that you properly hash/encode/encrypt/put-a-padlock-on-and-swallow-the-key-but-wait-then-how-would-you-open-it your secrets. Visit the Rich Presence How-To for more information. - + Marks the as a game session with a specific beginning and end. It was going to be used as a form of notification, but was replaced with the join feature. It may potentially have use in the future, but it currently has no use. @@ -1554,91 +1560,31 @@ - - - Clones the presence into a new instance. Used for thread safe writing and reading. This function will ignore properties if they are in a invalid state. - - - - - - Merges the passed presence with this one, taking into account the image key to image id annoyance. - - - - - - Updates this presence with any values from the previous one - - - - + Does the Rich Presence have valid timestamps? - + Does the Rich Presence have valid assets? - + Does the Rich Presence have a valid party? - + Does the Rich Presence have valid secrets? - - - Sets the state of the Rich Presence. See also . - - The user's current status. - The modified Rich Presence. - - - - Sets the details of the Rich Presence. See also . - - What the user is currently doing. - The modified Rich Presence. - - - - Sets the timestamp of the Rich Presence. See also . - - The time elapsed / remaining time data. - The modified Rich Presence. - - - - Sets the assets of the Rich Presence. See also . - - The names of the images to use and the tooltips to give those images. - The modified Rich Presence. - - - - Sets the Rich Presence's party. See also . - - The party the player is currently in. - The modified Rich Presence. - - - - Sets the Rich Presence's secrets. See also . - - The secrets used for Join / Spectate. - The modified Rich Presence. - - + Attempts to call on the string and return the result, if its within a valid length. @@ -1648,13 +1594,13 @@ The encoding to count the bytes with True if the string fits within the number of bytes - + Operator that converts a presence into a boolean for null checks. - + Checks if the other rich presence differs from the current one @@ -1837,6 +1783,21 @@ Structure representing the part the player is in. + + + Privacy of the party + + + + + The party is private, invites only. + + + + + THe party is public, anyone can join. + + A unique ID for the player's current party / lobby / group. If this is not supplied, they player will not be in a party and the rest of the information will not be sent. @@ -1853,6 +1814,106 @@ The maxium size of the party / lobby / group. This is required to be larger than . If it is smaller than the current party size, it will automatically be set too when the presence is sent. + + + The privacy of the party + + + + + A Rich Presence button. + + + + + Text shown on the button + Max 32 bytes. + + + + + The URL opened when clicking the button. + Max 512 bytes. + + + + + The Rich Presence structure that will be sent and received by Discord. Use this class to build your presence and update it appropriately. + + + + + The buttons to display in the presence. + Max of 2 + + + + + Does the Rich Presence have any buttons? + + + + + + Sets the state of the Rich Presence. See also . + + The user's current status. + The modified Rich Presence. + + + + Sets the details of the Rich Presence. See also . + + What the user is currently doing. + The modified Rich Presence. + + + + Sets the timestamp of the Rich Presence. See also . + + The time elapsed / remaining time data. + The modified Rich Presence. + + + + Sets the assets of the Rich Presence. See also . + + The names of the images to use and the tooltips to give those images. + The modified Rich Presence. + + + + Sets the Rich Presence's party. See also . + + The party the player is currently in. + The modified Rich Presence. + + + + Sets the Rich Presence's secrets. See also . + + The secrets used for Join / Spectate. + The modified Rich Presence. + + + + Clones the presence into a new instance. Used for thread safe writing and reading. This function will ignore properties if they are in a invalid state. + + + + + + Merges the passed presence with this one, taking into account the image key to image id annoyance. + + + self + + + + Operator that converts a presence into a boolean for null checks. + + + A rich presence that has been parsed from the pipe as a response. diff --git a/packages/Newtonsoft.Json.12.0.3/Newtonsoft.Json.12.0.3.nupkg b/packages/Newtonsoft.Json.12.0.3/Newtonsoft.Json.12.0.3.nupkg deleted file mode 100644 index f162e3d..0000000 Binary files a/packages/Newtonsoft.Json.12.0.3/Newtonsoft.Json.12.0.3.nupkg and /dev/null differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/net20/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.12.0.3/lib/net20/Newtonsoft.Json.dll deleted file mode 100644 index adabab6..0000000 Binary files a/packages/Newtonsoft.Json.12.0.3/lib/net20/Newtonsoft.Json.dll and /dev/null differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/net35/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.12.0.3/lib/net35/Newtonsoft.Json.dll deleted file mode 100644 index b965fb5..0000000 Binary files a/packages/Newtonsoft.Json.12.0.3/lib/net35/Newtonsoft.Json.dll and /dev/null differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/net40/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.12.0.3/lib/net40/Newtonsoft.Json.dll deleted file mode 100644 index 628aaf0..0000000 Binary files a/packages/Newtonsoft.Json.12.0.3/lib/net40/Newtonsoft.Json.dll and /dev/null differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/net45/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.12.0.3/lib/net45/Newtonsoft.Json.dll deleted file mode 100644 index e4a6339..0000000 Binary files a/packages/Newtonsoft.Json.12.0.3/lib/net45/Newtonsoft.Json.dll and /dev/null differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.0/Newtonsoft.Json.dll deleted file mode 100644 index 32bbff8..0000000 Binary files a/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.0/Newtonsoft.Json.dll and /dev/null differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.0/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.0/Newtonsoft.Json.xml deleted file mode 100644 index 4d19d19..0000000 --- a/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.0/Newtonsoft.Json.xml +++ /dev/null @@ -1,10950 +0,0 @@ - - - - Newtonsoft.Json - - - - - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. - - - - - Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The containing the BSON data to read. - - - - Initializes a new instance of the class. - - The containing the BSON data to read. - - - - Initializes a new instance of the class. - - The containing the BSON data to read. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The containing the BSON data to read. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the underlying . - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the reader's state to . - If is set to true, the underlying is also closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The to write to. - - - - Initializes a new instance of the class. - - The to write to. - - - - Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this writer. - If is set to true, the underlying is also closed. - If is set to true, the JSON is auto-completed. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a parameterized constructor. - - - - - Converts a binary value to and from a base 64 string value. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Creates a custom object. - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a F# discriminated union type to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - The default value is false. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets the naming strategy used to resolve how enum text is written. - - The naming strategy used to resolve how enum text is written. - - - - Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. - The default value is true. - - true if integers are allowed when serializing and deserializing; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - true if the written enum text will be camel case; otherwise, false. - - - - Initializes a new instance of the class. - - The naming strategy used to resolve how enum text is written. - true if integers are allowed when serializing and deserializing; otherwise, false. - - - - Initializes a new instance of the class. - - The of the used to write enum text. - - - - Initializes a new instance of the class. - - The of the used to write enum text. - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - - - - Initializes a new instance of the class. - - The of the used to write enum text. - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - true if integers are allowed when serializing and deserializing; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from Unix epoch time - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts XML to and from JSON. - - - - - Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements. - - The name of the deserialized root element. - - - - Gets or sets a value to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - true if the array attribute is written to the XML; otherwise, false. - - - - Gets or sets a value indicating whether to write the root JSON object. - - true if the JSON root object is omitted; otherwise, false. - - - - Gets or sets a value indicating whether to encode special characters when converting JSON to XML. - If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify - XML namespaces, attributes or processing directives. Instead special characters are encoded and written - as part of the XML element name. - - true if special characters are encoded; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The calling serializer. - The value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Checks if the is a namespace attribute. - - Attribute name to test. - The attribute name prefix if it has one, otherwise an empty string. - true if attribute name is for a namespace attribute, otherwise false. - - - - Determines whether this instance can convert the specified value type. - - Type of the value. - - true if this instance can convert the specified value type; otherwise, false. - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - The default JSON name table implementation. - - - - - Initializes a new instance of the class. - - - - - Gets a string containing the same characters as the specified range of characters in the given array. - - The character array containing the name to find. - The zero-based index into the array specifying the first character of the name. - The number of characters in the name. - A string containing the same characters as the specified range of characters in the given array. - - - - Adds the specified string into name table. - - The string to add. - This method is not thread-safe. - The resolved string. - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that it is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and set members to their default value when deserializing. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent an array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if and can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, when returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, when returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items. - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets or sets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - - Gets or sets the of the . - - The of the . - - - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - - - [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] - - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Provides methods for converting between .NET types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output should be formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection of converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output should be formatted. - A collection of converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is to write out the type name if the type of the value does not match. - Specifying the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output should be formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output should be formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is to write out the type name if the type of the value does not match. - Specifying the type is optional. - - - A JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be inferred from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be inferred from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Serializes the to a JSON string. - - The node to convert to JSON. - A JSON string of the . - - - - Serializes the to a JSON string using formatting. - - The node to convert to JSON. - Indicates how the output should be formatted. - A JSON string of the . - - - - Serializes the to a JSON string using formatting and omits the root object if is true. - - The node to serialize. - Indicates how the output should be formatted. - Omits writing the root object. - A JSON string of the . - - - - Deserializes the from a JSON string. - - The JSON string. - The deserialized . - - - - Deserializes the from a JSON string nested in a root element specified by . - - The JSON string. - The name of the root element to append when deserializing. - The deserialized . - - - - Deserializes the from a JSON string nested in a root element specified by - and writes a Json.NET array attribute for collections. - - The JSON string. - The name of the root element to append when deserializing. - - A value to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - The deserialized . - - - - Deserializes the from a JSON string nested in a root element specified by , - writes a Json.NET array attribute for collections, and encodes special characters. - - The JSON string. - The name of the root element to append when deserializing. - - A value to indicate whether to write the Json.NET array attribute. - This attribute helps preserve arrays when converting the written XML back to JSON. - - - A value to indicate whether to encode special characters when converting JSON to XML. - If true, special characters like ':', '@', '?', '#' and '$' in JSON property names aren't used to specify - XML namespaces, attributes or processing directives. Instead special characters are encoded and written - as part of the XML element name. - - The deserialized . - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Converts an object to and from JSON. - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. If there is no existing value then null will be used. - The existing value has a value. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the . - - The of the . - - - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the . - - - - Initializes a new instance of the class. - - Type of the . - Parameter list to use when constructing the . Can be null. - - - - Represents a collection of . - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Base class for a table of atomized string objects. - - - - - Gets a string containing the same characters as the specified range of characters in the given array. - - The character array containing the name to find. - The zero-based index into the array specifying the first character of the name. - The number of characters in the name. - A string containing the same characters as the specified range of characters in the given array. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets the missing member handling used when deserializing this object. - - The missing member handling. - - - - Gets or sets how the object's properties with null values are handled during serialization and deserialization. - - How the object's properties with null values are handled during serialization and deserialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the type used when serializing the property's collection items. - - The collection's items type. - - - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - - Gets or sets the of the . - - The of the . - - - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - - - [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] - - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Asynchronously reads the next JSON token from the source. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns true if the next token was read successfully; false if there are no more tokens to read. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously skips the children of the current token. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously reads the next JSON token from the source as a []. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the []. This result will be null at the end of an array. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously reads the next JSON token from the source as a . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the . This result will be null at the end of an array. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Specifies the state of the reader. - - - - - A read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader is in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the source should be closed when this reader is closed. - - - true to close the source when this reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. - The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Gets or sets how time zones are handled when reading JSON. - - - - - Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Gets or sets how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets the .NET type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class. - - - - - Reads the next JSON token from the source. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a []. - - A [] or null if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the current token and value. - - The new token. - The value. - A flag indicating whether the position index inside an array should be updated. - - - - Sets the state based on current token type. - - - - - Releases unmanaged and - optionally - managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the reader's state to . - If is set to true, the source is also closed. - - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Initializes a new instance of the class - with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The path to the JSON where the error occurred. - The line number indicating where the error occurred. - The line position indicating where the error occurred. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Instructs the to always serialize the member, and to require that the member has a value. - - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Initializes a new instance of the class - with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The path to the JSON where the error occurred. - The line number indicating where the error occurred. - The line position indicating where the error occurred. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - The default value is . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than . - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - The default value is . - - The type name assembly format. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - The default value is . - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - The default value is . - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - The default value is . - - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - The default value is . - - - - - Gets or sets how null values are handled during serialization and deserialization. - The default value is . - - - - - Gets or sets how default values are handled during serialization and deserialization. - The default value is . - - - - - Gets or sets how objects are created during deserialization. - The default value is . - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - The default value is . - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - The default value is . - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - The default value is . - - - - - Gets or sets how dates are written to JSON text. - The default value is . - - - - - Gets or sets how time zones are handled during serialization and deserialization. - The default value is . - - - - - Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - The default value is . - - - - - Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - The default value is . - - - - - Gets or sets how special floating point numbers, e.g. , - and , - are written as JSON text. - The default value is . - - - - - Gets or sets how strings are escaped when writing JSON text. - The default value is . - - - - - Gets or sets how and values are formatted when writing JSON text, - and the expected date format when reading JSON text. - The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". - - - - - Gets or sets the culture used when reading JSON. - The default value is . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - A null value means there is no maximum. - The default value is null. - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - The default value is false. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to read values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to read values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is to write out the type name if the type of the value does not match. - Specifying the type is optional. - - - - - Serializes the specified and writes the JSON structure - using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifying the type is optional. - - - - - Serializes the specified and writes the JSON structure - using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) are handled. - The default value is . - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - The default value is . - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - The default value is . - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - The default value is . - - Null value handling. - - - - Gets or sets how default values are handled during serialization and deserialization. - The default value is . - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - The default value is . - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - The default value is . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than . - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - The default value is . - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - The default value is . - - The type name assembly format. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - The default value is . - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - The default value is . - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Gets or sets how and values are formatted when writing JSON text, - and the expected date format when reading JSON text. - The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - A null value means there is no maximum. - The default value is null. - - - - - Indicates how JSON text output is formatted. - The default value is . - - - - - Gets or sets how dates are written to JSON text. - The default value is . - - - - - Gets or sets how time zones are handled during serialization and deserialization. - The default value is . - - - - - Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - The default value is . - - - - - Gets or sets how special floating point numbers, e.g. , - and , - are written as JSON. - The default value is . - - - - - Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - The default value is . - - - - - Gets or sets how strings are escaped when writing JSON text. - The default value is . - - - - - Gets or sets the culture used when reading JSON. - The default value is . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - The default value is false. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Asynchronously reads the next JSON token from the source. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns true if the next token was read successfully; false if there are no more tokens to read. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously reads the next JSON token from the source as a []. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the []. This result will be null at the end of an array. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously reads the next JSON token from the source as a of . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the of . This result will be null at the end of an array. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously reads the next JSON token from the source as a . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous read. The - property returns the . This result will be null at the end of an array. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Initializes a new instance of the class with the specified . - - The containing the JSON data to read. - - - - Gets or sets the reader's property name table. - - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the underlying . - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a []. - - A [] or null if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Changes the reader's state to . - If is set to true, the underlying is also closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if and can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, returns false). - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the JSON value delimiter. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the specified end token. - - The end token to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously closes this writer. - If is set to true, the destination is also closed. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the end of the current JSON object or array. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes indent characters. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes an indent space. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes raw JSON without changing the writer's state. - - The raw JSON to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a null value. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the property name of a name/value pair of a JSON object. - - The name of the property. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the property name of a name/value pair of a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the beginning of a JSON array. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the beginning of a JSON object. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the start of a constructor with the given name. - - The name of the constructor. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes an undefined value. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the given white space. - - The string of white space characters. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a [] value. - - The [] value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes a comment /*...*/ containing the specified text. - - Text to place inside the comment. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the end of an array. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the end of a constructor. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes the end of a JSON object. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Asynchronously writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - Derived classes must override this method to get asynchronous behaviour. Otherwise it will - execute synchronously, returning an already-completed task. - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many s to write for each level in the hierarchy when is set to . - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to . - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Initializes a new instance of the class using the specified . - - The to write to. - - - - Flushes whatever is in the buffer to the underlying and also flushes the underlying . - - - - - Closes this writer. - If is set to true, the underlying is also closed. - If is set to true, the JSON is auto-completed. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a value. - - The value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the given white space. - - The string of white space characters. - - - - Specifies the type of JSON token. - - - - - This is returned by the if a read method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - - Represents a reader that provides validation. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Sets an event handler for receiving schema validation errors. - - - - - Gets the text value of the current JSON token. - - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - - Gets the type of the current JSON token. - - - - - - Gets the .NET type for the current JSON token. - - - - - - Initializes a new instance of the class that - validates the content returned from the given . - - The to read from while validating. - - - - Gets or sets the schema. - - The schema. - - - - Gets the used to construct this . - - The specified in the constructor. - - - - Changes the reader's state to . - If is set to true, the underlying is also closed. - - - - - Reads the next JSON token from the underlying as a of . - - A of . - - - - Reads the next JSON token from the underlying as a []. - - - A [] or null if the next JSON token is null. - - - - - Reads the next JSON token from the underlying as a of . - - A of . - - - - Reads the next JSON token from the underlying as a of . - - A of . - - - - Reads the next JSON token from the underlying as a of . - - A of . - - - - Reads the next JSON token from the underlying as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . - - - - Reads the next JSON token from the underlying . - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Asynchronously closes this writer. - If is set to true, the destination is also closed. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the specified end token. - - The end token to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes indent characters. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the JSON value delimiter. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes an indent space. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes raw JSON without changing the writer's state. - - The raw JSON to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the end of the current JSON object or array. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the end of an array. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the end of a constructor. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the end of a JSON object. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a null value. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the property name of a name/value pair of a JSON object. - - The name of the property. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the property name of a name/value pair of a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the beginning of a JSON array. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a comment /*...*/ containing the specified text. - - Text to place inside the comment. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the start of a constructor with the given name. - - The name of the constructor. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the beginning of a JSON object. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the current token. - - The to read the token from. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the token and its value. - - The to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - null can be passed to the method for tokens that don't have a value, e.g. . - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a [] value. - - The [] value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a value. - - The value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes a of value. - - The of value to write. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes an undefined value. - - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously writes the given white space. - - The string of white space characters. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Asynchronously ets the state of the . - - The being written. - The value being written. - The token to monitor for cancellation requests. The default value is . - A that represents the asynchronous operation. - The default behaviour is to execute synchronously, returning an already-completed task. Derived - classes can override this behaviour for true asynchronicity. - - - - Gets or sets a value indicating whether the destination should be closed when this writer is closed. - - - true to close the destination when this writer is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. - - - true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Gets or sets a value indicating how JSON text output should be formatted. - - - - - Gets or sets how dates are written to JSON text. - - - - - Gets or sets how time zones are handled when writing JSON text. - - - - - Gets or sets how strings are escaped when writing JSON text. - - - - - Gets or sets how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Gets or sets how and values are formatted when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the destination and also flushes the destination. - - - - - Closes this writer. - If is set to true, the destination is also closed. - If is set to true, the JSON is auto-completed. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair of a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair of a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - null can be passed to the method for tokens that don't have a value, e.g. . - - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the . - - The being written. - The value being written. - - - - The exception thrown when an error occurs while writing JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Initializes a new instance of the class - with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The path to the JSON where the error occurred. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how duplicate property names are handled when loading JSON. - - - - - Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. - - - - - Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. - - - - - Throw a when a duplicate property is encountered. - - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a collection of objects. - - The type of token. - - - - Gets the of with the specified key. - - - - - - Represents a JSON array. - - - - - - - - Writes this token to a asynchronously. - - A into which this method will write. - The token to monitor for cancellation requests. - A collection of which will be used when writing the token. - A that represents the asynchronous write operation. - - - - Asynchronously loads a from a . - - A that will be read for the content of the . - If this is null, default load settings will be used. - The token to monitor for cancellation requests. The default value is . - A representing the asynchronous load. The property contains the JSON that was read from the specified . - - - - Asynchronously loads a from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - The token to monitor for cancellation requests. The default value is . - A representing the asynchronous load. The property contains the JSON that was read from the specified . - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object. - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - - - - - Returns an enumerator that iterates through the collection. - - - A of that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - - - - Removes all items from the . - - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies the elements of the to an array, starting at a particular array index. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - - - - Represents a JSON constructor. - - - - - Writes this token to a asynchronously. - - A into which this method will write. - The token to monitor for cancellation requests. - A collection of which will be used when writing the token. - A that represents the asynchronous write operation. - - - - Asynchronously loads a from a . - - A that will be read for the content of the . - The token to monitor for cancellation requests. The default value is . - - A that represents the asynchronous load. The - property returns a that contains the JSON that was read from the specified . - - - - Asynchronously loads a from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - The token to monitor for cancellation requests. The default value is . - - A that represents the asynchronous load. The - property returns a that contains the JSON that was read from the specified . - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads a from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads a from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Occurs when the items list of the collection has changed, or the collection is reset. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Raises the event. - - The instance containing the event data. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An of containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An of containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates a that can be used to add tokens to the . - - A that is ready to have content written to it. - - - - Replaces the child nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens. - - - - Represents a collection of objects. - - The type of token. - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that can be used to iterate through the collection. - - - A that can be used to iterate through the collection. - - - - - Gets the of with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Writes this token to a asynchronously. - - A into which this method will write. - The token to monitor for cancellation requests. - A collection of which will be used when writing the token. - A that represents the asynchronous write operation. - - - - Asynchronously loads a from a . - - A that will be read for the content of the . - The token to monitor for cancellation requests. The default value is . - - A that represents the asynchronous load. The - property returns a that contains the JSON that was read from the specified . - - - - Asynchronously loads a from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - The token to monitor for cancellation requests. The default value is . - - A that represents the asynchronous load. The - property returns a that contains the JSON that was read from the specified . - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of of this object's properties. - - An of of this object's properties. - - - - Gets a with the specified name. - - The property name. - A with the specified name or null. - - - - Gets the with the specified name. - The exact name will be searched for first and if no matching property is found then - the will be used to match a property. - - The property name. - One of the enumeration values that specifies how the strings will be compared. - A matched with the specified name or null. - - - - Gets a of of this object's property values. - - A of of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads a from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - is not valid JSON. - - - - - Loads a from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - is not valid JSON. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - is not valid JSON. - - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - is not valid JSON. - - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object. - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Determines whether the JSON object has the specified property name. - - Name of the property. - true if the JSON object has the specified property name; otherwise, false. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries to get the with the specified property name. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that can be used to iterate through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Represents a JSON property. - - - - - Writes this token to a asynchronously. - - A into which this method will write. - The token to monitor for cancellation requests. - A collection of which will be used when writing the token. - A that represents the asynchronous write operation. - - - - Asynchronously loads a from a . - - A that will be read for the content of the . - The token to monitor for cancellation requests. The default value is . - A representing the asynchronous creation. The - property returns a that contains the JSON that was read from the specified . - - - - Asynchronously loads a from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - The token to monitor for cancellation requests. The default value is . - A representing the asynchronous creation. The - property returns a that contains the JSON that was read from the specified . - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads a from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads a from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a raw JSON string. - - - - - Asynchronously creates an instance of with the content of the reader's current token. - - The reader. - The token to monitor for cancellation requests. The default value is . - A representing the asynchronous creation. The - property returns an instance of with the content of the reader's current token. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Specifies the settings used when loading JSON. - - - - - Initializes a new instance of the class. - - - - - Gets or sets how JSON comments are handled when loading JSON. - The default value is . - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - The default value is . - - The JSON line info handling. - - - - Gets or sets how duplicate property names in JSON objects are handled when loading JSON. - The default value is . - - The JSON duplicate property name handling. - - - - Specifies the settings used when merging JSON. - - - - - Initializes a new instance of the class. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Gets or sets how null value properties are merged. - - How null value properties are merged. - - - - Gets or sets the comparison used to match property names while merging. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - The comparison used to match property names while merging. - - - - Represents an abstract JSON token. - - - - - Writes this token to a asynchronously. - - A into which this method will write. - The token to monitor for cancellation requests. - A collection of which will be used when writing the token. - A that represents the asynchronous write operation. - - - - Writes this token to a asynchronously. - - A into which this method will write. - A collection of which will be used when writing the token. - A that represents the asynchronous write operation. - - - - Asynchronously creates a from a . - - An positioned at the token to read into this . - The token to monitor for cancellation requests. The default value is . - - A that represents the asynchronous creation. The - property returns a that contains - the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Asynchronously creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - The token to monitor for cancellation requests. The default value is . - - A that represents the asynchronous creation. The - property returns a that contains - the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Asynchronously creates a from a . - - A positioned at the token to read into this . - The token to monitor for cancellation requests. The default value is . - - A that represents the asynchronous creation. The - property returns a that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Asynchronously creates a from a . - - A positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - The token to monitor for cancellation requests. The default value is . - - A that represents the asynchronous creation. The - property returns a that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - ToString() returns a non-JSON string value for tokens with a type of . - If you want the JSON for all token types then you should use . - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output should be formatted. - A collection of s which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Creates a for this token. - - A that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object. - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object. - - - - Creates an instance of the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates an instance of the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates an instance of the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates an instance of the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - A positioned at the token to read into this . - - A that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - A that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - A positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - A that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - A positioned at the token to read into this . - - A that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JSONPath expression. Selects the token that matches the object path. - - - A that contains a JSONPath expression. - - A , or null. - - - - Selects a using a JSONPath expression. Selects the token that matches the object path. - - - A that contains a JSONPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JSONPath expression. - - - A that contains a JSONPath expression. - - An of that contains the selected elements. - - - - Selects a collection of elements using a JSONPath expression. - - - A that contains a JSONPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An of that contains the selected elements. - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Initializes a new instance of the class. - - The token to read from. - The initial path of the token. It is prepended to the returned . - - - - Reads the next JSON token from the underlying . - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being written. - - The token being written. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying . - - - - - Closes this writer. - If is set to true, the JSON is auto-completed. - - - Setting to true has no additional effect, since the underlying is a type that cannot be closed. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will be raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Writes this token to a asynchronously. - - A into which this method will write. - The token to monitor for cancellation requests. - A collection of which will be used when writing the token. - A that represents the asynchronous write operation. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a undefined value. - - A undefined value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of s which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - ToString() returns a non-JSON string value for tokens with a type of . - If you want the JSON for all token types then you should use . - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Returns the responsible for binding operations performed on this object. - - The expression tree representation of the runtime value. - - The to bind this object. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not of the same type as this instance. - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Specifies how null value properties are merged. - - - - - The content's null value properties will be ignored during merging. - - - - - The content's null value properties will be merged. - - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - - Contains the JSON schema extension methods. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - true if the specified is valid; otherwise, false. - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - When this method returns, contains any error messages generated while validating. - - true if the specified is valid; otherwise, false. - - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - The validation event handler. - - - - - An in-memory representation of a JSON Schema. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the id. - - - - - Gets or sets the title. - - - - - Gets or sets whether the object is required. - - - - - Gets or sets whether the object is read-only. - - - - - Gets or sets whether the object is visible to users. - - - - - Gets or sets whether the object is transient. - - - - - Gets or sets the description of the object. - - - - - Gets or sets the types of values allowed by the object. - - The type. - - - - Gets or sets the pattern. - - The pattern. - - - - Gets or sets the minimum length. - - The minimum length. - - - - Gets or sets the maximum length. - - The maximum length. - - - - Gets or sets a number that the value should be divisible by. - - A number that the value should be divisible by. - - - - Gets or sets the minimum. - - The minimum. - - - - Gets or sets the maximum. - - The maximum. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). - - A flag indicating whether the value can not equal the number defined by the minimum attribute (). - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). - - A flag indicating whether the value can not equal the number defined by the maximum attribute (). - - - - Gets or sets the minimum number of items. - - The minimum number of items. - - - - Gets or sets the maximum number of items. - - The maximum number of items. - - - - Gets or sets the of items. - - The of items. - - - - Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . - - - true if items are validated using their array position; otherwise, false. - - - - - Gets or sets the of additional items. - - The of additional items. - - - - Gets or sets a value indicating whether additional items are allowed. - - - true if additional items are allowed; otherwise, false. - - - - - Gets or sets whether the array items must be unique. - - - - - Gets or sets the of properties. - - The of properties. - - - - Gets or sets the of additional properties. - - The of additional properties. - - - - Gets or sets the pattern properties. - - The pattern properties. - - - - Gets or sets a value indicating whether additional properties are allowed. - - - true if additional properties are allowed; otherwise, false. - - - - - Gets or sets the required property if this property is present. - - The required property if this property is present. - - - - Gets or sets the a collection of valid enum values allowed. - - A collection of valid enum values allowed. - - - - Gets or sets disallowed types. - - The disallowed types. - - - - Gets or sets the default value. - - The default value. - - - - Gets or sets the collection of that this schema extends. - - The collection of that this schema extends. - - - - Gets or sets the format. - - The format. - - - - Initializes a new instance of the class. - - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The object representing the JSON Schema. - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The to use when resolving schema references. - The object representing the JSON Schema. - - - - Load a from a string that contains JSON Schema. - - A that contains JSON Schema. - A populated from the string that contains JSON Schema. - - - - Load a from a string that contains JSON Schema using the specified . - - A that contains JSON Schema. - The resolver. - A populated from the string that contains JSON Schema. - - - - Writes this schema to a . - - A into which this method will write. - - - - Writes this schema to a using the specified . - - A into which this method will write. - The resolver used. - - - - Returns a that represents the current . - - - A that represents the current . - - - - - - Returns detailed information about the schema exception. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - - Generates a from a specified . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets how undefined schemas are handled by the serializer. - - - - - Gets or sets the contract resolver. - - The contract resolver. - - - - Generate a from the specified type. - - The type to generate a from. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - - Resolves from an id. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the loaded schemas. - - The loaded schemas. - - - - Initializes a new instance of the class. - - - - - Gets a for the specified reference. - - The id. - A for the specified reference. - - - - - The value types allowed by the . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - No type specified. - - - - - String type. - - - - - Float type. - - - - - Integer type. - - - - - Boolean type. - - - - - Object type. - - - - - Array type. - - - - - Null type. - - - - - Any type. - - - - - - Specifies undefined schema Id handling options for the . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Do not infer a schema Id. - - - - - Use the .NET type name as the schema Id. - - - - - Use the assembly qualified .NET type name as the schema Id. - - - - - - Returns detailed information related to the . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the associated with the validation error. - - The JsonSchemaException associated with the validation error. - - - - Gets the path of the JSON location where the validation error occurred. - - The path of the JSON location where the validation error occurred. - - - - Gets the text description corresponding to the validation error. - - The text description. - - - - - Represents the callback method that will handle JSON schema validation events and the . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Allows users to control class loading and mandate what class to load. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object - The type of the object the formatter creates a new instance of. - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - A camel case naming strategy. - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - A flag indicating whether extension data names should be processed. - - - - - Initializes a new instance of the class. - - - - - Resolves the specified property name. - - The property name to resolve. - The resolved property name. - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Used by to resolve a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. - - - true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. - - - true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. - - The naming strategy used to resolve how property names and dictionary keys are serialized. - - - - Initializes a new instance of the class. - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the name of the extension data. By default no changes are made to extension data names. - - Name of the extension data. - Resolved name of the extension data. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default naming strategy. Property names and dictionary keys are unchanged. - - - - - Resolves the specified property name. - - The property name to resolve. - The resolved property name. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - Initializes a new instance of the class. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Used by to resolve a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that was resolved from the reference. - - - - Gets the reference for the specified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Allows users to control class loading and mandate what class to load. - - - - - When implemented, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object - The type of the object the formatter creates a new instance of. - - - - When implemented, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of will exclude messages and include , - and messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets the internally resolved for the contract's type. - This converter is used as a fallback converter when no other converter is resolved. - Setting will always override this converter. - - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non-public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets the object's properties. - - The object's properties. - - - - Gets or sets the property name resolver. - - The property name resolver. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets the missing member handling used when deserializing this object. - - The missing member handling. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets or sets how the object's properties with null values are handled during serialization and deserialization. - - How the object's properties with null values are handled during serialization and deserialization. - - - - Gets the object's properties. - - The object's properties. - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Gets or sets the extension data name resolver. - - The extension data name resolver. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes precedence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets a value indicating whether has a value specified. - - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the type described by the argument. - - The type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - A kebab case naming strategy. - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - A flag indicating whether extension data names should be processed. - - - - - Initializes a new instance of the class. - - - - - Resolves the specified property name. - - The property name to resolve. - The resolved property name. - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of will exclude messages and include , - and messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - A base class for resolving how property names and dictionary keys are serialized. - - - - - A flag indicating whether dictionary keys should be processed. - Defaults to false. - - - - - A flag indicating whether extension data names should be processed. - Defaults to false. - - - - - A flag indicating whether explicitly specified property names, - e.g. a property name customized with a , should be processed. - Defaults to false. - - - - - Gets the serialized name for a given property name. - - The initial property name. - A flag indicating whether the property has had a name explicitly specified. - The serialized property name. - - - - Gets the serialized name for a given extension data name. - - The initial extension data name. - The serialized extension data name. - - - - Gets the serialized key for a given dictionary key. - - The initial dictionary key. - The serialized dictionary key. - - - - Resolves the specified property name. - - The property name to resolve. - The resolved property name. - - - - Hash code calculation - - - - - - Object equality implementation - - - - - - - Compare to another NamingStrategy - - - - - - - Represents a method that constructs an object. - - The object type to create. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - A snake case naming strategy. - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - A flag indicating whether extension data names should be processed. - - - - - Initializes a new instance of the class. - - - - - Resolves the specified property name. - - The property name to resolve. - The resolved property name. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Specifies what messages to output for the class. - - - - - Output no tracing and debugging messages. - - - - - Output error-handling messages. - - - - - Output warnings and error-handling messages. - - - - - Output informational messages, warnings, and error-handling messages. - - - - - Output all debugging and tracing messages. - - - - - Indicates the method that will be used during deserialization for locating and loading assemblies. - - - - - In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. - - - - - In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than . - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON - you must specify a root type object with - or . - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic . - - The list to add to. - The collection of elements to add. - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic that returns a result - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Helper method for generating a MetaObject which calls a - specific method on Dynamic, but uses one of the arguments for - the result. - - - - - Returns a Restrictions object which includes our current restrictions merged - with a restriction limiting our type - - - - - Helper class for serializing immutable collections. - Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed - https://github.com/JamesNK/Newtonsoft.Json/issues/652 - - - - - List of primitive types which can be widened. - - - - - Widening masks for primitive types above. - Index of the value in this array defines a type we're widening, - while the bits in mask define types it can be widened to (including itself). - - For example, value at index 0 defines a bool type, and it only has bit 0 set, - i.e. bool values can be assigned only to bool. - - - - - Checks if value of primitive type can be - assigned to parameter of primitive type . - - Source primitive type. - Target primitive type. - true if source type can be widened to target type, false otherwise. - - - - Checks if a set of values with given can be used - to invoke a method with specified . - - Method parameters. - Argument types. - Try to pack extra arguments into the last parameter when it is marked up with . - true if method can be called with given arguments, false otherwise. - - - - Compares two sets of parameters to determine - which one suits better for given argument types. - - - - - Returns a best method overload for given argument . - - List of method candidates. - Argument types. - Best method overload, or null if none matched. - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Builds a string. Unlike this class lets you reuse its internal buffer. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls result in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - An array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - - Indicates the method that will be used during deserialization for locating and loading assemblies. - - - - - In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly. - - - - - In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly. - - - - Specifies that an output will not be null even if the corresponding type allows it. - - - Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - - Gets the return value condition. - - - Specifies that an output may be null even if the corresponding type disallows it. - - - Specifies that null is allowed as an input even if the corresponding type disallows it. - - - - Specifies that the method will not return if the associated Boolean parameter is passed the specified value. - - - - - Initializes a new instance of the class. - - - The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to - the associated parameter matches this value. - - - - Gets the condition parameter value. - - - diff --git a/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.3/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.3/Newtonsoft.Json.dll deleted file mode 100644 index 9244d0a..0000000 Binary files a/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.3/Newtonsoft.Json.dll and /dev/null differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/netstandard2.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.12.0.3/lib/netstandard2.0/Newtonsoft.Json.dll deleted file mode 100644 index b501fb6..0000000 Binary files a/packages/Newtonsoft.Json.12.0.3/lib/netstandard2.0/Newtonsoft.Json.dll and /dev/null differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.12.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll deleted file mode 100644 index 112c29a..0000000 Binary files a/packages/Newtonsoft.Json.12.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll and /dev/null differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.12.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml deleted file mode 100644 index 8f1dc63..0000000 --- a/packages/Newtonsoft.Json.12.0.3/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml +++ /dev/null @@ -1,9010 +0,0 @@ - - - - Newtonsoft.Json - - - - - Represents a BSON Oid (object id). - - - - - Gets or sets the value of the Oid. - - The value of the Oid. - - - - Initializes a new instance of the class. - - The Oid value. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. - - - - - Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. - - - true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. - - - - - Gets or sets a value indicating whether the root object will be read as a JSON array. - - - true if the root object will be read as a JSON array; otherwise, false. - - - - - Gets or sets the used when reading values from BSON. - - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The containing the BSON data to read. - - - - Initializes a new instance of the class. - - The containing the BSON data to read. - - - - Initializes a new instance of the class. - - The containing the BSON data to read. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Initializes a new instance of the class. - - The containing the BSON data to read. - if set to true the root object will be read as a JSON array. - The used when reading values from BSON. - - - - Reads the next JSON token from the underlying . - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Changes the reader's state to . - If is set to true, the underlying is also closed. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. - - - - - Gets or sets the used when writing values to BSON. - When set to no conversion will occur. - - The used when writing values to BSON. - - - - Initializes a new instance of the class. - - The to write to. - - - - Initializes a new instance of the class. - - The to write to. - - - - Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. - - - - - Writes the end. - - The token. - - - - Writes a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes the beginning of a JSON array. - - - - - Writes the beginning of a JSON object. - - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Closes this writer. - If is set to true, the underlying is also closed. - If is set to true, the JSON is auto-completed. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value that represents a BSON object id. - - The Object ID value to write. - - - - Writes a BSON regex. - - The regex pattern. - The regex options. - - - - Specifies how constructors are used when initializing objects during deserialization by the . - - - - - First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. - - - - - Json.NET will use a non-public default constructor before falling back to a parameterized constructor. - - - - - Converts a binary value to and from a base 64 string value. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Creates a custom object. - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Creates an object which will then be populated by the serializer. - - Type of the object. - The created object. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can write JSON. - - - true if this can write JSON; otherwise, false. - - - - - Provides a base class for converting a to and from JSON. - - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a F# discriminated union type to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). - - - - - Gets or sets the date time styles used when converting a date to and from JSON. - - The date time styles used when converting a date to and from JSON. - - - - Gets or sets the date time format used when converting a date to and from JSON. - - The date time format used when converting a date to and from JSON. - - - - Gets or sets the culture used when converting a date to and from JSON. - - The culture used when converting a date to and from JSON. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts a to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from JSON and BSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts an to and from its name string value. - - - - - Gets or sets a value indicating whether the written enum text should be camel case. - The default value is false. - - true if the written enum text will be camel case; otherwise, false. - - - - Gets or sets the naming strategy used to resolve how enum text is written. - - The naming strategy used to resolve how enum text is written. - - - - Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. - The default value is true. - - true if integers are allowed when serializing and deserializing; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - true if the written enum text will be camel case; otherwise, false. - - - - Initializes a new instance of the class. - - The naming strategy used to resolve how enum text is written. - true if integers are allowed when serializing and deserializing; otherwise, false. - - - - Initializes a new instance of the class. - - The of the used to write enum text. - - - - Initializes a new instance of the class. - - The of the used to write enum text. - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - - - - Initializes a new instance of the class. - - The of the used to write enum text. - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - true if integers are allowed when serializing and deserializing; otherwise, false. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Converts a to and from Unix epoch time - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Converts a to and from a string (e.g. "1.2.3.4"). - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing property value of the JSON that is being converted. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Specifies how dates are formatted when writing JSON text. - - - - - Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". - - - - - Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". - - - - - Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. - - - - - Date formatted strings are not parsed to a date type and are read as strings. - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . - - - - - Specifies how to treat the time value when converting between string and . - - - - - Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. - - - - - Treat as a UTC. If the object represents a local time, it is converted to a UTC. - - - - - Treat as a local time if a is being converted to a string. - If a string is being converted to , convert to a local time if a time zone is specified. - - - - - Time zone information should be preserved when converting. - - - - - The default JSON name table implementation. - - - - - Initializes a new instance of the class. - - - - - Gets a string containing the same characters as the specified range of characters in the given array. - - The character array containing the name to find. - The zero-based index into the array specifying the first character of the name. - The number of characters in the name. - A string containing the same characters as the specified range of characters in the given array. - - - - Adds the specified string into name table. - - The string to add. - This method is not thread-safe. - The resolved string. - - - - Specifies default value handling options for the . - - - - - - - - - Include members where the member value is the same as the member's default value when serializing objects. - Included members are written to JSON. Has no effect when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - so that it is not written to JSON. - This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, - decimals and floating point numbers; and false for booleans). The default value ignored can be changed by - placing the on the property. - - - - - Members with a default value but no JSON will be set to their default value when deserializing. - - - - - Ignore members where the member value is the same as the member's default value when serializing objects - and set members to their default value when deserializing. - - - - - Specifies float format handling options when writing special floating point numbers, e.g. , - and with . - - - - - Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". - - - - - Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. - Note that this will produce non-valid JSON. - - - - - Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. - - - - - Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Floating point numbers are parsed to . - - - - - Floating point numbers are parsed to . - - - - - Specifies formatting options for the . - - - - - No special formatting is applied. This is the default. - - - - - Causes child objects to be indented according to the and settings. - - - - - Provides an interface for using pooled arrays. - - The array type content. - - - - Rent an array from the pool. This array must be returned when it is no longer needed. - - The minimum required length of the array. The returned array may be longer. - The rented array from the pool. This array must be returned when it is no longer needed. - - - - Return an array to the pool. - - The array that is being returned. - - - - Provides an interface to enable a class to return line and position information. - - - - - Gets a value indicating whether the class can return line information. - - - true if and can be provided; otherwise, false. - - - - - Gets the current line number. - - The current line number or 0 if no line information is available (for example, when returns false). - - - - Gets the current line position. - - The current line position or 0 if no line information is available (for example, when returns false). - - - - Instructs the how to serialize the collection. - - - - - Gets or sets a value indicating whether null items are allowed in the collection. - - true if null items are allowed in the collection; otherwise, false. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with a flag indicating whether the array can contain null items. - - A flag indicating whether the array can contain null items. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to use the specified constructor when deserializing that object. - - - - - Instructs the how to serialize the object. - - - - - Gets or sets the id. - - The id. - - - - Gets or sets the title. - - The title. - - - - Gets or sets the description. - - The description. - - - - Gets or sets the collection's items converter. - - The collection's items converter. - - - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - - - [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - - Gets or sets the of the . - - The of the . - - - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - - - [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] - - - - - - Gets or sets a value that indicates whether to preserve object references. - - - true to keep object reference; otherwise, false. The default is false. - - - - - Gets or sets a value that indicates whether to preserve collection's items references. - - - true to keep collection's items object references; otherwise, false. The default is false. - - - - - Gets or sets the reference loop handling used when serializing the collection's items. - - The reference loop handling. - - - - Gets or sets the type name handling used when serializing the collection's items. - - The type name handling. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Provides methods for converting between .NET types and JSON types. - - - - - - - - Gets or sets a function that creates default . - Default settings are automatically used by serialization methods on , - and and on . - To serialize without using any default settings create a with - . - - - - - Represents JavaScript's boolean value true as a string. This field is read-only. - - - - - Represents JavaScript's boolean value false as a string. This field is read-only. - - - - - Represents JavaScript's null as a string. This field is read-only. - - - - - Represents JavaScript's undefined as a string. This field is read-only. - - - - - Represents JavaScript's positive infinity as a string. This field is read-only. - - - - - Represents JavaScript's negative infinity as a string. This field is read-only. - - - - - Represents JavaScript's NaN as a string. This field is read-only. - - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - The time zone handling when the date is converted to a string. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation using the specified. - - The value to convert. - The format the date will be converted to. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - The string delimiter character. - The string escape handling. - A JSON string representation of the . - - - - Converts the to its JSON string representation. - - The value to convert. - A JSON string representation of the . - - - - Serializes the specified object to a JSON string. - - The object to serialize. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting. - - The object to serialize. - Indicates how the output should be formatted. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a collection of . - - The object to serialize. - A collection of converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using formatting and a collection of . - - The object to serialize. - Indicates how the output should be formatted. - A collection of converters used while serializing. - A JSON string representation of the object. - - - - Serializes the specified object to a JSON string using . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is to write out the type name if the type of the value does not match. - Specifying the type is optional. - - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using formatting and . - - The object to serialize. - Indicates how the output should be formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - A JSON string representation of the object. - - - - - Serializes the specified object to a JSON string using a type, formatting and . - - The object to serialize. - Indicates how the output should be formatted. - The used to serialize the object. - If this is null, default serialization settings will be used. - - The type of the value being serialized. - This parameter is used when is to write out the type name if the type of the value does not match. - Specifying the type is optional. - - - A JSON string representation of the object. - - - - - Deserializes the JSON to a .NET object. - - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to a .NET object using . - - The JSON to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The JSON to deserialize. - The of object being deserialized. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type. - - The type of the object to deserialize to. - The JSON to deserialize. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the given anonymous type. - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be inferred from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the given anonymous type using . - - - The anonymous type to deserialize to. This can't be specified - traditionally and must be inferred from the anonymous type passed - as a parameter. - - The JSON to deserialize. - The anonymous type object. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized anonymous type from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The type of the object to deserialize to. - The JSON to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The type of the object to deserialize to. - The object to deserialize. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using a collection of . - - The JSON to deserialize. - The type of the object to deserialize. - Converters to use while deserializing. - The deserialized object from the JSON string. - - - - Deserializes the JSON to the specified .NET type using . - - The JSON to deserialize. - The type of the object to deserialize to. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - The deserialized object from the JSON string. - - - - Populates the object with values from the JSON string. - - The JSON to populate values from. - The target object to populate values onto. - - - - Populates the object with values from the JSON string using . - - The JSON to populate values from. - The target object to populate values onto. - - The used to deserialize the object. - If this is null, default serialization settings will be used. - - - - - Converts an object to and from JSON. - - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Gets a value indicating whether this can read JSON. - - true if this can read JSON; otherwise, false. - - - - Gets a value indicating whether this can write JSON. - - true if this can write JSON; otherwise, false. - - - - Converts an object to and from JSON. - - The object type to convert. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Writes the JSON representation of the object. - - The to write to. - The value. - The calling serializer. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. - The calling serializer. - The object value. - - - - Reads the JSON representation of the object. - - The to read from. - Type of the object. - The existing value of object being read. If there is no existing value then null will be used. - The existing value has a value. - The calling serializer. - The object value. - - - - Determines whether this instance can convert the specified object type. - - Type of the object. - - true if this instance can convert the specified object type; otherwise, false. - - - - - Instructs the to use the specified when serializing the member or class. - - - - - Gets the of the . - - The of the . - - - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - - - - - Initializes a new instance of the class. - - Type of the . - - - - Initializes a new instance of the class. - - Type of the . - Parameter list to use when constructing the . Can be null. - - - - Represents a collection of . - - - - - Instructs the how to serialize the collection. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Instructs the to deserialize properties with no matching class member into the specified collection - and write values during serialization. - - - - - Gets or sets a value that indicates whether to write extension data when serializing the object. - - - true to write extension data when serializing the object; otherwise, false. The default is true. - - - - - Gets or sets a value that indicates whether to read extension data when deserializing the object. - - - true to read extension data when deserializing the object; otherwise, false. The default is true. - - - - - Initializes a new instance of the class. - - - - - Instructs the not to serialize the public field or public read/write property value. - - - - - Base class for a table of atomized string objects. - - - - - Gets a string containing the same characters as the specified range of characters in the given array. - - The character array containing the name to find. - The zero-based index into the array specifying the first character of the name. - The number of characters in the name. - A string containing the same characters as the specified range of characters in the given array. - - - - Instructs the how to serialize the object. - - - - - Gets or sets the member serialization. - - The member serialization. - - - - Gets or sets the missing member handling used when deserializing this object. - - The missing member handling. - - - - Gets or sets how the object's properties with null values are handled during serialization and deserialization. - - How the object's properties with null values are handled during serialization and deserialization. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified member serialization. - - The member serialization. - - - - Initializes a new instance of the class with the specified container Id. - - The container Id. - - - - Instructs the to always serialize the member with the specified name. - - - - - Gets or sets the type used when serializing the property's collection items. - - The collection's items type. - - - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - - - [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] - - - - - - Gets or sets the of the . - - The of the . - - - - The parameter list to use when constructing the described by . - If null, the default constructor is used. - When non-null, there must be a constructor defined in the that exactly matches the number, - order, and type of these parameters. - - - - [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] - - - - - - Gets or sets the null value handling used when serializing this property. - - The null value handling. - - - - Gets or sets the default value handling used when serializing this property. - - The default value handling. - - - - Gets or sets the reference loop handling used when serializing this property. - - The reference loop handling. - - - - Gets or sets the object creation handling used when deserializing this property. - - The object creation handling. - - - - Gets or sets the type name handling used when serializing this property. - - The type name handling. - - - - Gets or sets whether this property's value is serialized as a reference. - - Whether this property's value is serialized as a reference. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets a value indicating whether this property is required. - - - A value indicating whether this property is required. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - Gets or sets the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class with the specified name. - - Name of the property. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Specifies the state of the reader. - - - - - A read method has not been called. - - - - - The end of the file has been reached successfully. - - - - - Reader is at a property. - - - - - Reader is at the start of an object. - - - - - Reader is in an object. - - - - - Reader is at the start of an array. - - - - - Reader is in an array. - - - - - The method has been called. - - - - - Reader has just read a value. - - - - - Reader is at the start of a constructor. - - - - - Reader is in a constructor. - - - - - An error occurred that prevents the read operation from continuing. - - - - - The end of the file has been reached successfully. - - - - - Gets the current reader state. - - The current reader state. - - - - Gets or sets a value indicating whether the source should be closed when this reader is closed. - - - true to close the source when this reader is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether multiple pieces of JSON content can - be read from a continuous stream without erroring. - - - true to support reading multiple pieces of JSON content; otherwise false. - The default is false. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - Gets or sets how time zones are handled when reading JSON. - - - - - Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - - - - - Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - - - - - Gets or sets how custom date formatted strings are parsed when reading JSON. - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - - - - - Gets the type of the current JSON token. - - - - - Gets the text value of the current JSON token. - - - - - Gets the .NET type for the current JSON token. - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets or sets the culture used when reading JSON. Defaults to . - - - - - Initializes a new instance of the class. - - - - - Reads the next JSON token from the source. - - true if the next token was read successfully; false if there are no more tokens to read. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a []. - - A [] or null if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the source as a of . - - A of . This method will return null at the end of an array. - - - - Skips the children of the current token. - - - - - Sets the current token. - - The new token. - - - - Sets the current token and value. - - The new token. - The value. - - - - Sets the current token and value. - - The new token. - The value. - A flag indicating whether the position index inside an array should be updated. - - - - Sets the state based on current token type. - - - - - Releases unmanaged and - optionally - managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Changes the reader's state to . - If is set to true, the source is also closed. - - - - - The exception thrown when an error occurs while reading JSON text. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Initializes a new instance of the class - with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The path to the JSON where the error occurred. - The line number indicating where the error occurred. - The line position indicating where the error occurred. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Instructs the to always serialize the member, and to require that the member has a value. - - - - - The exception thrown when an error occurs during JSON serialization or deserialization. - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Initializes a new instance of the class - with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The path to the JSON where the error occurred. - The line number indicating where the error occurred. - The line position indicating where the error occurred. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Serializes and deserializes objects into and from the JSON format. - The enables you to control how objects are encoded into JSON. - - - - - Occurs when the errors during serialization and deserialization. - - - - - Gets or sets the used by the serializer when resolving references. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when resolving type names. - - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets how type name writing and reading is handled by the serializer. - The default value is . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than . - - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - The default value is . - - The type name assembly format. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - The default value is . - - The type name assembly format. - - - - Gets or sets how object references are preserved by the serializer. - The default value is . - - - - - Gets or sets how reference loops (e.g. a class referencing itself) is handled. - The default value is . - - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - The default value is . - - - - - Gets or sets how null values are handled during serialization and deserialization. - The default value is . - - - - - Gets or sets how default values are handled during serialization and deserialization. - The default value is . - - - - - Gets or sets how objects are created during deserialization. - The default value is . - - The object creation handling. - - - - Gets or sets how constructors are used during deserialization. - The default value is . - - The constructor handling. - - - - Gets or sets how metadata properties are used during deserialization. - The default value is . - - The metadata properties handling. - - - - Gets a collection that will be used during serialization. - - Collection that will be used during serialization. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Indicates how JSON text output is formatted. - The default value is . - - - - - Gets or sets how dates are written to JSON text. - The default value is . - - - - - Gets or sets how time zones are handled during serialization and deserialization. - The default value is . - - - - - Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - The default value is . - - - - - Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - The default value is . - - - - - Gets or sets how special floating point numbers, e.g. , - and , - are written as JSON text. - The default value is . - - - - - Gets or sets how strings are escaped when writing JSON text. - The default value is . - - - - - Gets or sets how and values are formatted when writing JSON text, - and the expected date format when reading JSON text. - The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". - - - - - Gets or sets the culture used when reading JSON. - The default value is . - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - A null value means there is no maximum. - The default value is null. - - - - - Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. - The default value is false. - - - true if there will be a check for additional JSON content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Creates a new instance. - The will not use default settings - from . - - - A new instance. - The will not use default settings - from . - - - - - Creates a new instance using the specified . - The will not use default settings - from . - - The settings to be applied to the . - - A new instance using the specified . - The will not use default settings - from . - - - - - Creates a new instance. - The will use default settings - from . - - - A new instance. - The will use default settings - from . - - - - - Creates a new instance using the specified . - The will use default settings - from as well as the specified . - - The settings to be applied to the . - - A new instance using the specified . - The will use default settings - from as well as the specified . - - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to read values from. - The target object to populate values onto. - - - - Populates the JSON values onto the target object. - - The that contains the JSON structure to read values from. - The target object to populate values onto. - - - - Deserializes the JSON structure contained by the specified . - - The that contains the JSON structure to deserialize. - The being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The type of the object to deserialize. - The instance of being deserialized. - - - - Deserializes the JSON structure contained by the specified - into an instance of the specified type. - - The containing the object. - The of object being deserialized. - The instance of being deserialized. - - - - Serializes the specified and writes the JSON structure - using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Serializes the specified and writes the JSON structure - using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is to write out the type name if the type of the value does not match. - Specifying the type is optional. - - - - - Serializes the specified and writes the JSON structure - using the specified . - - The used to write the JSON structure. - The to serialize. - - The type of the value being serialized. - This parameter is used when is Auto to write out the type name if the type of the value does not match. - Specifying the type is optional. - - - - - Serializes the specified and writes the JSON structure - using the specified . - - The used to write the JSON structure. - The to serialize. - - - - Specifies the settings on a object. - - - - - Gets or sets how reference loops (e.g. a class referencing itself) are handled. - The default value is . - - Reference loop handling. - - - - Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. - The default value is . - - Missing member handling. - - - - Gets or sets how objects are created during deserialization. - The default value is . - - The object creation handling. - - - - Gets or sets how null values are handled during serialization and deserialization. - The default value is . - - Null value handling. - - - - Gets or sets how default values are handled during serialization and deserialization. - The default value is . - - The default value handling. - - - - Gets or sets a collection that will be used during serialization. - - The converters. - - - - Gets or sets how object references are preserved by the serializer. - The default value is . - - The preserve references handling. - - - - Gets or sets how type name writing and reading is handled by the serializer. - The default value is . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than . - - The type name handling. - - - - Gets or sets how metadata properties are used during deserialization. - The default value is . - - The metadata properties handling. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - The default value is . - - The type name assembly format. - - - - Gets or sets how a type name assembly is written and resolved by the serializer. - The default value is . - - The type name assembly format. - - - - Gets or sets how constructors are used during deserialization. - The default value is . - - The constructor handling. - - - - Gets or sets the contract resolver used by the serializer when - serializing .NET objects to JSON and vice versa. - - The contract resolver. - - - - Gets or sets the equality comparer used by the serializer when comparing references. - - The equality comparer. - - - - Gets or sets the used by the serializer when resolving references. - - The reference resolver. - - - - Gets or sets a function that creates the used by the serializer when resolving references. - - A function that creates the used by the serializer when resolving references. - - - - Gets or sets the used by the serializer when writing trace messages. - - The trace writer. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the used by the serializer when resolving type names. - - The binder. - - - - Gets or sets the error handler called during serialization and deserialization. - - The error handler called during serialization and deserialization. - - - - Gets or sets the used by the serializer when invoking serialization callback methods. - - The context. - - - - Gets or sets how and values are formatted when writing JSON text, - and the expected date format when reading JSON text. - The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". - - - - - Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . - A null value means there is no maximum. - The default value is null. - - - - - Indicates how JSON text output is formatted. - The default value is . - - - - - Gets or sets how dates are written to JSON text. - The default value is . - - - - - Gets or sets how time zones are handled during serialization and deserialization. - The default value is . - - - - - Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. - The default value is . - - - - - Gets or sets how special floating point numbers, e.g. , - and , - are written as JSON. - The default value is . - - - - - Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. - The default value is . - - - - - Gets or sets how strings are escaped when writing JSON text. - The default value is . - - - - - Gets or sets the culture used when reading JSON. - The default value is . - - - - - Gets a value indicating whether there will be a check for additional content after deserializing an object. - The default value is false. - - - true if there will be a check for additional content after deserializing an object; otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Represents a reader that provides fast, non-cached, forward-only access to JSON text data. - - - - - Initializes a new instance of the class with the specified . - - The containing the JSON data to read. - - - - Gets or sets the reader's property name table. - - - - - Gets or sets the reader's character buffer pool. - - - - - Reads the next JSON token from the underlying . - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a []. - - A [] or null if the next JSON token is null. This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Changes the reader's state to . - If is set to true, the underlying is also closed. - - - - - Gets a value indicating whether the class can return line information. - - - true if and can be provided; otherwise, false. - - - - - Gets the current line number. - - - The current line number or 0 if no line information is available (for example, returns false). - - - - - Gets the current line position. - - - The current line position or 0 if no line information is available (for example, returns false). - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets the writer's character array pool. - - - - - Gets or sets how many s to write for each level in the hierarchy when is set to . - - - - - Gets or sets which character to use to quote attribute values. - - - - - Gets or sets which character to use for indenting when is set to . - - - - - Gets or sets a value indicating whether object names will be surrounded with quotes. - - - - - Initializes a new instance of the class using the specified . - - The to write to. - - - - Flushes whatever is in the buffer to the underlying and also flushes the underlying . - - - - - Closes this writer. - If is set to true, the underlying is also closed. - If is set to true, the JSON is auto-completed. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the specified end token. - - The end token to write. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a value. - - The value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the given white space. - - The string of white space characters. - - - - Specifies the type of JSON token. - - - - - This is returned by the if a read method has not been called. - - - - - An object start token. - - - - - An array start token. - - - - - A constructor start token. - - - - - An object property name. - - - - - A comment. - - - - - Raw JSON. - - - - - An integer. - - - - - A float. - - - - - A string. - - - - - A boolean. - - - - - A null token. - - - - - An undefined token. - - - - - An object end token. - - - - - An array end token. - - - - - A constructor end token. - - - - - A Date. - - - - - Byte data. - - - - - - Represents a reader that provides validation. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Sets an event handler for receiving schema validation errors. - - - - - Gets the text value of the current JSON token. - - - - - - Gets the depth of the current token in the JSON document. - - The depth of the current token in the JSON document. - - - - Gets the path of the current JSON token. - - - - - Gets the quotation mark character used to enclose the value of a string. - - - - - - Gets the type of the current JSON token. - - - - - - Gets the .NET type for the current JSON token. - - - - - - Initializes a new instance of the class that - validates the content returned from the given . - - The to read from while validating. - - - - Gets or sets the schema. - - The schema. - - - - Gets the used to construct this . - - The specified in the constructor. - - - - Changes the reader's state to . - If is set to true, the underlying is also closed. - - - - - Reads the next JSON token from the underlying as a of . - - A of . - - - - Reads the next JSON token from the underlying as a []. - - - A [] or null if the next JSON token is null. - - - - - Reads the next JSON token from the underlying as a of . - - A of . - - - - Reads the next JSON token from the underlying as a of . - - A of . - - - - Reads the next JSON token from the underlying as a of . - - A of . - - - - Reads the next JSON token from the underlying as a . - - A . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . This method will return null at the end of an array. - - - - Reads the next JSON token from the underlying as a of . - - A of . - - - - Reads the next JSON token from the underlying . - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets or sets a value indicating whether the destination should be closed when this writer is closed. - - - true to close the destination when this writer is closed; otherwise false. The default is true. - - - - - Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. - - - true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. - - - - - Gets the top. - - The top. - - - - Gets the state of the writer. - - - - - Gets the path of the writer. - - - - - Gets or sets a value indicating how JSON text output should be formatted. - - - - - Gets or sets how dates are written to JSON text. - - - - - Gets or sets how time zones are handled when writing JSON text. - - - - - Gets or sets how strings are escaped when writing JSON text. - - - - - Gets or sets how special floating point numbers, e.g. , - and , - are written to JSON text. - - - - - Gets or sets how and values are formatted when writing JSON text. - - - - - Gets or sets the culture used when writing JSON. Defaults to . - - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the destination and also flushes the destination. - - - - - Closes this writer. - If is set to true, the destination is also closed. - If is set to true, the JSON is auto-completed. - - - - - Writes the beginning of a JSON object. - - - - - Writes the end of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the end of an array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end constructor. - - - - - Writes the property name of a name/value pair of a JSON object. - - The name of the property. - - - - Writes the property name of a name/value pair of a JSON object. - - The name of the property. - A flag to indicate whether the text should be escaped when it is written as a JSON property name. - - - - Writes the end of the current JSON object or array. - - - - - Writes the current token and its children. - - The to read the token from. - - - - Writes the current token. - - The to read the token from. - A flag indicating whether the current token's children should be written. - - - - Writes the token and its value. - - The to write. - - The value to write. - A value is only required for tokens that have an associated value, e.g. the property name for . - null can be passed to the method for tokens that don't have a value, e.g. . - - - - - Writes the token. - - The to write. - - - - Writes the specified end token. - - The end token to write. - - - - Writes indent characters. - - - - - Writes the JSON value delimiter. - - - - - Writes an indent space. - - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON without changing the writer's state. - - The raw JSON to write. - - - - Writes raw JSON where a value is expected and updates the writer's state. - - The raw JSON to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a of value. - - The of value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - An error will raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes the given white space. - - The string of white space characters. - - - - Releases unmanaged and - optionally - managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Sets the state of the . - - The being written. - The value being written. - - - - The exception thrown when an error occurs while writing JSON text. - - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Initializes a new instance of the class - with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The path to the JSON where the error occurred. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - Specifies how JSON comments are handled when loading JSON. - - - - - Ignore comments. - - - - - Load comments as a with type . - - - - - Specifies how duplicate property names are handled when loading JSON. - - - - - Replace the existing value when there is a duplicate property. The value of the last property in the JSON object will be used. - - - - - Ignore the new value when there is a duplicate property. The value of the first property in the JSON object will be used. - - - - - Throw a when a duplicate property is encountered. - - - - - Contains the LINQ to JSON extension methods. - - - - - Returns a collection of tokens that contains the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, the ancestors of every token in the source collection. - - - - Returns a collection of tokens that contains the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains the descendants of every token in the source collection. - - - - Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. - - The type of the objects in source, constrained to . - An of that contains the source collection. - An of that contains every token in the source collection, and the descendants of every token in the source collection. - - - - Returns a collection of child properties of every object in the source collection. - - An of that contains the source collection. - An of that contains the properties of every object in the source collection. - - - - Returns a collection of child values of every object in the source collection with the given key. - - An of that contains the source collection. - The token key. - An of that contains the values of every token in the source collection with the given key. - - - - Returns a collection of child values of every object in the source collection. - - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child values of every object in the source collection with the given key. - - The type to convert the values to. - An of that contains the source collection. - The token key. - An that contains the converted values of every token in the source collection with the given key. - - - - Returns a collection of converted child values of every object in the source collection. - - The type to convert the values to. - An of that contains the source collection. - An that contains the converted values of every token in the source collection. - - - - Converts the value. - - The type to convert the value to. - A cast as a of . - A converted value. - - - - Converts the value. - - The source collection type. - The type to convert the value to. - A cast as a of . - A converted value. - - - - Returns a collection of child tokens of every array in the source collection. - - The source collection type. - An of that contains the source collection. - An of that contains the values of every token in the source collection. - - - - Returns a collection of converted child tokens of every array in the source collection. - - An of that contains the source collection. - The type to convert the values to. - The source collection type. - An that contains the converted values of every token in the source collection. - - - - Returns the input typed as . - - An of that contains the source collection. - The input typed as . - - - - Returns the input typed as . - - The source collection type. - An of that contains the source collection. - The input typed as . - - - - Represents a collection of objects. - - The type of token. - - - - Gets the of with the specified key. - - - - - - Represents a JSON array. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Initializes a new instance of the class with the specified content. - - The contents of the array. - - - - Loads an from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads an from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object. - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the at the specified index. - - - - - - Determines the index of a specific item in the . - - The object to locate in the . - - The index of if found in the list; otherwise, -1. - - - - - Inserts an item to the at the specified index. - - The zero-based index at which should be inserted. - The object to insert into the . - - is not a valid index in the . - - - - - Removes the item at the specified index. - - The zero-based index of the item to remove. - - is not a valid index in the . - - - - - Returns an enumerator that iterates through the collection. - - - A of that can be used to iterate through the collection. - - - - - Adds an item to the . - - The object to add to the . - - - - Removes all items from the . - - - - - Determines whether the contains a specific value. - - The object to locate in the . - - true if is found in the ; otherwise, false. - - - - - Copies the elements of the to an array, starting at a particular array index. - - The array. - Index of the array. - - - - Gets a value indicating whether the is read-only. - - true if the is read-only; otherwise, false. - - - - Removes the first occurrence of a specific object from the . - - The object to remove from the . - - true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . - - - - - Represents a JSON constructor. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets or sets the name of this constructor. - - The constructor name. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name and content. - - The constructor name. - The contents of the constructor. - - - - Initializes a new instance of the class with the specified name. - - The constructor name. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified key. - - The with the specified key. - - - - Loads a from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads a from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a token that can contain other tokens. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Get the first child token of this token. - - - A containing the first child token of the . - - - - - Get the last child token of this token. - - - A containing the last child token of the . - - - - - Returns a collection of the child tokens of this token, in document order. - - - An of containing the child tokens of this , in document order. - - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - - A containing the child values of this , in document order. - - - - - Returns a collection of the descendant tokens for this token in document order. - - An of containing the descendant tokens of the . - - - - Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. - - An of containing this token, and all the descendant tokens of the . - - - - Adds the specified content as children of this . - - The content to be added. - - - - Adds the specified content as the first children of this . - - The content to be added. - - - - Creates a that can be used to add tokens to the . - - A that is ready to have content written to it. - - - - Replaces the child nodes of this token with the specified content. - - The content. - - - - Removes the child nodes from this token. - - - - - Merge the specified content into this . - - The content to be merged. - - - - Merge the specified content into this using . - - The content to be merged. - The used to merge the content. - - - - Gets the count of child JSON tokens. - - The count of child JSON tokens. - - - - Represents a collection of objects. - - The type of token. - - - - An empty collection of objects. - - - - - Initializes a new instance of the struct. - - The enumerable. - - - - Returns an enumerator that can be used to iterate through the collection. - - - A that can be used to iterate through the collection. - - - - - Gets the of with the specified key. - - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Represents a JSON object. - - - - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Occurs when a property value changes. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Initializes a new instance of the class with the specified content. - - The contents of the object. - - - - Gets the node type for this . - - The type. - - - - Gets an of of this object's properties. - - An of of this object's properties. - - - - Gets a with the specified name. - - The property name. - A with the specified name or null. - - - - Gets the with the specified name. - The exact name will be searched for first and if no matching property is found then - the will be used to match a property. - - The property name. - One of the enumeration values that specifies how the strings will be compared. - A matched with the specified name or null. - - - - Gets a of of this object's property values. - - A of of this object's property values. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets or sets the with the specified property name. - - - - - - Loads a from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - is not valid JSON. - - - - - Loads a from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - is not valid JSON. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - is not valid JSON. - - - - - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - is not valid JSON. - - - - - - - - Creates a from an object. - - The object that will be used to create . - A with the values of the specified object. - - - - Creates a from an object. - - The object that will be used to create . - The that will be used to read the object. - A with the values of the specified object. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Gets the with the specified property name. - - Name of the property. - The with the specified property name. - - - - Gets the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - One of the enumeration values that specifies how the strings will be compared. - The with the specified property name. - - - - Tries to get the with the specified property name. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - Name of the property. - The value. - One of the enumeration values that specifies how the strings will be compared. - true if a value was successfully retrieved; otherwise, false. - - - - Adds the specified property name. - - Name of the property. - The value. - - - - Determines whether the JSON object has the specified property name. - - Name of the property. - true if the JSON object has the specified property name; otherwise, false. - - - - Removes the property with the specified name. - - Name of the property. - true if item was successfully removed; otherwise, false. - - - - Tries to get the with the specified property name. - - Name of the property. - The value. - true if a value was successfully retrieved; otherwise, false. - - - - Returns an enumerator that can be used to iterate through the collection. - - - A that can be used to iterate through the collection. - - - - - Raises the event with the provided arguments. - - Name of the property. - - - - Represents a JSON property. - - - - - Gets the container's children tokens. - - The container's children tokens. - - - - Gets the property name. - - The property name. - - - - Gets or sets the property value. - - The property value. - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Gets the node type for this . - - The type. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Initializes a new instance of the class. - - The property name. - The property content. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Loads a from a . - - A that will be read for the content of the . - A that contains the JSON that was read from the specified . - - - - Loads a from a . - - A that will be read for the content of the . - The used to load the JSON. - If this is null, default load settings will be used. - A that contains the JSON that was read from the specified . - - - - Represents a raw JSON string. - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class. - - The raw json. - - - - Creates an instance of with the content of the reader's current token. - - The reader. - An instance of with the content of the reader's current token. - - - - Specifies the settings used when loading JSON. - - - - - Initializes a new instance of the class. - - - - - Gets or sets how JSON comments are handled when loading JSON. - The default value is . - - The JSON comment handling. - - - - Gets or sets how JSON line info is handled when loading JSON. - The default value is . - - The JSON line info handling. - - - - Gets or sets how duplicate property names in JSON objects are handled when loading JSON. - The default value is . - - The JSON duplicate property name handling. - - - - Specifies the settings used when merging JSON. - - - - - Initializes a new instance of the class. - - - - - Gets or sets the method used when merging JSON arrays. - - The method used when merging JSON arrays. - - - - Gets or sets how null value properties are merged. - - How null value properties are merged. - - - - Gets or sets the comparison used to match property names while merging. - The exact property name will be searched for first and if no matching property is found then - the will be used to match a property. - - The comparison used to match property names while merging. - - - - Represents an abstract JSON token. - - - - - Gets a comparer that can compare two tokens for value equality. - - A that can compare two nodes for value equality. - - - - Gets or sets the parent. - - The parent. - - - - Gets the root of this . - - The root of this . - - - - Gets the node type for this . - - The type. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Compares the values of two tokens, including the values of all descendant tokens. - - The first to compare. - The second to compare. - true if the tokens are equal; otherwise false. - - - - Gets the next sibling token of this node. - - The that contains the next sibling token. - - - - Gets the previous sibling token of this node. - - The that contains the previous sibling token. - - - - Gets the path of the JSON token. - - - - - Adds the specified content immediately after this token. - - A content object that contains simple content or a collection of content objects to be added after this token. - - - - Adds the specified content immediately before this token. - - A content object that contains simple content or a collection of content objects to be added before this token. - - - - Returns a collection of the ancestor tokens of this token. - - A collection of the ancestor tokens of this token. - - - - Returns a collection of tokens that contain this token, and the ancestors of this token. - - A collection of tokens that contain this token, and the ancestors of this token. - - - - Returns a collection of the sibling tokens after this token, in document order. - - A collection of the sibling tokens after this tokens, in document order. - - - - Returns a collection of the sibling tokens before this token, in document order. - - A collection of the sibling tokens before this token, in document order. - - - - Gets the with the specified key. - - The with the specified key. - - - - Gets the with the specified key converted to the specified type. - - The type to convert the token to. - The token key. - The converted token value. - - - - Get the first child token of this token. - - A containing the first child token of the . - - - - Get the last child token of this token. - - A containing the last child token of the . - - - - Returns a collection of the child tokens of this token, in document order. - - An of containing the child tokens of this , in document order. - - - - Returns a collection of the child tokens of this token, in document order, filtered by the specified type. - - The type to filter the child tokens on. - A containing the child tokens of this , in document order. - - - - Returns a collection of the child values of this token, in document order. - - The type to convert the values to. - A containing the child values of this , in document order. - - - - Removes this token from its parent. - - - - - Replaces this token with the specified token. - - The value. - - - - Writes this token to a . - - A into which this method will write. - A collection of which will be used when writing the token. - - - - Returns the indented JSON for this token. - - - ToString() returns a non-JSON string value for tokens with a type of . - If you want the JSON for all token types then you should use . - - - The indented JSON for this token. - - - - - Returns the JSON for this token using the given formatting and converters. - - Indicates how the output should be formatted. - A collection of s which will be used when writing the token. - The JSON for this token using the given formatting and converters. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to []. - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to of . - - The value. - The result of the conversion. - - - - Performs an explicit conversion from to . - - The value. - The result of the conversion. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from [] to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from to . - - The value to create a from. - The initialized with the specified value. - - - - Performs an implicit conversion from of to . - - The value to create a from. - The initialized with the specified value. - - - - Creates a for this token. - - A that can be used to read this token and its descendants. - - - - Creates a from an object. - - The object that will be used to create . - A with the value of the specified object. - - - - Creates a from an object using the specified . - - The object that will be used to create . - The that will be used when reading the object. - A with the value of the specified object. - - - - Creates an instance of the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates an instance of the specified .NET type from the . - - The object type that the token will be deserialized to. - The new object created from the JSON value. - - - - Creates an instance of the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates an instance of the specified .NET type from the using the specified . - - The object type that the token will be deserialized to. - The that will be used when creating the object. - The new object created from the JSON value. - - - - Creates a from a . - - A positioned at the token to read into this . - - A that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - An positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - A that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Load a from a string that contains JSON. - - A that contains JSON. - A populated from the string that contains JSON. - - - - Load a from a string that contains JSON. - - A that contains JSON. - The used to load the JSON. - If this is null, default load settings will be used. - A populated from the string that contains JSON. - - - - Creates a from a . - - A positioned at the token to read into this . - The used to load the JSON. - If this is null, default load settings will be used. - - A that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Creates a from a . - - A positioned at the token to read into this . - - A that contains the token and its descendant tokens - that were read from the reader. The runtime type of the token is determined - by the token type of the first token encountered in the reader. - - - - - Selects a using a JSONPath expression. Selects the token that matches the object path. - - - A that contains a JSONPath expression. - - A , or null. - - - - Selects a using a JSONPath expression. Selects the token that matches the object path. - - - A that contains a JSONPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - A . - - - - Selects a collection of elements using a JSONPath expression. - - - A that contains a JSONPath expression. - - An of that contains the selected elements. - - - - Selects a collection of elements using a JSONPath expression. - - - A that contains a JSONPath expression. - - A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. - An of that contains the selected elements. - - - - Creates a new instance of the . All child tokens are recursively cloned. - - A new instance of the . - - - - Adds an object to the annotation list of this . - - The annotation to add. - - - - Get the first annotation object of the specified type from this . - - The type of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets the first annotation object of the specified type from this . - - The of the annotation to retrieve. - The first annotation object that matches the specified type, or null if no annotation is of the specified type. - - - - Gets a collection of annotations of the specified type for this . - - The type of the annotations to retrieve. - An that contains the annotations for this . - - - - Gets a collection of annotations of the specified type for this . - - The of the annotations to retrieve. - An of that contains the annotations that match the specified type for this . - - - - Removes the annotations of the specified type from this . - - The type of annotations to remove. - - - - Removes the annotations of the specified type from this . - - The of annotations to remove. - - - - Compares tokens to determine whether they are equal. - - - - - Determines whether the specified objects are equal. - - The first object of type to compare. - The second object of type to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified object. - - The for which a hash code is to be returned. - A hash code for the specified object. - The type of is a reference type and is null. - - - - Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. - - - - - Gets the at the reader's current position. - - - - - Initializes a new instance of the class. - - The token to read from. - - - - Initializes a new instance of the class. - - The token to read from. - The initial path of the token. It is prepended to the returned . - - - - Reads the next JSON token from the underlying . - - - true if the next token was read successfully; false if there are no more tokens to read. - - - - - Gets the path of the current JSON token. - - - - - Specifies the type of token. - - - - - No token type has been set. - - - - - A JSON object. - - - - - A JSON array. - - - - - A JSON constructor. - - - - - A JSON object property. - - - - - A comment. - - - - - An integer value. - - - - - A float value. - - - - - A string value. - - - - - A boolean value. - - - - - A null value. - - - - - An undefined value. - - - - - A date value. - - - - - A raw JSON value. - - - - - A collection of bytes value. - - - - - A Guid value. - - - - - A Uri value. - - - - - A TimeSpan value. - - - - - Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. - - - - - Gets the at the writer's current position. - - - - - Gets the token being written. - - The token being written. - - - - Initializes a new instance of the class writing to the given . - - The container being written to. - - - - Initializes a new instance of the class. - - - - - Flushes whatever is in the buffer to the underlying . - - - - - Closes this writer. - If is set to true, the JSON is auto-completed. - - - Setting to true has no additional effect, since the underlying is a type that cannot be closed. - - - - - Writes the beginning of a JSON object. - - - - - Writes the beginning of a JSON array. - - - - - Writes the start of a constructor with the given name. - - The name of the constructor. - - - - Writes the end. - - The token. - - - - Writes the property name of a name/value pair on a JSON object. - - The name of the property. - - - - Writes a value. - An error will be raised if the value cannot be written as a single JSON token. - - The value to write. - - - - Writes a null value. - - - - - Writes an undefined value. - - - - - Writes raw JSON. - - The raw JSON to write. - - - - Writes a comment /*...*/ containing the specified text. - - Text to place inside the comment. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a [] value. - - The [] value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Writes a value. - - The value to write. - - - - Represents a value in JSON (string, integer, date, etc). - - - - - Initializes a new instance of the class from another object. - - A object to copy from. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Initializes a new instance of the class with the given value. - - The value. - - - - Gets a value indicating whether this token has child tokens. - - - true if this token has child values; otherwise, false. - - - - - Creates a comment with the given value. - - The value. - A comment with the given value. - - - - Creates a string with the given value. - - The value. - A string with the given value. - - - - Creates a null value. - - A null value. - - - - Creates a undefined value. - - A undefined value. - - - - Gets the node type for this . - - The type. - - - - Gets or sets the underlying token value. - - The underlying token value. - - - - Writes this token to a . - - A into which this method will write. - A collection of s which will be used when writing the token. - - - - Indicates whether the current object is equal to another object of the same type. - - - true if the current object is equal to the parameter; otherwise, false. - - An object to compare with this object. - - - - Determines whether the specified is equal to the current . - - The to compare with the current . - - true if the specified is equal to the current ; otherwise, false. - - - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - - - - Returns a that represents this instance. - - - ToString() returns a non-JSON string value for tokens with a type of . - If you want the JSON for all token types then you should use . - - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format provider. - - A that represents this instance. - - - - - Returns a that represents this instance. - - The format. - The format provider. - - A that represents this instance. - - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - - An object to compare with this instance. - - A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: - Value - Meaning - Less than zero - This instance is less than . - Zero - This instance is equal to . - Greater than zero - This instance is greater than . - - - is not of the same type as this instance. - - - - - Specifies how line information is handled when loading JSON. - - - - - Ignore line information. - - - - - Load line information. - - - - - Specifies how JSON arrays are merged together. - - - - Concatenate arrays. - - - Union arrays, skipping items that already exist. - - - Replace all array items. - - - Merge array items together, matched by index. - - - - Specifies how null value properties are merged. - - - - - The content's null value properties will be ignored during merging. - - - - - The content's null value properties will be merged. - - - - - Specifies the member serialization options for the . - - - - - All public members are serialized by default. Members can be excluded using or . - This is the default member serialization mode. - - - - - Only members marked with or are serialized. - This member serialization mode can also be set by marking the class with . - - - - - All public and private fields are serialized. Members can be excluded using or . - This member serialization mode can also be set by marking the class with - and setting IgnoreSerializableAttribute on to false. - - - - - Specifies metadata property handling options for the . - - - - - Read metadata properties located at the start of a JSON object. - - - - - Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. - - - - - Do not try to read metadata properties. - - - - - Specifies missing member handling options for the . - - - - - Ignore a missing member and do not attempt to deserialize it. - - - - - Throw a when a missing member is encountered during deserialization. - - - - - Specifies null value handling options for the . - - - - - - - - - Include null values when serializing and deserializing objects. - - - - - Ignore null values when serializing and deserializing objects. - - - - - Specifies how object creation is handled by the . - - - - - Reuse existing objects, create new objects when needed. - - - - - Only reuse existing objects. - - - - - Always create new objects. - - - - - Specifies reference handling options for the . - Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . - - - - - - - - Do not preserve references when serializing types. - - - - - Preserve references when serializing into a JSON object structure. - - - - - Preserve references when serializing into a JSON array structure. - - - - - Preserve references when serializing. - - - - - Specifies reference loop handling options for the . - - - - - Throw a when a loop is encountered. - - - - - Ignore loop references and do not serialize. - - - - - Serialize loop references. - - - - - Indicating whether a property is required. - - - - - The property is not required. The default state. - - - - - The property must be defined in JSON but can be a null value. - - - - - The property must be defined in JSON and cannot be a null value. - - - - - The property is not required but it cannot be a null value. - - - - - - Contains the JSON schema extension methods. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - true if the specified is valid; otherwise, false. - - - - - - Determines whether the is valid. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - When this method returns, contains any error messages generated while validating. - - true if the specified is valid; otherwise, false. - - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - - - - - Validates the specified . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - The source to test. - The schema to test with. - The validation event handler. - - - - - An in-memory representation of a JSON Schema. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the id. - - - - - Gets or sets the title. - - - - - Gets or sets whether the object is required. - - - - - Gets or sets whether the object is read-only. - - - - - Gets or sets whether the object is visible to users. - - - - - Gets or sets whether the object is transient. - - - - - Gets or sets the description of the object. - - - - - Gets or sets the types of values allowed by the object. - - The type. - - - - Gets or sets the pattern. - - The pattern. - - - - Gets or sets the minimum length. - - The minimum length. - - - - Gets or sets the maximum length. - - The maximum length. - - - - Gets or sets a number that the value should be divisible by. - - A number that the value should be divisible by. - - - - Gets or sets the minimum. - - The minimum. - - - - Gets or sets the maximum. - - The maximum. - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). - - A flag indicating whether the value can not equal the number defined by the minimum attribute (). - - - - Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). - - A flag indicating whether the value can not equal the number defined by the maximum attribute (). - - - - Gets or sets the minimum number of items. - - The minimum number of items. - - - - Gets or sets the maximum number of items. - - The maximum number of items. - - - - Gets or sets the of items. - - The of items. - - - - Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . - - - true if items are validated using their array position; otherwise, false. - - - - - Gets or sets the of additional items. - - The of additional items. - - - - Gets or sets a value indicating whether additional items are allowed. - - - true if additional items are allowed; otherwise, false. - - - - - Gets or sets whether the array items must be unique. - - - - - Gets or sets the of properties. - - The of properties. - - - - Gets or sets the of additional properties. - - The of additional properties. - - - - Gets or sets the pattern properties. - - The pattern properties. - - - - Gets or sets a value indicating whether additional properties are allowed. - - - true if additional properties are allowed; otherwise, false. - - - - - Gets or sets the required property if this property is present. - - The required property if this property is present. - - - - Gets or sets the a collection of valid enum values allowed. - - A collection of valid enum values allowed. - - - - Gets or sets disallowed types. - - The disallowed types. - - - - Gets or sets the default value. - - The default value. - - - - Gets or sets the collection of that this schema extends. - - The collection of that this schema extends. - - - - Gets or sets the format. - - The format. - - - - Initializes a new instance of the class. - - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The object representing the JSON Schema. - - - - Reads a from the specified . - - The containing the JSON Schema to read. - The to use when resolving schema references. - The object representing the JSON Schema. - - - - Load a from a string that contains JSON Schema. - - A that contains JSON Schema. - A populated from the string that contains JSON Schema. - - - - Load a from a string that contains JSON Schema using the specified . - - A that contains JSON Schema. - The resolver. - A populated from the string that contains JSON Schema. - - - - Writes this schema to a . - - A into which this method will write. - - - - Writes this schema to a using the specified . - - A into which this method will write. - The resolver used. - - - - Returns a that represents the current . - - - A that represents the current . - - - - - - Returns detailed information about the schema exception. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the line number indicating where the error occurred. - - The line number indicating where the error occurred. - - - - Gets the line position indicating where the error occurred. - - The line position indicating where the error occurred. - - - - Gets the path to the JSON where the error occurred. - - The path to the JSON where the error occurred. - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with a specified error message. - - The error message that explains the reason for the exception. - - - - Initializes a new instance of the class - with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - The exception that is the cause of the current exception, or null if no inner exception is specified. - - - - - Generates a from a specified . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets how undefined schemas are handled by the serializer. - - - - - Gets or sets the contract resolver. - - The contract resolver. - - - - Generate a from the specified type. - - The type to generate a from. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - Generate a from the specified type. - - The type to generate a from. - The used to resolve schema references. - Specify whether the generated root will be nullable. - A generated from the specified type. - - - - - Resolves from an id. - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets or sets the loaded schemas. - - The loaded schemas. - - - - Initializes a new instance of the class. - - - - - Gets a for the specified reference. - - The id. - A for the specified reference. - - - - - The value types allowed by the . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - No type specified. - - - - - String type. - - - - - Float type. - - - - - Integer type. - - - - - Boolean type. - - - - - Object type. - - - - - Array type. - - - - - Null type. - - - - - Any type. - - - - - - Specifies undefined schema Id handling options for the . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Do not infer a schema Id. - - - - - Use the .NET type name as the schema Id. - - - - - Use the assembly qualified .NET type name as the schema Id. - - - - - - Returns detailed information related to the . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Gets the associated with the validation error. - - The JsonSchemaException associated with the validation error. - - - - Gets the path of the JSON location where the validation error occurred. - - The path of the JSON location where the validation error occurred. - - - - Gets the text description corresponding to the validation error. - - The text description. - - - - - Represents the callback method that will handle JSON schema validation events and the . - - - JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. - - - - - - Allows users to control class loading and mandate what class to load. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object - The type of the object the formatter creates a new instance of. - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - A camel case naming strategy. - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - A flag indicating whether extension data names should be processed. - - - - - Initializes a new instance of the class. - - - - - Resolves the specified property name. - - The property name to resolve. - The resolved property name. - - - - Resolves member mappings for a type, camel casing property names. - - - - - Initializes a new instance of the class. - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Used by to resolve a for a given . - - - - - Gets a value indicating whether members are being get and set using dynamic code generation. - This value is determined by the runtime permissions available. - - - true if using dynamic code generation; otherwise, false. - - - - - Gets or sets the default members search flags. - - The default members search flags. - - - - Gets or sets a value indicating whether compiler generated members should be serialized. - - - true if serialized compiler generated members; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. - - - true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. - - - true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. - - - - - Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. - - The naming strategy used to resolve how property names and dictionary keys are serialized. - - - - Initializes a new instance of the class. - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Gets the serializable members for the type. - - The type to get serializable members for. - The serializable members for the type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates the constructor parameters. - - The constructor to create properties for. - The type's member properties. - Properties for the given . - - - - Creates a for the given . - - The matching member property. - The constructor parameter. - A created for the given . - - - - Resolves the default for the contract. - - Type of the object. - The contract's default . - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Creates a for the given type. - - Type of the object. - A for the given type. - - - - Determines which contract type is created for the given type. - - Type of the object. - A for the given type. - - - - Creates properties for the given . - - The type to create properties for. - /// The member serialization mode for the type. - Properties for the given . - - - - Creates the used by the serializer to get and set values from a member. - - The member. - The used by the serializer to get and set values from a member. - - - - Creates a for the given . - - The member's parent . - The member to create a for. - A created for the given . - - - - Resolves the name of the property. - - Name of the property. - Resolved name of the property. - - - - Resolves the name of the extension data. By default no changes are made to extension data names. - - Name of the extension data. - Resolved name of the extension data. - - - - Resolves the key of the dictionary. By default is used to resolve dictionary keys. - - Key of the dictionary. - Resolved key of the dictionary. - - - - Gets the resolved name of the property. - - Name of the property. - Name of the property. - - - - The default naming strategy. Property names and dictionary keys are unchanged. - - - - - Resolves the specified property name. - - The property name to resolve. - The resolved property name. - - - - The default serialization binder used when resolving and loading classes from type names. - - - - - Initializes a new instance of the class. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - The type of the object the formatter creates a new instance of. - - - - - When overridden in a derived class, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Provides information surrounding an error. - - - - - Gets the error. - - The error. - - - - Gets the original object that caused the error. - - The original object that caused the error. - - - - Gets the member that caused the error. - - The member that caused the error. - - - - Gets the path of the JSON location where the error occurred. - - The path of the JSON location where the error occurred. - - - - Gets or sets a value indicating whether this is handled. - - true if handled; otherwise, false. - - - - Provides data for the Error event. - - - - - Gets the current object the error event is being raised against. - - The current object the error event is being raised against. - - - - Gets the error context. - - The error context. - - - - Initializes a new instance of the class. - - The current object. - The error context. - - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Provides methods to get attributes. - - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Used by to resolve a for a given . - - - - - - - - - Resolves the contract for a given type. - - The type to resolve a contract for. - The contract for a given type. - - - - Used to resolve references when serializing and deserializing JSON by the . - - - - - Resolves a reference to its object. - - The serialization context. - The reference to resolve. - The object that was resolved from the reference. - - - - Gets the reference for the specified object. - - The serialization context. - The object to get a reference for. - The reference to the object. - - - - Determines whether the specified object is referenced. - - The serialization context. - The object to test for a reference. - - true if the specified object is referenced; otherwise, false. - - - - - Adds a reference to the specified object. - - The serialization context. - The reference. - The object to reference. - - - - Allows users to control class loading and mandate what class to load. - - - - - When implemented, controls the binding of a serialized object to a type. - - Specifies the name of the serialized object. - Specifies the name of the serialized object - The type of the object the formatter creates a new instance of. - - - - When implemented, controls the binding of a serialized object to a type. - - The type of the object the formatter creates a new instance of. - Specifies the name of the serialized object. - Specifies the name of the serialized object. - - - - Represents a trace writer. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of will exclude messages and include , - and messages. - - The that will be used to filter the trace messages passed to the writer. - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Provides methods to get and set values. - - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - Contract details for a used by the . - - - - - Gets the of the collection items. - - The of the collection items. - - - - Gets a value indicating whether the collection type is a multidimensional array. - - true if the collection type is a multidimensional array; otherwise, false. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the collection values. - - true if the creator has a parameter with the collection values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the default collection items . - - The converter. - - - - Gets or sets a value indicating whether the collection items preserve object references. - - true if collection items preserve object references; otherwise, false. - - - - Gets or sets the collection item reference loop handling. - - The reference loop handling. - - - - Gets or sets the collection item type name handling. - - The type name handling. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Handles serialization callback events. - - The object that raised the callback event. - The streaming context. - - - - Handles serialization error callback events. - - The object that raised the callback event. - The streaming context. - The error context. - - - - Sets extension data for an object during deserialization. - - The object to set extension data on. - The extension data key. - The extension data value. - - - - Gets extension data for an object during serialization. - - The object to set extension data on. - - - - Contract details for a used by the . - - - - - Gets the underlying type for the contract. - - The underlying type for the contract. - - - - Gets or sets the type created during deserialization. - - The type created during deserialization. - - - - Gets or sets whether this type contract is serialized as a reference. - - Whether this type contract is serialized as a reference. - - - - Gets or sets the default for this contract. - - The converter. - - - - Gets the internally resolved for the contract's type. - This converter is used as a fallback converter when no other converter is resolved. - Setting will always override this converter. - - - - - Gets or sets all methods called immediately after deserialization of the object. - - The methods called immediately after deserialization of the object. - - - - Gets or sets all methods called during deserialization of the object. - - The methods called during deserialization of the object. - - - - Gets or sets all methods called after serialization of the object graph. - - The methods called after serialization of the object graph. - - - - Gets or sets all methods called before serialization of the object. - - The methods called before serialization of the object. - - - - Gets or sets all method called when an error is thrown during the serialization of the object. - - The methods called when an error is thrown during the serialization of the object. - - - - Gets or sets the default creator method used to create the object. - - The default creator method used to create the object. - - - - Gets or sets a value indicating whether the default creator is non-public. - - true if the default object creator is non-public; otherwise, false. - - - - Contract details for a used by the . - - - - - Gets or sets the dictionary key resolver. - - The dictionary key resolver. - - - - Gets the of the dictionary keys. - - The of the dictionary keys. - - - - Gets the of the dictionary values. - - The of the dictionary values. - - - - Gets or sets the function used to create the object. When set this function will override . - - The function used to create the object. - - - - Gets a value indicating whether the creator has a parameter with the dictionary values. - - true if the creator has a parameter with the dictionary values; otherwise, false. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Gets or sets the object member serialization. - - The member object serialization. - - - - Gets or sets the missing member handling used when deserializing this object. - - The missing member handling. - - - - Gets or sets a value that indicates whether the object's properties are required. - - - A value indicating whether the object's properties are required. - - - - - Gets or sets how the object's properties with null values are handled during serialization and deserialization. - - How the object's properties with null values are handled during serialization and deserialization. - - - - Gets the object's properties. - - The object's properties. - - - - Gets a collection of instances that define the parameters used with . - - - - - Gets or sets the function used to create the object. When set this function will override . - This function is called with a collection of arguments which are defined by the collection. - - The function used to create the object. - - - - Gets or sets the extension data setter. - - - - - Gets or sets the extension data getter. - - - - - Gets or sets the extension data value type. - - - - - Gets or sets the extension data name resolver. - - The extension data name resolver. - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Maps a JSON property to a .NET member or constructor parameter. - - - - - Gets or sets the name of the property. - - The name of the property. - - - - Gets or sets the type that declared this property. - - The type that declared this property. - - - - Gets or sets the order of serialization of a member. - - The numeric order of serialization. - - - - Gets or sets the name of the underlying member or parameter. - - The name of the underlying member or parameter. - - - - Gets the that will get and set the during serialization. - - The that will get and set the during serialization. - - - - Gets or sets the for this property. - - The for this property. - - - - Gets or sets the type of the property. - - The type of the property. - - - - Gets or sets the for the property. - If set this converter takes precedence over the contract converter for the property type. - - The converter. - - - - Gets or sets the member converter. - - The member converter. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets or sets a value indicating whether this is readable. - - true if readable; otherwise, false. - - - - Gets or sets a value indicating whether this is writable. - - true if writable; otherwise, false. - - - - Gets or sets a value indicating whether this has a member attribute. - - true if has a member attribute; otherwise, false. - - - - Gets the default value. - - The default value. - - - - Gets or sets a value indicating whether this is required. - - A value indicating whether this is required. - - - - Gets a value indicating whether has a value specified. - - - - - Gets or sets a value indicating whether this property preserves object references. - - - true if this instance is reference; otherwise, false. - - - - - Gets or sets the property null value handling. - - The null value handling. - - - - Gets or sets the property default value handling. - - The default value handling. - - - - Gets or sets the property reference loop handling. - - The reference loop handling. - - - - Gets or sets the property object creation handling. - - The object creation handling. - - - - Gets or sets or sets the type name handling. - - The type name handling. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets a predicate used to determine whether the property should be deserialized. - - A predicate used to determine whether the property should be deserialized. - - - - Gets or sets a predicate used to determine whether the property should be serialized. - - A predicate used to determine whether the property should be serialized. - - - - Gets or sets an action used to set whether the property has been deserialized. - - An action used to set whether the property has been deserialized. - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Gets or sets the converter used when serializing the property's collection items. - - The collection's items converter. - - - - Gets or sets whether this property's collection items are serialized as a reference. - - Whether this property's collection items are serialized as a reference. - - - - Gets or sets the type name handling used when serializing the property's collection items. - - The collection's items type name handling. - - - - Gets or sets the reference loop handling used when serializing the property's collection items. - - The collection's items reference loop handling. - - - - A collection of objects. - - - - - Initializes a new instance of the class. - - The type. - - - - When implemented in a derived class, extracts the key from the specified element. - - The element from which to extract the key. - The key for the specified element. - - - - Adds a object. - - The property to add to the collection. - - - - Gets the closest matching object. - First attempts to get an exact case match of and then - a case insensitive match. - - Name of the property. - A matching property if found. - - - - Gets a property by property name. - - The name of the property to get. - Type property name string comparison. - A matching property if found. - - - - Contract details for a used by the . - - - - - Initializes a new instance of the class. - - The underlying type for the contract. - - - - Lookup and create an instance of the type described by the argument. - - The type to create. - Optional arguments to pass to an initializing constructor of the JsonConverter. - If null, the default constructor is used. - - - - A kebab case naming strategy. - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - A flag indicating whether extension data names should be processed. - - - - - Initializes a new instance of the class. - - - - - Resolves the specified property name. - - The property name to resolve. - The resolved property name. - - - - Represents a trace writer that writes to memory. When the trace message limit is - reached then old trace messages will be removed as new messages are added. - - - - - Gets the that will be used to filter the trace messages passed to the writer. - For example a filter level of will exclude messages and include , - and messages. - - - The that will be used to filter the trace messages passed to the writer. - - - - - Initializes a new instance of the class. - - - - - Writes the specified trace level, message and optional exception. - - The at which to write this trace. - The trace message. - The trace exception. This parameter is optional. - - - - Returns an enumeration of the most recent trace messages. - - An enumeration of the most recent trace messages. - - - - Returns a of the most recent trace messages. - - - A of the most recent trace messages. - - - - - A base class for resolving how property names and dictionary keys are serialized. - - - - - A flag indicating whether dictionary keys should be processed. - Defaults to false. - - - - - A flag indicating whether extension data names should be processed. - Defaults to false. - - - - - A flag indicating whether explicitly specified property names, - e.g. a property name customized with a , should be processed. - Defaults to false. - - - - - Gets the serialized name for a given property name. - - The initial property name. - A flag indicating whether the property has had a name explicitly specified. - The serialized property name. - - - - Gets the serialized name for a given extension data name. - - The initial extension data name. - The serialized extension data name. - - - - Gets the serialized key for a given dictionary key. - - The initial dictionary key. - The serialized dictionary key. - - - - Resolves the specified property name. - - The property name to resolve. - The resolved property name. - - - - Hash code calculation - - - - - - Object equality implementation - - - - - - - Compare to another NamingStrategy - - - - - - - Represents a method that constructs an object. - - The object type to create. - - - - When applied to a method, specifies that the method is called when an error occurs serializing an object. - - - - - Provides methods to get attributes from a , , or . - - - - - Initializes a new instance of the class. - - The instance to get attributes for. This parameter should be a , , or . - - - - Returns a collection of all of the attributes, or an empty collection if there are no attributes. - - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. - - The type of the attributes. - When true, look up the hierarchy chain for the inherited custom attribute. - A collection of s, or an empty collection. - - - - Get and set values for a using reflection. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - - - - A snake case naming strategy. - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - - - Initializes a new instance of the class. - - - A flag indicating whether dictionary keys should be processed. - - - A flag indicating whether explicitly specified property names should be processed, - e.g. a property name customized with a . - - - A flag indicating whether extension data names should be processed. - - - - - Initializes a new instance of the class. - - - - - Resolves the specified property name. - - The property name to resolve. - The resolved property name. - - - - Specifies how strings are escaped when writing JSON text. - - - - - Only control characters (e.g. newline) are escaped. - - - - - All non-ASCII and control characters (e.g. newline) are escaped. - - - - - HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. - - - - - Specifies what messages to output for the class. - - - - - Output no tracing and debugging messages. - - - - - Output error-handling messages. - - - - - Output warnings and error-handling messages. - - - - - Output informational messages, warnings, and error-handling messages. - - - - - Output all debugging and tracing messages. - - - - - Indicates the method that will be used during deserialization for locating and loading assemblies. - - - - - In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. - - - - - In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. - - - - - Specifies type name handling options for the . - - - should be used with caution when your application deserializes JSON from an external source. - Incoming types should be validated with a custom - when deserializing with a value other than . - - - - - Do not include the .NET type name when serializing types. - - - - - Include the .NET type name when serializing into a JSON object structure. - - - - - Include the .NET type name when serializing into a JSON array structure. - - - - - Always include the .NET type name when serializing. - - - - - Include the .NET type name when the type of the object being serialized is not the same as its declared type. - Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON - you must specify a root type object with - or . - - - - - Determines whether the collection is null or empty. - - The collection. - - true if the collection is null or empty; otherwise, false. - - - - - Adds the elements of the specified collection to the specified generic . - - The list to add to. - The collection of elements to add. - - - - Converts the value to the specified type. If the value is unable to be converted, the - value is checked whether it assignable to the specified type. - - The value to convert. - The culture to use when converting. - The type to convert or cast the value to. - - The converted type. If conversion was unsuccessful, the initial value - is returned if assignable to the target type. - - - - - Helper class for serializing immutable collections. - Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed - https://github.com/JamesNK/Newtonsoft.Json/issues/652 - - - - - Gets the type of the typed collection's items. - - The type. - The type of the typed collection's items. - - - - Gets the member's underlying type. - - The member. - The underlying type of the member. - - - - Determines whether the property is an indexed property. - - The property. - - true if the property is an indexed property; otherwise, false. - - - - - Gets the member's value on the object. - - The member. - The target object. - The member's value on the object. - - - - Sets the member's value on the target object. - - The member. - The target. - The value. - - - - Determines whether the specified MemberInfo can be read. - - The MemberInfo to determine whether can be read. - /// if set to true then allow the member to be gotten non-publicly. - - true if the specified MemberInfo can be read; otherwise, false. - - - - - Determines whether the specified MemberInfo can be set. - - The MemberInfo to determine whether can be set. - if set to true then allow the member to be set non-publicly. - if set to true then allow the member to be set if read-only. - - true if the specified MemberInfo can be set; otherwise, false. - - - - - Builds a string. Unlike this class lets you reuse its internal buffer. - - - - - Determines whether the string is all white space. Empty string will return false. - - The string to test whether it is all white space. - - true if the string is all white space; otherwise, false. - - - - - Specifies the state of the . - - - - - An exception has been thrown, which has left the in an invalid state. - You may call the method to put the in the Closed state. - Any other method calls result in an being thrown. - - - - - The method has been called. - - - - - An object is being written. - - - - - An array is being written. - - - - - A constructor is being written. - - - - - A property is being written. - - - - - A write method has not been called. - - - - - Indicates the method that will be used during deserialization for locating and loading assemblies. - - - - - In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly. - - - - - In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly. - - - - Specifies that an output will not be null even if the corresponding type allows it. - - - Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - - Gets the return value condition. - - - Specifies that an output may be null even if the corresponding type disallows it. - - - Specifies that null is allowed as an input even if the corresponding type disallows it. - - - - Specifies that the method will not return if the associated Boolean parameter is passed the specified value. - - - - - Initializes a new instance of the class. - - - The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to - the associated parameter matches this value. - - - - Gets the condition parameter value. - - - diff --git a/packages/Newtonsoft.Json.12.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.12.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll deleted file mode 100644 index aa8843c..0000000 Binary files a/packages/Newtonsoft.Json.12.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll and /dev/null differ diff --git a/packages/Newtonsoft.Json.12.0.3/.signature.p7s b/packages/Newtonsoft.Json.13.0.1/.signature.p7s similarity index 71% rename from packages/Newtonsoft.Json.12.0.3/.signature.p7s rename to packages/Newtonsoft.Json.13.0.1/.signature.p7s index bc07e21..988b1e1 100644 Binary files a/packages/Newtonsoft.Json.12.0.3/.signature.p7s and b/packages/Newtonsoft.Json.13.0.1/.signature.p7s differ diff --git a/packages/Newtonsoft.Json.12.0.3/LICENSE.md b/packages/Newtonsoft.Json.13.0.1/LICENSE.md similarity index 100% rename from packages/Newtonsoft.Json.12.0.3/LICENSE.md rename to packages/Newtonsoft.Json.13.0.1/LICENSE.md diff --git a/packages/Newtonsoft.Json.13.0.1/Newtonsoft.Json.13.0.1.nupkg b/packages/Newtonsoft.Json.13.0.1/Newtonsoft.Json.13.0.1.nupkg new file mode 100644 index 0000000..9eb2ddd Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/Newtonsoft.Json.13.0.1.nupkg differ diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.dll new file mode 100644 index 0000000..d40ac9c Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/net20/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.xml similarity index 99% rename from packages/Newtonsoft.Json.12.0.3/lib/net20/Newtonsoft.Json.xml rename to packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.xml index 4628a0b..181504f 100644 --- a/packages/Newtonsoft.Json.12.0.3/lib/net20/Newtonsoft.Json.xml +++ b/packages/Newtonsoft.Json.13.0.1/lib/net20/Newtonsoft.Json.xml @@ -2253,6 +2253,8 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. @@ -2706,7 +2708,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -3022,7 +3024,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -5290,6 +5292,21 @@ The comparison used to match property names while merging. + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + Represents an abstract JSON token. @@ -6082,6 +6099,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. A . + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + Selects a collection of elements using a JSONPath expression. @@ -6101,6 +6128,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. An of that contains the selected elements. + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + Creates a new instance of the . All child tokens are recursively cloned. diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.dll new file mode 100644 index 0000000..fce555f Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/net35/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.xml similarity index 99% rename from packages/Newtonsoft.Json.12.0.3/lib/net35/Newtonsoft.Json.xml rename to packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.xml index 6058a14..2da5ea0 100644 --- a/packages/Newtonsoft.Json.12.0.3/lib/net35/Newtonsoft.Json.xml +++ b/packages/Newtonsoft.Json.13.0.1/lib/net35/Newtonsoft.Json.xml @@ -2382,6 +2382,8 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. @@ -2841,7 +2843,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -3157,7 +3159,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -5466,6 +5468,21 @@ The comparison used to match property names while merging. + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + Represents an abstract JSON token. @@ -6286,6 +6303,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. A . + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + Selects a collection of elements using a JSONPath expression. @@ -6305,6 +6332,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. An of that contains the selected elements. + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + Creates a new instance of the . All child tokens are recursively cloned. diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.dll new file mode 100644 index 0000000..978356d Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/net40/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.xml similarity index 99% rename from packages/Newtonsoft.Json.12.0.3/lib/net40/Newtonsoft.Json.xml rename to packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.xml index 0cbf62c..7ac0cc6 100644 --- a/packages/Newtonsoft.Json.12.0.3/lib/net40/Newtonsoft.Json.xml +++ b/packages/Newtonsoft.Json.13.0.1/lib/net40/Newtonsoft.Json.xml @@ -2454,6 +2454,8 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. @@ -2913,7 +2915,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -3229,7 +3231,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -5558,6 +5560,21 @@ The comparison used to match property names while merging. + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + Represents an abstract JSON token. @@ -6378,6 +6395,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. A . + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + Selects a collection of elements using a JSONPath expression. @@ -6397,6 +6424,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. An of that contains the selected elements. + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + Returns the responsible for binding operations performed on this object. diff --git a/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.dll new file mode 100644 index 0000000..7af125a Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/netstandard2.0/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.xml similarity index 99% rename from packages/Newtonsoft.Json.12.0.3/lib/netstandard2.0/Newtonsoft.Json.xml rename to packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.xml index 01e90a0..008e0ca 100644 --- a/packages/Newtonsoft.Json.12.0.3/lib/netstandard2.0/Newtonsoft.Json.xml +++ b/packages/Newtonsoft.Json.13.0.1/lib/net45/Newtonsoft.Json.xml @@ -2553,6 +2553,8 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. @@ -3012,7 +3014,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -3328,7 +3330,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -7090,6 +7092,27 @@ The comparison used to match property names while merging. + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + Represents an abstract JSON token. @@ -7985,6 +8008,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. A . + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + Selects a collection of elements using a JSONPath expression. @@ -8004,6 +8037,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. An of that contains the selected elements. + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + Returns the responsible for binding operations performed on this object. @@ -9847,6 +9890,31 @@ The trace message. The trace exception. This parameter is optional. + + + Get and set values for a using dynamic methods. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + Provides information surrounding an error. diff --git a/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.dll new file mode 100644 index 0000000..8464ac9 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.xml similarity index 99% rename from packages/Newtonsoft.Json.12.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml rename to packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.xml index 4d19d19..53b811c 100644 --- a/packages/Newtonsoft.Json.12.0.3/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml +++ b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.0/Newtonsoft.Json.xml @@ -2377,6 +2377,8 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. @@ -2818,7 +2820,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -3134,7 +3136,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -6767,6 +6769,27 @@ The comparison used to match property names while merging. + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + Represents an abstract JSON token. @@ -7662,6 +7685,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. A . + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + Selects a collection of elements using a JSONPath expression. @@ -7681,6 +7714,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. An of that contains the selected elements. + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + Returns the responsible for binding operations performed on this object. diff --git a/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.dll new file mode 100644 index 0000000..e59bef4 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.3/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.xml similarity index 99% rename from packages/Newtonsoft.Json.12.0.3/lib/netstandard1.3/Newtonsoft.Json.xml rename to packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.xml index 584a697..0770714 100644 --- a/packages/Newtonsoft.Json.12.0.3/lib/netstandard1.3/Newtonsoft.Json.xml +++ b/packages/Newtonsoft.Json.13.0.1/lib/netstandard1.3/Newtonsoft.Json.xml @@ -2448,6 +2448,8 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. @@ -2889,7 +2891,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -3205,7 +3207,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -6849,6 +6851,27 @@ The comparison used to match property names while merging. + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + Represents an abstract JSON token. @@ -7744,6 +7767,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. A . + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + Selects a collection of elements using a JSONPath expression. @@ -7763,6 +7796,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. An of that contains the selected elements. + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + Returns the responsible for binding operations performed on this object. diff --git a/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll new file mode 100644 index 0000000..1ffeabe Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.12.0.3/lib/net45/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.xml similarity index 99% rename from packages/Newtonsoft.Json.12.0.3/lib/net45/Newtonsoft.Json.xml rename to packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.xml index aa245c5..e3f5ad0 100644 --- a/packages/Newtonsoft.Json.12.0.3/lib/net45/Newtonsoft.Json.xml +++ b/packages/Newtonsoft.Json.13.0.1/lib/netstandard2.0/Newtonsoft.Json.xml @@ -2553,6 +2553,8 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. @@ -3012,7 +3014,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -3328,7 +3330,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -7090,6 +7092,27 @@ The comparison used to match property names while merging. + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + Represents an abstract JSON token. @@ -7985,6 +8008,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. A . + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + Selects a collection of elements using a JSONPath expression. @@ -8004,6 +8037,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. An of that contains the selected elements. + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + Returns the responsible for binding operations performed on this object. @@ -9847,31 +9890,6 @@ The trace message. The trace exception. This parameter is optional. - - - Get and set values for a using dynamic methods. - - - - - Initializes a new instance of the class. - - The member info. - - - - Sets the value. - - The target to set the value on. - The value to set on the target. - - - - Gets the value. - - The target to get the value from. - The value. - Provides information surrounding an error. diff --git a/packages/Newtonsoft.Json.12.0.3/packageIcon.png b/packages/Newtonsoft.Json.13.0.1/packageIcon.png similarity index 100% rename from packages/Newtonsoft.Json.12.0.3/packageIcon.png rename to packages/Newtonsoft.Json.13.0.1/packageIcon.png