commit 1c822aa38690f714514fcf3a24986974017abf79 Author: a Date: Tue Mar 17 14:33:47 2026 +0400 first commit diff --git a/.vs/Neshina1703.csproj.dtbcache.json b/.vs/Neshina1703.csproj.dtbcache.json new file mode 100644 index 0000000..ce7ae2f --- /dev/null +++ b/.vs/Neshina1703.csproj.dtbcache.json @@ -0,0 +1 @@ +{"RootPath":"C:\\Users\\Student\\ISP31\\Neshina1703","ProjectFileName":"Neshina1703.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"AdminForm.cs"},{"SourceFile":"AdminForm.Designer.cs"},{"SourceFile":"ClientForm.cs"},{"SourceFile":"ClientForm.Designer.cs"},{"SourceFile":"DB.cs"},{"SourceFile":"EmployeeForm.cs"},{"SourceFile":"EmployeeForm.Designer.cs"},{"SourceFile":"Form1.cs"},{"SourceFile":"Form1.Designer.cs"},{"SourceFile":"OrderForm.cs"},{"SourceFile":"OrderForm.Designer.cs"},{"SourceFile":"ProductForm.cs"},{"SourceFile":"ProductForm.Designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\Student\\Downloads\\mysql.data\\MySql.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\Users\\Student\\ISP31\\Neshina1703\\bin\\Debug\\Neshina1703.exe","OutputItemRelativePath":"Neshina1703.exe"},{"OutputItemFullPath":"C:\\Users\\Student\\ISP31\\Neshina1703\\bin\\Debug\\Neshina1703.pdb","OutputItemRelativePath":"Neshina1703.pdb"}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/.vs/Neshina1703/FileContentIndex/1c39f9cb-3ca0-498f-95a5-60b88ac27c1f.vsidx b/.vs/Neshina1703/FileContentIndex/1c39f9cb-3ca0-498f-95a5-60b88ac27c1f.vsidx new file mode 100644 index 0000000..ce76cef Binary files /dev/null and b/.vs/Neshina1703/FileContentIndex/1c39f9cb-3ca0-498f-95a5-60b88ac27c1f.vsidx differ diff --git a/.vs/Neshina1703/FileContentIndex/8eb0f706-ce0c-414d-8892-7b14c42eaf5c.vsidx b/.vs/Neshina1703/FileContentIndex/8eb0f706-ce0c-414d-8892-7b14c42eaf5c.vsidx new file mode 100644 index 0000000..ac38fa3 Binary files /dev/null and b/.vs/Neshina1703/FileContentIndex/8eb0f706-ce0c-414d-8892-7b14c42eaf5c.vsidx differ diff --git a/.vs/Neshina1703/FileContentIndex/99260370-81b4-4ec4-9a06-2a923e41fd64.vsidx b/.vs/Neshina1703/FileContentIndex/99260370-81b4-4ec4-9a06-2a923e41fd64.vsidx new file mode 100644 index 0000000..f658422 Binary files /dev/null and b/.vs/Neshina1703/FileContentIndex/99260370-81b4-4ec4-9a06-2a923e41fd64.vsidx differ diff --git a/.vs/Neshina1703/FileContentIndex/cc111090-ce19-402a-ba44-c6c9bdd387ba.vsidx b/.vs/Neshina1703/FileContentIndex/cc111090-ce19-402a-ba44-c6c9bdd387ba.vsidx new file mode 100644 index 0000000..54ad624 Binary files /dev/null and b/.vs/Neshina1703/FileContentIndex/cc111090-ce19-402a-ba44-c6c9bdd387ba.vsidx differ diff --git a/.vs/Neshina1703/FileContentIndex/f3a15bb4-687c-44a9-baaf-c7de91b9e88d.vsidx b/.vs/Neshina1703/FileContentIndex/f3a15bb4-687c-44a9-baaf-c7de91b9e88d.vsidx new file mode 100644 index 0000000..df21844 Binary files /dev/null and b/.vs/Neshina1703/FileContentIndex/f3a15bb4-687c-44a9-baaf-c7de91b9e88d.vsidx differ diff --git a/.vs/Neshina1703/v17/.suo b/.vs/Neshina1703/v17/.suo new file mode 100644 index 0000000..3b572e9 Binary files /dev/null and b/.vs/Neshina1703/v17/.suo differ diff --git a/.vs/Neshina1703/v17/TestStore/0/000.testlog b/.vs/Neshina1703/v17/TestStore/0/000.testlog new file mode 100644 index 0000000..5a5d766 Binary files /dev/null and b/.vs/Neshina1703/v17/TestStore/0/000.testlog differ diff --git a/.vs/Neshina1703/v17/TestStore/0/testlog.manifest b/.vs/Neshina1703/v17/TestStore/0/testlog.manifest new file mode 100644 index 0000000..e92ede2 Binary files /dev/null and b/.vs/Neshina1703/v17/TestStore/0/testlog.manifest differ diff --git a/AdminForm.Designer.cs b/AdminForm.Designer.cs new file mode 100644 index 0000000..23b43a9 --- /dev/null +++ b/AdminForm.Designer.cs @@ -0,0 +1,319 @@ +namespace Neshina1703 +{ + partial class AdminForm + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.TabControl tabControl; + private System.Windows.Forms.TabPage tabProducts; + private System.Windows.Forms.TabPage tabOrders; + private System.Windows.Forms.DataGridView dgvProducts; + private System.Windows.Forms.DataGridView dgvOrders; + private System.Windows.Forms.Button btnAddProduct; + private System.Windows.Forms.Button btnEditProduct; + private System.Windows.Forms.Button btnDeleteProduct; + private System.Windows.Forms.Button btnRefresh; + private System.Windows.Forms.Button btnLogout; + private System.Windows.Forms.Label lblUser; + private System.Windows.Forms.TextBox txtSearch; + private System.Windows.Forms.ComboBox cbFilterStatus; + private System.Windows.Forms.ComboBox cbFilterSupplier; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AdminForm)); + this.tabControl = new System.Windows.Forms.TabControl(); + this.tabProducts = new System.Windows.Forms.TabPage(); + this.dgvProducts = new System.Windows.Forms.DataGridView(); + this.txtSearch = new System.Windows.Forms.TextBox(); + this.cbFilterStatus = new System.Windows.Forms.ComboBox(); + this.cbFilterSupplier = new System.Windows.Forms.ComboBox(); + this.btnAddProduct = new System.Windows.Forms.Button(); + this.btnEditProduct = new System.Windows.Forms.Button(); + this.btnDeleteProduct = new System.Windows.Forms.Button(); + this.btnRefresh = new System.Windows.Forms.Button(); + this.tabOrders = new System.Windows.Forms.TabPage(); + this.dgvOrders = new System.Windows.Forms.DataGridView(); + this.btnLogout = new System.Windows.Forms.Button(); + this.lblUser = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.tabControl.SuspendLayout(); + this.tabProducts.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProducts)).BeginInit(); + this.tabOrders.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvOrders)).BeginInit(); + this.SuspendLayout(); + // + // tabControl + // + this.tabControl.Controls.Add(this.tabProducts); + this.tabControl.Controls.Add(this.tabOrders); + this.tabControl.Location = new System.Drawing.Point(12, 45); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Size = new System.Drawing.Size(768, 380); + this.tabControl.TabIndex = 2; + // + // tabProducts + // + this.tabProducts.Controls.Add(this.button1); + this.tabProducts.Controls.Add(this.dgvProducts); + this.tabProducts.Controls.Add(this.txtSearch); + this.tabProducts.Controls.Add(this.cbFilterStatus); + this.tabProducts.Controls.Add(this.cbFilterSupplier); + this.tabProducts.Controls.Add(this.btnAddProduct); + this.tabProducts.Controls.Add(this.btnEditProduct); + this.tabProducts.Controls.Add(this.btnDeleteProduct); + this.tabProducts.Controls.Add(this.btnRefresh); + this.tabProducts.Location = new System.Drawing.Point(4, 22); + this.tabProducts.Name = "tabProducts"; + this.tabProducts.Padding = new System.Windows.Forms.Padding(3); + this.tabProducts.Size = new System.Drawing.Size(760, 354); + this.tabProducts.TabIndex = 0; + this.tabProducts.Text = "Товары"; + this.tabProducts.UseVisualStyleBackColor = true; + // + // dgvProducts + // + this.dgvProducts.AllowUserToAddRows = false; + this.dgvProducts.AllowUserToDeleteRows = false; + this.dgvProducts.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvProducts.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(253)))), ((int)(((byte)(161))))); + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(91)))), ((int)(((byte)(209)))), ((int)(((byte)(45))))); + dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvProducts.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + this.dgvProducts.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvProducts.DefaultCellStyle = dataGridViewCellStyle2; + this.dgvProducts.Location = new System.Drawing.Point(6, 32); + this.dgvProducts.Name = "dgvProducts"; + this.dgvProducts.ReadOnly = true; + this.dgvProducts.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvProducts.Size = new System.Drawing.Size(748, 270); + this.dgvProducts.TabIndex = 3; + this.dgvProducts.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProducts_CellDoubleClick); + // + // txtSearch + // + this.txtSearch.Location = new System.Drawing.Point(6, 6); + this.txtSearch.Name = "txtSearch"; + this.txtSearch.Size = new System.Drawing.Size(200, 20); + this.txtSearch.TabIndex = 0; + this.txtSearch.TextChanged += new System.EventHandler(this.txtSearch_TextChanged); + // + // cbFilterStatus + // + this.cbFilterStatus.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbFilterStatus.FormattingEnabled = true; + this.cbFilterStatus.Items.AddRange(new object[] { + "Все", + "Свободно", + "По рецепту"}); + this.cbFilterStatus.Location = new System.Drawing.Point(212, 5); + this.cbFilterStatus.Name = "cbFilterStatus"; + this.cbFilterStatus.Size = new System.Drawing.Size(120, 21); + this.cbFilterStatus.TabIndex = 1; + this.cbFilterStatus.SelectedIndexChanged += new System.EventHandler(this.ApplyFilters); + // + // cbFilterSupplier + // + this.cbFilterSupplier.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbFilterSupplier.FormattingEnabled = true; + this.cbFilterSupplier.Location = new System.Drawing.Point(338, 5); + this.cbFilterSupplier.Name = "cbFilterSupplier"; + this.cbFilterSupplier.Size = new System.Drawing.Size(150, 21); + this.cbFilterSupplier.TabIndex = 2; + this.cbFilterSupplier.SelectedIndexChanged += new System.EventHandler(this.ApplyFilters); + // + // btnAddProduct + // + this.btnAddProduct.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(91)))), ((int)(((byte)(209)))), ((int)(((byte)(45))))); + this.btnAddProduct.FlatAppearance.BorderSize = 0; + this.btnAddProduct.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnAddProduct.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnAddProduct.ForeColor = System.Drawing.Color.Black; + this.btnAddProduct.Location = new System.Drawing.Point(6, 308); + this.btnAddProduct.Name = "btnAddProduct"; + this.btnAddProduct.Size = new System.Drawing.Size(100, 35); + this.btnAddProduct.TabIndex = 4; + this.btnAddProduct.Text = "Добавить"; + this.btnAddProduct.UseVisualStyleBackColor = false; + this.btnAddProduct.Click += new System.EventHandler(this.btnAddProduct_Click); + // + // btnEditProduct + // + this.btnEditProduct.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(253)))), ((int)(((byte)(161))))); + this.btnEditProduct.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(91)))), ((int)(((byte)(209)))), ((int)(((byte)(45))))); + this.btnEditProduct.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnEditProduct.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnEditProduct.ForeColor = System.Drawing.Color.Black; + this.btnEditProduct.Location = new System.Drawing.Point(112, 308); + this.btnEditProduct.Name = "btnEditProduct"; + this.btnEditProduct.Size = new System.Drawing.Size(100, 35); + this.btnEditProduct.TabIndex = 5; + this.btnEditProduct.Text = "Изменить"; + this.btnEditProduct.UseVisualStyleBackColor = false; + this.btnEditProduct.Click += new System.EventHandler(this.btnEditProduct_Click); + // + // btnDeleteProduct + // + this.btnDeleteProduct.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(91)))), ((int)(((byte)(209)))), ((int)(((byte)(45))))); + this.btnDeleteProduct.FlatAppearance.BorderSize = 0; + this.btnDeleteProduct.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnDeleteProduct.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnDeleteProduct.ForeColor = System.Drawing.Color.Black; + this.btnDeleteProduct.Location = new System.Drawing.Point(218, 308); + this.btnDeleteProduct.Name = "btnDeleteProduct"; + this.btnDeleteProduct.Size = new System.Drawing.Size(100, 35); + this.btnDeleteProduct.TabIndex = 6; + this.btnDeleteProduct.Text = "Удалить"; + this.btnDeleteProduct.UseVisualStyleBackColor = false; + this.btnDeleteProduct.Click += new System.EventHandler(this.btnDeleteProduct_Click); + // + // btnRefresh + // + this.btnRefresh.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(253)))), ((int)(((byte)(161))))); + this.btnRefresh.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(91)))), ((int)(((byte)(209)))), ((int)(((byte)(45))))); + this.btnRefresh.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnRefresh.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnRefresh.ForeColor = System.Drawing.Color.Black; + this.btnRefresh.Location = new System.Drawing.Point(324, 308); + this.btnRefresh.Name = "btnRefresh"; + this.btnRefresh.Size = new System.Drawing.Size(100, 35); + this.btnRefresh.TabIndex = 7; + this.btnRefresh.Text = "Обновить"; + this.btnRefresh.UseVisualStyleBackColor = false; + this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); + // + // tabOrders + // + this.tabOrders.Controls.Add(this.dgvOrders); + this.tabOrders.Location = new System.Drawing.Point(4, 22); + this.tabOrders.Name = "tabOrders"; + this.tabOrders.Padding = new System.Windows.Forms.Padding(3); + this.tabOrders.Size = new System.Drawing.Size(760, 354); + this.tabOrders.TabIndex = 1; + this.tabOrders.Text = "Заказы"; + this.tabOrders.UseVisualStyleBackColor = true; + // + // dgvOrders + // + this.dgvOrders.AllowUserToAddRows = false; + this.dgvOrders.AllowUserToDeleteRows = false; + this.dgvOrders.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvOrders.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(253)))), ((int)(((byte)(161))))); + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(91)))), ((int)(((byte)(209)))), ((int)(((byte)(45))))); + dataGridViewCellStyle3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + dataGridViewCellStyle3.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dgvOrders.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3; + this.dgvOrders.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle4.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + dataGridViewCellStyle4.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dgvOrders.DefaultCellStyle = dataGridViewCellStyle4; + this.dgvOrders.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvOrders.Location = new System.Drawing.Point(3, 3); + this.dgvOrders.Name = "dgvOrders"; + this.dgvOrders.ReadOnly = true; + this.dgvOrders.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvOrders.Size = new System.Drawing.Size(754, 348); + this.dgvOrders.TabIndex = 0; + // + // btnLogout + // + this.btnLogout.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(91)))), ((int)(((byte)(209)))), ((int)(((byte)(45))))); + this.btnLogout.FlatAppearance.BorderSize = 0; + this.btnLogout.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnLogout.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnLogout.ForeColor = System.Drawing.Color.Black; + this.btnLogout.Location = new System.Drawing.Point(690, 12); + this.btnLogout.Name = "btnLogout"; + this.btnLogout.Size = new System.Drawing.Size(90, 30); + this.btnLogout.TabIndex = 1; + this.btnLogout.Text = "Выход"; + this.btnLogout.UseVisualStyleBackColor = false; + this.btnLogout.Click += new System.EventHandler(this.btnLogout_Click); + // + // lblUser + // + this.lblUser.AutoSize = true; + this.lblUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold); + this.lblUser.ForeColor = System.Drawing.Color.Black; + this.lblUser.Location = new System.Drawing.Point(12, 15); + this.lblUser.Name = "lblUser"; + this.lblUser.Size = new System.Drawing.Size(129, 17); + this.lblUser.TabIndex = 0; + this.lblUser.Text = "Администратор:"; + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(91)))), ((int)(((byte)(209)))), ((int)(((byte)(45))))); + this.button1.Location = new System.Drawing.Point(623, 309); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(131, 35); + this.button1.TabIndex = 8; + this.button1.Text = "Генерировать QR"; + this.button1.UseVisualStyleBackColor = false; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // AdminForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.ClientSize = new System.Drawing.Size(792, 437); + this.Controls.Add(this.lblUser); + this.Controls.Add(this.btnLogout); + this.Controls.Add(this.tabControl); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "AdminForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Аптека — Администратор"; + this.Load += new System.EventHandler(this.AdminForm_Load); + this.tabControl.ResumeLayout(false); + this.tabProducts.ResumeLayout(false); + this.tabProducts.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProducts)).EndInit(); + this.tabOrders.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvOrders)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/AdminForm.cs b/AdminForm.cs new file mode 100644 index 0000000..51a6c21 --- /dev/null +++ b/AdminForm.cs @@ -0,0 +1,277 @@ +using System; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +using MySql.Data.MySqlClient; + +namespace Neshina1703 +{ + public partial class AdminForm : Form + { + private int userId; + private string userName; + private DataTable allProducts; + + public AdminForm(int userId, string userName) + { + InitializeComponent(); + this.userId = userId; + this.userName = userName; + } + + private void AdminForm_Load(object sender, EventArgs e) + { + lblUser.Text = $" {userName}"; + LoadSuppliers(); + LoadProducts(); + LoadOrders(); + SetupGrids(); + } + + private void LoadSuppliers() + { + var suppliers = DB.ExecuteQuery("SELECT DISTINCT supplier_name FROM suppliers ORDER BY supplier_name"); + cbFilterSupplier.Items.Clear(); + cbFilterSupplier.Items.Add("Все поставщики"); + foreach (DataRow row in suppliers.Rows) + cbFilterSupplier.Items.Add(row["supplier_name"].ToString()); + cbFilterSupplier.SelectedIndex = 0; + } + + private void LoadProducts() + { + try + { + string query = @"SELECT + m.id AS 'ID', + m.medication_name AS 'Название', + CONCAT(m.price, ' ₽') AS 'Цена', + m.stock_quantity AS 'На складе', + m.batch_number AS 'Партия', + s.supplier_name AS 'Поставщик', + ds.status_name AS 'Отпуск', + IF(m.has_analog, '✅', '❌') AS 'Аналог' + FROM medications m + LEFT JOIN suppliers s ON m.supplier_id = s.id + LEFT JOIN dispensing_statuses ds ON m.dispensing_status_id = ds.id + ORDER BY m.medication_name"; + + allProducts = DB.ExecuteQuery(query); + ApplyFilters(); + } + catch (Exception ex) + { + MessageBox.Show("Ошибка загрузки товаров: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void ApplyFilters(object sender = null, EventArgs e = null) + { + if (allProducts == null) return; + + DataView view = allProducts.DefaultView; + string filter = ""; + + if (!string.IsNullOrEmpty(txtSearch.Text.Trim())) + filter += $"Название LIKE '%{txtSearch.Text.Trim()}%'"; + + if (cbFilterStatus.SelectedIndex > 0) + { + string status = cbFilterStatus.SelectedItem.ToString(); + if (!string.IsNullOrEmpty(filter)) filter += " AND "; + filter += $"Отпуск = '{status}'"; + } + + if (cbFilterSupplier.SelectedIndex > 0) + { + string supplier = cbFilterSupplier.SelectedItem.ToString(); + if (!string.IsNullOrEmpty(filter)) filter += " AND "; + filter += $"Поставщик = '{supplier}'"; + } + + view.RowFilter = filter; + dgvProducts.DataSource = view; + } + + private void txtSearch_TextChanged(object sender, EventArgs e) => ApplyFilters(); + + private void SetupGrids() + { + dgvProducts.Columns["ID"].Visible = false; + dgvProducts.Columns["Цена"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; + dgvProducts.Columns["На складе"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + dgvProducts.Columns["Аналог"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + dgvProducts.CellFormatting += (s, args) => + { + if (dgvProducts.Columns[args.ColumnIndex].Name == "На складе" && + args.Value != null && Convert.ToInt32(args.Value) < 10) + { + args.CellStyle.BackColor = Color.FromArgb(255, 220, 220); + args.CellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + } + }; + + dgvOrders.Columns["ID"].Visible = false; + } + + private void LoadOrders() + { + try + { + string query = @"SELECT + p.id AS 'ID', + p.purchase_date AS 'Дата', + COALESCE(c.full_name, '—') AS 'Клиент', + COALESCE(pr.prescription_number, '—') AS 'Рецепт', + GROUP_CONCAT(CONCAT(m.medication_name, ' ×', pm.quantity) SEPARATOR ', ') AS 'Состав', + SUM(m.price * pm.quantity) AS 'Сумма, ₽' + FROM purchases p + LEFT JOIN clients c ON p.client_id = c.id + LEFT JOIN prescriptions pr ON p.prescription_id = pr.id + LEFT JOIN purchase_medications pm ON p.id = pm.purchase_id + LEFT JOIN medications m ON pm.medication_id = m.id + GROUP BY p.id + ORDER BY p.purchase_date DESC"; + + dgvOrders.DataSource = DB.ExecuteQuery(query); + dgvOrders.Columns["Сумма, ₽"].DefaultCellStyle.Format = "0.00 ₽"; + dgvOrders.Columns["Сумма, ₽"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; + } + catch (Exception ex) + { + MessageBox.Show("Ошибка загрузки заказов: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void dgvProducts_CellDoubleClick(object sender, DataGridViewCellEventArgs e) + { + if (e.RowIndex >= 0) + EditSelectedProduct(); + } + + private void btnAddProduct_Click(object sender, EventArgs e) + { + var productForm = new ProductForm(-1); + if (productForm.ShowDialog() == DialogResult.OK) + { + LoadProducts(); + LoadSuppliers(); + MessageBox.Show("овар добавлен!", "Успех", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void btnEditProduct_Click(object sender, EventArgs e) + { + EditSelectedProduct(); + } + + private void EditSelectedProduct() + { + if (dgvProducts.CurrentRow == null) + { + MessageBox.Show("Выберите товар для редактирования!", "Внимание", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + int productId = Convert.ToInt32(dgvProducts.CurrentRow.Cells["ID"].Value); + var productForm = new ProductForm(productId); + if (productForm.ShowDialog() == DialogResult.OK) + { + LoadProducts(); + MessageBox.Show("Товар обновлён!", "Успех", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + private void btnDeleteProduct_Click(object sender, EventArgs e) + { + if (dgvProducts.CurrentRow == null) + { + MessageBox.Show("Выберите товар для удаления!", "Внимание", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + int productId = Convert.ToInt32(dgvProducts.CurrentRow.Cells["ID"].Value); + string productName = dgvProducts.CurrentRow.Cells["Название"].Value.ToString(); + var checkQuery = "SELECT COUNT(*) FROM purchase_medications WHERE medication_id = @id"; + var count = DB.ExecuteScalar(checkQuery, new MySqlParameter[] { new MySqlParameter("@id", productId) }); + if (Convert.ToInt32(count) > 0) + { + MessageBox.Show(" Нельзя удалить товар, который есть в истории заказов!", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } + + var result = MessageBox.Show( + $"Удалить товар \"{productName}\"?\n\nЭто действие нельзя отменить.", + "Подтверждение удаления", + MessageBoxButtons.YesNo, MessageBoxIcon.Question); + + if (result == DialogResult.Yes) + { + try + { + DB.ExecuteCommand("DELETE FROM medications WHERE id = @id", + new MySqlParameter[] { new MySqlParameter("@id", productId) }); + + LoadProducts(); + MessageBox.Show("Товар удалён!", "Успех", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + catch (Exception ex) + { + MessageBox.Show("Ошибка: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void btnRefresh_Click(object sender, EventArgs e) + { + txtSearch.Clear(); + cbFilterStatus.SelectedIndex = 0; + cbFilterSupplier.SelectedIndex = 0; + LoadProducts(); + LoadOrders(); + MessageBox.Show("Данные обновлены", "Информация", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + private void btnLogout_Click(object sender, EventArgs e) + { + var result = MessageBox.Show("Выйти из системы?", "Подтверждение", + MessageBoxButtons.YesNo, MessageBoxIcon.Question); + + if (result == DialogResult.Yes) + { + this.Hide(); + var loginForm = new LoginForm(); + loginForm.Show(); + this.FormClosed += (s, args) => loginForm.FormClosed += (s2, a2) => Application.Exit(); + } + } + + protected override void OnActivated(EventArgs e) + { + base.OnActivated(e); + LoadProducts(); + LoadOrders(); + } + + private void button1_Click(object sender, EventArgs e) + { + + if (dgvProducts.CurrentRow != null) + { + int productId = Convert.ToInt32(dgvProducts.CurrentRow.Cells["ID"].Value); + var qrForm = new QRCodeViewerForm(productId); + qrForm.ShowDialog(); + } + + } + } +} \ No newline at end of file diff --git a/AdminForm.resx b/AdminForm.resx new file mode 100644 index 0000000..cad1b2c --- /dev/null +++ b/AdminForm.resx @@ -0,0 +1,1253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAPY6AQD2OgEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAgAAAAIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAALAAAAHQAAACwAAAA7AAAARgAAAEwAAABTAAAAUwAAAEwAAABGAAAAOwAAACwAAAAdAAAADAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAEAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAoAAAAxAAAAWQAAAIgAAACxAAAAywAAAOUAAAD2AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPYAAADoAAAAzgAAALEAAACJAAAAXQAAADIAAAALAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANAAAAHgAAAC0AAAA4wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC1AAAAegAAADcAAAAHAAAAAAAAAAAAAAAAAAAABAAA + AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAkAAABCAAAAmAAA + AN4AAAD+AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/AAAAPwAAAD+AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA/gAAAP0AAAD8AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAOAAAACaAAAARgAAAAkAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAEAAAAAAAAAAAAAACoAAACKAAAA4AAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD+AAAA/wAAAP4AAAD/AAAA4gAA + AIsAAAArAAAAAAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEkAAAC6AAAA+wAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC8AAAATAAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAA + AFcAAADRAAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD+AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/gAAAP8AAAD/AAAA0gAAAFkAAAAEAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAE4AAADQAAAA/wAAAP4AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD+AAAA/wAA + ANEAAABPAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAC8AAAC6AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACzAAAArAAAAKwAAACzAAAAugAA + AMgAAADXAAAA6gAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC7AAAALgAAAAAAAAACAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAEAAAAAAAAAAkAAACIAAAA+wAAAP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA8gAAAMcAAACWAAAAawAAAEEAAAAlAAAADwAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAPAAAAJQAAAD8AAABoAAAAlgAA + AMUAAADxAAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD7AAAAiQAAAAoAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAAAAAA+AAAA2gAAAP8AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAPwAAADRAAAAjgAA + AEcAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAABIAAAAjAAAANAAAAD8AAAA/wAA + AP8AAAD9AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAPwAAAD/AAAA2gAA + AD4AAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAEAAAADAAAAggAAAP4AAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAA + AP4AAAD/AAAA/wAAANgAAACCAAAAMQAAAAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAA + AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAgAAAC8AAACAAAAA1wAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAA/gAAAIMAAAADAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGQAAAMAAAAD/AAAA+wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP4AAAD/AAAA+gAAAK4AAABFAAAABgAAAAAAAAAAAAAAAQAA + AAQAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAABAAAAAAAA + AAAAAAAFAAAARAAAAKwAAAD5AAAA/wAAAP4AAAD8AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/wAAAMAAAAAaAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AD0AAADlAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD/AAAA9gAA + AJkAAAApAAAAAAAAAAEAAAABAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAEAAAABAAAAAAAAACYAAACYAAAA9wAA + AP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAOYAAAA+AAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABcAAAA+gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPwAAAD/AAAA/AAAAKEAAAAkAAAAAAAAAAEAAAADAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAiAAAAnwAAAPwAAAD/AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAeAAA + AP8AAAD8AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAMIAAAA1AAAAAAAA + AAEAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAA + AAEAAAAAAAAAMwAAAMIAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAA + AP8AAAB5AAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAIYAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD7AAAA/wAAAO8AAABnAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAGUAAADuAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACOAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC7AAAAHQAAAAAAAAADAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAB0AAAC6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAhgAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP4AAAD+AAAAeAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAA + AAAAAAB4AAAA/gAAAP4AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAHoAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAA6gAAAEUAAAAAAAAABAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAABEAAAA6gAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAB5AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABdAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANQAAAAjAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABeAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAQQAAAPoAAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC/AAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAgAA + AAwAAAARAAAAEAAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAAQAAAAEQAAAAwAAAACAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAQAAAAvwAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAPoAAABAAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAB0AAADjAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAtQAA + AAkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAKgAAAJIAAADRAAAA6AAAAO8AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA6AAA + ANEAAACUAAAAKgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAIAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAdAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHkAAAD8AAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAEAAAAEAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL0AAAADAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAIMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC9AAAACQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAPwAAAD7AAAA/QAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD9AAAA+wAAAPwAAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAIAAAAvQAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIIAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABCAAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAA0gAAABEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAASgAAAP8AAAD7AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAASgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAARAAAA0gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AEIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADAAAANUAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOgAAAAkAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAADBAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAADAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAAAPkAAAD/AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAA + APkAAAAlAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABHAAAA/QAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAiAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAANAAAAPoAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAHgAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEYAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAB4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD6AAAANAAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC3AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC2AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAUwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA7AAAACEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACuAAAAAwAA + ABMAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABMAAAADAAAArgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAACIAAADtAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABSAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABnAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAMoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL4AAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAA5AAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAOgAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATgAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAnAAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAnQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAATQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPUAAAAoAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAALwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAlQAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAAvAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACKAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPoAAAAsAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAC0AAAD6AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAACgAAAN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAA + AAAAAAAHAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAKwAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAABIAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABUAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAASAAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAARwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAJkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAQAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAACQAAABHAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAWAAAAEwAAACPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AI8AAABMAAAAWAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAEcAAAAjAAAAAAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAA1AAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACZAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAEYAAADFAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAApgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACBAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + ANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADYAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAP4AAAD+AAAA/QAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACOAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD9AAAA/gAA + AP4AAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + ADIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAeAAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAewAAAP8AAAD7AAAA/AAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABaAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPoAAAD/AAAAewAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANEAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAdwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADkAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABIAAADkAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACzAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACwAAAOMAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAASQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAkQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD6AAAA/wAAAGgAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAGgAAAD/AAAA+gAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACQAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABKAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAKAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAyAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAPEAAAAYAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD7AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA+wAA + APsAAAD8AAAA/QAAAP8AAACOAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAI4AAAD/AAAA/QAA + APwAAAD7AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPsAAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABkAAADyAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADIAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAFsAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZgAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADqAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA6AAA + AA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAiQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACWAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAPkAAACuAAAApwAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKYAAACRAAAAWgAAABEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + ABEAAABaAAAAkQAAAKYAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACnAAAArgAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAlwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACIAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACyAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAGoAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABAAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABrAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD8AAAA/wAAALEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAMAAAA5gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAPoAAAAkAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAA + APoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADmAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAB0AAAD1AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA6gAA + AA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAPAAAA6gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + APUAAAAcAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAA + AP4AAAD/AAAA/gAAAP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AAMAAADXAAAA/wAAAP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAA7AAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AMgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAAOwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAugAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAugAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABGAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACyAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKwAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAUwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFMAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAArAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAArAAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABTAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACyAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABGAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAALoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAALoAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAARgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADsAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAyAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAAA7AAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAAAP4AAAD/AAAA/gAA + AP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADXAAAA/wAA + AP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAdAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOkAAAAOAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADwAAAOoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAAD1AAAAHAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAwAAADmAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA+gAAACQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAlAAAA+gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOYAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAzAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAsgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA+wAAAP8AAABqAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAagAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACxAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AJYAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABAAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAK4AAACnAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKkAAACpAAAApgAAAJAAAABZAAAAEQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAEQAAAFkAAACQAAAApgAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKcAAACuAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACWAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AIgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AFwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADpAAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA6AAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADwAAAAGAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzwAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPsAAAD7AAAA/AAAAP0AAAD/AAAAjgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAACNAAAA/wAAAP0AAAD8AAAA+wAAAPsAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD7AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADOAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAZAAAA8QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAyAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAALAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACRAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APoAAAD/AAAAaAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAZwAAAP8AAAD6AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAJEAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEoAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA4gAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAI0AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADkAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABIAAADkAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACzAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAHkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA0AAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAHwAAAD/AAAA+gAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABZAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAWgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APwAAAD6AAAA/wAAAHwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAADQAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAHcAAAAAAAAABAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAANgAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAP8AAAD/AAAAMQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAIgAAAD/AAAA/gAAAP4AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACOAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP0AAAD+AAAA/gAAAP8AAACJAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAANQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACAAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEcAAADFAAAA+gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPsAAAD/AAAApQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACAAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACaAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANMAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAAkAAAASAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFgAAABMAAAAjwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAACPAAAATAAAAFgAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABHAAAAJAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAANQAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAmQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEgAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AEgAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABUAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFQAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABIAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABHAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAA + AN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAAAAAAAAAHAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKsAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAigAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAAD6AAAALAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAtAAAA+gAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACKAAAAAAAAAAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAwAAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACVAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAC8AAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPQAAAAnAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC4AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAE4AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAJsAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJwAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAE4AAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAMwAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAADgAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAAA5AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADLAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL0AAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAywAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAZwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABnAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADKAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADsAAAAIQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAK4AAAADAAAAEwAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAARAAAAEwAAAAMAAACuAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAIQAAAOwAAAD/AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAFIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC1AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAADUAAAD7AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAB3AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAARwAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAABGAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAdwAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA+gAAADQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAIoAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAABGAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAmAAAA+QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA+QAAACUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AEcAAAD9AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAADAAAANUAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOcAAAAjAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADBAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAQwAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + ANEAAAARAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEsAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAEsAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAEQAA + ANEAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAABCAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAhAAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL0AAAAIAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AIkAAAD/AAAA/AAAAPsAAAD9AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP0AAAD7AAAA/AAA + AP8AAACJAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAgAAAC8AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAgwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHoAAAD8AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAEAAAAswAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL4AAAADAAAAAQAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAdAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALUAAAAIAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAACoAAACSAAAA0QAAAOgAAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7wAAAOgAAADRAAAAlAAA + ACsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAACAAAALMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + AP8AAADjAAAAHQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABBAAAA+gAAAP4AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL4AAAAPAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAACAAAADQAA + ABEAAAAQAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABAAAAARAAAADAAAAAIAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAC+AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA+gAAAEEAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABeAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANIAAAAiAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABfAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAB7AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAOkAAABEAAAAAAAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAQwAAAOkAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAegAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACGAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/gAAAP4AAAB2AAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAABAAAAAAAAAHYAAAD9AAAA/gAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAA + AIcAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAAAAACOAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC6AAAAHAAA + AAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAABwAAAC4AAAA/wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACHAAAA/wAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAADuAAAAZQAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAA + AAAAAABkAAAA7gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAAiAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAB6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP0AAAD/AAAAwQAAADQAAAAAAAAAAQAAAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAAADAAAAAQAAAAAAAAAyAAAAwQAAAP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAD8AAAA/wAAAHkAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABeAAAA+wAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD/AAAA/AAAAJ8AAAAjAAAAAAAA + AAEAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAhAAAAngAA + APsAAAD/AAAA/AAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAA+AAAA5gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAPYAAACYAAAAKAAAAAAAAAABAAAAAQAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAQAAAABAAAAAQAAAAAAAAAmAAAAlwAAAPYAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAADnAAAAPgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAAaAAAAwQAAAP8AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD8AAAA/gAA + AP8AAAD6AAAArQAAAEQAAAAFAAAAAAAAAAAAAAABAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAEAAAAAAAAAAAAAAAUAAABDAAAArAAAAPkAAAD/AAAA/gAA + APwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD/AAAAwQAAABsAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAgwAAAP4AAAD/AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP4AAAD/AAAA/wAAANgAAACAAAAALwAA + AAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAgAA + AC0AAAB/AAAA1gAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APsAAAD/AAAA/gAAAIQAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAPwAAANsAAAD/AAAA/AAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD8AAAA0QAAAI0AAABGAAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAVAAAARwAAAIsAAADQAAAA/AAAAP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAAANoAAAA/AAAAAAAAAAMAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAACgAA + AIoAAAD7AAAA/wAAAPwAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAADyAAAAxwAAAJYAAABrAAAAQAAAACQAAAAOAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAA4AAAAlAAAAPwAAAGYAAACWAAAAxQAAAPEAAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAA + APsAAACKAAAACgAAAAAAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAADAAAAC7AAAA/wAAAP4AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACyAAAArAAAAKwAAACyAAAAugAAAMgAAADXAAAA6gAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC9AAAALwAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAAAAAAAAAABPAAAA0QAAAP8AAAD+AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/gAAAP8AAADSAAAAUAAA + AAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAEAAAAWAAA + ANIAAAD/AAAA/wAAAP4AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAA + AP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APsAAAD+AAAA/gAAAP8AAADTAAAAWgAAAAQAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEoAAAC7AAAA/AAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC9AAAATQAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAMAAAABAAAAAAAAAAAAAAArAAAAigAAAOEAAAD/AAAA/wAAAP8AAAD+AAAA+wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/gAAAP8AAAD+AAAA/wAA + AOIAAACMAAAALAAAAAAAAAAAAAAAAQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAACQAA + AEQAAACZAAAA3gAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD8AAAA/AAAAP4AAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/QAAAPwAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA4QAAAJwAAABGAAAACQAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANQAAAHkAAAC2AAAA5QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC2AAAAewAAADgAAAAIAAAAAAAA + AAAAAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAALAAAAMgAAAFoAAACIAAAAsgAAAMsAAADlAAAA9gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD2AAAA6AAAAM4AAACxAAAAiQAA + AF4AAAAyAAAACwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAEAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAdAAAALAAAADsAAABHAAAATQAAAFMAAABTAAAATAAA + AEcAAAA7AAAALAAAAB0AAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAADAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAIAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// + //////////////////////////////////////wAAD////////////////+AX/oA///////////////w + EAAAiA//////////////kKAAAAUJ/////////////oIAAAAAQX////////////oQAAAAAAhf//////// + ///oQAAAAAACF///////////ogAAAAAAAEX//////////kgAAAAAAAASf/////////0QAAAAAAAACL// + ///////yQAAAAAAAAAJP////////6QAAAAvQAAAAl////////9IAAADQCyAAAEv///////8gAAAoAAAU + AAAE///////+kAABAP//AIAACX///////SAACA////AQAAS///////pAACF////+hAACX//////0gACF + /////6EAAS//////6QABJ//////kQACX/////9IABN//////+SAAS/////+kABF///////6IACX///// + qAAk/+AAAAf/JAAV/////1AAS/5F//+if9IACv////6gAKf9EAAACL/lAAV////9QAFf+kAAAAJf+oAC + v////AAAv/iAAAABH/0AAD////qABX/xAAAAAI/+gAFf///1AAr/8gAAAABP/1AAr///8gAV//IAAAAA + T/+oAE///+oAK//0AAAAAC//1ABX///kAFf/9AAAAAAv/+oAJ///xACP//QAAAAAL//xACP//8gAr//0 + AAAAAC//9QAT//+QAV//9AE//IAv//qACf//kAI///QBAACAL//8QAn//yACv//0AT/8gC///UAE//8g + BH//9AE//IAv//4gBP/+IAT///QBP/yAL///IAR//kAI///0AT/8gC///xACf/5ACf//9AE//IAv//+Q + An/8gBH9AAQBP/yAIAC/iAE//IAT9F/0AT/8gC/6L8gBP/yAE+kAAAE//IAAAJfIAT/9ACfSAAABP/yA + AABL5AC/+QAnxAAAAT/8gAAAI+QAn/kAb8gAAAF//oAAABP0AJ/5AE+QAAABf/6AAAAJ8gCf+gBPkAAA + An/+QAAACfIAX/oAX7AAAAR//iAAAA36AF/6AJ+gAAAJ//+QAAAF+QBf8gCfoAAAEv//SAAABfkAT/IA + n6AF/0X//6L/oAX5AE/yAL+gBAAX///oACAF/QBP9AC/oAQAf////gAgBf0AL/QAv6AF////////oAX9 + AC/0AL+gBf///////6AF/QAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf////// + /6AF/IAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf///////6AF/IAv9AE/oAX/ + //////+gBfyAL/QBP6AF////////oAX8gC/0AL+gBf///////6AF/QAv9AC/oAX///////+gBf0AL/QA + v6AEAH////4AIAX9AC/yAL+gBAAX///oACAF/QBP8gCfoAX/Rf//ov+gBfkAT/IAn6AAABL//0gAAAX5 + AE/6AJ+gAAAJ//+QAAAF+QBf+gBfsAAABH/+IAAADfoAX/oAT5AAAAJ//kAAAAnyAF/5AE+QAAABf/6A + AAAJ8gCf+QBvyAAAAX/+gAAAE/QAn/kAJ8QAAAE//IAAACPkAJ/9ACfSAAABP/yAAABL5AC//IAT6QAA + AT/8gAAAl8gBP/yAE/Rf9AE//IAv+i/IAT/8gBH9AAQBP/yAIAC/iAE//kAJ///0AT/8gC///5ACf/5A + CP//9AE//IAv//8QAn/+IAT///QBP/yAL///IAR//yAEf//0AT/8gC///iAE//8gAr//9AE//IAv//1A + BP//kAI///QBAACAL//8QAn//5ABX//0AT/8gC//+oAJ///IAK//9AAAAAAv//UAE///xACP//QAAAAA + L//xACP//+QAV//0AAAAAC//6gAn///qACv/9AAAAAAv/9QAV///8gAV//IAAAAAT/+oAE////UACv/y + AAAAAE//UACv///6gAF/8QAAAACP/oABX////AAAv/iAAAABH/0AAD////1AAV/6QAAAAl/6gAK////+ + oACn/RAAAAi/5QAFf////1AAS/5F//+if9IACv////+oACT/4AAAB/8kABX/////pAARf//////+iAAl + /////9IABN//////+SAAS//////pAAIn/////+RAAJf/////9IAAhf////+hAAEv//////pAACF////+ + hAACX//////9IAAID///8BAABL///////pAAAQD//wCAAAl///////8gAAAoAAAUAAAE////////0gAA + ANALIAAAS////////+kAAAAL0AAAAJf////////yQAAAAAAAAAJP/////////RAAAAAAAAAIv/////// + //5IAAAAAAAAEn//////////ogAAAAAAAEX//////////+hAAAAAAAIX///////////6EAAAAAAIX/// + /////////oIAAAAAQX////////////+QoAAABQn/////////////8BAAAIgP//////////////+AX/oA + /////////////////AAAP/////////////////////////////////////////////////////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/App.config b/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ClientForm.Designer.cs b/ClientForm.Designer.cs new file mode 100644 index 0000000..0711f74 --- /dev/null +++ b/ClientForm.Designer.cs @@ -0,0 +1,39 @@ +namespace Neshina1703 +{ + partial class ClientForm + { + /// + /// 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(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Text = "ClientForm"; + } + + #endregion + } +} \ No newline at end of file diff --git a/ClientForm.cs b/ClientForm.cs new file mode 100644 index 0000000..1cd8900 --- /dev/null +++ b/ClientForm.cs @@ -0,0 +1,20 @@ +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 Neshina1703 +{ + public partial class ClientForm : Form + { + public ClientForm() + { + InitializeComponent(); + } + } +} diff --git a/DB.cs b/DB.cs new file mode 100644 index 0000000..a0164ad --- /dev/null +++ b/DB.cs @@ -0,0 +1,64 @@ +using System; +using System.Data; +using MySql.Data.MySqlClient; + +namespace Neshina1703 +{ + public static partial class DB + { + public static string ConnectionString = + "Server=cfif31.ru;Database=ISPr25-21_NeshinaPV_1703;Uid=ISPr25-21_NeshinaPV;Password=ISPr25-21_NeshinaPV;SslMode=none;"; + + public static MySqlConnection GetConnection() + { + return new MySqlConnection(ConnectionString); + } + + public static DataTable ExecuteQuery(string query, MySqlParameter[] parameters = null) + { + using (var conn = GetConnection()) + { + using (var cmd = new MySqlCommand(query, conn)) + { + if (parameters != null) + cmd.Parameters.AddRange(parameters); + + var adapter = new MySqlDataAdapter(cmd); + var table = new DataTable(); + adapter.Fill(table); + return table; + } + } + } + + public static int ExecuteCommand(string query, MySqlParameter[] parameters = null) + { + using (var conn = GetConnection()) + { + using (var cmd = new MySqlCommand(query, conn)) + { + if (parameters != null) + cmd.Parameters.AddRange(parameters); + + conn.Open(); + return cmd.ExecuteNonQuery(); + } + } + } + + public static object ExecuteScalar(string query, MySqlParameter[] parameters = null) + { + using (var conn = GetConnection()) + { + using (var cmd = new MySqlCommand(query, conn)) + { + if (parameters != null) + cmd.Parameters.AddRange(parameters); + + conn.Open(); + return cmd.ExecuteScalar(); + } + } + } + } +} \ No newline at end of file diff --git a/EmployeeForm.Designer.cs b/EmployeeForm.Designer.cs new file mode 100644 index 0000000..2e2ed3b --- /dev/null +++ b/EmployeeForm.Designer.cs @@ -0,0 +1,240 @@ +namespace Neshina1703 +{ + partial class EmployeeForm + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.TabControl tabControl; + private System.Windows.Forms.TabPage tabProducts; + private System.Windows.Forms.TabPage tabOrders; + private System.Windows.Forms.TabPage tabClients; + private System.Windows.Forms.DataGridView dgvProducts; + private System.Windows.Forms.DataGridView dgvOrders; + private System.Windows.Forms.DataGridView dgvClients; + private System.Windows.Forms.Button btnCreateOrder; + private System.Windows.Forms.Button btnAddCard; + private System.Windows.Forms.Button btnLogout; + private System.Windows.Forms.Label lblUser; + private System.Windows.Forms.BindingSource productsBindingSource; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EmployeeForm)); + this.tabControl = new System.Windows.Forms.TabControl(); + this.tabProducts = new System.Windows.Forms.TabPage(); + this.dgvProducts = new System.Windows.Forms.DataGridView(); + this.tabOrders = new System.Windows.Forms.TabPage(); + this.dgvOrders = new System.Windows.Forms.DataGridView(); + this.btnCreateOrder = new System.Windows.Forms.Button(); + this.tabClients = new System.Windows.Forms.TabPage(); + this.dgvClients = new System.Windows.Forms.DataGridView(); + this.btnAddCard = new System.Windows.Forms.Button(); + this.productsBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.btnLogout = new System.Windows.Forms.Button(); + this.lblUser = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.tabControl.SuspendLayout(); + this.tabProducts.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvProducts)).BeginInit(); + this.tabOrders.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvOrders)).BeginInit(); + this.tabClients.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvClients)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.productsBindingSource)).BeginInit(); + this.SuspendLayout(); + // + // tabControl + // + this.tabControl.Controls.Add(this.tabProducts); + this.tabControl.Controls.Add(this.tabOrders); + this.tabControl.Controls.Add(this.tabClients); + this.tabControl.Location = new System.Drawing.Point(12, 45); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Size = new System.Drawing.Size(760, 380); + this.tabControl.TabIndex = 0; + // + // tabProducts + // + this.tabProducts.Controls.Add(this.dgvProducts); + this.tabProducts.Location = new System.Drawing.Point(4, 22); + this.tabProducts.Name = "tabProducts"; + this.tabProducts.Padding = new System.Windows.Forms.Padding(3); + this.tabProducts.Size = new System.Drawing.Size(752, 354); + this.tabProducts.TabIndex = 0; + this.tabProducts.Text = " Товары"; + this.tabProducts.UseVisualStyleBackColor = true; + // + // dgvProducts + // + this.dgvProducts.AllowUserToAddRows = false; + this.dgvProducts.AllowUserToDeleteRows = false; + this.dgvProducts.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvProducts.BackgroundColor = System.Drawing.Color.White; + this.dgvProducts.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvProducts.Dock = System.Windows.Forms.DockStyle.Fill; + this.dgvProducts.Location = new System.Drawing.Point(3, 3); + this.dgvProducts.Name = "dgvProducts"; + this.dgvProducts.ReadOnly = true; + this.dgvProducts.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvProducts.Size = new System.Drawing.Size(746, 348); + this.dgvProducts.TabIndex = 0; + // + // tabOrders + // + this.tabOrders.Controls.Add(this.dgvOrders); + this.tabOrders.Controls.Add(this.btnCreateOrder); + this.tabOrders.Location = new System.Drawing.Point(4, 22); + this.tabOrders.Name = "tabOrders"; + this.tabOrders.Padding = new System.Windows.Forms.Padding(3); + this.tabOrders.Size = new System.Drawing.Size(752, 354); + this.tabOrders.TabIndex = 1; + this.tabOrders.Text = " Заказы"; + this.tabOrders.UseVisualStyleBackColor = true; + // + // dgvOrders + // + this.dgvOrders.AllowUserToAddRows = false; + this.dgvOrders.AllowUserToDeleteRows = false; + this.dgvOrders.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvOrders.BackgroundColor = System.Drawing.Color.White; + this.dgvOrders.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvOrders.Dock = System.Windows.Forms.DockStyle.Top; + this.dgvOrders.Location = new System.Drawing.Point(3, 3); + this.dgvOrders.Name = "dgvOrders"; + this.dgvOrders.ReadOnly = true; + this.dgvOrders.Size = new System.Drawing.Size(746, 300); + this.dgvOrders.TabIndex = 1; + // + // btnCreateOrder + // + this.btnCreateOrder.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(120)))), ((int)(((byte)(215))))); + this.btnCreateOrder.FlatAppearance.BorderSize = 0; + this.btnCreateOrder.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnCreateOrder.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnCreateOrder.ForeColor = System.Drawing.Color.White; + this.btnCreateOrder.Location = new System.Drawing.Point(10, 310); + this.btnCreateOrder.Name = "btnCreateOrder"; + this.btnCreateOrder.Size = new System.Drawing.Size(160, 35); + this.btnCreateOrder.TabIndex = 0; + this.btnCreateOrder.Text = "Оформить заказ"; + this.btnCreateOrder.UseVisualStyleBackColor = false; + this.btnCreateOrder.Click += new System.EventHandler(this.btnCreateOrder_Click); + // + // tabClients + // + this.tabClients.Controls.Add(this.dgvClients); + this.tabClients.Controls.Add(this.btnAddCard); + this.tabClients.Location = new System.Drawing.Point(4, 22); + this.tabClients.Name = "tabClients"; + this.tabClients.Size = new System.Drawing.Size(752, 354); + this.tabClients.TabIndex = 2; + this.tabClients.Text = " Клиенты"; + this.tabClients.UseVisualStyleBackColor = true; + // + // dgvClients + // + this.dgvClients.AllowUserToAddRows = false; + this.dgvClients.AllowUserToDeleteRows = false; + this.dgvClients.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvClients.BackgroundColor = System.Drawing.Color.White; + this.dgvClients.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvClients.Dock = System.Windows.Forms.DockStyle.Top; + this.dgvClients.Location = new System.Drawing.Point(0, 0); + this.dgvClients.Name = "dgvClients"; + this.dgvClients.ReadOnly = true; + this.dgvClients.Size = new System.Drawing.Size(752, 300); + this.dgvClients.TabIndex = 2; + // + // btnAddCard + // + this.btnAddCard.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(180)))), ((int)(((byte)(80))))); + this.btnAddCard.FlatAppearance.BorderSize = 0; + this.btnAddCard.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnAddCard.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnAddCard.ForeColor = System.Drawing.Color.White; + this.btnAddCard.Location = new System.Drawing.Point(10, 310); + this.btnAddCard.Name = "btnAddCard"; + this.btnAddCard.Size = new System.Drawing.Size(160, 35); + this.btnAddCard.TabIndex = 1; + this.btnAddCard.Text = " Завести карту"; + this.btnAddCard.UseVisualStyleBackColor = false; + this.btnAddCard.Click += new System.EventHandler(this.btnAddCard_Click); + // + // btnLogout + // + this.btnLogout.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.btnLogout.FlatAppearance.BorderSize = 0; + this.btnLogout.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnLogout.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnLogout.ForeColor = System.Drawing.Color.White; + this.btnLogout.Location = new System.Drawing.Point(680, 12); + this.btnLogout.Name = "btnLogout"; + this.btnLogout.Size = new System.Drawing.Size(90, 30); + this.btnLogout.TabIndex = 2; + this.btnLogout.Text = " Выход"; + this.btnLogout.UseVisualStyleBackColor = false; + this.btnLogout.Click += new System.EventHandler(this.btnLogout_Click); + // + // lblUser + // + this.lblUser.AutoSize = true; + this.lblUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold); + this.lblUser.Location = new System.Drawing.Point(12, 18); + this.lblUser.Name = "lblUser"; + this.lblUser.Size = new System.Drawing.Size(92, 17); + this.lblUser.TabIndex = 3; + this.lblUser.Text = "Сотрудник:"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(518, 12); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(105, 30); + this.button1.TabIndex = 4; + this.button1.Text = "сообщения"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // EmployeeForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(784, 437); + this.Controls.Add(this.button1); + this.Controls.Add(this.lblUser); + this.Controls.Add(this.btnLogout); + this.Controls.Add(this.tabControl); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "EmployeeForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Аптека — Сотрудник"; + this.Load += new System.EventHandler(this.EmployeeForm_Load); + this.tabControl.ResumeLayout(false); + this.tabProducts.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvProducts)).EndInit(); + this.tabOrders.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvOrders)).EndInit(); + this.tabClients.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvClients)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.productsBindingSource)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/EmployeeForm.cs b/EmployeeForm.cs new file mode 100644 index 0000000..ad7bea2 --- /dev/null +++ b/EmployeeForm.cs @@ -0,0 +1,189 @@ +using System; +using System.Windows.Forms; +using MySql.Data.MySqlClient; + +namespace Neshina1703 +{ + public partial class EmployeeForm : Form + { + private int userId; + private string userName; + + public EmployeeForm(int userId, string userName) + { + InitializeComponent(); + this.userId = userId; + this.userName = userName; + } + + private void EmployeeForm_Load(object sender, EventArgs e) + { + lblUser.Text = $"👤 {userName}"; + LoadProducts(); + LoadOrders(); + LoadClients(); + } + + // 🔹 Загрузка товаров в DataGrid + private void LoadProducts() + { + try + { + string query = @"SELECT + m.id AS 'ID', + m.medication_name AS 'Название', + m.price AS 'Цена, ₽', + m.stock_quantity AS 'На складе', + ds.status_name AS 'Отпуск', + s.supplier_name AS 'Поставщик' + FROM medications m + LEFT JOIN dispensing_statuses ds ON m.dispensing_status_id = ds.id + LEFT JOIN suppliers s ON m.supplier_id = s.id + ORDER BY m.medication_name"; + + dgvProducts.DataSource = DB.ExecuteQuery(query); + + // Скрыть ID и настроить столбцы + if (dgvProducts.Columns["ID"] != null) + dgvProducts.Columns["ID"].Visible = false; + + FormatGrid(dgvProducts); + } + catch (Exception ex) + { + MessageBox.Show("Ошибка загрузки товаров: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + // 🔹 Загрузка истории заказов + private void LoadOrders() + { + try + { + string query = @"SELECT + p.id AS 'ID', + p.purchase_date AS 'Дата', + c.full_name AS 'Клиент', + pr.prescription_number AS 'Рецепт №', + GROUP_CONCAT(CONCAT(m.medication_name, ' ×', pm.quantity) SEPARATOR ', ') AS 'Состав' + FROM purchases p + LEFT JOIN clients c ON p.client_id = c.id + LEFT JOIN prescriptions pr ON p.prescription_id = pr.id + LEFT JOIN purchase_medications pm ON p.id = pm.purchase_id + LEFT JOIN medications m ON pm.medication_id = m.id + GROUP BY p.id + ORDER BY p.purchase_date DESC"; + + dgvOrders.DataSource = DB.ExecuteQuery(query); + + if (dgvOrders.Columns["ID"] != null) + dgvOrders.Columns["ID"].Visible = false; + + FormatGrid(dgvOrders); + } + catch (Exception ex) + { + MessageBox.Show("Ошибка загрузки заказов: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + // 🔹 Загрузка клиентов в DataGrid + private void LoadClients() + { + try + { + string query = @"SELECT + c.id AS 'ID', + c.full_name AS 'ФИО', + c.phone AS 'Телефон', + c.email AS 'Email', + dc.discount_percentage AS 'Скидка, %' + FROM clients c + LEFT JOIN discount_cards dc ON c.discount_card_id = dc.id + ORDER BY c.full_name"; + + dgvClients.DataSource = DB.ExecuteQuery(query); + + if (dgvClients.Columns["ID"] != null) + dgvClients.Columns["ID"].Visible = false; + + FormatGrid(dgvClients); + } + catch (Exception ex) + { + MessageBox.Show("Ошибка загрузки клиентов: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + // 🔹 Форматирование DataGrid + private void FormatGrid(DataGridView grid) + { + grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + grid.DefaultCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F); + grid.ColumnHeadersDefaultCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + grid.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(240, 240, 240); + grid.DefaultCellStyle.SelectionBackColor = System.Drawing.Color.FromArgb(0, 120, 215); + grid.DefaultCellStyle.SelectionForeColor = System.Drawing.Color.White; + grid.RowHeadersVisible = false; + grid.AllowUserToResizeRows = false; + } + + // 🔹 Кнопка: Оформить заказ + private void btnCreateOrder_Click(object sender, EventArgs e) + { + var orderForm = new OrderForm(userId); + if (orderForm.ShowDialog() == DialogResult.OK) + { + LoadProducts(); // Обновить остатки + LoadOrders(); // Показать новый заказ + MessageBox.Show("✅ Заказ оформлен!", "Успех", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + // 🔹 Кнопка: Завести бонусную карту + private void btnAddCard_Click(object sender, EventArgs e) + { + var clientForm = new ClientForm(); + if (clientForm.ShowDialog() == DialogResult.OK) + { + LoadClients(); + MessageBox.Show("✅ Карта заведена!", "Успех", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + // 🔹 Кнопка: Выход + private void btnLogout_Click(object sender, EventArgs e) + { + var result = MessageBox.Show("Выйти из системы?", "Подтверждение", + MessageBoxButtons.YesNo, MessageBoxIcon.Question); + + if (result == DialogResult.Yes) + { + this.Hide(); + var loginForm = new LoginForm(); + loginForm.Show(); + this.FormClosed += (s, args) => loginForm.FormClosed += (s2, a2) => Application.Exit(); + } + } + + // 🔹 Обновление при возврате фокуса + protected override void OnActivated(EventArgs e) + { + base.OnActivated(e); + LoadProducts(); + LoadOrders(); + LoadClients(); + } + + private void button1_Click(object sender, EventArgs e) + { + var messengerForm = new MessengerForm(userId); + messengerForm.Show(); + } + } +} \ No newline at end of file diff --git a/EmployeeForm.resx b/EmployeeForm.resx new file mode 100644 index 0000000..e65142f --- /dev/null +++ b/EmployeeForm.resx @@ -0,0 +1,1256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAPY6AQD2OgEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAgAAAAIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAALAAAAHQAAACwAAAA7AAAARgAAAEwAAABTAAAAUwAAAEwAAABGAAAAOwAAACwAAAAdAAAADAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAEAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAoAAAAxAAAAWQAAAIgAAACxAAAAywAAAOUAAAD2AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPYAAADoAAAAzgAAALEAAACJAAAAXQAAADIAAAALAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANAAAAHgAAAC0AAAA4wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC1AAAAegAAADcAAAAHAAAAAAAAAAAAAAAAAAAABAAA + AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAkAAABCAAAAmAAA + AN4AAAD+AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/AAAAPwAAAD+AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA/gAAAP0AAAD8AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAOAAAACaAAAARgAAAAkAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAEAAAAAAAAAAAAAACoAAACKAAAA4AAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD+AAAA/wAAAP4AAAD/AAAA4gAA + AIsAAAArAAAAAAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEkAAAC6AAAA+wAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC8AAAATAAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAA + AFcAAADRAAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD+AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/gAAAP8AAAD/AAAA0gAAAFkAAAAEAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAE4AAADQAAAA/wAAAP4AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD+AAAA/wAA + ANEAAABPAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAC8AAAC6AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACzAAAArAAAAKwAAACzAAAAugAA + AMgAAADXAAAA6gAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC7AAAALgAAAAAAAAACAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAEAAAAAAAAAAkAAACIAAAA+wAAAP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA8gAAAMcAAACWAAAAawAAAEEAAAAlAAAADwAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAPAAAAJQAAAD8AAABoAAAAlgAA + AMUAAADxAAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD7AAAAiQAAAAoAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAAAAAA+AAAA2gAAAP8AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAPwAAADRAAAAjgAA + AEcAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAABIAAAAjAAAANAAAAD8AAAA/wAA + AP8AAAD9AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAPwAAAD/AAAA2gAA + AD4AAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAEAAAADAAAAggAAAP4AAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAA + AP4AAAD/AAAA/wAAANgAAACCAAAAMQAAAAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAA + AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAgAAAC8AAACAAAAA1wAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAA/gAAAIMAAAADAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGQAAAMAAAAD/AAAA+wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP4AAAD/AAAA+gAAAK4AAABFAAAABgAAAAAAAAAAAAAAAQAA + AAQAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAABAAAAAAAA + AAAAAAAFAAAARAAAAKwAAAD5AAAA/wAAAP4AAAD8AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/wAAAMAAAAAaAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AD0AAADlAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD/AAAA9gAA + AJkAAAApAAAAAAAAAAEAAAABAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAEAAAABAAAAAAAAACYAAACYAAAA9wAA + AP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAOYAAAA+AAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABcAAAA+gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPwAAAD/AAAA/AAAAKEAAAAkAAAAAAAAAAEAAAADAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAiAAAAnwAAAPwAAAD/AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAeAAA + AP8AAAD8AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAMIAAAA1AAAAAAAA + AAEAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAA + AAEAAAAAAAAAMwAAAMIAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAA + AP8AAAB5AAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAIYAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD7AAAA/wAAAO8AAABnAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAGUAAADuAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACOAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC7AAAAHQAAAAAAAAADAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAB0AAAC6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAhgAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP4AAAD+AAAAeAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAA + AAAAAAB4AAAA/gAAAP4AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAHoAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAA6gAAAEUAAAAAAAAABAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAABEAAAA6gAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAB5AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABdAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANQAAAAjAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABeAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAQQAAAPoAAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC/AAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAgAA + AAwAAAARAAAAEAAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAAQAAAAEQAAAAwAAAACAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAQAAAAvwAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAPoAAABAAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAB0AAADjAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAtQAA + AAkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAKgAAAJIAAADRAAAA6AAAAO8AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA6AAA + ANEAAACUAAAAKgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAIAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAdAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHkAAAD8AAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAEAAAAEAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL0AAAADAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAIMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC9AAAACQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAPwAAAD7AAAA/QAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD9AAAA+wAAAPwAAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAIAAAAvQAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIIAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABCAAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAA0gAAABEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAASgAAAP8AAAD7AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAASgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAARAAAA0gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AEIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADAAAANUAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOgAAAAkAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAADBAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAADAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAAAPkAAAD/AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAA + APkAAAAlAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABHAAAA/QAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAiAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAANAAAAPoAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAHgAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEYAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAB4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD6AAAANAAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC3AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC2AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAUwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA7AAAACEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACuAAAAAwAA + ABMAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABMAAAADAAAArgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAACIAAADtAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABSAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABnAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAMoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL4AAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAA5AAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAOgAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATgAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAnAAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAnQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAATQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPUAAAAoAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAALwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAlQAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAAvAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACKAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPoAAAAsAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAC0AAAD6AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAACgAAAN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAA + AAAAAAAHAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAKwAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAABIAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABUAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAASAAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAARwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAJkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAQAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAACQAAABHAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAWAAAAEwAAACPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AI8AAABMAAAAWAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAEcAAAAjAAAAAAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAA1AAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACZAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAEYAAADFAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAApgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACBAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + ANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADYAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAP4AAAD+AAAA/QAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACOAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD9AAAA/gAA + AP4AAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + ADIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAeAAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAewAAAP8AAAD7AAAA/AAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABaAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPoAAAD/AAAAewAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANEAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAdwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADkAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABIAAADkAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACzAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACwAAAOMAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAASQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAkQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD6AAAA/wAAAGgAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAGgAAAD/AAAA+gAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACQAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABKAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAKAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAyAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAPEAAAAYAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD7AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA+wAA + APsAAAD8AAAA/QAAAP8AAACOAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAI4AAAD/AAAA/QAA + APwAAAD7AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPsAAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABkAAADyAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADIAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAFsAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZgAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADqAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA6AAA + AA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAiQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACWAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAPkAAACuAAAApwAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKYAAACRAAAAWgAAABEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + ABEAAABaAAAAkQAAAKYAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACnAAAArgAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAlwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACIAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACyAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAGoAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABAAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABrAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD8AAAA/wAAALEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAMAAAA5gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAPoAAAAkAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAA + APoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADmAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAB0AAAD1AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA6gAA + AA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAPAAAA6gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + APUAAAAcAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAA + AP4AAAD/AAAA/gAAAP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AAMAAADXAAAA/wAAAP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAA7AAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AMgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAAOwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAugAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAugAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABGAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACyAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKwAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAUwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFMAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAArAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAArAAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABTAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACyAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABGAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAALoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAALoAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAARgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADsAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAyAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAAA7AAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAAAP4AAAD/AAAA/gAA + AP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADXAAAA/wAA + AP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAdAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOkAAAAOAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADwAAAOoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAAD1AAAAHAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAwAAADmAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA+gAAACQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAlAAAA+gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOYAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAzAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAsgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA+wAAAP8AAABqAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAagAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACxAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AJYAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABAAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAK4AAACnAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKkAAACpAAAApgAAAJAAAABZAAAAEQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAEQAAAFkAAACQAAAApgAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKcAAACuAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACWAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AIgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AFwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADpAAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA6AAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADwAAAAGAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzwAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPsAAAD7AAAA/AAAAP0AAAD/AAAAjgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAACNAAAA/wAAAP0AAAD8AAAA+wAAAPsAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD7AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADOAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAZAAAA8QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAyAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAALAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACRAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APoAAAD/AAAAaAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAZwAAAP8AAAD6AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAJEAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEoAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA4gAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAI0AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADkAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABIAAADkAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACzAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAHkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA0AAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAHwAAAD/AAAA+gAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABZAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAWgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APwAAAD6AAAA/wAAAHwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAADQAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAHcAAAAAAAAABAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAANgAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAP8AAAD/AAAAMQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAIgAAAD/AAAA/gAAAP4AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACOAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP0AAAD+AAAA/gAAAP8AAACJAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAANQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACAAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEcAAADFAAAA+gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPsAAAD/AAAApQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACAAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACaAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANMAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAAkAAAASAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFgAAABMAAAAjwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAACPAAAATAAAAFgAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABHAAAAJAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAANQAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAmQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEgAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AEgAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABUAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFQAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABIAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABHAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAA + AN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAAAAAAAAAHAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKsAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAigAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAAD6AAAALAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAtAAAA+gAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACKAAAAAAAAAAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAwAAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACVAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAC8AAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPQAAAAnAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC4AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAE4AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAJsAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJwAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAE4AAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAMwAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAADgAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAAA5AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADLAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL0AAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAywAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAZwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABnAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADKAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADsAAAAIQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAK4AAAADAAAAEwAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAARAAAAEwAAAAMAAACuAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAIQAAAOwAAAD/AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAFIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC1AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAADUAAAD7AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAB3AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAARwAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAABGAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAdwAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA+gAAADQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAIoAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAABGAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAmAAAA+QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA+QAAACUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AEcAAAD9AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAADAAAANUAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOcAAAAjAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADBAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAQwAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + ANEAAAARAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEsAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAEsAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAEQAA + ANEAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAABCAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAhAAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL0AAAAIAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AIkAAAD/AAAA/AAAAPsAAAD9AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP0AAAD7AAAA/AAA + AP8AAACJAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAgAAAC8AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAgwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHoAAAD8AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAEAAAAswAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL4AAAADAAAAAQAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAdAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALUAAAAIAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAACoAAACSAAAA0QAAAOgAAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7wAAAOgAAADRAAAAlAAA + ACsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAACAAAALMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + AP8AAADjAAAAHQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABBAAAA+gAAAP4AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL4AAAAPAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAACAAAADQAA + ABEAAAAQAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABAAAAARAAAADAAAAAIAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAC+AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA+gAAAEEAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABeAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANIAAAAiAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABfAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAB7AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAOkAAABEAAAAAAAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAQwAAAOkAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAegAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACGAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/gAAAP4AAAB2AAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAABAAAAAAAAAHYAAAD9AAAA/gAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAA + AIcAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAAAAACOAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC6AAAAHAAA + AAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAABwAAAC4AAAA/wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACHAAAA/wAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAADuAAAAZQAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAA + AAAAAABkAAAA7gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAAiAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAB6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP0AAAD/AAAAwQAAADQAAAAAAAAAAQAAAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAAADAAAAAQAAAAAAAAAyAAAAwQAAAP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAD8AAAA/wAAAHkAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABeAAAA+wAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD/AAAA/AAAAJ8AAAAjAAAAAAAA + AAEAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAhAAAAngAA + APsAAAD/AAAA/AAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAA+AAAA5gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAPYAAACYAAAAKAAAAAAAAAABAAAAAQAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAQAAAABAAAAAQAAAAAAAAAmAAAAlwAAAPYAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAADnAAAAPgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAAaAAAAwQAAAP8AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD8AAAA/gAA + AP8AAAD6AAAArQAAAEQAAAAFAAAAAAAAAAAAAAABAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAEAAAAAAAAAAAAAAAUAAABDAAAArAAAAPkAAAD/AAAA/gAA + APwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD/AAAAwQAAABsAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAgwAAAP4AAAD/AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP4AAAD/AAAA/wAAANgAAACAAAAALwAA + AAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAgAA + AC0AAAB/AAAA1gAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APsAAAD/AAAA/gAAAIQAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAPwAAANsAAAD/AAAA/AAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD8AAAA0QAAAI0AAABGAAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAVAAAARwAAAIsAAADQAAAA/AAAAP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAAANoAAAA/AAAAAAAAAAMAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAACgAA + AIoAAAD7AAAA/wAAAPwAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAADyAAAAxwAAAJYAAABrAAAAQAAAACQAAAAOAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAA4AAAAlAAAAPwAAAGYAAACWAAAAxQAAAPEAAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAA + APsAAACKAAAACgAAAAAAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAADAAAAC7AAAA/wAAAP4AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACyAAAArAAAAKwAAACyAAAAugAAAMgAAADXAAAA6gAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC9AAAALwAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAAAAAAAAAABPAAAA0QAAAP8AAAD+AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/gAAAP8AAADSAAAAUAAA + AAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAEAAAAWAAA + ANIAAAD/AAAA/wAAAP4AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAA + AP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APsAAAD+AAAA/gAAAP8AAADTAAAAWgAAAAQAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEoAAAC7AAAA/AAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC9AAAATQAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAMAAAABAAAAAAAAAAAAAAArAAAAigAAAOEAAAD/AAAA/wAAAP8AAAD+AAAA+wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/gAAAP8AAAD+AAAA/wAA + AOIAAACMAAAALAAAAAAAAAAAAAAAAQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAACQAA + AEQAAACZAAAA3gAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD8AAAA/AAAAP4AAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/QAAAPwAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA4QAAAJwAAABGAAAACQAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANQAAAHkAAAC2AAAA5QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC2AAAAewAAADgAAAAIAAAAAAAA + AAAAAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAALAAAAMgAAAFoAAACIAAAAsgAAAMsAAADlAAAA9gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD2AAAA6AAAAM4AAACxAAAAiQAA + AF4AAAAyAAAACwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAEAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAdAAAALAAAADsAAABHAAAATQAAAFMAAABTAAAATAAA + AEcAAAA7AAAALAAAAB0AAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAADAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAIAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// + //////////////////////////////////////wAAD////////////////+AX/oA///////////////w + EAAAiA//////////////kKAAAAUJ/////////////oIAAAAAQX////////////oQAAAAAAhf//////// + ///oQAAAAAACF///////////ogAAAAAAAEX//////////kgAAAAAAAASf/////////0QAAAAAAAACL// + ///////yQAAAAAAAAAJP////////6QAAAAvQAAAAl////////9IAAADQCyAAAEv///////8gAAAoAAAU + AAAE///////+kAABAP//AIAACX///////SAACA////AQAAS///////pAACF////+hAACX//////0gACF + /////6EAAS//////6QABJ//////kQACX/////9IABN//////+SAAS/////+kABF///////6IACX///// + qAAk/+AAAAf/JAAV/////1AAS/5F//+if9IACv////6gAKf9EAAACL/lAAV////9QAFf+kAAAAJf+oAC + v////AAAv/iAAAABH/0AAD////qABX/xAAAAAI/+gAFf///1AAr/8gAAAABP/1AAr///8gAV//IAAAAA + T/+oAE///+oAK//0AAAAAC//1ABX///kAFf/9AAAAAAv/+oAJ///xACP//QAAAAAL//xACP//8gAr//0 + AAAAAC//9QAT//+QAV//9AE//IAv//qACf//kAI///QBAACAL//8QAn//yACv//0AT/8gC///UAE//8g + BH//9AE//IAv//4gBP/+IAT///QBP/yAL///IAR//kAI///0AT/8gC///xACf/5ACf//9AE//IAv//+Q + An/8gBH9AAQBP/yAIAC/iAE//IAT9F/0AT/8gC/6L8gBP/yAE+kAAAE//IAAAJfIAT/9ACfSAAABP/yA + AABL5AC/+QAnxAAAAT/8gAAAI+QAn/kAb8gAAAF//oAAABP0AJ/5AE+QAAABf/6AAAAJ8gCf+gBPkAAA + An/+QAAACfIAX/oAX7AAAAR//iAAAA36AF/6AJ+gAAAJ//+QAAAF+QBf8gCfoAAAEv//SAAABfkAT/IA + n6AF/0X//6L/oAX5AE/yAL+gBAAX///oACAF/QBP9AC/oAQAf////gAgBf0AL/QAv6AF////////oAX9 + AC/0AL+gBf///////6AF/QAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf////// + /6AF/IAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf///////6AF/IAv9AE/oAX/ + //////+gBfyAL/QBP6AF////////oAX8gC/0AL+gBf///////6AF/QAv9AC/oAX///////+gBf0AL/QA + v6AEAH////4AIAX9AC/yAL+gBAAX///oACAF/QBP8gCfoAX/Rf//ov+gBfkAT/IAn6AAABL//0gAAAX5 + AE/6AJ+gAAAJ//+QAAAF+QBf+gBfsAAABH/+IAAADfoAX/oAT5AAAAJ//kAAAAnyAF/5AE+QAAABf/6A + AAAJ8gCf+QBvyAAAAX/+gAAAE/QAn/kAJ8QAAAE//IAAACPkAJ/9ACfSAAABP/yAAABL5AC//IAT6QAA + AT/8gAAAl8gBP/yAE/Rf9AE//IAv+i/IAT/8gBH9AAQBP/yAIAC/iAE//kAJ///0AT/8gC///5ACf/5A + CP//9AE//IAv//8QAn/+IAT///QBP/yAL///IAR//yAEf//0AT/8gC///iAE//8gAr//9AE//IAv//1A + BP//kAI///QBAACAL//8QAn//5ABX//0AT/8gC//+oAJ///IAK//9AAAAAAv//UAE///xACP//QAAAAA + L//xACP//+QAV//0AAAAAC//6gAn///qACv/9AAAAAAv/9QAV///8gAV//IAAAAAT/+oAE////UACv/y + AAAAAE//UACv///6gAF/8QAAAACP/oABX////AAAv/iAAAABH/0AAD////1AAV/6QAAAAl/6gAK////+ + oACn/RAAAAi/5QAFf////1AAS/5F//+if9IACv////+oACT/4AAAB/8kABX/////pAARf//////+iAAl + /////9IABN//////+SAAS//////pAAIn/////+RAAJf/////9IAAhf////+hAAEv//////pAACF////+ + hAACX//////9IAAID///8BAABL///////pAAAQD//wCAAAl///////8gAAAoAAAUAAAE////////0gAA + ANALIAAAS////////+kAAAAL0AAAAJf////////yQAAAAAAAAAJP/////////RAAAAAAAAAIv/////// + //5IAAAAAAAAEn//////////ogAAAAAAAEX//////////+hAAAAAAAIX///////////6EAAAAAAIX/// + /////////oIAAAAAQX////////////+QoAAABQn/////////////8BAAAIgP//////////////+AX/oA + /////////////////AAAP/////////////////////////////////////////////////////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/Form1.Designer.cs b/Form1.Designer.cs new file mode 100644 index 0000000..df0f116 --- /dev/null +++ b/Form1.Designer.cs @@ -0,0 +1,110 @@ +namespace Neshina1703 +{ + partial class LoginForm + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.Label lblTitle; + private System.Windows.Forms.Label lblEmail; + private System.Windows.Forms.Label lblPassword; + private System.Windows.Forms.TextBox txtEmail; + private System.Windows.Forms.TextBox txtPassword; + private System.Windows.Forms.Button btnLogin; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginForm)); + this.lblTitle = new System.Windows.Forms.Label(); + this.lblEmail = new System.Windows.Forms.Label(); + this.lblPassword = new System.Windows.Forms.Label(); + this.txtEmail = new System.Windows.Forms.TextBox(); + this.txtPassword = new System.Windows.Forms.TextBox(); + this.btnLogin = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // lblTitle + // + this.lblTitle.AutoSize = true; + this.lblTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Bold); + this.lblTitle.Location = new System.Drawing.Point(95, 110); + this.lblTitle.Name = "lblTitle"; + this.lblTitle.Size = new System.Drawing.Size(140, 24); + this.lblTitle.TabIndex = 1; + this.lblTitle.Text = "Авторизация"; + // + // lblEmail + // + this.lblEmail.AutoSize = true; + this.lblEmail.Location = new System.Drawing.Point(40, 160); + this.lblEmail.Name = "lblEmail"; + this.lblEmail.Size = new System.Drawing.Size(35, 13); + this.lblEmail.TabIndex = 2; + this.lblEmail.Text = "Email:"; + // + // lblPassword + // + this.lblPassword.AutoSize = true; + this.lblPassword.Location = new System.Drawing.Point(40, 210); + this.lblPassword.Name = "lblPassword"; + this.lblPassword.Size = new System.Drawing.Size(48, 13); + this.lblPassword.TabIndex = 4; + this.lblPassword.Text = "Пароль:"; + // + // txtEmail + // + this.txtEmail.Location = new System.Drawing.Point(43, 180); + this.txtEmail.Name = "txtEmail"; + this.txtEmail.Size = new System.Drawing.Size(230, 20); + this.txtEmail.TabIndex = 3; + // + // txtPassword + // + this.txtPassword.Location = new System.Drawing.Point(43, 230); + this.txtPassword.Name = "txtPassword"; + this.txtPassword.PasswordChar = '*'; + this.txtPassword.Size = new System.Drawing.Size(230, 20); + this.txtPassword.TabIndex = 5; + // + // btnLogin + // + this.btnLogin.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(120)))), ((int)(((byte)(215))))); + this.btnLogin.FlatAppearance.BorderSize = 0; + this.btnLogin.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnLogin.ForeColor = System.Drawing.Color.White; + this.btnLogin.Location = new System.Drawing.Point(110, 270); + this.btnLogin.Name = "btnLogin"; + this.btnLogin.Size = new System.Drawing.Size(100, 35); + this.btnLogin.TabIndex = 6; + this.btnLogin.Text = "Войти"; + this.btnLogin.UseVisualStyleBackColor = false; + this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click); + // + // LoginForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(320, 350); + this.Controls.Add(this.lblTitle); + this.Controls.Add(this.lblEmail); + this.Controls.Add(this.txtEmail); + this.Controls.Add(this.lblPassword); + this.Controls.Add(this.txtPassword); + this.Controls.Add(this.btnLogin); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "LoginForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Аптека — Вход"; + this.Load += new System.EventHandler(this.LoginForm_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + } +} \ No newline at end of file diff --git a/Form1.cs b/Form1.cs new file mode 100644 index 0000000..fe8a148 --- /dev/null +++ b/Form1.cs @@ -0,0 +1,68 @@ +using System; +using System.Windows.Forms; +using MySql.Data.MySqlClient; + +namespace Neshina1703 +{ + public partial class LoginForm : Form + { + public LoginForm() + { + InitializeComponent(); + } + + private void btnLogin_Click(object sender, EventArgs e) + { + string email = txtEmail.Text.Trim(); + string password = txtPassword.Text.Trim(); + + if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password)) + { + MessageBox.Show("Введите email и пароль!", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + var parameters = new MySqlParameter[] + { + new MySqlParameter("@email", email), + new MySqlParameter("@password_hash", password) + }; + + var query = "SELECT id, full_name, position_id FROM employees WHERE email = @email AND password_hash = @password_hash LIMIT 1"; + var result = DB.ExecuteQuery(query, parameters); + + if (result.Rows.Count > 0) + { + int userId = Convert.ToInt32(result.Rows[0]["id"]); + string fullName = result.Rows[0]["full_name"].ToString(); + int positionId = Convert.ToInt32(result.Rows[0]["position_id"]); + + this.Hide(); + + if (positionId == 1) // Главный фармацевт = Админ + { + new AdminForm(userId, fullName).Show(); + } + else // Фармацевт = Сотрудник + { + new EmployeeForm(userId, fullName).Show(); + } + + this.FormClosed += (s, args) => Application.Exit(); + } + else + { + MessageBox.Show("Неверный email или пароль!", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + txtPassword.Clear(); + txtPassword.Focus(); + } + } + + private void LoginForm_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/Form1.resx b/Form1.resx new file mode 100644 index 0000000..cad1b2c --- /dev/null +++ b/Form1.resx @@ -0,0 +1,1253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAPY6AQD2OgEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAgAAAAIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAALAAAAHQAAACwAAAA7AAAARgAAAEwAAABTAAAAUwAAAEwAAABGAAAAOwAAACwAAAAdAAAADAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAEAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAoAAAAxAAAAWQAAAIgAAACxAAAAywAAAOUAAAD2AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPYAAADoAAAAzgAAALEAAACJAAAAXQAAADIAAAALAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANAAAAHgAAAC0AAAA4wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC1AAAAegAAADcAAAAHAAAAAAAAAAAAAAAAAAAABAAA + AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAkAAABCAAAAmAAA + AN4AAAD+AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/AAAAPwAAAD+AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA/gAAAP0AAAD8AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAOAAAACaAAAARgAAAAkAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAEAAAAAAAAAAAAAACoAAACKAAAA4AAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD+AAAA/wAAAP4AAAD/AAAA4gAA + AIsAAAArAAAAAAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEkAAAC6AAAA+wAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC8AAAATAAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAA + AFcAAADRAAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD+AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/gAAAP8AAAD/AAAA0gAAAFkAAAAEAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAE4AAADQAAAA/wAAAP4AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD+AAAA/wAA + ANEAAABPAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAC8AAAC6AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACzAAAArAAAAKwAAACzAAAAugAA + AMgAAADXAAAA6gAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC7AAAALgAAAAAAAAACAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAEAAAAAAAAAAkAAACIAAAA+wAAAP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA8gAAAMcAAACWAAAAawAAAEEAAAAlAAAADwAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAPAAAAJQAAAD8AAABoAAAAlgAA + AMUAAADxAAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD7AAAAiQAAAAoAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAAAAAA+AAAA2gAAAP8AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAPwAAADRAAAAjgAA + AEcAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAABIAAAAjAAAANAAAAD8AAAA/wAA + AP8AAAD9AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAPwAAAD/AAAA2gAA + AD4AAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAEAAAADAAAAggAAAP4AAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAA + AP4AAAD/AAAA/wAAANgAAACCAAAAMQAAAAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAA + AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAgAAAC8AAACAAAAA1wAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAA/gAAAIMAAAADAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGQAAAMAAAAD/AAAA+wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP4AAAD/AAAA+gAAAK4AAABFAAAABgAAAAAAAAAAAAAAAQAA + AAQAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAABAAAAAAAA + AAAAAAAFAAAARAAAAKwAAAD5AAAA/wAAAP4AAAD8AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/wAAAMAAAAAaAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AD0AAADlAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD/AAAA9gAA + AJkAAAApAAAAAAAAAAEAAAABAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAEAAAABAAAAAAAAACYAAACYAAAA9wAA + AP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAOYAAAA+AAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABcAAAA+gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPwAAAD/AAAA/AAAAKEAAAAkAAAAAAAAAAEAAAADAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAiAAAAnwAAAPwAAAD/AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAeAAA + AP8AAAD8AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAMIAAAA1AAAAAAAA + AAEAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAA + AAEAAAAAAAAAMwAAAMIAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAA + AP8AAAB5AAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAIYAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD7AAAA/wAAAO8AAABnAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAGUAAADuAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACOAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC7AAAAHQAAAAAAAAADAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAB0AAAC6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAhgAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP4AAAD+AAAAeAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAA + AAAAAAB4AAAA/gAAAP4AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAHoAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAA6gAAAEUAAAAAAAAABAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAABEAAAA6gAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAB5AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABdAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANQAAAAjAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABeAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAQQAAAPoAAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC/AAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAgAA + AAwAAAARAAAAEAAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAAQAAAAEQAAAAwAAAACAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAQAAAAvwAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAPoAAABAAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAB0AAADjAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAtQAA + AAkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAKgAAAJIAAADRAAAA6AAAAO8AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA6AAA + ANEAAACUAAAAKgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAIAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAdAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHkAAAD8AAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAEAAAAEAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL0AAAADAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAIMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC9AAAACQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAPwAAAD7AAAA/QAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD9AAAA+wAAAPwAAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAIAAAAvQAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIIAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABCAAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAA0gAAABEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAASgAAAP8AAAD7AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAASgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAARAAAA0gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AEIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADAAAANUAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOgAAAAkAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAADBAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAADAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAAAPkAAAD/AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAA + APkAAAAlAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABHAAAA/QAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAiAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAANAAAAPoAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAHgAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEYAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAB4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD6AAAANAAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC3AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC2AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAUwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA7AAAACEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACuAAAAAwAA + ABMAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABMAAAADAAAArgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAACIAAADtAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABSAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABnAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAMoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL4AAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAA5AAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAOgAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATgAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAnAAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAnQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAATQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPUAAAAoAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAALwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAlQAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAAvAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACKAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPoAAAAsAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAC0AAAD6AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAACgAAAN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAA + AAAAAAAHAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAKwAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAABIAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABUAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAASAAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAARwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAJkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAQAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAACQAAABHAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAWAAAAEwAAACPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AI8AAABMAAAAWAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAEcAAAAjAAAAAAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAA1AAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACZAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAEYAAADFAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAApgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACBAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + ANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADYAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAP4AAAD+AAAA/QAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACOAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD9AAAA/gAA + AP4AAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + ADIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAeAAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAewAAAP8AAAD7AAAA/AAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABaAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPoAAAD/AAAAewAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANEAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAdwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADkAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABIAAADkAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACzAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACwAAAOMAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAASQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAkQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD6AAAA/wAAAGgAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAGgAAAD/AAAA+gAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACQAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABKAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAKAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAyAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAPEAAAAYAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD7AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA+wAA + APsAAAD8AAAA/QAAAP8AAACOAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAI4AAAD/AAAA/QAA + APwAAAD7AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPsAAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABkAAADyAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADIAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAFsAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZgAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADqAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA6AAA + AA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAiQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACWAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAPkAAACuAAAApwAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKYAAACRAAAAWgAAABEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + ABEAAABaAAAAkQAAAKYAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACnAAAArgAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAlwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACIAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACyAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAGoAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABAAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABrAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD8AAAA/wAAALEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAMAAAA5gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAPoAAAAkAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAA + APoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADmAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAB0AAAD1AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA6gAA + AA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAPAAAA6gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + APUAAAAcAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAA + AP4AAAD/AAAA/gAAAP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AAMAAADXAAAA/wAAAP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAA7AAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AMgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAAOwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAugAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAugAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABGAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACyAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKwAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAUwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFMAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAArAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAArAAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABTAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACyAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABGAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAALoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAALoAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAARgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADsAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAyAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAAA7AAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAAAP4AAAD/AAAA/gAA + AP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADXAAAA/wAA + AP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAdAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOkAAAAOAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADwAAAOoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAAD1AAAAHAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAwAAADmAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA+gAAACQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAlAAAA+gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOYAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAzAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAsgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA+wAAAP8AAABqAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAagAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACxAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AJYAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABAAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAK4AAACnAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKkAAACpAAAApgAAAJAAAABZAAAAEQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAEQAAAFkAAACQAAAApgAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKcAAACuAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACWAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AIgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AFwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADpAAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA6AAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADwAAAAGAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzwAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPsAAAD7AAAA/AAAAP0AAAD/AAAAjgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAACNAAAA/wAAAP0AAAD8AAAA+wAAAPsAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD7AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADOAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAZAAAA8QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAyAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAALAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACRAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APoAAAD/AAAAaAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAZwAAAP8AAAD6AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAJEAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEoAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA4gAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAI0AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADkAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABIAAADkAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACzAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAHkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA0AAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAHwAAAD/AAAA+gAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABZAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAWgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APwAAAD6AAAA/wAAAHwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAADQAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAHcAAAAAAAAABAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAANgAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAP8AAAD/AAAAMQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAIgAAAD/AAAA/gAAAP4AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACOAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP0AAAD+AAAA/gAAAP8AAACJAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAANQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACAAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEcAAADFAAAA+gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPsAAAD/AAAApQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACAAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACaAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANMAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAAkAAAASAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFgAAABMAAAAjwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAACPAAAATAAAAFgAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABHAAAAJAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAANQAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAmQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEgAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AEgAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABUAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFQAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABIAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABHAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAA + AN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAAAAAAAAAHAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKsAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAigAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAAD6AAAALAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAtAAAA+gAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACKAAAAAAAAAAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAwAAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACVAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAC8AAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPQAAAAnAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC4AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAE4AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAJsAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJwAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAE4AAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAMwAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAADgAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAAA5AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADLAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL0AAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAywAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAZwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABnAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADKAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADsAAAAIQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAK4AAAADAAAAEwAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAARAAAAEwAAAAMAAACuAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAIQAAAOwAAAD/AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAFIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC1AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAADUAAAD7AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAB3AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAARwAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAABGAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAdwAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA+gAAADQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAIoAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAABGAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAmAAAA+QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA+QAAACUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AEcAAAD9AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAADAAAANUAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOcAAAAjAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADBAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAQwAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + ANEAAAARAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEsAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAEsAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAEQAA + ANEAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAABCAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAhAAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL0AAAAIAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AIkAAAD/AAAA/AAAAPsAAAD9AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP0AAAD7AAAA/AAA + AP8AAACJAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAgAAAC8AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAgwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHoAAAD8AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAEAAAAswAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL4AAAADAAAAAQAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAdAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALUAAAAIAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAACoAAACSAAAA0QAAAOgAAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7wAAAOgAAADRAAAAlAAA + ACsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAACAAAALMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + AP8AAADjAAAAHQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABBAAAA+gAAAP4AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL4AAAAPAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAACAAAADQAA + ABEAAAAQAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABAAAAARAAAADAAAAAIAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAC+AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA+gAAAEEAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABeAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANIAAAAiAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABfAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAB7AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAOkAAABEAAAAAAAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAQwAAAOkAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAegAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACGAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/gAAAP4AAAB2AAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAABAAAAAAAAAHYAAAD9AAAA/gAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAA + AIcAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAAAAACOAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC6AAAAHAAA + AAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAABwAAAC4AAAA/wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACHAAAA/wAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAADuAAAAZQAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAA + AAAAAABkAAAA7gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAAiAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAB6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP0AAAD/AAAAwQAAADQAAAAAAAAAAQAAAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAAADAAAAAQAAAAAAAAAyAAAAwQAAAP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAD8AAAA/wAAAHkAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABeAAAA+wAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD/AAAA/AAAAJ8AAAAjAAAAAAAA + AAEAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAhAAAAngAA + APsAAAD/AAAA/AAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAA+AAAA5gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAPYAAACYAAAAKAAAAAAAAAABAAAAAQAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAQAAAABAAAAAQAAAAAAAAAmAAAAlwAAAPYAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAADnAAAAPgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAAaAAAAwQAAAP8AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD8AAAA/gAA + AP8AAAD6AAAArQAAAEQAAAAFAAAAAAAAAAAAAAABAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAEAAAAAAAAAAAAAAAUAAABDAAAArAAAAPkAAAD/AAAA/gAA + APwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD/AAAAwQAAABsAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAgwAAAP4AAAD/AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP4AAAD/AAAA/wAAANgAAACAAAAALwAA + AAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAgAA + AC0AAAB/AAAA1gAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APsAAAD/AAAA/gAAAIQAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAPwAAANsAAAD/AAAA/AAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD8AAAA0QAAAI0AAABGAAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAVAAAARwAAAIsAAADQAAAA/AAAAP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAAANoAAAA/AAAAAAAAAAMAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAACgAA + AIoAAAD7AAAA/wAAAPwAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAADyAAAAxwAAAJYAAABrAAAAQAAAACQAAAAOAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAA4AAAAlAAAAPwAAAGYAAACWAAAAxQAAAPEAAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAA + APsAAACKAAAACgAAAAAAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAADAAAAC7AAAA/wAAAP4AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACyAAAArAAAAKwAAACyAAAAugAAAMgAAADXAAAA6gAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC9AAAALwAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAAAAAAAAAABPAAAA0QAAAP8AAAD+AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/gAAAP8AAADSAAAAUAAA + AAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAEAAAAWAAA + ANIAAAD/AAAA/wAAAP4AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAA + AP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APsAAAD+AAAA/gAAAP8AAADTAAAAWgAAAAQAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEoAAAC7AAAA/AAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC9AAAATQAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAMAAAABAAAAAAAAAAAAAAArAAAAigAAAOEAAAD/AAAA/wAAAP8AAAD+AAAA+wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/gAAAP8AAAD+AAAA/wAA + AOIAAACMAAAALAAAAAAAAAAAAAAAAQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAACQAA + AEQAAACZAAAA3gAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD8AAAA/AAAAP4AAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/QAAAPwAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA4QAAAJwAAABGAAAACQAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANQAAAHkAAAC2AAAA5QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC2AAAAewAAADgAAAAIAAAAAAAA + AAAAAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAALAAAAMgAAAFoAAACIAAAAsgAAAMsAAADlAAAA9gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD2AAAA6AAAAM4AAACxAAAAiQAA + AF4AAAAyAAAACwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAEAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAdAAAALAAAADsAAABHAAAATQAAAFMAAABTAAAATAAA + AEcAAAA7AAAALAAAAB0AAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAADAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAIAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// + //////////////////////////////////////wAAD////////////////+AX/oA///////////////w + EAAAiA//////////////kKAAAAUJ/////////////oIAAAAAQX////////////oQAAAAAAhf//////// + ///oQAAAAAACF///////////ogAAAAAAAEX//////////kgAAAAAAAASf/////////0QAAAAAAAACL// + ///////yQAAAAAAAAAJP////////6QAAAAvQAAAAl////////9IAAADQCyAAAEv///////8gAAAoAAAU + AAAE///////+kAABAP//AIAACX///////SAACA////AQAAS///////pAACF////+hAACX//////0gACF + /////6EAAS//////6QABJ//////kQACX/////9IABN//////+SAAS/////+kABF///////6IACX///// + qAAk/+AAAAf/JAAV/////1AAS/5F//+if9IACv////6gAKf9EAAACL/lAAV////9QAFf+kAAAAJf+oAC + v////AAAv/iAAAABH/0AAD////qABX/xAAAAAI/+gAFf///1AAr/8gAAAABP/1AAr///8gAV//IAAAAA + T/+oAE///+oAK//0AAAAAC//1ABX///kAFf/9AAAAAAv/+oAJ///xACP//QAAAAAL//xACP//8gAr//0 + AAAAAC//9QAT//+QAV//9AE//IAv//qACf//kAI///QBAACAL//8QAn//yACv//0AT/8gC///UAE//8g + BH//9AE//IAv//4gBP/+IAT///QBP/yAL///IAR//kAI///0AT/8gC///xACf/5ACf//9AE//IAv//+Q + An/8gBH9AAQBP/yAIAC/iAE//IAT9F/0AT/8gC/6L8gBP/yAE+kAAAE//IAAAJfIAT/9ACfSAAABP/yA + AABL5AC/+QAnxAAAAT/8gAAAI+QAn/kAb8gAAAF//oAAABP0AJ/5AE+QAAABf/6AAAAJ8gCf+gBPkAAA + An/+QAAACfIAX/oAX7AAAAR//iAAAA36AF/6AJ+gAAAJ//+QAAAF+QBf8gCfoAAAEv//SAAABfkAT/IA + n6AF/0X//6L/oAX5AE/yAL+gBAAX///oACAF/QBP9AC/oAQAf////gAgBf0AL/QAv6AF////////oAX9 + AC/0AL+gBf///////6AF/QAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf////// + /6AF/IAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf///////6AF/IAv9AE/oAX/ + //////+gBfyAL/QBP6AF////////oAX8gC/0AL+gBf///////6AF/QAv9AC/oAX///////+gBf0AL/QA + v6AEAH////4AIAX9AC/yAL+gBAAX///oACAF/QBP8gCfoAX/Rf//ov+gBfkAT/IAn6AAABL//0gAAAX5 + AE/6AJ+gAAAJ//+QAAAF+QBf+gBfsAAABH/+IAAADfoAX/oAT5AAAAJ//kAAAAnyAF/5AE+QAAABf/6A + AAAJ8gCf+QBvyAAAAX/+gAAAE/QAn/kAJ8QAAAE//IAAACPkAJ/9ACfSAAABP/yAAABL5AC//IAT6QAA + AT/8gAAAl8gBP/yAE/Rf9AE//IAv+i/IAT/8gBH9AAQBP/yAIAC/iAE//kAJ///0AT/8gC///5ACf/5A + CP//9AE//IAv//8QAn/+IAT///QBP/yAL///IAR//yAEf//0AT/8gC///iAE//8gAr//9AE//IAv//1A + BP//kAI///QBAACAL//8QAn//5ABX//0AT/8gC//+oAJ///IAK//9AAAAAAv//UAE///xACP//QAAAAA + L//xACP//+QAV//0AAAAAC//6gAn///qACv/9AAAAAAv/9QAV///8gAV//IAAAAAT/+oAE////UACv/y + AAAAAE//UACv///6gAF/8QAAAACP/oABX////AAAv/iAAAABH/0AAD////1AAV/6QAAAAl/6gAK////+ + oACn/RAAAAi/5QAFf////1AAS/5F//+if9IACv////+oACT/4AAAB/8kABX/////pAARf//////+iAAl + /////9IABN//////+SAAS//////pAAIn/////+RAAJf/////9IAAhf////+hAAEv//////pAACF////+ + hAACX//////9IAAID///8BAABL///////pAAAQD//wCAAAl///////8gAAAoAAAUAAAE////////0gAA + ANALIAAAS////////+kAAAAL0AAAAJf////////yQAAAAAAAAAJP/////////RAAAAAAAAAIv/////// + //5IAAAAAAAAEn//////////ogAAAAAAAEX//////////+hAAAAAAAIX///////////6EAAAAAAIX/// + /////////oIAAAAAQX////////////+QoAAABQn/////////////8BAAAIgP//////////////+AX/oA + /////////////////AAAP/////////////////////////////////////////////////////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/MessageHelper.cs b/MessageHelper.cs new file mode 100644 index 0000000..c633e16 --- /dev/null +++ b/MessageHelper.cs @@ -0,0 +1,178 @@ +using System; +using System.Data; +using MySql.Data.MySqlClient; + +namespace Neshina1703 +{ + public static class MessageHelper + { + public static int CreateConversation(int employeeId1, int employeeId2) + { + try + { + using (var conn = DB.GetConnection()) + { + conn.Open(); + using (var transaction = conn.BeginTransaction()) + { + var cmd1 = new MySqlCommand("INSERT INTO conversations (created_at) VALUES (NOW())", conn, transaction); + cmd1.ExecuteNonQuery(); + cmd1.CommandText = "SELECT LAST_INSERT_ID()"; + int conversationId = Convert.ToInt32(cmd1.ExecuteScalar()); + + var cmd2 = new MySqlCommand( + "INSERT INTO conversation_participants (conversation_id, employee_id) VALUES (@conv, @emp1), (@conv, @emp2)", + conn, transaction); + cmd2.Parameters.AddWithValue("@conv", conversationId); + cmd2.Parameters.AddWithValue("@emp1", employeeId1); + cmd2.Parameters.AddWithValue("@emp2", employeeId2); + cmd2.ExecuteNonQuery(); + + transaction.Commit(); + return conversationId; + } + } + } + catch (Exception ex) + { + throw new Exception("Ошибка создания чата: " + ex.Message); + } + } + + public static int? GetExistingConversation(int employeeId1, int employeeId2) + { + var query = @"SELECT c.id FROM conversations c + JOIN conversation_participants cp1 ON c.id = cp1.conversation_id + JOIN conversation_participants cp2 ON c.id = cp2.conversation_id + WHERE cp1.employee_id = @emp1 AND cp2.employee_id = @emp2"; + + var parameters = new MySqlParameter[] + { + new MySqlParameter("@emp1", employeeId1), + new MySqlParameter("@emp2", employeeId2) + }; + + var result = DB.ExecuteScalar(query, parameters); + return result != null && result != DBNull.Value ? Convert.ToInt32(result) : (int?)null; + } + + public static void SendMessage(int conversationId, int senderId, string messageText) + { + if (string.IsNullOrWhiteSpace(messageText)) return; + + var query = @"INSERT INTO messages (conversation_id, sender_id, message_text, sent_at) + VALUES (@conv, @sender, @text, NOW())"; + + var parameters = new MySqlParameter[] + { + new MySqlParameter("@conv", conversationId), + new MySqlParameter("@sender", senderId), + new MySqlParameter("@text", messageText) + }; + + DB.ExecuteCommand(query, parameters); + + DB.ExecuteCommand("UPDATE conversations SET updated_at = NOW() WHERE id = @id", + new MySqlParameter[] { new MySqlParameter("@id", conversationId) }); + } + + public static DataTable GetMessages(int conversationId, int limit = 100) + { + var query = @"SELECT m.id, m.message_text, m.sent_at, m.is_read, + e.id as sender_id, e.full_name as sender_name + FROM messages m + JOIN employees e ON m.sender_id = e.id + WHERE m.conversation_id = @conv + ORDER BY m.sent_at DESC + LIMIT @limit"; + + var parameters = new MySqlParameter[] + { + new MySqlParameter("@conv", conversationId), + new MySqlParameter("@limit", limit) + }; + + var table = DB.ExecuteQuery(query, parameters); + var view = table.DefaultView; + view.Sort = "sent_at ASC"; + return view.ToTable(); + } + + public static DataTable GetConversationsForEmployee(int employeeId) + { + var query = @"SELECT c.id, c.updated_at, + e.id as other_employee_id, + e.full_name as other_employee_name, + (SELECT COUNT(*) FROM messages m + WHERE m.conversation_id = c.id + AND m.sender_id != @emp + AND m.is_read = FALSE) as unread_count, + (SELECT message_text FROM messages m2 + WHERE m2.conversation_id = c.id + ORDER BY m2.sent_at DESC LIMIT 1) as last_message + FROM conversations c + JOIN conversation_participants cp ON c.id = cp.conversation_id + JOIN employees e ON e.id = ( + SELECT cp2.employee_id FROM conversation_participants cp2 + WHERE cp2.conversation_id = c.id AND cp2.employee_id != @emp + LIMIT 1 + ) + WHERE cp.employee_id = @emp + ORDER BY c.updated_at DESC"; + + var parameters = new MySqlParameter[] + { + new MySqlParameter("@emp", employeeId) + }; + + return DB.ExecuteQuery(query, parameters); + } + + public static DataTable GetAllEmployeesExcept(int currentEmployeeId) + { + var query = @"SELECT id, full_name, position_id + FROM employees + WHERE id != @emp + ORDER BY full_name"; + + var parameters = new MySqlParameter[] + { + new MySqlParameter("@emp", currentEmployeeId) + }; + + return DB.ExecuteQuery(query, parameters); + } + + public static void MarkMessagesAsRead(int conversationId, int employeeId) + { + var query = @"UPDATE messages m + JOIN conversation_participants cp ON m.conversation_id = cp.conversation_id + SET m.is_read = TRUE + WHERE m.conversation_id = @conv + AND m.sender_id != @emp"; + + var parameters = new MySqlParameter[] + { + new MySqlParameter("@conv", conversationId), + new MySqlParameter("@emp", employeeId) + }; + + DB.ExecuteCommand(query, parameters); + } + + public static int GetUnreadMessagesCount(int employeeId) + { + var query = @"SELECT COUNT(*) FROM messages m + JOIN conversation_participants cp ON m.conversation_id = cp.conversation_id + WHERE cp.employee_id = @emp AND m.sender_id != @emp AND m.is_read = FALSE"; + + var parameters = new MySqlParameter[] + { + new MySqlParameter("@emp", employeeId) + }; + + var result = DB.ExecuteScalar(query, parameters); + return result != null && result != DBNull.Value ? Convert.ToInt32(result) : 0; + } + } +} \ No newline at end of file diff --git a/MessengerForm.Designer.cs b/MessengerForm.Designer.cs new file mode 100644 index 0000000..22c6a15 --- /dev/null +++ b/MessengerForm.Designer.cs @@ -0,0 +1,160 @@ +namespace Neshina1703 +{ + partial class MessengerForm + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.SplitContainer splitContainer; + private System.Windows.Forms.Panel panelLeft; + private System.Windows.Forms.Panel panelRight; + private System.Windows.Forms.DataGridView dgvConversations; + private System.Windows.Forms.Button btnStartChat; + private System.Windows.Forms.ComboBox cbEmployees; + private System.Windows.Forms.FlowLayoutPanel flowMessages; + private System.Windows.Forms.TextBox txtMessage; + private System.Windows.Forms.Button btnSend; + private System.Windows.Forms.Label lblCurrentChat; + private System.Windows.Forms.Label lblTitle; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.splitContainer = new System.Windows.Forms.SplitContainer(); + this.panelLeft = new System.Windows.Forms.Panel(); + this.dgvConversations = new System.Windows.Forms.DataGridView(); + this.btnStartChat = new System.Windows.Forms.Button(); + this.cbEmployees = new System.Windows.Forms.ComboBox(); + this.panelRight = new System.Windows.Forms.Panel(); + this.flowMessages = new System.Windows.Forms.FlowLayoutPanel(); + this.txtMessage = new System.Windows.Forms.TextBox(); + this.btnSend = new System.Windows.Forms.Button(); + this.lblCurrentChat = new System.Windows.Forms.Label(); + this.lblTitle = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); + this.splitContainer.Panel1.SuspendLayout(); + this.splitContainer.Panel2.SuspendLayout(); + this.splitContainer.SuspendLayout(); + this.panelLeft.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvConversations)).BeginInit(); + this.panelRight.SuspendLayout(); + this.SuspendLayout(); + + this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer.Location = new System.Drawing.Point(0, 50); + this.splitContainer.Name = "splitContainer"; + this.splitContainer.Size = new System.Drawing.Size(800, 400); + this.splitContainer.SplitterDistance = 250; + + this.panelLeft.BackColor = System.Drawing.Color.FromArgb(176, 253, 161); + this.panelLeft.Controls.Add(this.dgvConversations); + this.panelLeft.Controls.Add(this.btnStartChat); + this.panelLeft.Controls.Add(this.cbEmployees); + this.panelLeft.Dock = System.Windows.Forms.DockStyle.Fill; + + this.dgvConversations.AllowUserToAddRows = false; + this.dgvConversations.AllowUserToDeleteRows = false; + this.dgvConversations.BackgroundColor = System.Drawing.Color.White; + this.dgvConversations.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvConversations.Dock = System.Windows.Forms.DockStyle.Top; + this.dgvConversations.Location = new System.Drawing.Point(0, 60); + this.dgvConversations.Name = "dgvConversations"; + this.dgvConversations.ReadOnly = true; + this.dgvConversations.Size = new System.Drawing.Size(250, 340); + this.dgvConversations.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvConversations.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvConversations_CellClick); + + this.btnStartChat.BackColor = System.Drawing.Color.FromArgb(91, 209, 45); + this.btnStartChat.FlatAppearance.BorderSize = 0; + this.btnStartChat.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnStartChat.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnStartChat.ForeColor = System.Drawing.Color.Black; + this.btnStartChat.Location = new System.Drawing.Point(5, 30); + this.btnStartChat.Name = "btnStartChat"; + this.btnStartChat.Size = new System.Drawing.Size(100, 30); + this.btnStartChat.TabIndex = 1; + this.btnStartChat.Text = "Начать чат"; + this.btnStartChat.Click += new System.EventHandler(this.btnStartChat_Click); + + this.cbEmployees.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbEmployees.FormattingEnabled = true; + this.cbEmployees.Location = new System.Drawing.Point(5, 5); + this.cbEmployees.Name = "cbEmployees"; + this.cbEmployees.Size = new System.Drawing.Size(240, 21); + + this.panelRight.BackColor = System.Drawing.Color.White; + this.panelRight.Controls.Add(this.flowMessages); + this.panelRight.Controls.Add(this.txtMessage); + this.panelRight.Controls.Add(this.btnSend); + this.panelRight.Dock = System.Windows.Forms.DockStyle.Fill; + + this.flowMessages.AutoScroll = true; + this.flowMessages.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowMessages.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.flowMessages.Location = new System.Drawing.Point(0, 30); + this.flowMessages.Name = "flowMessages"; + this.flowMessages.Size = new System.Drawing.Size(546, 330); + this.flowMessages.WrapContents = false; + + this.txtMessage.Location = new System.Drawing.Point(0, 360); + this.txtMessage.Multiline = true; + this.txtMessage.Name = "txtMessage"; + this.txtMessage.Size = new System.Drawing.Size(460, 40); + this.txtMessage.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txtMessage_KeyDown); + + this.btnSend.BackColor = System.Drawing.Color.FromArgb(91, 209, 45); + this.btnSend.FlatAppearance.BorderSize = 0; + this.btnSend.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnSend.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnSend.ForeColor = System.Drawing.Color.Black; + this.btnSend.Location = new System.Drawing.Point(465, 360); + this.btnSend.Name = "btnSend"; + this.btnSend.Size = new System.Drawing.Size(80, 40); + this.btnSend.TabIndex = 2; + this.btnSend.Text = "Отправить"; + this.btnSend.Click += new System.EventHandler(this.btnSend_Click); + + this.lblCurrentChat.AutoSize = true; + this.lblCurrentChat.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold); + this.lblCurrentChat.ForeColor = System.Drawing.Color.Black; + this.lblCurrentChat.Location = new System.Drawing.Point(265, 15); + + this.lblTitle.AutoSize = true; + this.lblTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Bold); + this.lblTitle.ForeColor = System.Drawing.Color.Black; + this.lblTitle.Location = new System.Drawing.Point(12, 15); + this.lblTitle.Text = "💬 Мессенджер"; + + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.lblTitle); + this.Controls.Add(this.lblCurrentChat); + this.Controls.Add(this.splitContainer); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.Name = "MessengerForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Аптека — Мессенджер"; + this.Load += new System.EventHandler(this.MessengerForm_Load); + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MessengerForm_FormClosing); + + this.splitContainer.Panel1.ResumeLayout(false); + this.splitContainer.Panel2.ResumeLayout(false); + this.splitContainer.Panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit(); + this.splitContainer.ResumeLayout(false); + this.panelLeft.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dgvConversations)).EndInit(); + this.panelRight.ResumeLayout(false); + this.panelRight.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + } + } +} \ No newline at end of file diff --git a/MessengerForm.cs b/MessengerForm.cs new file mode 100644 index 0000000..627edae --- /dev/null +++ b/MessengerForm.cs @@ -0,0 +1,260 @@ +using System; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +namespace Neshina1703 +{ + public partial class MessengerForm : Form + { + private int currentEmployeeId; + private int? currentConversationId; + private System.Windows.Forms.Timer refreshTimer; + + public MessengerForm(int employeeId) + { + InitializeComponent(); + this.currentEmployeeId = employeeId; + SetupTimer(); + } + + private void SetupTimer() + { + refreshTimer = new System.Windows.Forms.Timer(); + refreshTimer.Interval = 5000; + refreshTimer.Tick += RefreshTimer_Tick; + refreshTimer.Start(); + } + + private void RefreshTimer_Tick(object sender, EventArgs e) + { + LoadConversations(); + if (currentConversationId.HasValue) + LoadMessages(); + } + + private void MessengerForm_Load(object sender, EventArgs e) + { + LoadConversations(); + LoadEmployees(); + } + + private void LoadConversations() + { + var conversations = MessageHelper.GetConversationsForEmployee(currentEmployeeId); + dgvConversations.DataSource = conversations; + + if (dgvConversations.Columns.Count > 0) + { + if (dgvConversations.Columns["id"] != null) + dgvConversations.Columns["id"].Visible = false; + + if (dgvConversations.Columns["other_employee_id"] != null) + dgvConversations.Columns["other_employee_id"].Visible = false; + + if (dgvConversations.Columns["updated_at"] != null) + dgvConversations.Columns["updated_at"].Visible = false; + + if (dgvConversations.Columns["other_employee_name"] != null) + { + dgvConversations.Columns["other_employee_name"].HeaderText = "Собеседник"; + dgvConversations.Columns["other_employee_name"].Width = 120; + } + + if (dgvConversations.Columns["last_message"] != null) + { + dgvConversations.Columns["last_message"].HeaderText = "Последнее сообщение"; + dgvConversations.Columns["last_message"].Width = 100; + } + + if (dgvConversations.Columns["unread_count"] != null) + { + dgvConversations.Columns["unread_count"].HeaderText = "🔔"; + dgvConversations.Columns["unread_count"].Width = 50; + } + } + + dgvConversations.ClearSelection(); + if (currentConversationId.HasValue) + { + foreach (DataGridViewRow row in dgvConversations.Rows) + { + if (row.Cells["id"] != null && row.Cells["id"].Value != null) + { + if (Convert.ToInt32(row.Cells["id"].Value) == currentConversationId.Value) + { + row.Selected = true; + break; + } + } + } + } + } + + private void LoadEmployees() + { + var employees = MessageHelper.GetAllEmployeesExcept(currentEmployeeId); + cbEmployees.DataSource = employees; + cbEmployees.DisplayMember = "full_name"; + cbEmployees.ValueMember = "id"; + cbEmployees.SelectedIndex = -1; + } + + private void LoadMessages() + { + if (!currentConversationId.HasValue) return; + + var messages = MessageHelper.GetMessages(currentConversationId.Value); + flowMessages.Controls.Clear(); + + foreach (DataRow row in messages.Rows) + { + int senderId = Convert.ToInt32(row["sender_id"]); + string messageText = row["message_text"].ToString(); + DateTime sentAt = Convert.ToDateTime(row["sent_at"]); + bool isMyMessage = senderId == currentEmployeeId; + + var bubble = CreateMessageBubble(messageText, sentAt, isMyMessage); + flowMessages.Controls.Add(bubble); + } + + flowMessages.ScrollControlIntoView(flowMessages.Controls[flowMessages.Controls.Count - 1]); + MessageHelper.MarkMessagesAsRead(currentConversationId.Value, currentEmployeeId); + } + + private Panel CreateMessageBubble(string text, DateTime sentAt, bool isMyMessage) + { + var bubble = new Panel + { + AutoSize = true, + AutoSizeMode = AutoSizeMode.GrowAndShrink, + Margin = new Padding(5), + MaximumSize = new Size(400, 0), + BackColor = isMyMessage ? Color.FromArgb(91, 209, 45) : Color.FromArgb(176, 253, 161), + Padding = new Padding(10), + Cursor = Cursors.Default + }; + + var labelText = new Label + { + Text = text, + AutoSize = false, + MaximumSize = new Size(380, 0), + ForeColor = Color.Black, + BackColor = Color.Transparent, + Dock = DockStyle.Top, + Padding = new Padding(5) + }; + labelText.Size = new Size(380, labelText.PreferredHeight); + + var labelTime = new Label + { + Text = sentAt.ToString("HH:mm"), + AutoSize = true, + ForeColor = Color.Black, + BackColor = Color.Transparent, + Dock = DockStyle.Bottom, + Font = new Font("Microsoft Sans Serif", 7F), + Padding = new Padding(5, 0, 5, 0) + }; + + bubble.Controls.Add(labelText); + bubble.Controls.Add(labelTime); + + if (isMyMessage) + { + bubble.Dock = DockStyle.Right; + } + else + { + bubble.Dock = DockStyle.Left; + } + + return bubble; + } + + private void dgvConversations_CellClick(object sender, DataGridViewCellEventArgs e) + { + if (e.RowIndex >= 0) + { + var row = dgvConversations.Rows[e.RowIndex]; + if (row.Cells["id"] != null && row.Cells["id"].Value != null) + { + currentConversationId = Convert.ToInt32(row.Cells["id"].Value); + lblCurrentChat.Text = "Чат с: " + row.Cells["other_employee_name"].Value.ToString(); + LoadMessages(); + } + } + } + + private void btnSend_Click(object sender, EventArgs e) + { + SendMessage(); + } + + private void txtMessage_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter && !e.Shift) + { + e.SuppressKeyPress = true; + SendMessage(); + } + } + + private void SendMessage() + { + if (!currentConversationId.HasValue) + { + MessageBox.Show("Выберите чат для отправки сообщения!", "Внимание", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + string text = txtMessage.Text.Trim(); + if (string.IsNullOrEmpty(text)) return; + + MessageHelper.SendMessage(currentConversationId.Value, currentEmployeeId, text); + txtMessage.Clear(); + LoadMessages(); + } + + private void btnStartChat_Click(object sender, EventArgs e) + { + if (cbEmployees.SelectedValue == null) + { + MessageBox.Show("Выберите сотрудника для чата!", "Внимание", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + int selectedEmployeeId = Convert.ToInt32(cbEmployees.SelectedValue); + int? conversationId = MessageHelper.GetExistingConversation(currentEmployeeId, selectedEmployeeId); + + if (!conversationId.HasValue) + { + conversationId = MessageHelper.CreateConversation(currentEmployeeId, selectedEmployeeId); + } + + currentConversationId = conversationId; + LoadConversations(); + + foreach (DataGridViewRow row in dgvConversations.Rows) + { + if (row.Cells["id"] != null && row.Cells["id"].Value != null && + Convert.ToInt32(row.Cells["id"].Value) == conversationId.Value) + { + dgvConversations.ClearSelection(); + row.Selected = true; + dgvConversations_CellClick(dgvConversations, new DataGridViewCellEventArgs(0, row.Index)); + break; + } + } + } + + private void MessengerForm_FormClosing(object sender, FormClosingEventArgs e) + { + refreshTimer?.Stop(); + refreshTimer?.Dispose(); + } + } +} \ No newline at end of file diff --git a/MessengerForm.resx b/MessengerForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/MessengerForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/Neshina1703.csproj b/Neshina1703.csproj new file mode 100644 index 0000000..218e04b --- /dev/null +++ b/Neshina1703.csproj @@ -0,0 +1,159 @@ + + + + + Debug + AnyCPU + {1A170F4A-81FE-440F-BD92-8C7A76ECD60F} + WinExe + Neshina1703 + Neshina1703 + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\..\Downloads\mysql.data\MySql.Data.dll + + + packages\Newtonsoft.Json.13.0.4\lib\net45\Newtonsoft.Json.dll + + + + + packages\QRCoder.1.7.0\lib\net40\QRCoder.dll + + + + + + + + + + + + + + + + + Form + + + AdminForm.cs + + + Form + + + ClientForm.cs + + + + Form + + + EmployeeForm.cs + + + Form + + + Form1.cs + + + + Form + + + MessengerForm.cs + + + Form + + + OrderForm.cs + + + Form + + + ProductForm.cs + + + + + + Form + + + QRCodeViewerForm.cs + + + AdminForm.cs + + + EmployeeForm.cs + + + Form1.cs + + + MessengerForm.cs + + + OrderForm.cs + + + ProductForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + QRCodeViewerForm.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/Neshina1703.sln b/Neshina1703.sln new file mode 100644 index 0000000..984d4cc --- /dev/null +++ b/Neshina1703.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34511.84 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Neshina1703", "Neshina1703.csproj", "{1A170F4A-81FE-440F-BD92-8C7A76ECD60F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1A170F4A-81FE-440F-BD92-8C7A76ECD60F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A170F4A-81FE-440F-BD92-8C7A76ECD60F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A170F4A-81FE-440F-BD92-8C7A76ECD60F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A170F4A-81FE-440F-BD92-8C7A76ECD60F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A3C18389-E3A9-45D5-8D6C-8D26FF3ADE3C} + EndGlobalSection +EndGlobal diff --git a/OrderForm.Designer.cs b/OrderForm.Designer.cs new file mode 100644 index 0000000..e72f24f --- /dev/null +++ b/OrderForm.Designer.cs @@ -0,0 +1,280 @@ +namespace Neshina1703 +{ + partial class OrderForm + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.Label lblTitle; + private System.Windows.Forms.Label lblClient; + private System.Windows.Forms.Label lblPrescription; + private System.Windows.Forms.Label lblProducts; + private System.Windows.Forms.Label lblOrder; + private System.Windows.Forms.Label lblTotal; + private System.Windows.Forms.ComboBox cbClient; + private System.Windows.Forms.ComboBox cbPrescription; + private System.Windows.Forms.DataGridView dgvProducts; + private System.Windows.Forms.DataGridView dgvOrder; + private System.Windows.Forms.NumericUpDown numQuantity; + private System.Windows.Forms.Button btnAddToOrder; + private System.Windows.Forms.Button btnRemoveFromOrder; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.BindingSource productsBindingSource; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OrderForm)); + this.lblTitle = new System.Windows.Forms.Label(); + this.lblClient = new System.Windows.Forms.Label(); + this.lblPrescription = new System.Windows.Forms.Label(); + this.lblProducts = new System.Windows.Forms.Label(); + this.lblOrder = new System.Windows.Forms.Label(); + this.lblTotal = new System.Windows.Forms.Label(); + this.cbClient = new System.Windows.Forms.ComboBox(); + this.cbPrescription = new System.Windows.Forms.ComboBox(); + this.dgvProducts = new System.Windows.Forms.DataGridView(); + this.dgvOrder = new System.Windows.Forms.DataGridView(); + this.numQuantity = new System.Windows.Forms.NumericUpDown(); + this.btnAddToOrder = new System.Windows.Forms.Button(); + this.btnRemoveFromOrder = new System.Windows.Forms.Button(); + this.btnSave = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.productsBindingSource = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.dgvProducts)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvOrder)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numQuantity)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.productsBindingSource)).BeginInit(); + this.SuspendLayout(); + // + // lblTitle + // + this.lblTitle.AutoSize = true; + this.lblTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Bold); + this.lblTitle.Location = new System.Drawing.Point(12, 15); + this.lblTitle.Name = "lblTitle"; + this.lblTitle.Size = new System.Drawing.Size(215, 24); + this.lblTitle.TabIndex = 0; + this.lblTitle.Text = " Оформление заказа"; + // + // lblClient + // + this.lblClient.AutoSize = true; + this.lblClient.Location = new System.Drawing.Point(12, 55); + this.lblClient.Name = "lblClient"; + this.lblClient.Size = new System.Drawing.Size(46, 13); + this.lblClient.TabIndex = 1; + this.lblClient.Text = "Клиент:"; + // + // lblPrescription + // + this.lblPrescription.AutoSize = true; + this.lblPrescription.Location = new System.Drawing.Point(280, 55); + this.lblPrescription.Name = "lblPrescription"; + this.lblPrescription.Size = new System.Drawing.Size(60, 13); + this.lblPrescription.TabIndex = 3; + this.lblPrescription.Text = "Рецепт №:"; + // + // lblProducts + // + this.lblProducts.AutoSize = true; + this.lblProducts.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.lblProducts.Location = new System.Drawing.Point(12, 110); + this.lblProducts.Name = "lblProducts"; + this.lblProducts.Size = new System.Drawing.Size(142, 15); + this.lblProducts.TabIndex = 5; + this.lblProducts.Text = " Доступные товары:"; + // + // lblOrder + // + this.lblOrder.AutoSize = true; + this.lblOrder.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.lblOrder.Location = new System.Drawing.Point(480, 110); + this.lblOrder.Name = "lblOrder"; + this.lblOrder.Size = new System.Drawing.Size(108, 15); + this.lblOrder.TabIndex = 6; + this.lblOrder.Text = "Состав заказа:"; + // + // lblTotal + // + this.lblTotal.AutoSize = true; + this.lblTotal.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold); + this.lblTotal.ForeColor = System.Drawing.Color.Black; + this.lblTotal.Location = new System.Drawing.Point(480, 345); + this.lblTotal.Name = "lblTotal"; + this.lblTotal.Size = new System.Drawing.Size(94, 20); + this.lblTotal.TabIndex = 10; + this.lblTotal.Text = "Итого: 0 ₽"; + // + // cbClient + // + this.cbClient.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbClient.FormattingEnabled = true; + this.cbClient.Location = new System.Drawing.Point(15, 75); + this.cbClient.Name = "cbClient"; + this.cbClient.Size = new System.Drawing.Size(250, 21); + this.cbClient.TabIndex = 2; + this.cbClient.SelectedIndexChanged += new System.EventHandler(this.cbClient_SelectedIndexChanged); + // + // cbPrescription + // + this.cbPrescription.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbPrescription.Enabled = false; + this.cbPrescription.FormattingEnabled = true; + this.cbPrescription.Location = new System.Drawing.Point(283, 75); + this.cbPrescription.Name = "cbPrescription"; + this.cbPrescription.Size = new System.Drawing.Size(150, 21); + this.cbPrescription.TabIndex = 4; + // + // dgvProducts + // + this.dgvProducts.AllowUserToAddRows = false; + this.dgvProducts.AllowUserToDeleteRows = false; + this.dgvProducts.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvProducts.BackgroundColor = System.Drawing.Color.White; + this.dgvProducts.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvProducts.Location = new System.Drawing.Point(15, 130); + this.dgvProducts.Name = "dgvProducts"; + this.dgvProducts.ReadOnly = true; + this.dgvProducts.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvProducts.Size = new System.Drawing.Size(450, 200); + this.dgvProducts.TabIndex = 0; + this.dgvProducts.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvProducts_CellDoubleClick); + // + // dgvOrder + // + this.dgvOrder.AllowUserToAddRows = false; + this.dgvOrder.AllowUserToDeleteRows = false; + this.dgvOrder.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; + this.dgvOrder.BackgroundColor = System.Drawing.Color.White; + this.dgvOrder.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvOrder.Location = new System.Drawing.Point(483, 130); + this.dgvOrder.Name = "dgvOrder"; + this.dgvOrder.ReadOnly = true; + this.dgvOrder.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dgvOrder.Size = new System.Drawing.Size(290, 200); + this.dgvOrder.TabIndex = 1; + // + // numQuantity + // + this.numQuantity.Location = new System.Drawing.Point(15, 340); + this.numQuantity.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numQuantity.Name = "numQuantity"; + this.numQuantity.Size = new System.Drawing.Size(60, 20); + this.numQuantity.TabIndex = 7; + this.numQuantity.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // btnAddToOrder + // + this.btnAddToOrder.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(180)))), ((int)(((byte)(80))))); + this.btnAddToOrder.FlatAppearance.BorderSize = 0; + this.btnAddToOrder.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnAddToOrder.ForeColor = System.Drawing.Color.White; + this.btnAddToOrder.Location = new System.Drawing.Point(85, 337); + this.btnAddToOrder.Name = "btnAddToOrder"; + this.btnAddToOrder.Size = new System.Drawing.Size(120, 25); + this.btnAddToOrder.TabIndex = 8; + this.btnAddToOrder.Text = " Добавить"; + this.btnAddToOrder.UseVisualStyleBackColor = false; + this.btnAddToOrder.Click += new System.EventHandler(this.btnAddToOrder_Click); + // + // btnRemoveFromOrder + // + this.btnRemoveFromOrder.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.btnRemoveFromOrder.FlatAppearance.BorderSize = 0; + this.btnRemoveFromOrder.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnRemoveFromOrder.ForeColor = System.Drawing.Color.White; + this.btnRemoveFromOrder.Location = new System.Drawing.Point(211, 337); + this.btnRemoveFromOrder.Name = "btnRemoveFromOrder"; + this.btnRemoveFromOrder.Size = new System.Drawing.Size(120, 25); + this.btnRemoveFromOrder.TabIndex = 9; + this.btnRemoveFromOrder.Text = "Удалить"; + this.btnRemoveFromOrder.UseVisualStyleBackColor = false; + this.btnRemoveFromOrder.Click += new System.EventHandler(this.btnRemoveFromOrder_Click); + // + // btnSave + // + this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(120)))), ((int)(((byte)(215))))); + this.btnSave.FlatAppearance.BorderSize = 0; + this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnSave.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold); + this.btnSave.ForeColor = System.Drawing.Color.White; + this.btnSave.Location = new System.Drawing.Point(580, 390); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(120, 40); + this.btnSave.TabIndex = 11; + this.btnSave.Text = "Оформить"; + this.btnSave.UseVisualStyleBackColor = false; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // btnCancel + // + this.btnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.btnCancel.FlatAppearance.BorderSize = 0; + this.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold); + this.btnCancel.ForeColor = System.Drawing.Color.White; + this.btnCancel.Location = new System.Drawing.Point(710, 390); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(80, 40); + this.btnCancel.TabIndex = 12; + this.btnCancel.Text = "Отмена"; + this.btnCancel.UseVisualStyleBackColor = false; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // OrderForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.lblTitle); + this.Controls.Add(this.lblClient); + this.Controls.Add(this.cbClient); + this.Controls.Add(this.lblPrescription); + this.Controls.Add(this.cbPrescription); + this.Controls.Add(this.lblProducts); + this.Controls.Add(this.dgvProducts); + this.Controls.Add(this.lblOrder); + this.Controls.Add(this.dgvOrder); + this.Controls.Add(this.numQuantity); + this.Controls.Add(this.btnAddToOrder); + this.Controls.Add(this.btnRemoveFromOrder); + this.Controls.Add(this.lblTotal); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.btnCancel); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "OrderForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Аптека — Новый заказ"; + this.Load += new System.EventHandler(this.OrderForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.dgvProducts)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvOrder)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numQuantity)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.productsBindingSource)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + } +} \ No newline at end of file diff --git a/OrderForm.cs b/OrderForm.cs new file mode 100644 index 0000000..4c64d76 --- /dev/null +++ b/OrderForm.cs @@ -0,0 +1,347 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Windows.Forms; +using MySql.Data.MySqlClient; + +namespace Neshina1703 +{ + public partial class OrderForm : Form + { + private int userId; + private List orderItems = new List(); + private decimal orderTotal = 0; + + public OrderForm(int userId) + { + InitializeComponent(); + this.userId = userId; + } + + private void OrderForm_Load(object sender, EventArgs e) + { + LoadClients(); + LoadProducts(); + SetupGrids(); + } + + private void LoadClients() + { + try + { + var query = @"SELECT 0 AS id, '— Без регистрации —' AS full_name + UNION ALL + SELECT id, full_name FROM clients ORDER BY full_name"; + + var clients = DB.ExecuteQuery(query); + cbClient.DataSource = clients; + cbClient.DisplayMember = "full_name"; + cbClient.ValueMember = "id"; + cbClient.SelectedIndex = 0; + } + catch (Exception ex) + { + MessageBox.Show("Ошибка загрузки клиентов: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void cbClient_SelectedIndexChanged(object sender, EventArgs e) + { + object selectedValue = cbClient.SelectedValue; + + if (selectedValue == null || selectedValue == DBNull.Value) + { + cbPrescription.DataSource = null; + cbPrescription.Enabled = false; + return; + } + + int clientId; + try + { + clientId = Convert.ToInt32(selectedValue); + } + catch + { + cbPrescription.DataSource = null; + cbPrescription.Enabled = false; + return; + } + + if (clientId == 0) + { + cbPrescription.DataSource = null; + cbPrescription.Enabled = false; + return; + } + + var query = @"SELECT id, prescription_number, valid_until + FROM prescriptions + WHERE client_id = @clientId AND valid_until >= CURDATE() + ORDER BY valid_until"; + + var prescriptions = DB.ExecuteQuery(query, + new MySqlParameter[] { new MySqlParameter("@clientId", clientId) }); + + if (prescriptions.Rows.Count > 0) + { + var table = prescriptions.Clone(); + table.Rows.Add(0, "— Без рецепта —", DBNull.Value); + foreach (DataRow row in prescriptions.Rows) + table.ImportRow(row); + + cbPrescription.DataSource = table; + cbPrescription.DisplayMember = "prescription_number"; + cbPrescription.ValueMember = "id"; + cbPrescription.SelectedIndex = 0; + cbPrescription.Enabled = true; + } + else + { + cbPrescription.DataSource = null; + cbPrescription.Enabled = false; + } + } + + private void LoadProducts() + { + try + { + var query = @"SELECT + m.id, + m.medication_name AS 'Название', + m.price, + m.stock_quantity AS 'Остаток', + ds.status_name AS 'Тип' + FROM medications m + LEFT JOIN dispensing_statuses ds ON m.dispensing_status_id = ds.id + WHERE m.stock_quantity > 0 + ORDER BY m.medication_name"; + + dgvProducts.DataSource = DB.ExecuteQuery(query); + } + catch (Exception ex) + { + MessageBox.Show("Ошибка загрузки товаров: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void SetupGrids() + { + if (dgvProducts.Columns["id"] != null) + dgvProducts.Columns["id"].Visible = false; + if (dgvProducts.Columns["price"] != null) + dgvProducts.Columns["price"].DefaultCellStyle.Format = "0.00 ₽"; + + dgvOrder.Columns.Clear(); + dgvOrder.Columns.Add("Name", "Товар"); + dgvOrder.Columns.Add("Price", "Цена"); + dgvOrder.Columns.Add("Quantity", "Кол-во"); + dgvOrder.Columns.Add("Total", "Сумма"); + dgvOrder.Columns["Price"].DefaultCellStyle.Format = "0.00 ₽"; + dgvOrder.Columns["Total"].DefaultCellStyle.Format = "0.00 ₽"; + dgvOrder.Columns["Total"].DefaultCellStyle.Font = + new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + } + + private void dgvProducts_CellDoubleClick(object sender, DataGridViewCellEventArgs e) + { + if (e.RowIndex >= 0) + AddProductToOrder(); + } + + private void btnAddToOrder_Click(object sender, EventArgs e) + { + AddProductToOrder(); + } + + private void AddProductToOrder() + { + if (dgvProducts.CurrentRow == null) return; + + int productId = Convert.ToInt32(dgvProducts.CurrentRow.Cells["id"].Value); + string name = dgvProducts.CurrentRow.Cells["Название"].Value.ToString(); + decimal price = Convert.ToDecimal(dgvProducts.CurrentRow.Cells["price"].Value); + int stock = Convert.ToInt32(dgvProducts.CurrentRow.Cells["Остаток"].Value); + int quantity = (int)numQuantity.Value; + + if (quantity > stock) + { + MessageBox.Show($" На складе только {stock} шт.!", "Недостаточно товара", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + var existing = orderItems.FirstOrDefault(x => x.ProductId == productId); + if (existing != null) + { + if (existing.Quantity + quantity > stock) + { + MessageBox.Show($" Превышен остаток на складе!", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + existing.Quantity += quantity; + } + else + { + orderItems.Add(new OrderItem + { + ProductId = productId, + Name = name, + Price = price, + Quantity = quantity + }); + } + + RefreshOrderGrid(); + numQuantity.Value = 1; + } + + private void btnRemoveFromOrder_Click(object sender, EventArgs e) + { + if (dgvOrder.CurrentRow == null) return; + + int index = dgvOrder.CurrentRow.Index; + orderItems.RemoveAt(index); + RefreshOrderGrid(); + } + + private void RefreshOrderGrid() + { + dgvOrder.Rows.Clear(); + orderTotal = 0; + + foreach (var item in orderItems) + { + decimal lineTotal = item.Price * item.Quantity; + orderTotal += lineTotal; + + dgvOrder.Rows.Add(item.Name, item.Price, item.Quantity, lineTotal); + } + + lblTotal.Text = $"Итого: {orderTotal:0.00} ₽"; + } + + private void btnSave_Click(object sender, EventArgs e) + { + if (orderItems.Count == 0) + { + MessageBox.Show(" Добавьте товары в заказ!", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + try + { + using (var conn = DB.GetConnection()) + { + conn.Open(); + using (var transaction = conn.BeginTransaction()) + { + try + { + object clientVal = cbClient.SelectedValue; + int? clientId = null; + if (clientVal != null && clientVal != DBNull.Value) + { + int id = Convert.ToInt32(clientVal); + if (id > 0) clientId = id; + } + + int? prescriptionId = null; + if (cbPrescription.Enabled && cbPrescription.SelectedValue != null && cbPrescription.SelectedValue != DBNull.Value) + { + int pid = Convert.ToInt32(cbPrescription.SelectedValue); + if (pid > 0) prescriptionId = pid; + } + + var insertPurchase = @"INSERT INTO purchases (purchase_date, client_id, prescription_id) + VALUES (@date, @client, @prescription)"; + + var purchaseParams = new MySqlParameter[] + { + new MySqlParameter("@date", DateTime.Now.ToString("yyyy-MM-dd")), + new MySqlParameter("@client", clientId ?? (object)DBNull.Value), + new MySqlParameter("@prescription", prescriptionId ?? (object)DBNull.Value) + }; + + int purchaseId; + using (var cmd = new MySqlCommand(insertPurchase, conn, transaction)) + { + cmd.Parameters.AddRange(purchaseParams); + cmd.ExecuteNonQuery(); + + cmd.CommandText = "SELECT LAST_INSERT_ID()"; + purchaseId = Convert.ToInt32(cmd.ExecuteScalar()); + } + foreach (var item in orderItems) + { + var insertItem = @"INSERT INTO purchase_medications (purchase_id, medication_id, quantity) + VALUES (@purchase, @medication, @qty)"; + + var itemParams = new MySqlParameter[] + { + new MySqlParameter("@purchase", purchaseId), + new MySqlParameter("@medication", item.ProductId), + new MySqlParameter("@qty", item.Quantity) + }; + + using (var cmd = new MySqlCommand(insertItem, conn, transaction)) + { + cmd.Parameters.AddRange(itemParams); + cmd.ExecuteNonQuery(); + } + + var updateStock = @"UPDATE medications SET stock_quantity = stock_quantity - @qty WHERE id = @id"; + var stockParams = new MySqlParameter[] + { + new MySqlParameter("@qty", item.Quantity), + new MySqlParameter("@id", item.ProductId) + }; + + using (var cmd = new MySqlCommand(updateStock, conn, transaction)) + { + cmd.Parameters.AddRange(stockParams); + cmd.ExecuteNonQuery(); + } + } + + transaction.Commit(); + this.DialogResult =DialogResult.OK; + MessageBox.Show($"Заказ оформлен!\nСумма: {orderTotal:0.00} ₽", "Успех", + MessageBoxButtons.OK, MessageBoxIcon.Information); + this.Close(); + } + catch + { + transaction.Rollback(); + throw; + } + } + } + } + catch (Exception ex) + { + MessageBox.Show(" Ошибка сохранения: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void btnCancel_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + private class OrderItem + { + public int ProductId { get; set; } + public string Name { get; set; } + public decimal Price { get; set; } + public int Quantity { get; set; } + } + } +} \ No newline at end of file diff --git a/OrderForm.resx b/OrderForm.resx new file mode 100644 index 0000000..e65142f --- /dev/null +++ b/OrderForm.resx @@ -0,0 +1,1256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAPY6AQD2OgEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAgAAAAIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAALAAAAHQAAACwAAAA7AAAARgAAAEwAAABTAAAAUwAAAEwAAABGAAAAOwAAACwAAAAdAAAADAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAEAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAoAAAAxAAAAWQAAAIgAAACxAAAAywAAAOUAAAD2AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPYAAADoAAAAzgAAALEAAACJAAAAXQAAADIAAAALAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANAAAAHgAAAC0AAAA4wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC1AAAAegAAADcAAAAHAAAAAAAAAAAAAAAAAAAABAAA + AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAkAAABCAAAAmAAA + AN4AAAD+AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/AAAAPwAAAD+AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA/gAAAP0AAAD8AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAOAAAACaAAAARgAAAAkAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAEAAAAAAAAAAAAAACoAAACKAAAA4AAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD+AAAA/wAAAP4AAAD/AAAA4gAA + AIsAAAArAAAAAAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEkAAAC6AAAA+wAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC8AAAATAAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAA + AFcAAADRAAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD+AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/gAAAP8AAAD/AAAA0gAAAFkAAAAEAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAE4AAADQAAAA/wAAAP4AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD+AAAA/wAA + ANEAAABPAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAC8AAAC6AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACzAAAArAAAAKwAAACzAAAAugAA + AMgAAADXAAAA6gAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC7AAAALgAAAAAAAAACAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAEAAAAAAAAAAkAAACIAAAA+wAAAP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA8gAAAMcAAACWAAAAawAAAEEAAAAlAAAADwAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAPAAAAJQAAAD8AAABoAAAAlgAA + AMUAAADxAAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD7AAAAiQAAAAoAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAAAAAA+AAAA2gAAAP8AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAPwAAADRAAAAjgAA + AEcAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAABIAAAAjAAAANAAAAD8AAAA/wAA + AP8AAAD9AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAPwAAAD/AAAA2gAA + AD4AAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAEAAAADAAAAggAAAP4AAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAA + AP4AAAD/AAAA/wAAANgAAACCAAAAMQAAAAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAA + AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAgAAAC8AAACAAAAA1wAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAA/gAAAIMAAAADAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGQAAAMAAAAD/AAAA+wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP4AAAD/AAAA+gAAAK4AAABFAAAABgAAAAAAAAAAAAAAAQAA + AAQAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAABAAAAAAAA + AAAAAAAFAAAARAAAAKwAAAD5AAAA/wAAAP4AAAD8AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/wAAAMAAAAAaAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AD0AAADlAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD/AAAA9gAA + AJkAAAApAAAAAAAAAAEAAAABAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAEAAAABAAAAAAAAACYAAACYAAAA9wAA + AP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAOYAAAA+AAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABcAAAA+gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPwAAAD/AAAA/AAAAKEAAAAkAAAAAAAAAAEAAAADAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAiAAAAnwAAAPwAAAD/AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAeAAA + AP8AAAD8AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAMIAAAA1AAAAAAAA + AAEAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAA + AAEAAAAAAAAAMwAAAMIAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAA + AP8AAAB5AAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAIYAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD7AAAA/wAAAO8AAABnAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAGUAAADuAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACOAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC7AAAAHQAAAAAAAAADAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAB0AAAC6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAhgAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP4AAAD+AAAAeAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAA + AAAAAAB4AAAA/gAAAP4AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAHoAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAA6gAAAEUAAAAAAAAABAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAABEAAAA6gAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAB5AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABdAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANQAAAAjAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABeAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAQQAAAPoAAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC/AAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAgAA + AAwAAAARAAAAEAAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAAQAAAAEQAAAAwAAAACAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAQAAAAvwAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAPoAAABAAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAB0AAADjAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAtQAA + AAkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAKgAAAJIAAADRAAAA6AAAAO8AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA6AAA + ANEAAACUAAAAKgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAIAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAdAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHkAAAD8AAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAEAAAAEAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL0AAAADAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAIMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC9AAAACQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAPwAAAD7AAAA/QAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD9AAAA+wAAAPwAAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAIAAAAvQAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIIAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABCAAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAA0gAAABEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAASgAAAP8AAAD7AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAASgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAARAAAA0gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AEIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADAAAANUAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOgAAAAkAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAADBAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAADAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAAAPkAAAD/AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAA + APkAAAAlAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABHAAAA/QAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAiAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAANAAAAPoAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAHgAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEYAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAB4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD6AAAANAAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC3AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC2AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAUwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA7AAAACEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACuAAAAAwAA + ABMAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABMAAAADAAAArgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAACIAAADtAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABSAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABnAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAMoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL4AAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAA5AAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAOgAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATgAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAnAAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAnQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAATQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPUAAAAoAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAALwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAlQAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAAvAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACKAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPoAAAAsAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAC0AAAD6AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAACgAAAN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAA + AAAAAAAHAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAKwAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAABIAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABUAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAASAAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAARwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAJkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAQAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAACQAAABHAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAWAAAAEwAAACPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AI8AAABMAAAAWAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAEcAAAAjAAAAAAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAA1AAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACZAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAEYAAADFAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAApgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACBAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + ANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADYAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAP4AAAD+AAAA/QAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACOAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD9AAAA/gAA + AP4AAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + ADIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAeAAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAewAAAP8AAAD7AAAA/AAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABaAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPoAAAD/AAAAewAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANEAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAdwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADkAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABIAAADkAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACzAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACwAAAOMAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAASQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAkQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD6AAAA/wAAAGgAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAGgAAAD/AAAA+gAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACQAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABKAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAKAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAyAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAPEAAAAYAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD7AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA+wAA + APsAAAD8AAAA/QAAAP8AAACOAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAI4AAAD/AAAA/QAA + APwAAAD7AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPsAAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABkAAADyAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADIAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAFsAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZgAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADqAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA6AAA + AA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAiQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACWAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAPkAAACuAAAApwAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKYAAACRAAAAWgAAABEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + ABEAAABaAAAAkQAAAKYAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACnAAAArgAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAlwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACIAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACyAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAGoAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABAAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABrAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD8AAAA/wAAALEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAMAAAA5gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAPoAAAAkAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAA + APoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADmAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAB0AAAD1AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA6gAA + AA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAPAAAA6gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + APUAAAAcAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAA + AP4AAAD/AAAA/gAAAP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AAMAAADXAAAA/wAAAP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAA7AAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AMgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAAOwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAugAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAugAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABGAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACyAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKwAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAUwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFMAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAArAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAArAAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABTAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACyAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABGAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAALoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAALoAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAARgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADsAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAyAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAAA7AAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAAAP4AAAD/AAAA/gAA + AP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADXAAAA/wAA + AP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAdAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOkAAAAOAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADwAAAOoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAAD1AAAAHAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAwAAADmAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA+gAAACQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAlAAAA+gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOYAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAzAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAsgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA+wAAAP8AAABqAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAagAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACxAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AJYAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABAAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAK4AAACnAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKkAAACpAAAApgAAAJAAAABZAAAAEQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAEQAAAFkAAACQAAAApgAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKcAAACuAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACWAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AIgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AFwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADpAAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA6AAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADwAAAAGAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzwAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPsAAAD7AAAA/AAAAP0AAAD/AAAAjgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAACNAAAA/wAAAP0AAAD8AAAA+wAAAPsAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD7AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADOAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAZAAAA8QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAyAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAALAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACRAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APoAAAD/AAAAaAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAZwAAAP8AAAD6AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAJEAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEoAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA4gAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAI0AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADkAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABIAAADkAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACzAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAHkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA0AAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAHwAAAD/AAAA+gAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABZAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAWgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APwAAAD6AAAA/wAAAHwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAADQAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAHcAAAAAAAAABAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAANgAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAP8AAAD/AAAAMQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAIgAAAD/AAAA/gAAAP4AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACOAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP0AAAD+AAAA/gAAAP8AAACJAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAANQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACAAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEcAAADFAAAA+gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPsAAAD/AAAApQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACAAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACaAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANMAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAAkAAAASAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFgAAABMAAAAjwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAACPAAAATAAAAFgAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABHAAAAJAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAANQAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAmQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEgAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AEgAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABUAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFQAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABIAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABHAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAA + AN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAAAAAAAAAHAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKsAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAigAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAAD6AAAALAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAtAAAA+gAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACKAAAAAAAAAAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAwAAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACVAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAC8AAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPQAAAAnAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC4AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAE4AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAJsAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJwAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAE4AAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAMwAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAADgAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAAA5AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADLAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL0AAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAywAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAZwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABnAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADKAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADsAAAAIQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAK4AAAADAAAAEwAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAARAAAAEwAAAAMAAACuAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAIQAAAOwAAAD/AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAFIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC1AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAADUAAAD7AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAB3AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAARwAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAABGAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAdwAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA+gAAADQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAIoAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAABGAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAmAAAA+QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA+QAAACUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AEcAAAD9AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAADAAAANUAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOcAAAAjAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADBAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAQwAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + ANEAAAARAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEsAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAEsAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAEQAA + ANEAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAABCAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAhAAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL0AAAAIAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AIkAAAD/AAAA/AAAAPsAAAD9AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP0AAAD7AAAA/AAA + AP8AAACJAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAgAAAC8AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAgwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHoAAAD8AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAEAAAAswAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL4AAAADAAAAAQAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAdAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALUAAAAIAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAACoAAACSAAAA0QAAAOgAAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7wAAAOgAAADRAAAAlAAA + ACsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAACAAAALMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + AP8AAADjAAAAHQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABBAAAA+gAAAP4AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL4AAAAPAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAACAAAADQAA + ABEAAAAQAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABAAAAARAAAADAAAAAIAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAC+AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA+gAAAEEAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABeAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANIAAAAiAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABfAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAB7AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAOkAAABEAAAAAAAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAQwAAAOkAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAegAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACGAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/gAAAP4AAAB2AAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAABAAAAAAAAAHYAAAD9AAAA/gAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAA + AIcAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAAAAACOAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC6AAAAHAAA + AAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAABwAAAC4AAAA/wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACHAAAA/wAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAADuAAAAZQAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAA + AAAAAABkAAAA7gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAAiAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAB6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP0AAAD/AAAAwQAAADQAAAAAAAAAAQAAAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAAADAAAAAQAAAAAAAAAyAAAAwQAAAP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAD8AAAA/wAAAHkAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABeAAAA+wAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD/AAAA/AAAAJ8AAAAjAAAAAAAA + AAEAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAhAAAAngAA + APsAAAD/AAAA/AAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAA+AAAA5gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAPYAAACYAAAAKAAAAAAAAAABAAAAAQAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAQAAAABAAAAAQAAAAAAAAAmAAAAlwAAAPYAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAADnAAAAPgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAAaAAAAwQAAAP8AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD8AAAA/gAA + AP8AAAD6AAAArQAAAEQAAAAFAAAAAAAAAAAAAAABAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAEAAAAAAAAAAAAAAAUAAABDAAAArAAAAPkAAAD/AAAA/gAA + APwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD/AAAAwQAAABsAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAgwAAAP4AAAD/AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP4AAAD/AAAA/wAAANgAAACAAAAALwAA + AAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAgAA + AC0AAAB/AAAA1gAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APsAAAD/AAAA/gAAAIQAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAPwAAANsAAAD/AAAA/AAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD8AAAA0QAAAI0AAABGAAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAVAAAARwAAAIsAAADQAAAA/AAAAP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAAANoAAAA/AAAAAAAAAAMAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAACgAA + AIoAAAD7AAAA/wAAAPwAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAADyAAAAxwAAAJYAAABrAAAAQAAAACQAAAAOAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAA4AAAAlAAAAPwAAAGYAAACWAAAAxQAAAPEAAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAA + APsAAACKAAAACgAAAAAAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAADAAAAC7AAAA/wAAAP4AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACyAAAArAAAAKwAAACyAAAAugAAAMgAAADXAAAA6gAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC9AAAALwAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAAAAAAAAAABPAAAA0QAAAP8AAAD+AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/gAAAP8AAADSAAAAUAAA + AAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAEAAAAWAAA + ANIAAAD/AAAA/wAAAP4AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAA + AP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APsAAAD+AAAA/gAAAP8AAADTAAAAWgAAAAQAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEoAAAC7AAAA/AAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC9AAAATQAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAMAAAABAAAAAAAAAAAAAAArAAAAigAAAOEAAAD/AAAA/wAAAP8AAAD+AAAA+wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/gAAAP8AAAD+AAAA/wAA + AOIAAACMAAAALAAAAAAAAAAAAAAAAQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAACQAA + AEQAAACZAAAA3gAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD8AAAA/AAAAP4AAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/QAAAPwAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA4QAAAJwAAABGAAAACQAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANQAAAHkAAAC2AAAA5QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC2AAAAewAAADgAAAAIAAAAAAAA + AAAAAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAALAAAAMgAAAFoAAACIAAAAsgAAAMsAAADlAAAA9gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD2AAAA6AAAAM4AAACxAAAAiQAA + AF4AAAAyAAAACwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAEAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAdAAAALAAAADsAAABHAAAATQAAAFMAAABTAAAATAAA + AEcAAAA7AAAALAAAAB0AAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAADAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAIAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// + //////////////////////////////////////wAAD////////////////+AX/oA///////////////w + EAAAiA//////////////kKAAAAUJ/////////////oIAAAAAQX////////////oQAAAAAAhf//////// + ///oQAAAAAACF///////////ogAAAAAAAEX//////////kgAAAAAAAASf/////////0QAAAAAAAACL// + ///////yQAAAAAAAAAJP////////6QAAAAvQAAAAl////////9IAAADQCyAAAEv///////8gAAAoAAAU + AAAE///////+kAABAP//AIAACX///////SAACA////AQAAS///////pAACF////+hAACX//////0gACF + /////6EAAS//////6QABJ//////kQACX/////9IABN//////+SAAS/////+kABF///////6IACX///// + qAAk/+AAAAf/JAAV/////1AAS/5F//+if9IACv////6gAKf9EAAACL/lAAV////9QAFf+kAAAAJf+oAC + v////AAAv/iAAAABH/0AAD////qABX/xAAAAAI/+gAFf///1AAr/8gAAAABP/1AAr///8gAV//IAAAAA + T/+oAE///+oAK//0AAAAAC//1ABX///kAFf/9AAAAAAv/+oAJ///xACP//QAAAAAL//xACP//8gAr//0 + AAAAAC//9QAT//+QAV//9AE//IAv//qACf//kAI///QBAACAL//8QAn//yACv//0AT/8gC///UAE//8g + BH//9AE//IAv//4gBP/+IAT///QBP/yAL///IAR//kAI///0AT/8gC///xACf/5ACf//9AE//IAv//+Q + An/8gBH9AAQBP/yAIAC/iAE//IAT9F/0AT/8gC/6L8gBP/yAE+kAAAE//IAAAJfIAT/9ACfSAAABP/yA + AABL5AC/+QAnxAAAAT/8gAAAI+QAn/kAb8gAAAF//oAAABP0AJ/5AE+QAAABf/6AAAAJ8gCf+gBPkAAA + An/+QAAACfIAX/oAX7AAAAR//iAAAA36AF/6AJ+gAAAJ//+QAAAF+QBf8gCfoAAAEv//SAAABfkAT/IA + n6AF/0X//6L/oAX5AE/yAL+gBAAX///oACAF/QBP9AC/oAQAf////gAgBf0AL/QAv6AF////////oAX9 + AC/0AL+gBf///////6AF/QAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf////// + /6AF/IAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf///////6AF/IAv9AE/oAX/ + //////+gBfyAL/QBP6AF////////oAX8gC/0AL+gBf///////6AF/QAv9AC/oAX///////+gBf0AL/QA + v6AEAH////4AIAX9AC/yAL+gBAAX///oACAF/QBP8gCfoAX/Rf//ov+gBfkAT/IAn6AAABL//0gAAAX5 + AE/6AJ+gAAAJ//+QAAAF+QBf+gBfsAAABH/+IAAADfoAX/oAT5AAAAJ//kAAAAnyAF/5AE+QAAABf/6A + AAAJ8gCf+QBvyAAAAX/+gAAAE/QAn/kAJ8QAAAE//IAAACPkAJ/9ACfSAAABP/yAAABL5AC//IAT6QAA + AT/8gAAAl8gBP/yAE/Rf9AE//IAv+i/IAT/8gBH9AAQBP/yAIAC/iAE//kAJ///0AT/8gC///5ACf/5A + CP//9AE//IAv//8QAn/+IAT///QBP/yAL///IAR//yAEf//0AT/8gC///iAE//8gAr//9AE//IAv//1A + BP//kAI///QBAACAL//8QAn//5ABX//0AT/8gC//+oAJ///IAK//9AAAAAAv//UAE///xACP//QAAAAA + L//xACP//+QAV//0AAAAAC//6gAn///qACv/9AAAAAAv/9QAV///8gAV//IAAAAAT/+oAE////UACv/y + AAAAAE//UACv///6gAF/8QAAAACP/oABX////AAAv/iAAAABH/0AAD////1AAV/6QAAAAl/6gAK////+ + oACn/RAAAAi/5QAFf////1AAS/5F//+if9IACv////+oACT/4AAAB/8kABX/////pAARf//////+iAAl + /////9IABN//////+SAAS//////pAAIn/////+RAAJf/////9IAAhf////+hAAEv//////pAACF////+ + hAACX//////9IAAID///8BAABL///////pAAAQD//wCAAAl///////8gAAAoAAAUAAAE////////0gAA + ANALIAAAS////////+kAAAAL0AAAAJf////////yQAAAAAAAAAJP/////////RAAAAAAAAAIv/////// + //5IAAAAAAAAEn//////////ogAAAAAAAEX//////////+hAAAAAAAIX///////////6EAAAAAAIX/// + /////////oIAAAAAQX////////////+QoAAABQn/////////////8BAAAIgP//////////////+AX/oA + /////////////////AAAP/////////////////////////////////////////////////////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/ProductForm.Designer.cs b/ProductForm.Designer.cs new file mode 100644 index 0000000..6f03033 --- /dev/null +++ b/ProductForm.Designer.cs @@ -0,0 +1,342 @@ +namespace Neshina1703 +{ + partial class ProductForm + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.Label lblTitle; + private System.Windows.Forms.Label lblName; + private System.Windows.Forms.Label lblPrice; + private System.Windows.Forms.Label lblDiscount; + private System.Windows.Forms.Label lblQuantity; + private System.Windows.Forms.Label lblBatch; + private System.Windows.Forms.Label lblSupplier; + private System.Windows.Forms.Label lblStatus; + private System.Windows.Forms.Label lblImage; + private System.Windows.Forms.Label lblAnalog; + private System.Windows.Forms.TextBox txtName; + private System.Windows.Forms.TextBox txtPrice; + private System.Windows.Forms.TextBox txtDiscount; + private System.Windows.Forms.TextBox txtQuantity; + private System.Windows.Forms.TextBox txtBatch; + private System.Windows.Forms.ComboBox cbSupplier; + private System.Windows.Forms.ComboBox cbStatus; + private System.Windows.Forms.TextBox txtImage; + private System.Windows.Forms.Button btnBrowse; + private System.Windows.Forms.CheckBox cbAnalog; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.ErrorProvider errorProvider; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProductForm)); + this.lblTitle = new System.Windows.Forms.Label(); + this.lblName = new System.Windows.Forms.Label(); + this.lblPrice = new System.Windows.Forms.Label(); + this.lblDiscount = new System.Windows.Forms.Label(); + this.lblQuantity = new System.Windows.Forms.Label(); + this.lblBatch = new System.Windows.Forms.Label(); + this.lblSupplier = new System.Windows.Forms.Label(); + this.lblStatus = new System.Windows.Forms.Label(); + this.lblImage = new System.Windows.Forms.Label(); + this.lblAnalog = new System.Windows.Forms.Label(); + this.txtName = new System.Windows.Forms.TextBox(); + this.txtPrice = new System.Windows.Forms.TextBox(); + this.txtDiscount = new System.Windows.Forms.TextBox(); + this.txtQuantity = new System.Windows.Forms.TextBox(); + this.txtBatch = new System.Windows.Forms.TextBox(); + this.cbSupplier = new System.Windows.Forms.ComboBox(); + this.cbStatus = new System.Windows.Forms.ComboBox(); + this.txtImage = new System.Windows.Forms.TextBox(); + this.btnBrowse = new System.Windows.Forms.Button(); + this.cbAnalog = new System.Windows.Forms.CheckBox(); + this.btnSave = new System.Windows.Forms.Button(); + this.btnCancel = new System.Windows.Forms.Button(); + this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.lblPercent1 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); + this.SuspendLayout(); + // + // lblTitle + // + this.lblTitle.AutoSize = true; + this.lblTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Bold); + this.lblTitle.Location = new System.Drawing.Point(12, 15); + this.lblTitle.Name = "lblTitle"; + this.lblTitle.Size = new System.Drawing.Size(70, 24); + this.lblTitle.TabIndex = 0; + this.lblTitle.Text = "Товар"; + // + // lblName + // + this.lblName.AutoSize = true; + this.lblName.Location = new System.Drawing.Point(15, 60); + this.lblName.Name = "lblName"; + this.lblName.Size = new System.Drawing.Size(57, 13); + this.lblName.TabIndex = 1; + this.lblName.Text = "Название"; + // + // lblPrice + // + this.lblPrice.AutoSize = true; + this.lblPrice.Location = new System.Drawing.Point(15, 110); + this.lblPrice.Name = "lblPrice"; + this.lblPrice.Size = new System.Drawing.Size(40, 13); + this.lblPrice.TabIndex = 3; + this.lblPrice.Text = "Цена *"; + // + // lblDiscount + // + this.lblDiscount.AutoSize = true; + this.lblDiscount.Location = new System.Drawing.Point(160, 110); + this.lblDiscount.Name = "lblDiscount"; + this.lblDiscount.Size = new System.Drawing.Size(44, 13); + this.lblDiscount.TabIndex = 5; + this.lblDiscount.Text = "Скидка"; + // + // lblQuantity + // + this.lblQuantity.AutoSize = true; + this.lblQuantity.Location = new System.Drawing.Point(270, 110); + this.lblQuantity.Name = "lblQuantity"; + this.lblQuantity.Size = new System.Drawing.Size(67, 13); + this.lblQuantity.TabIndex = 8; + this.lblQuantity.Text = "На складе *"; + // + // lblBatch + // + this.lblBatch.AutoSize = true; + this.lblBatch.Location = new System.Drawing.Point(15, 160); + this.lblBatch.Name = "lblBatch"; + this.lblBatch.Size = new System.Drawing.Size(79, 13); + this.lblBatch.TabIndex = 10; + this.lblBatch.Text = "Номер партии"; + // + // lblSupplier + // + this.lblSupplier.AutoSize = true; + this.lblSupplier.Location = new System.Drawing.Point(190, 160); + this.lblSupplier.Name = "lblSupplier"; + this.lblSupplier.Size = new System.Drawing.Size(65, 13); + this.lblSupplier.TabIndex = 12; + this.lblSupplier.Text = "Поставщик"; + // + // lblStatus + // + this.lblStatus.AutoSize = true; + this.lblStatus.Location = new System.Drawing.Point(15, 210); + this.lblStatus.Name = "lblStatus"; + this.lblStatus.Size = new System.Drawing.Size(43, 13); + this.lblStatus.TabIndex = 14; + this.lblStatus.Text = "Отпуск"; + // + // lblImage + // + this.lblImage.AutoSize = true; + this.lblImage.Location = new System.Drawing.Point(190, 210); + this.lblImage.Name = "lblImage"; + this.lblImage.Size = new System.Drawing.Size(77, 13); + this.lblImage.TabIndex = 16; + this.lblImage.Text = "Изображение"; + // + // lblAnalog + // + this.lblAnalog.AutoSize = true; + this.lblAnalog.Location = new System.Drawing.Point(15, 260); + this.lblAnalog.Name = "lblAnalog"; + this.lblAnalog.Size = new System.Drawing.Size(94, 13); + this.lblAnalog.TabIndex = 19; + this.lblAnalog.Text = "Наличие аналога"; + // + // txtName + // + this.txtName.Location = new System.Drawing.Point(18, 76); + this.txtName.Name = "txtName"; + this.txtName.Size = new System.Drawing.Size(350, 20); + this.txtName.TabIndex = 0; + this.txtName.Validating += new System.ComponentModel.CancelEventHandler(this.txtName_Validating); + // + // txtPrice + // + this.txtPrice.Location = new System.Drawing.Point(18, 126); + this.txtPrice.Name = "txtPrice"; + this.txtPrice.Size = new System.Drawing.Size(120, 20); + this.txtPrice.TabIndex = 1; + this.txtPrice.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtPrice_KeyPress); + this.txtPrice.Validating += new System.ComponentModel.CancelEventHandler(this.txtPrice_Validating); + // + // txtDiscount + // + this.txtDiscount.Location = new System.Drawing.Point(163, 126); + this.txtDiscount.Name = "txtDiscount"; + this.txtDiscount.Size = new System.Drawing.Size(80, 20); + this.txtDiscount.TabIndex = 2; + this.txtDiscount.Text = "0"; + this.txtDiscount.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtDiscount_KeyPress); + // + // txtQuantity + // + this.txtQuantity.Location = new System.Drawing.Point(273, 126); + this.txtQuantity.Name = "txtQuantity"; + this.txtQuantity.Size = new System.Drawing.Size(95, 20); + this.txtQuantity.TabIndex = 3; + this.txtQuantity.Text = "0"; + this.txtQuantity.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtQuantity_KeyPress); + this.txtQuantity.Validating += new System.ComponentModel.CancelEventHandler(this.txtQuantity_Validating); + // + // txtBatch + // + this.txtBatch.Location = new System.Drawing.Point(18, 176); + this.txtBatch.Name = "txtBatch"; + this.txtBatch.Size = new System.Drawing.Size(150, 20); + this.txtBatch.TabIndex = 4; + // + // cbSupplier + // + this.cbSupplier.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbSupplier.FormattingEnabled = true; + this.cbSupplier.Location = new System.Drawing.Point(193, 176); + this.cbSupplier.Name = "cbSupplier"; + this.cbSupplier.Size = new System.Drawing.Size(175, 21); + this.cbSupplier.TabIndex = 5; + // + // cbStatus + // + this.cbStatus.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cbStatus.FormattingEnabled = true; + this.cbStatus.Items.AddRange(new object[] { + "Свободно", + "По рецепту"}); + this.cbStatus.Location = new System.Drawing.Point(18, 226); + this.cbStatus.Name = "cbStatus"; + this.cbStatus.Size = new System.Drawing.Size(150, 21); + this.cbStatus.TabIndex = 6; + this.cbStatus.Validating += new System.ComponentModel.CancelEventHandler(this.cbStatus_Validating); + // + // txtImage + // + this.txtImage.Location = new System.Drawing.Point(193, 226); + this.txtImage.Name = "txtImage"; + this.txtImage.ReadOnly = true; + this.txtImage.Size = new System.Drawing.Size(140, 20); + this.txtImage.TabIndex = 7; + // + // btnBrowse + // + this.btnBrowse.Location = new System.Drawing.Point(336, 225); + this.btnBrowse.Name = "btnBrowse"; + this.btnBrowse.Size = new System.Drawing.Size(32, 23); + this.btnBrowse.TabIndex = 8; + this.btnBrowse.Text = "..."; + this.btnBrowse.UseVisualStyleBackColor = true; + this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); + // + // cbAnalog + // + this.cbAnalog.AutoSize = true; + this.cbAnalog.Location = new System.Drawing.Point(18, 279); + this.cbAnalog.Name = "cbAnalog"; + this.cbAnalog.Size = new System.Drawing.Size(41, 17); + this.cbAnalog.TabIndex = 9; + this.cbAnalog.Text = "Да"; + this.cbAnalog.UseVisualStyleBackColor = true; + // + // btnSave + // + this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(180)))), ((int)(((byte)(80))))); + this.btnSave.FlatAppearance.BorderSize = 0; + this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnSave.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold); + this.btnSave.ForeColor = System.Drawing.Color.White; + this.btnSave.Location = new System.Drawing.Point(16, 320); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(120, 40); + this.btnSave.TabIndex = 10; + this.btnSave.Text = "Сохранить"; + this.btnSave.UseVisualStyleBackColor = false; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // btnCancel + // + this.btnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.btnCancel.FlatAppearance.BorderSize = 0; + this.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold); + this.btnCancel.ForeColor = System.Drawing.Color.White; + this.btnCancel.Location = new System.Drawing.Point(155, 320); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(100, 40); + this.btnCancel.TabIndex = 11; + this.btnCancel.Text = "Отмена"; + this.btnCancel.UseVisualStyleBackColor = false; + this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); + // + // errorProvider + // + this.errorProvider.ContainerControl = this; + // + // lblPercent1 + // + this.lblPercent1.AutoSize = true; + this.lblPercent1.Location = new System.Drawing.Point(246, 129); + this.lblPercent1.Name = "lblPercent1"; + this.lblPercent1.Size = new System.Drawing.Size(15, 13); + this.lblPercent1.TabIndex = 6; + this.lblPercent1.Text = "%"; + // + // ProductForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(385, 380); + this.Controls.Add(this.lblTitle); + this.Controls.Add(this.lblName); + this.Controls.Add(this.txtName); + this.Controls.Add(this.lblPrice); + this.Controls.Add(this.txtPrice); + this.Controls.Add(this.lblDiscount); + this.Controls.Add(this.txtDiscount); + this.Controls.Add(this.lblPercent1); + this.Controls.Add(this.lblQuantity); + this.Controls.Add(this.txtQuantity); + this.Controls.Add(this.lblBatch); + this.Controls.Add(this.txtBatch); + this.Controls.Add(this.lblSupplier); + this.Controls.Add(this.cbSupplier); + this.Controls.Add(this.lblStatus); + this.Controls.Add(this.cbStatus); + this.Controls.Add(this.lblImage); + this.Controls.Add(this.txtImage); + this.Controls.Add(this.btnBrowse); + this.Controls.Add(this.lblAnalog); + this.Controls.Add(this.cbAnalog); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.btnCancel); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ProductForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Товар"; + this.Load += new System.EventHandler(this.ProductForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + private System.Windows.Forms.Label lblPercent1; + } +} \ No newline at end of file diff --git a/ProductForm.cs b/ProductForm.cs new file mode 100644 index 0000000..8dd739b --- /dev/null +++ b/ProductForm.cs @@ -0,0 +1,309 @@ +using System; +using System.Data; +using System.IO; +using System.Windows.Forms; +using MySql.Data.MySqlClient; + +namespace Neshina1703 +{ + public partial class ProductForm : Form + { + private int productId; + private bool IsNew => productId == -1; + private string selectedImageFile = null; + + public ProductForm(int productId) + { + InitializeComponent(); + this.productId = productId; + + if (!IsNew) + { + this.Text = "Редактирование товара"; + lblTitle.Text = "Редактирование"; + } + else + { + this.Text = " Новый товар"; + lblTitle.Text = " Новый товар"; + } + } + + private void ProductForm_Load(object sender, EventArgs e) + { + LoadSuppliers(); + LoadStatuses(); + + if (!IsNew) + LoadProductData(); + } + + private void LoadSuppliers() + { + try + { + var query = "SELECT id, supplier_name FROM suppliers ORDER BY supplier_name"; + var suppliers = DB.ExecuteQuery(query); + + cbSupplier.DataSource = suppliers; + cbSupplier.DisplayMember = "supplier_name"; + cbSupplier.ValueMember = "id"; + cbSupplier.SelectedIndex = -1; + } + catch (Exception ex) + { + MessageBox.Show("Ошибка загрузки поставщиков: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadStatuses() + { + try + { + var query = "SELECT id, status_name FROM dispensing_statuses ORDER BY id"; + var statuses = DB.ExecuteQuery(query); + + cbStatus.DataSource = statuses; + cbStatus.DisplayMember = "status_name"; + cbStatus.ValueMember = "id"; + } + catch (Exception ex) + { + MessageBox.Show("Ошибка загрузки статусов: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void LoadProductData() + { + try + { + var query = "SELECT * FROM medications WHERE id = @id"; + var parameters = new MySqlParameter[] { new MySqlParameter("@id", productId) }; + var row = DB.ExecuteQuery(query, parameters).Rows[0]; + + txtName.Text = row["medication_name"].ToString(); + txtPrice.Text = row["price"].ToString(); + + if (row["discount_percent"] != DBNull.Value) + txtDiscount.Text = Convert.ToDecimal(row["discount_percent"]).ToString("0"); + else + txtDiscount.Text = "0"; + + txtQuantity.Text = row["stock_quantity"].ToString(); + txtBatch.Text = row["batch_number"] != DBNull.Value ? row["batch_number"].ToString() : ""; + + if (row["supplier_id"] != DBNull.Value) + cbSupplier.SelectedValue = row["supplier_id"]; + + if (row["dispensing_status_id"] != DBNull.Value) + cbStatus.SelectedValue = row["dispensing_status_id"]; + + txtImage.Text = row["image_filename"] != DBNull.Value ? row["image_filename"].ToString() : ""; + selectedImageFile = txtImage.Text; + + if (row["has_analog"] != DBNull.Value) + cbAnalog.Checked = Convert.ToBoolean(row["has_analog"]); + } + catch (Exception ex) + { + MessageBox.Show("Ошибка загрузки данных: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + this.Close(); + } + } + + private void txtPrice_KeyPress(object sender, KeyPressEventArgs e) + { + if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.') + e.Handled = true; + if (e.KeyChar == '.' && (sender as TextBox).Text.Contains(".")) + e.Handled = true; + } + + private void txtDiscount_KeyPress(object sender, KeyPressEventArgs e) + { + if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) + e.Handled = true; + } + + private void txtQuantity_KeyPress(object sender, KeyPressEventArgs e) + { + if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) + e.Handled = true; + } + + private void txtName_Validating(object sender, System.ComponentModel.CancelEventArgs e) + { + if (string.IsNullOrWhiteSpace(txtName.Text)) + { + errorProvider.SetError(txtName, "Обязательное поле"); + e.Cancel = true; + } + else + errorProvider.SetError(txtName, null); + } + + private void txtPrice_Validating(object sender, System.ComponentModel.CancelEventArgs e) + { + if (string.IsNullOrWhiteSpace(txtPrice.Text) || !decimal.TryParse(txtPrice.Text, out var price) || price <= 0) + { + errorProvider.SetError(txtPrice, "Введите цену > 0"); + e.Cancel = true; + } + else + errorProvider.SetError(txtPrice, null); + } + + private void txtQuantity_Validating(object sender, System.ComponentModel.CancelEventArgs e) + { + if (string.IsNullOrWhiteSpace(txtQuantity.Text) || !int.TryParse(txtQuantity.Text, out var qty) || qty < 0) + { + errorProvider.SetError(txtQuantity, "Введите количество >= 0"); + e.Cancel = true; + } + else + errorProvider.SetError(txtQuantity, null); + } + + private void cbStatus_Validating(object sender, System.ComponentModel.CancelEventArgs e) + { + if (cbStatus.SelectedIndex < 0) + { + errorProvider.SetError(cbStatus, "Выберите статус"); + e.Cancel = true; + } + else + errorProvider.SetError(cbStatus, null); + } + + private void btnBrowse_Click(object sender, EventArgs e) + { + using (var ofd = new OpenFileDialog()) + { + ofd.Filter = "Изображения|*.jpg;*.jpeg;*.png;*.gif|Все файлы|*.*"; + ofd.Title = "Выберите изображение товара"; + + if (ofd.ShowDialog() == DialogResult.OK) + { + selectedImageFile = Path.GetFileName(ofd.FileName); + txtImage.Text = selectedImageFile; + } + } + } + + private void btnSave_Click(object sender, EventArgs e) + { + if (!ValidateChildren()) + { + MessageBox.Show("Исправьте ошибки в форме!", "Ошибка ввода", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + try + { + var parameters = new MySqlParameter[] + { + new MySqlParameter("@name", txtName.Text.Trim()), + new MySqlParameter("@price", decimal.Parse(txtPrice.Text)), + new MySqlParameter("@discount", string.IsNullOrWhiteSpace(txtDiscount.Text) ? 0 : decimal.Parse(txtDiscount.Text)), + new MySqlParameter("@quantity", int.Parse(txtQuantity.Text)), + new MySqlParameter("@batch", string.IsNullOrWhiteSpace(txtBatch.Text) ? (object)DBNull.Value : txtBatch.Text.Trim()), + new MySqlParameter("@supplier", cbSupplier.SelectedValue ?? (object)DBNull.Value), + new MySqlParameter("@status", cbStatus.SelectedValue), + new MySqlParameter("@image", string.IsNullOrWhiteSpace(selectedImageFile) ? (object)DBNull.Value : selectedImageFile), + new MySqlParameter("@analog", cbAnalog.Checked) + }; + + string query; + + if (IsNew) + { + query = @"INSERT INTO medications + (medication_name, price, discount_percent, stock_quantity, batch_number, + supplier_id, dispensing_status_id, image_filename, has_analog) + VALUES + (@name, @price, @discount, @quantity, @batch, @supplier, @status, @image, @analog)"; + } + else + { + query = @"UPDATE medications SET + medication_name = @name, + price = @price, + discount_percent = @discount, + stock_quantity = @quantity, + batch_number = @batch, + supplier_id = @supplier, + dispensing_status_id = @status, + image_filename = @image, + has_analog = @analog + WHERE id = @id"; + + parameters = new MySqlParameter[] + { + new MySqlParameter("@name", txtName.Text.Trim()), + new MySqlParameter("@price", decimal.Parse(txtPrice.Text)), + new MySqlParameter("@discount", string.IsNullOrWhiteSpace(txtDiscount.Text) ? 0 : decimal.Parse(txtDiscount.Text)), + new MySqlParameter("@quantity", int.Parse(txtQuantity.Text)), + new MySqlParameter("@batch", string.IsNullOrWhiteSpace(txtBatch.Text) ? (object)DBNull.Value : txtBatch.Text.Trim()), + new MySqlParameter("@supplier", cbSupplier.SelectedValue ?? (object)DBNull.Value), + new MySqlParameter("@status", cbStatus.SelectedValue), + new MySqlParameter("@image", string.IsNullOrWhiteSpace(selectedImageFile) ? (object)DBNull.Value : selectedImageFile), + new MySqlParameter("@analog", cbAnalog.Checked), + new MySqlParameter("@id", productId) + }; + } + + int result = DB.ExecuteCommand(query, parameters); + + if (result > 0) + { + this.DialogResult = DialogResult.OK; + MessageBox.Show( + IsNew ? "Товар добавлен!" : "Товар обновлён!", + "Успех", + MessageBoxButtons.OK, + MessageBoxIcon.Information); + this.Close(); + } + else + { + MessageBox.Show("Не удалось сохранить товар", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + catch (MySqlException ex) + { + string msg = ex.Number == 1062 + ? " Товар с таким названием уже существует!" + : " Ошибка базы данных: " + ex.Message; + + MessageBox.Show(msg, "Ошибка сохранения", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + catch (Exception ex) + { + MessageBox.Show(" Ошибка: " + ex.Message, "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void btnCancel_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + protected override bool ProcessDialogKey(Keys keyData) + { + if (keyData == Keys.Escape) + { + btnCancel_Click(null, null); + return true; + } + return base.ProcessDialogKey(keyData); + } + } +} \ No newline at end of file diff --git a/ProductForm.resx b/ProductForm.resx new file mode 100644 index 0000000..3365dca --- /dev/null +++ b/ProductForm.resx @@ -0,0 +1,1256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAPY6AQD2OgEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAgAAAAIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAALAAAAHQAAACwAAAA7AAAARgAAAEwAAABTAAAAUwAAAEwAAABGAAAAOwAAACwAAAAdAAAADAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAEAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAoAAAAxAAAAWQAAAIgAAACxAAAAywAAAOUAAAD2AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPYAAADoAAAAzgAAALEAAACJAAAAXQAAADIAAAALAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANAAAAHgAAAC0AAAA4wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC1AAAAegAAADcAAAAHAAAAAAAAAAAAAAAAAAAABAAA + AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAkAAABCAAAAmAAA + AN4AAAD+AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/AAAAPwAAAD+AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA/gAAAP0AAAD8AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAOAAAACaAAAARgAAAAkAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAEAAAAAAAAAAAAAACoAAACKAAAA4AAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD+AAAA/wAAAP4AAAD/AAAA4gAA + AIsAAAArAAAAAAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEkAAAC6AAAA+wAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC8AAAATAAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAA + AFcAAADRAAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD+AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/gAAAP8AAAD/AAAA0gAAAFkAAAAEAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAE4AAADQAAAA/wAAAP4AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD+AAAA/wAA + ANEAAABPAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAC8AAAC6AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACzAAAArAAAAKwAAACzAAAAugAA + AMgAAADXAAAA6gAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC7AAAALgAAAAAAAAACAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAEAAAAAAAAAAkAAACIAAAA+wAAAP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA8gAAAMcAAACWAAAAawAAAEEAAAAlAAAADwAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAPAAAAJQAAAD8AAABoAAAAlgAA + AMUAAADxAAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD7AAAAiQAAAAoAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAAAAAA+AAAA2gAAAP8AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAPwAAADRAAAAjgAA + AEcAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAABIAAAAjAAAANAAAAD8AAAA/wAA + AP8AAAD9AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAPwAAAD/AAAA2gAA + AD4AAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAEAAAADAAAAggAAAP4AAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAA + AP4AAAD/AAAA/wAAANgAAACCAAAAMQAAAAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAA + AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAgAAAC8AAACAAAAA1wAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAA/gAAAIMAAAADAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGQAAAMAAAAD/AAAA+wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP4AAAD/AAAA+gAAAK4AAABFAAAABgAAAAAAAAAAAAAAAQAA + AAQAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAABAAAAAAAA + AAAAAAAFAAAARAAAAKwAAAD5AAAA/wAAAP4AAAD8AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/wAAAMAAAAAaAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AD0AAADlAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD/AAAA9gAA + AJkAAAApAAAAAAAAAAEAAAABAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAEAAAABAAAAAAAAACYAAACYAAAA9wAA + AP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAOYAAAA+AAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABcAAAA+gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPwAAAD/AAAA/AAAAKEAAAAkAAAAAAAAAAEAAAADAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAiAAAAnwAAAPwAAAD/AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAeAAA + AP8AAAD8AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAMIAAAA1AAAAAAAA + AAEAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAA + AAEAAAAAAAAAMwAAAMIAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAA + AP8AAAB5AAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAIYAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD7AAAA/wAAAO8AAABnAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAGUAAADuAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACOAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC7AAAAHQAAAAAAAAADAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAB0AAAC6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAhgAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP4AAAD+AAAAeAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAA + AAAAAAB4AAAA/gAAAP4AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAHoAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAA6gAAAEUAAAAAAAAABAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAABEAAAA6gAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAB5AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABdAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANQAAAAjAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABeAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAQQAAAPoAAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC/AAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAgAA + AAwAAAARAAAAEAAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAAQAAAAEQAAAAwAAAACAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAQAAAAvwAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAPoAAABAAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAB0AAADjAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAtQAA + AAkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAKgAAAJIAAADRAAAA6AAAAO8AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA6AAA + ANEAAACUAAAAKgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAIAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAdAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHkAAAD8AAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAEAAAAEAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL0AAAADAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAIMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC9AAAACQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAPwAAAD7AAAA/QAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD9AAAA+wAAAPwAAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAIAAAAvQAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIIAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABCAAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAA0gAAABEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAASgAAAP8AAAD7AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAASgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAARAAAA0gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AEIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADAAAANUAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOgAAAAkAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAADBAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAADAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAAAPkAAAD/AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAA + APkAAAAlAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABHAAAA/QAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAiAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAANAAAAPoAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAHgAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEYAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAB4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD6AAAANAAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC3AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC2AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAUwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA7AAAACEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACuAAAAAwAA + ABMAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABMAAAADAAAArgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAACIAAADtAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABSAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABnAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAMoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL4AAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAA5AAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAOgAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATgAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAnAAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAnQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAATQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPUAAAAoAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAALwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAlQAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAAvAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACKAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPoAAAAsAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAC0AAAD6AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAACgAAAN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAA + AAAAAAAHAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAKwAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAABIAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABUAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAASAAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAARwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAJkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAQAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAACQAAABHAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAWAAAAEwAAACPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AI8AAABMAAAAWAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAEcAAAAjAAAAAAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAA1AAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACZAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAEYAAADFAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAApgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACBAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + ANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADYAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAP4AAAD+AAAA/QAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACOAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD9AAAA/gAA + AP4AAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + ADIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAeAAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAewAAAP8AAAD7AAAA/AAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABaAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPoAAAD/AAAAewAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANEAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAdwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADkAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABIAAADkAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACzAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACwAAAOMAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAASQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAkQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD6AAAA/wAAAGgAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAGgAAAD/AAAA+gAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACQAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABKAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAKAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAyAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAPEAAAAYAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD7AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA+wAA + APsAAAD8AAAA/QAAAP8AAACOAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAI4AAAD/AAAA/QAA + APwAAAD7AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPsAAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABkAAADyAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADIAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAFsAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZgAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADqAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA6AAA + AA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAiQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACWAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAPkAAACuAAAApwAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKYAAACRAAAAWgAAABEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + ABEAAABaAAAAkQAAAKYAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACnAAAArgAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAlwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACIAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACyAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAGoAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABAAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABrAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD8AAAA/wAAALEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAMAAAA5gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAPoAAAAkAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAA + APoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADmAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAB0AAAD1AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA6gAA + AA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAPAAAA6gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + APUAAAAcAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAA + AP4AAAD/AAAA/gAAAP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AAMAAADXAAAA/wAAAP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAA7AAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AMgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAAOwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAugAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAugAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABGAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACyAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKwAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAUwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFMAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAArAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAArAAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABTAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACyAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABGAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAALoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAALoAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAARgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADsAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAyAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAAA7AAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAAAP4AAAD/AAAA/gAA + AP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADXAAAA/wAA + AP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAdAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOkAAAAOAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADwAAAOoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAAD1AAAAHAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAwAAADmAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA+gAAACQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAlAAAA+gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOYAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAzAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAsgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA+wAAAP8AAABqAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAagAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACxAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AJYAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABAAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAK4AAACnAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKkAAACpAAAApgAAAJAAAABZAAAAEQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAEQAAAFkAAACQAAAApgAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKcAAACuAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACWAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AIgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AFwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADpAAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA6AAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADwAAAAGAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzwAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPsAAAD7AAAA/AAAAP0AAAD/AAAAjgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAACNAAAA/wAAAP0AAAD8AAAA+wAAAPsAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD7AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADOAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAZAAAA8QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAyAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAALAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACRAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APoAAAD/AAAAaAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAZwAAAP8AAAD6AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAJEAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEoAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA4gAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAI0AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADkAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABIAAADkAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACzAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAHkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA0AAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAHwAAAD/AAAA+gAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABZAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAWgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APwAAAD6AAAA/wAAAHwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAADQAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAHcAAAAAAAAABAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAANgAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAP8AAAD/AAAAMQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAIgAAAD/AAAA/gAAAP4AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACOAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP0AAAD+AAAA/gAAAP8AAACJAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAANQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACAAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEcAAADFAAAA+gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPsAAAD/AAAApQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACAAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACaAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANMAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAAkAAAASAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFgAAABMAAAAjwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAACPAAAATAAAAFgAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABHAAAAJAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAANQAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAmQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEgAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AEgAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABUAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFQAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABIAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABHAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAA + AN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAAAAAAAAAHAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKsAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAigAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAAD6AAAALAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAtAAAA+gAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACKAAAAAAAAAAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAwAAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACVAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAC8AAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPQAAAAnAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC4AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAE4AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAJsAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJwAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAE4AAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAMwAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAADgAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAAA5AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADLAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL0AAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAywAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAZwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABnAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADKAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADsAAAAIQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAK4AAAADAAAAEwAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAARAAAAEwAAAAMAAACuAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAIQAAAOwAAAD/AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAFIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC1AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAADUAAAD7AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAB3AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAARwAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAABGAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAdwAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA+gAAADQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAIoAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAABGAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAmAAAA+QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA+QAAACUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AEcAAAD9AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAADAAAANUAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOcAAAAjAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADBAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAQwAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + ANEAAAARAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEsAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAEsAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAEQAA + ANEAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAABCAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAhAAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL0AAAAIAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AIkAAAD/AAAA/AAAAPsAAAD9AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP0AAAD7AAAA/AAA + AP8AAACJAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAgAAAC8AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAgwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHoAAAD8AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAEAAAAswAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL4AAAADAAAAAQAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAdAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALUAAAAIAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAACoAAACSAAAA0QAAAOgAAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7wAAAOgAAADRAAAAlAAA + ACsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAACAAAALMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + AP8AAADjAAAAHQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABBAAAA+gAAAP4AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL4AAAAPAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAACAAAADQAA + ABEAAAAQAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABAAAAARAAAADAAAAAIAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAC+AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA+gAAAEEAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABeAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANIAAAAiAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABfAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAB7AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAOkAAABEAAAAAAAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAQwAAAOkAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAegAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACGAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/gAAAP4AAAB2AAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAABAAAAAAAAAHYAAAD9AAAA/gAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAA + AIcAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAAAAACOAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC6AAAAHAAA + AAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAABwAAAC4AAAA/wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACHAAAA/wAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAADuAAAAZQAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAA + AAAAAABkAAAA7gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAAiAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAB6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP0AAAD/AAAAwQAAADQAAAAAAAAAAQAAAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAAADAAAAAQAAAAAAAAAyAAAAwQAAAP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAD8AAAA/wAAAHkAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABeAAAA+wAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD/AAAA/AAAAJ8AAAAjAAAAAAAA + AAEAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAhAAAAngAA + APsAAAD/AAAA/AAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAA+AAAA5gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAPYAAACYAAAAKAAAAAAAAAABAAAAAQAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAQAAAABAAAAAQAAAAAAAAAmAAAAlwAAAPYAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAADnAAAAPgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAAaAAAAwQAAAP8AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD8AAAA/gAA + AP8AAAD6AAAArQAAAEQAAAAFAAAAAAAAAAAAAAABAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAEAAAAAAAAAAAAAAAUAAABDAAAArAAAAPkAAAD/AAAA/gAA + APwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD/AAAAwQAAABsAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAgwAAAP4AAAD/AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP4AAAD/AAAA/wAAANgAAACAAAAALwAA + AAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAgAA + AC0AAAB/AAAA1gAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APsAAAD/AAAA/gAAAIQAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAPwAAANsAAAD/AAAA/AAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD8AAAA0QAAAI0AAABGAAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAVAAAARwAAAIsAAADQAAAA/AAAAP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAAANoAAAA/AAAAAAAAAAMAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAACgAA + AIoAAAD7AAAA/wAAAPwAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAADyAAAAxwAAAJYAAABrAAAAQAAAACQAAAAOAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAA4AAAAlAAAAPwAAAGYAAACWAAAAxQAAAPEAAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAA + APsAAACKAAAACgAAAAAAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAADAAAAC7AAAA/wAAAP4AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACyAAAArAAAAKwAAACyAAAAugAAAMgAAADXAAAA6gAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC9AAAALwAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAAAAAAAAAABPAAAA0QAAAP8AAAD+AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/gAAAP8AAADSAAAAUAAA + AAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAEAAAAWAAA + ANIAAAD/AAAA/wAAAP4AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAA + AP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APsAAAD+AAAA/gAAAP8AAADTAAAAWgAAAAQAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEoAAAC7AAAA/AAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC9AAAATQAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAMAAAABAAAAAAAAAAAAAAArAAAAigAAAOEAAAD/AAAA/wAAAP8AAAD+AAAA+wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/gAAAP8AAAD+AAAA/wAA + AOIAAACMAAAALAAAAAAAAAAAAAAAAQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAACQAA + AEQAAACZAAAA3gAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD8AAAA/AAAAP4AAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/QAAAPwAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA4QAAAJwAAABGAAAACQAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANQAAAHkAAAC2AAAA5QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC2AAAAewAAADgAAAAIAAAAAAAA + AAAAAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAALAAAAMgAAAFoAAACIAAAAsgAAAMsAAADlAAAA9gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD2AAAA6AAAAM4AAACxAAAAiQAA + AF4AAAAyAAAACwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAEAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAdAAAALAAAADsAAABHAAAATQAAAFMAAABTAAAATAAA + AEcAAAA7AAAALAAAAB0AAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAADAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAIAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// + //////////////////////////////////////wAAD////////////////+AX/oA///////////////w + EAAAiA//////////////kKAAAAUJ/////////////oIAAAAAQX////////////oQAAAAAAhf//////// + ///oQAAAAAACF///////////ogAAAAAAAEX//////////kgAAAAAAAASf/////////0QAAAAAAAACL// + ///////yQAAAAAAAAAJP////////6QAAAAvQAAAAl////////9IAAADQCyAAAEv///////8gAAAoAAAU + AAAE///////+kAABAP//AIAACX///////SAACA////AQAAS///////pAACF////+hAACX//////0gACF + /////6EAAS//////6QABJ//////kQACX/////9IABN//////+SAAS/////+kABF///////6IACX///// + qAAk/+AAAAf/JAAV/////1AAS/5F//+if9IACv////6gAKf9EAAACL/lAAV////9QAFf+kAAAAJf+oAC + v////AAAv/iAAAABH/0AAD////qABX/xAAAAAI/+gAFf///1AAr/8gAAAABP/1AAr///8gAV//IAAAAA + T/+oAE///+oAK//0AAAAAC//1ABX///kAFf/9AAAAAAv/+oAJ///xACP//QAAAAAL//xACP//8gAr//0 + AAAAAC//9QAT//+QAV//9AE//IAv//qACf//kAI///QBAACAL//8QAn//yACv//0AT/8gC///UAE//8g + BH//9AE//IAv//4gBP/+IAT///QBP/yAL///IAR//kAI///0AT/8gC///xACf/5ACf//9AE//IAv//+Q + An/8gBH9AAQBP/yAIAC/iAE//IAT9F/0AT/8gC/6L8gBP/yAE+kAAAE//IAAAJfIAT/9ACfSAAABP/yA + AABL5AC/+QAnxAAAAT/8gAAAI+QAn/kAb8gAAAF//oAAABP0AJ/5AE+QAAABf/6AAAAJ8gCf+gBPkAAA + An/+QAAACfIAX/oAX7AAAAR//iAAAA36AF/6AJ+gAAAJ//+QAAAF+QBf8gCfoAAAEv//SAAABfkAT/IA + n6AF/0X//6L/oAX5AE/yAL+gBAAX///oACAF/QBP9AC/oAQAf////gAgBf0AL/QAv6AF////////oAX9 + AC/0AL+gBf///////6AF/QAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf////// + /6AF/IAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf///////6AF/IAv9AE/oAX/ + //////+gBfyAL/QBP6AF////////oAX8gC/0AL+gBf///////6AF/QAv9AC/oAX///////+gBf0AL/QA + v6AEAH////4AIAX9AC/yAL+gBAAX///oACAF/QBP8gCfoAX/Rf//ov+gBfkAT/IAn6AAABL//0gAAAX5 + AE/6AJ+gAAAJ//+QAAAF+QBf+gBfsAAABH/+IAAADfoAX/oAT5AAAAJ//kAAAAnyAF/5AE+QAAABf/6A + AAAJ8gCf+QBvyAAAAX/+gAAAE/QAn/kAJ8QAAAE//IAAACPkAJ/9ACfSAAABP/yAAABL5AC//IAT6QAA + AT/8gAAAl8gBP/yAE/Rf9AE//IAv+i/IAT/8gBH9AAQBP/yAIAC/iAE//kAJ///0AT/8gC///5ACf/5A + CP//9AE//IAv//8QAn/+IAT///QBP/yAL///IAR//yAEf//0AT/8gC///iAE//8gAr//9AE//IAv//1A + BP//kAI///QBAACAL//8QAn//5ABX//0AT/8gC//+oAJ///IAK//9AAAAAAv//UAE///xACP//QAAAAA + L//xACP//+QAV//0AAAAAC//6gAn///qACv/9AAAAAAv/9QAV///8gAV//IAAAAAT/+oAE////UACv/y + AAAAAE//UACv///6gAF/8QAAAACP/oABX////AAAv/iAAAABH/0AAD////1AAV/6QAAAAl/6gAK////+ + oACn/RAAAAi/5QAFf////1AAS/5F//+if9IACv////+oACT/4AAAB/8kABX/////pAARf//////+iAAl + /////9IABN//////+SAAS//////pAAIn/////+RAAJf/////9IAAhf////+hAAEv//////pAACF////+ + hAACX//////9IAAID///8BAABL///////pAAAQD//wCAAAl///////8gAAAoAAAUAAAE////////0gAA + ANALIAAAS////////+kAAAAL0AAAAJf////////yQAAAAAAAAAJP/////////RAAAAAAAAAIv/////// + //5IAAAAAAAAEn//////////ogAAAAAAAEX//////////+hAAAAAAAIX///////////6EAAAAAAIX/// + /////////oIAAAAAQX////////////+QoAAABQn/////////////8BAAAIgP//////////////+AX/oA + /////////////////AAAP/////////////////////////////////////////////////////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..f0e863c --- /dev/null +++ b/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Neshina1703 +{ + internal static class Program + { + /// + /// Главная точка входа для приложения. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new LoginForm()); + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..447308f --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанных со сборкой. +[assembly: AssemblyTitle("Neshina1703")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Neshina1703")] +[assembly: AssemblyCopyright("Copyright © 2026")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, следует установить атрибут ComVisible в TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("1a170f4a-81fe-440f-bd92-8c7a76ecd60f")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..73408d2 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программным средством. +// Версия среды выполнения: 4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если +// код создан повторно. +// +//------------------------------------------------------------------------------ + +namespace Neshina1703.Properties +{ + + + /// + /// Класс ресурсов со строгим типом для поиска локализованных строк и пр. + /// + // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder + // класс с помощью таких средств, как ResGen или Visual Studio. + // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen + // с параметром /str или заново постройте свой VS-проект. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Neshina1703.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Переопределяет свойство CurrentUICulture текущего потока для всех + /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs new file mode 100644 index 0000000..bc81082 --- /dev/null +++ b/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Neshina1703.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 + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Properties/Settings.settings b/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/QRCodeGenerator.cs b/QRCodeGenerator.cs new file mode 100644 index 0000000..6aaae45 --- /dev/null +++ b/QRCodeGenerator.cs @@ -0,0 +1,202 @@ +using System; +using System.Drawing; +using System.IO; +using System.Text; +using System.Windows.Forms; +using QRCoder; +using MySql.Data.MySqlClient; +using Newtonsoft.Json; +using System.Xml; + +namespace Neshina1703 +{ + public static class QRCodeHelper + { + private static readonly string QRCodeFolder = Path.Combine( + Application.StartupPath, "QRCodes"); + public static string BaseUrl = "http://localhost:5000/medication/"; + + static QRCodeHelper() + { + if (!Directory.Exists(QRCodeFolder)) + Directory.CreateDirectory(QRCodeFolder); + } + + public static string GenerateQRCodeForMedication(int medicationId, string medicationName) + { + try + { + var medicationInfo = GetMedicationInfo(medicationId); + string qrData = CreateQRCodeData(medicationInfo); + using (var qrGenerator = new QRCodeGenerator()) + using (var qrCodeData = qrGenerator.CreateQrCode(qrData, QRCodeGenerator.ECCLevel.Q)) + using (var qrCode = new PngByteQRCode(qrCodeData)) + { + string fileName = $"medication_{medicationId}.png"; + string filePath = Path.Combine(QRCodeFolder, fileName); + File.WriteAllBytes(filePath, qrCode.GetGraphic(20)); + SaveQRCodePath(medicationId, filePath); + return filePath; + } + } + catch (Exception ex) + { + MessageBox.Show($"Ошибка генерации QR-кода: {ex.Message}", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return null; + } + } + + + private static string CreateQRCodeData(MedicationInfo info) + { + var qrData = new + { + id = info.Id, + name = info.Name, + price = info.Price, + stock = info.StockQuantity, + supplier = info.Supplier, + status = info.DispensingStatus, + instructions = info.Instructions, + analogs = info.Analogs, + generated = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + }; + + return JsonConvert.SerializeObject(qrData, Newtonsoft.Json.Formatting.Indented); + } + + + private static MedicationInfo GetMedicationInfo(int medicationId) + { + var query = @"SELECT + m.id, + m.medication_name, + m.price, + m.stock_quantity, + m.instructions, + m.has_analog, + s.supplier_name, + ds.status_name, + (SELECT GROUP_CONCAT(m2.medication_name SEPARATOR ', ') + FROM medications m2 + WHERE m2.id != m.id + AND EXISTS ( + SELECT 1 FROM medications m3 + WHERE m3.medication_name LIKE CONCAT('%', SUBSTRING_INDEX(m.medication_name, ' ', 1), '%') + AND m3.id = m2.id + ) + ) as analogs + FROM medications m + LEFT JOIN suppliers s ON m.supplier_id = s.id + LEFT JOIN dispensing_statuses ds ON m.dispensing_status_id = ds.id + WHERE m.id = @id"; + + var parameters = new MySqlParameter[] + { + new MySqlParameter("@id", medicationId) + }; + var table = DB.ExecuteQuery(query, parameters); + + if (table.Rows.Count == 0) + throw new Exception("Товар не найден"); + var row = table.Rows[0]; + return new MedicationInfo + { + Id = Convert.ToInt32(row["id"]), + Name = row["medication_name"].ToString(), + Price = Convert.ToDecimal(row["price"]), + StockQuantity = Convert.ToInt32(row["stock_quantity"]), + Supplier = row["supplier_name"]?.ToString(), + DispensingStatus = row["status_name"]?.ToString(), + Instructions = row["instructions"]?.ToString() ?? "Инструкция не указана", + Analogs = row["analogs"] != DBNull.Value ? row["analogs"].ToString() : "Аналоги не найдены" + }; + } + + private static void SaveQRCodePath(int medicationId, string filePath) + { + var query = @"UPDATE medications SET qr_code_path = @path WHERE id = @id"; + var parameters = new MySqlParameter[] + { + new MySqlParameter("@path", filePath), + new MySqlParameter("@id", medicationId) + }; + + DB.ExecuteCommand(query, parameters); + } + + + public static void GenerateAllQRCodes() + { + var query = "SELECT id, medication_name FROM medications"; + var medications = DB.ExecuteQuery(query); + + int count = 0; + foreach (System.Data.DataRow row in medications.Rows) + { + int id = Convert.ToInt32(row["id"]); + string name = row["medication_name"].ToString(); + + GenerateQRCodeForMedication(id, name); + count++; + } + + MessageBox.Show($"Сгенерировано QR-кодов: {count}", "Готово", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + + public static void ShowQRCodeInfo(string qrCodePath) + { + if (!File.Exists(qrCodePath)) + { + MessageBox.Show("QR-код не найден", "Ошибка", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + string fileName = Path.GetFileName(qrCodePath); + if (fileName.StartsWith("medication_") && fileName.EndsWith(".png")) + { + string idStr = fileName.Replace("medication_", "").Replace(".png", ""); + if (int.TryParse(idStr, out int medicationId)) + { + var info = GetMedicationInfo(medicationId); + DisplayMedicationInfo(info); + } + } + } + + private static void DisplayMedicationInfo(MedicationInfo info) + { + string message = $@" +💊 {info.Name} + +💰 Цена: {info.Price} ₽ +📦 На складе: {info.StockQuantity} шт. +🏢 Поставщик: {info.Supplier} +📋 Отпуск: {info.DispensingStatus} + +📖 Инструкция: +{info.Instructions} + +🔄 Аналоги: +{info.Analogs} +"; + MessageBox.Show(message, "Информация о препарате", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + + + public class MedicationInfo + { + public int Id { get; set; } + public string Name { get; set; } + public decimal Price { get; set; } + public int StockQuantity { get; set; } + public string Supplier { get; set; } + public string DispensingStatus { get; set; } + public string Instructions { get; set; } + public string Analogs { get; set; } + } +} \ No newline at end of file diff --git a/QRCodeViewerForm.Designer.cs b/QRCodeViewerForm.Designer.cs new file mode 100644 index 0000000..a2fa04a --- /dev/null +++ b/QRCodeViewerForm.Designer.cs @@ -0,0 +1,102 @@ +namespace Neshina1703 +{ + partial class QRCodeViewerForm + { + private System.ComponentModel.IContainer components = null; + private System.Windows.Forms.PictureBox pictureBoxQR; + private System.Windows.Forms.Button btnPrint; + private System.Windows.Forms.Button btnSave; + private System.Windows.Forms.Button btnClose; + + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + components.Dispose(); + base.Dispose(disposing); + } + + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QRCodeViewerForm)); + this.pictureBoxQR = new System.Windows.Forms.PictureBox(); + this.btnPrint = new System.Windows.Forms.Button(); + this.btnSave = new System.Windows.Forms.Button(); + this.btnClose = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQR)).BeginInit(); + this.SuspendLayout(); + // + // pictureBoxQR + // + this.pictureBoxQR.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBoxQR.Location = new System.Drawing.Point(50, 20); + this.pictureBoxQR.Name = "pictureBoxQR"; + this.pictureBoxQR.Size = new System.Drawing.Size(300, 300); + this.pictureBoxQR.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBoxQR.TabIndex = 0; + this.pictureBoxQR.TabStop = false; + // + // btnPrint + // + this.btnPrint.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(91)))), ((int)(((byte)(209)))), ((int)(((byte)(45))))); + this.btnPrint.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnPrint.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnPrint.ForeColor = System.Drawing.Color.Black; + this.btnPrint.Location = new System.Drawing.Point(50, 340); + this.btnPrint.Name = "btnPrint"; + this.btnPrint.Size = new System.Drawing.Size(100, 35); + this.btnPrint.TabIndex = 1; + this.btnPrint.Text = "Печать"; + this.btnPrint.UseVisualStyleBackColor = false; + this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click); + // + // btnSave + // + this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(253)))), ((int)(((byte)(161))))); + this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnSave.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnSave.ForeColor = System.Drawing.Color.Black; + this.btnSave.Location = new System.Drawing.Point(160, 340); + this.btnSave.Name = "btnSave"; + this.btnSave.Size = new System.Drawing.Size(80, 35); + this.btnSave.TabIndex = 2; + this.btnSave.Text = "Сохр."; + this.btnSave.UseVisualStyleBackColor = false; + this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // btnClose + // + this.btnClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(176)))), ((int)(((byte)(253)))), ((int)(((byte)(161))))); + this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnClose.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold); + this.btnClose.ForeColor = System.Drawing.Color.Black; + this.btnClose.Location = new System.Drawing.Point(250, 340); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(100, 35); + this.btnClose.TabIndex = 4; + this.btnClose.Text = "✖ Закрыть"; + this.btnClose.UseVisualStyleBackColor = false; + this.btnClose.Click += new System.EventHandler(this.btnClose_Click); + // + // QRCodeViewerForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.ClientSize = new System.Drawing.Size(400, 450); + this.Controls.Add(this.pictureBoxQR); + this.Controls.Add(this.btnPrint); + this.Controls.Add(this.btnSave); + this.Controls.Add(this.btnClose); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.Name = "QRCodeViewerForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "QR-код товара"; + this.Load += new System.EventHandler(this.QRCodeViewerForm_Load); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxQR)).EndInit(); + this.ResumeLayout(false); + + } + } +} \ No newline at end of file diff --git a/QRCodeViewerForm.cs b/QRCodeViewerForm.cs new file mode 100644 index 0000000..2aa985a --- /dev/null +++ b/QRCodeViewerForm.cs @@ -0,0 +1,121 @@ +using System; +using System.Drawing; +using System.Drawing.Printing; +using System.IO; +using System.Windows.Forms; + +namespace Neshina1703 +{ + public partial class QRCodeViewerForm : Form + { + private int medicationId; + private string qrCodePath; + + public QRCodeViewerForm(int medicationId) + { + InitializeComponent(); + this.medicationId = medicationId; + } + + private void QRCodeViewerForm_Load(object sender, EventArgs e) + { + LoadQRCode(); + } + + private void LoadQRCode() + { + // Получить путь к QR-коду из БД + var query = "SELECT qr_code_path, medication_name FROM medications WHERE id = @id"; + var parameters = new MySql.Data.MySqlClient.MySqlParameter[] + { + new MySql.Data.MySqlClient.MySqlParameter("@id", medicationId) + }; + + var table = DB.ExecuteQuery(query, parameters); + + if (table.Rows.Count > 0) + { + string name = table.Rows[0]["medication_name"].ToString(); + qrCodePath = table.Rows[0]["qr_code_path"]?.ToString(); + + this.Text = $"QR-код: {name}"; + + if (!string.IsNullOrEmpty(qrCodePath) && File.Exists(qrCodePath)) + { + pictureBoxQR.Image = Image.FromFile(qrCodePath); + } + else + { + // Сгенерировать если не существует + qrCodePath = QRCodeHelper.GenerateQRCodeForMedication(medicationId, name); + if (!string.IsNullOrEmpty(qrCodePath)) + pictureBoxQR.Image = Image.FromFile(qrCodePath); + } + } + } + + private void btnPrint_Click(object sender, EventArgs e) + { + if (pictureBoxQR.Image != null) + { + PrintDocument printDoc = new PrintDocument(); + printDoc.PrintPage += (s, ev) => + { + ev.Graphics.DrawImage(pictureBoxQR.Image, + new Rectangle(100, 100, 400, 400)); + }; + + PrintDialog printDialog = new PrintDialog(); + printDialog.Document = printDoc; + + if (printDialog.ShowDialog() == DialogResult.OK) + printDoc.Print(); + } + } + + private void btnSave_Click(object sender, EventArgs e) + { + if (pictureBoxQR.Image != null) + { + SaveFileDialog saveDialog = new SaveFileDialog(); + saveDialog.Filter = "PNG Images|*.png|JPEG Images|*.jpg"; + saveDialog.Title = "Сохранить QR-код"; + + if (saveDialog.ShowDialog() == DialogResult.OK) + { + pictureBoxQR.Image.Save(saveDialog.FileName); + MessageBox.Show("QR-код сохранен!", "Успех", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + } + + private void btnGenerateNew_Click(object sender, EventArgs e) + { + var query = "SELECT medication_name FROM medications WHERE id = @id"; + var parameters = new MySql.Data.MySqlClient.MySqlParameter[] + { + new MySql.Data.MySqlClient.MySqlParameter("@id", medicationId) + }; + + var table = DB.ExecuteQuery(query, parameters); + if (table.Rows.Count > 0) + { + string name = table.Rows[0]["medication_name"].ToString(); + qrCodePath = QRCodeHelper.GenerateQRCodeForMedication(medicationId, name); + + if (!string.IsNullOrEmpty(qrCodePath)) + { + pictureBoxQR.Image = Image.FromFile(qrCodePath); + MessageBox.Show("QR-код перегенерирован!", "Успех", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + } + + private void btnClose_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} \ No newline at end of file diff --git a/QRCodeViewerForm.resx b/QRCodeViewerForm.resx new file mode 100644 index 0000000..cad1b2c --- /dev/null +++ b/QRCodeViewerForm.resx @@ -0,0 +1,1253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAPY6AQD2OgEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAgAAAAIAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAALAAAAHQAAACwAAAA7AAAARgAAAEwAAABTAAAAUwAAAEwAAABGAAAAOwAAACwAAAAdAAAADAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAEAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAoAAAAxAAAAWQAAAIgAAACxAAAAywAAAOUAAAD2AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPYAAADoAAAAzgAAALEAAACJAAAAXQAAADIAAAALAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANAAAAHgAAAC0AAAA4wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC1AAAAegAAADcAAAAHAAAAAAAAAAAAAAAAAAAABAAA + AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAkAAABCAAAAmAAA + AN4AAAD+AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/AAAAPwAAAD+AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA/gAAAP0AAAD8AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAOAAAACaAAAARgAAAAkAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAEAAAAAAAAAAAAAACoAAACKAAAA4AAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD+AAAA/wAAAP4AAAD/AAAA4gAA + AIsAAAArAAAAAAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEkAAAC6AAAA+wAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC8AAAATAAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAA + AFcAAADRAAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD+AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/gAAAP8AAAD/AAAA0gAAAFkAAAAEAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAE4AAADQAAAA/wAAAP4AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD+AAAA/wAA + ANEAAABPAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAC8AAAC6AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACzAAAArAAAAKwAAACzAAAAugAA + AMgAAADXAAAA6gAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC7AAAALgAAAAAAAAACAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAEAAAAAAAAAAkAAACIAAAA+wAAAP8AAAD8AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA8gAAAMcAAACWAAAAawAAAEEAAAAlAAAADwAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAPAAAAJQAAAD8AAABoAAAAlgAA + AMUAAADxAAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/AAAAP8AAAD7AAAAiQAAAAoAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAAAAAA+AAAA2gAAAP8AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAPwAAADRAAAAjgAA + AEcAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAABIAAAAjAAAANAAAAD8AAAA/wAA + AP8AAAD9AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAPwAAAD/AAAA2gAA + AD4AAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAEAAAADAAAAggAAAP4AAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAA + AP4AAAD/AAAA/wAAANgAAACCAAAAMQAAAAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAA + AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAgAAAC8AAACAAAAA1wAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAA/gAAAIMAAAADAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGQAAAMAAAAD/AAAA+wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP4AAAD/AAAA+gAAAK4AAABFAAAABgAAAAAAAAAAAAAAAQAA + AAQAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAQAAAABAAAAAAAA + AAAAAAAFAAAARAAAAKwAAAD5AAAA/wAAAP4AAAD8AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD7AAAA/wAAAMAAAAAaAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AD0AAADlAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP0AAAD/AAAA9gAA + AJkAAAApAAAAAAAAAAEAAAABAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAEAAAABAAAAAAAAACYAAACYAAAA9wAA + AP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAOYAAAA+AAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABcAAAA+gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPwAAAD/AAAA/AAAAKEAAAAkAAAAAAAAAAEAAAADAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAiAAAAnwAAAPwAAAD/AAAA/AAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAAeAAA + AP8AAAD8AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAMIAAAA1AAAAAAAA + AAEAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAA + AAEAAAAAAAAAMwAAAMIAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAA + AP8AAAB5AAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAIYAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD7AAAA/wAAAO8AAABnAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAGUAAADuAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACOAAAA/wAA + APsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC7AAAAHQAAAAAAAAADAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAB0AAAC6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAhgAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP4AAAD+AAAAeAAAAAAAAAABAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAQAA + AAAAAAB4AAAA/gAAAP4AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACHAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAHoAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAA6gAAAEUAAAAAAAAABAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAABEAAAA6gAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAB5AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABdAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANQAAAAjAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABeAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAQQAAAPoAAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC/AAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAgAA + AAwAAAARAAAAEAAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAAQAAAAEQAAAAwAAAACAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAQAAAAvwAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAPoAAABAAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAB0AAADjAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAtQAA + AAkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAKgAAAJIAAADRAAAA6AAAAO8AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA6AAA + ANEAAACUAAAAKgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAIAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAdAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHkAAAD8AAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAEAAAAEAAAAtAAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL0AAAADAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAIMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAAC9AAAACQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAPwAAAD7AAAA/QAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD9AAAA+wAAAPwAAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAIAAAAvQAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIIAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABCAAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAA0gAAABEAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAASgAAAP8AAAD7AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAASgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAARAAAA0gAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AEIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADAAAANUAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOgAAAAkAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAADBAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAADAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAASAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAAAPkAAAD/AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAA + APkAAAAlAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABHAAAA/QAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAiAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAANAAAAPoAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAHgAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEYAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAB4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD6AAAANAAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC3AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC2AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAUwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA7AAAACEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACuAAAAAwAA + ABMAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABMAAAADAAAArgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAACIAAADtAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABSAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABnAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAMoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL4AAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADLAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAA5AAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAOgAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATgAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAnAAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAnQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAATQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPUAAAAoAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAIAAAAAAAAALwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAlQAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAAvAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACKAAAA/wAAAPsAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPoAAAAsAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAC0AAAD6AAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAIkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAACgAAAN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAA + AAAAAAAHAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAKwAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABHAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAABIAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABUAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAASAAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAARwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAJkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA1AAAAAQAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAACQAAABHAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAWAAAAEwAAACPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AI8AAABMAAAAWAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAEcAAAAjAAAAAAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAEAAAA1AAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACZAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAEYAAADFAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAApgAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACBAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAA + ANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADYAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADEAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAACIAAAA/wAAAP4AAAD+AAAA/QAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAP8AAACOAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD9AAAA/gAA + AP4AAAD/AAAAiQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + ADIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAeAAAAP8AAAD7AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAewAAAP8AAAD7AAAA/AAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFkAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABaAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPoAAAD/AAAAewAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANEAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAdwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAP8AAADkAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABIAAADkAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAjwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACzAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACwAAAOMAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP0AAAD/AAAASQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAAAAAAAkQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD6AAAA/wAAAGgAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAGgAAAD/AAAA+gAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACQAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABKAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAOIAAAAKAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAyAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAPEAAAAYAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPAAAA/wAAAP0AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD7AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA+wAA + APsAAAD8AAAA/QAAAP8AAACOAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAI4AAAD/AAAA/QAA + APwAAAD7AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPsAAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABkAAADyAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAADIAAAAAAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAFsAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZgAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADqAAAA/wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA6AAA + AA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAiQAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACWAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAPkAAACuAAAApwAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKYAAACRAAAAWgAAABEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + ABEAAABaAAAAkQAAAKYAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACnAAAArgAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAQAAAAAAAAAlwAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACIAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACyAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD7AAAA/wAAAGoAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABAAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABrAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD8AAAA/wAAALEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAywAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAMAAAA5gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAPoAAAAkAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAJQAA + APoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADmAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAB0AAAD1AAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA6gAA + AA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAPAAAA6gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + APUAAAAcAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAA + AP4AAAD/AAAA/gAAAP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AAMAAADXAAAA/wAAAP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAA7AAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AMgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAAOwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAugAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAugAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABGAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACyAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKwAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAUwAAAAAAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFMAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAArAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAArAAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABTAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAATQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACyAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACzAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAEwAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABGAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAALoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAA + AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAALoAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAARgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAADsAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAA + AP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAAyAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAAA7AAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAALAAAAP4AAAD/AAAA/gAA + AP8AAAD/AAAA/QAAAP8AAADXAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAA + ABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAMAAADXAAAA/wAA + AP0AAAD/AAAA/wAAAP4AAAD/AAAA/gAAACwAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAdAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOkAAAAOAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAA + AP8AAAD+AAAA/wAAAO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAA + AO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAADuAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADwAAAOoAAAD/AAAA/gAAAP8AAAD/AAAA/gAAAP8AAAD1AAAAHAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAwAAADmAAAA/wAA + AP4AAAD/AAAA/wAAAP4AAAD/AAAA+gAAACQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAAAAAAABEAAADuAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAARAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAA + AO4AAAARAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAlAAAA+gAA + AP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAOYAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAPwAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAA + AP8AAAD/AAAA/gAAAP8AAADvAAAAEwAAAAAAAAAEAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAQAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAAAAAA + ABMAAADvAAAA/wAAAP4AAAD/AAAA/wAAAP4AAAD/AAAA7gAAABEAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAAzAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAsgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA+wAAAP8AAABqAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAQAAAA7gAAAP8AAAD+AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAARAAAAAAAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAEQAAAO4AAAD/AAAA/gAAAP8AAAD/AAAA/gAA + AP8AAADuAAAAEAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAagAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACxAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACJAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AJYAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAABAAAADuAAAA/wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAK4AAACnAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKkAAACpAAAApgAAAJAAAABZAAAAEQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAEQAAAFkAAACQAAAApgAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAAAKkAAACpAAAAqQAA + AKcAAACuAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAO4AAAAQAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACWAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD7AAAA/wAA + AIgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AFwAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAxwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAAAAAADQAAAOgAAAD/AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAADqAAAAZQAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAGQAAADpAAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA6AAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + AMgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADwAAAAGAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzwAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA+wAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPsAAAD7AAAA/AAAAP0AAAD/AAAAjgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAACNAAAA/wAAAP0AAAD8AAAA+wAAAPsAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD7AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADOAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAZAAAA8QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAAyAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAAAAAALAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACRAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APoAAAD/AAAAaAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAZwAAAP8AAAD6AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAJEAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AEoAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA4gAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAC0AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD7AAAA/wAAAI0AAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AC0AAAD4AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADkAAAAEQAAAAAAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAA + ABIAAADkAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD4AAAALQAAAAAAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAjgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACzAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAEAAAAAAAAAHkAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP0AAAD/AAAA0AAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAHwAAAD/AAAA+gAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABZAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAWgAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APwAAAD6AAAA/wAAAHwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAADQAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAHcAAAAAAAAABAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAANgAAAP8AAAD+AAAA/wAA + AP8AAAD/AAAA/gAAAP8AAAD/AAAAMQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAACAAAAAAAAAIgAAAD/AAAA/gAAAP4AAAD9AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAI4AAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACOAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD8AAAA/AAAAPwAAAD8AAAA/AAA + APwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAP0AAAD+AAAA/gAAAP8AAACJAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAMQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAANQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAAGAAAA2wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACAAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEcAAADFAAAA+gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPsAAAD/AAAApQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKYAAAD/AAAA+wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APoAAADFAAAASAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAACAAAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANsAAAAGAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACaAAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD9AAAA/wAAANMAAAAEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAAkAAAASAAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFgAAABMAAAAjwAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/QAAAP8AAACPAAAATAAAAFgAAABWAAAAVgAA + AFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABHAAAAJAAAAAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAANQAAAD/AAAA/QAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAmQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEgAAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAA + AEgAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABUAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFQAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABIAAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAABHAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAACgAA + AN0AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAAHAAAAAAAAAFgAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAWAAAAAAAAAAHAAAAAwAA + AAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKsAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA3QAAAAkAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAigAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAAD6AAAALAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAtAAAA+gAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACKAAAAAAAAAAQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAwAAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACVAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAAAAACpAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/QAAAC8AAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD+AAAA/wAAAPQAAAAnAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAA + AFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAqQAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAKkAAAD/AAAA/AAA + AP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAoAAAA9QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC4AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAE4AAAD/AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAJsAAAAAAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAACpAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAJwAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAE4AAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAMwAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAADgAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAABWAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAKkAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAACpAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD8AAAA/wAAAFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAA + AAAAAAA5AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADLAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAXAAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAvAAA + AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAA + APwAAAD/AAAAqQAAAAAAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAAEAAAAAAAAAKkAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAA + AAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAL0AAAD/AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAFsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAywAA + AP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAZwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAMAAAAAAAAAVgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAACpAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAqQAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/AAAAP8AAABWAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAABnAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/QAAAP8AAADKAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABTAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/gAA + AP8AAADsAAAAIQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABWAAAA/wAAAPwAAAD/AAAA/wAA + AP8AAAD8AAAA/wAAAK4AAAADAAAAEwAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABEAAAARAAAAEwAAAAMAAACuAAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD8AAAA/wAA + AFYAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAIQAAAOwAAAD/AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD9AAAA/wAAAFIAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC4AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC2AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAFYAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAO4AAADvAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADvAAAA7gAA + APkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD/AAAAVgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAC1AAAA/wAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/AAAAP8AAAC3AAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAADUAAAD7AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/AAAAP8AAAB3AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAARwAAAP8AAAD8AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAABGAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAdwAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP4AAAD/AAAA+gAAADQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAAIoAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAAAP0AAABGAAAAAAAA + AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAAAAAAmAAAA+QAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD/AAAA+QAAACUAAAAAAAAAAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA + AEcAAAD9AAAA/gAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAP8AAACJAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAADAAAANUAAAD/AAAA/QAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA/wAAAOcAAAAjAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADBAAAA/wAA + APwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP8AAADBAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAkAAAA5wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAA + AP0AAAD/AAAA1AAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAAQwAAAP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAA + ANEAAAARAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEsAAAD/AAAA+wAAAP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAAAEsAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAEQAA + ANEAAAD/AAAA/AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAABCAAAAAAAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAhAAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL0AAAAIAAAAAAAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAA + AIkAAAD/AAAA/AAAAPsAAAD9AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAA + AP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP4AAAD+AAAA/gAAAP0AAAD7AAAA/AAA + AP8AAACJAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAgAAAC8AAAA/wAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + APsAAAD/AAAAgwAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAADAAAAvgAAAP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD7AAAA/wAAALQAAAAEAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAHoAAAD8AAAA/wAAAP4AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP8AAAD8AAAAewAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAEAAAAswAA + AP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAL4AAAADAAAAAQAAAAEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAAAAAAdAAAA4wAAAP8AAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAALUAAAAIAAAAAAAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAAAAAAACoAAACSAAAA0QAAAOgAAADvAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAA + AO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7gAAAO4AAADuAAAA7wAAAOgAAADRAAAAlAAA + ACsAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAMAAAAAAAAACAAAALMAAAD/AAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + AP8AAADjAAAAHQAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAABBAAAA+gAAAP4AAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAL4AAAAPAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAACAAAADQAA + ABEAAAAQAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAAABEAAAARAAAAEQAA + ABEAAAARAAAAEQAAABAAAAARAAAADAAAAAIAAAAAAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAC+AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD+AAAA+gAAAEEAAAAAAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAABAAAAAAAAABeAAAA/wAAAPwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAA + ANIAAAAiAAAAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAAiAAAA0wAAAP8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA/AAA + AP8AAABfAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAB7AAAA/wAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAA/wAAAOkAAABEAAAAAAAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA + AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAQwAAAOkAAAD/AAAA+wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAAD/AAAAegAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACGAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD8AAAA/gAAAP4AAAB2AAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAQAAAABAAAAAAAAAHYAAAD9AAAA/gAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD7AAAA/wAA + AIcAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAAAAACOAAAA/wAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA/AAAAP8AAAC6AAAAHAAA + AAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAABwAAAC4AAAA/wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAACPAAAAAAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAACHAAAA/wAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP8AAADuAAAAZQAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAA + AAAAAABkAAAA7gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPsAAAD/AAAAiAAA + AAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABAAAAAAAAAB6AAAA/wAAAPwAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/AAA + AP0AAAD/AAAAwQAAADQAAAAAAAAAAQAAAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAAADAAAAAQAAAAAAAAAyAAAAwQAAAP8AAAD9AAAA/AAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP0AAAD8AAAA/wAAAHkAAAAAAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAAAAABeAAAA+wAA + AP8AAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD/AAAA/AAAAJ8AAAAjAAAAAAAA + AAEAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAADAAAAAQAAAAAAAAAhAAAAngAA + APsAAAD/AAAA/AAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD8AAAA/wAAAPoAAABdAAAAAAAA + AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAA+AAAA5gAAAP8AAAD7AAAA/gAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD9AAAA/wAAAPYAAACYAAAAKAAAAAAAAAABAAAAAQAAAAQAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAQAAAABAAAAAQAAAAAAAAAmAAAAlwAAAPYAAAD/AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP8AAADnAAAAPgAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAAAAAAaAAAAwQAAAP8AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD8AAAA/gAA + AP8AAAD6AAAArQAAAEQAAAAFAAAAAAAAAAAAAAABAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAEAAAAAAAAAAAAAAAUAAABDAAAArAAAAPkAAAD/AAAA/gAA + APwAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPsAAAD/AAAAwQAAABsAAAAAAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAgwAAAP4AAAD/AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAA+wAAAP4AAAD/AAAA/wAAANgAAACAAAAALwAA + AAIAAAAAAAAAAAAAAAAAAAABAAAABAAAAAQAAAADAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIAAAADAAAABAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAgAA + AC0AAAB/AAAA1gAAAP8AAAD/AAAA/gAAAPsAAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAA + APsAAAD/AAAA/gAAAIQAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAMAAAAAAAAAPwAAANsAAAD/AAAA/AAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/gAAAPsAAAD9AAAA/wAAAP8AAAD8AAAA0QAAAI0AAABGAAAAFgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAVAAAARwAAAIsAAADQAAAA/AAAAP8AAAD/AAAA/QAAAPsAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAAANoAAAA/AAAAAAAAAAMAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAACgAA + AIoAAAD7AAAA/wAAAPwAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAA + AP4AAAD/AAAA/wAAAP8AAADyAAAAxwAAAJYAAABrAAAAQAAAACQAAAAOAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAA4AAAAlAAAAPwAAAGYAAACWAAAAxQAAAPEAAAD/AAAA/wAA + AP8AAAD+AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD8AAAA/wAA + APsAAACKAAAACgAAAAAAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAADAAAAC7AAAA/wAAAP4AAAD8AAAA/AAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA+wAAAOoAAADXAAAAyAAAALoAAACyAAAArAAAAKwAAACyAAAAugAAAMgAAADXAAAA6gAA + APsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAPwAAAD8AAAA/gAAAP8AAAC9AAAALwAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAAAAAAAAAABPAAAA0QAAAP8AAAD+AAAA/QAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA+wAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP0AAAD7AAAA+wAAAPwAAAD+AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAAD9AAAA/gAAAP8AAADSAAAAUAAA + AAAAAAAAAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAEAAAAWAAA + ANIAAAD/AAAA/wAAAP4AAAD7AAAA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP4AAAD+AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/QAA + AP4AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAA + APsAAAD+AAAA/gAAAP8AAADTAAAAWgAAAAQAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAwAAAEoAAAC7AAAA/AAAAP8AAAD/AAAA/QAA + APsAAAD9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD9AAAA+wAAAP0AAAD/AAAA/wAAAPwAAAC9AAAATQAAAAQAAAAAAAAAAgAA + AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAMAAAABAAAAAAAAAAAAAAArAAAAigAAAOEAAAD/AAAA/wAAAP8AAAD+AAAA+wAAAPwAAAD9AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAPwAAAD7AAAA/gAAAP8AAAD+AAAA/wAA + AOIAAACMAAAALAAAAAAAAAAAAAAAAQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAgAAAAAAAAAAAAAACQAA + AEQAAACZAAAA3gAAAP4AAAD/AAAA/wAAAP8AAAD+AAAA/AAAAPsAAAD8AAAA/AAAAP4AAAD+AAAA/gAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAP4AAAD+AAAA/QAAAPwAAAD7AAAA/AAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA4QAAAJwAAABGAAAACQAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAAAAAAAAAAAAAAAAAGAAAANQAAAHkAAAC2AAAA5QAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/QAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAA + AP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAOYAAAC2AAAAewAAADgAAAAIAAAAAAAA + AAAAAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAALAAAAMgAAAFoAAACIAAAAsgAAAMsAAADlAAAA9gAA + AP4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAD2AAAA6AAAAM4AAACxAAAAiQAA + AF4AAAAyAAAACwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAEAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAdAAAALAAAADsAAABHAAAATQAAAFMAAABTAAAATAAA + AEcAAAA7AAAALAAAAB0AAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAADAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAEAAAABAAAAAMAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAA + AAQAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAA + AAMAAAADAAAAAwAAAAIAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// + //////////////////////////////////////wAAD////////////////+AX/oA///////////////w + EAAAiA//////////////kKAAAAUJ/////////////oIAAAAAQX////////////oQAAAAAAhf//////// + ///oQAAAAAACF///////////ogAAAAAAAEX//////////kgAAAAAAAASf/////////0QAAAAAAAACL// + ///////yQAAAAAAAAAJP////////6QAAAAvQAAAAl////////9IAAADQCyAAAEv///////8gAAAoAAAU + AAAE///////+kAABAP//AIAACX///////SAACA////AQAAS///////pAACF////+hAACX//////0gACF + /////6EAAS//////6QABJ//////kQACX/////9IABN//////+SAAS/////+kABF///////6IACX///// + qAAk/+AAAAf/JAAV/////1AAS/5F//+if9IACv////6gAKf9EAAACL/lAAV////9QAFf+kAAAAJf+oAC + v////AAAv/iAAAABH/0AAD////qABX/xAAAAAI/+gAFf///1AAr/8gAAAABP/1AAr///8gAV//IAAAAA + T/+oAE///+oAK//0AAAAAC//1ABX///kAFf/9AAAAAAv/+oAJ///xACP//QAAAAAL//xACP//8gAr//0 + AAAAAC//9QAT//+QAV//9AE//IAv//qACf//kAI///QBAACAL//8QAn//yACv//0AT/8gC///UAE//8g + BH//9AE//IAv//4gBP/+IAT///QBP/yAL///IAR//kAI///0AT/8gC///xACf/5ACf//9AE//IAv//+Q + An/8gBH9AAQBP/yAIAC/iAE//IAT9F/0AT/8gC/6L8gBP/yAE+kAAAE//IAAAJfIAT/9ACfSAAABP/yA + AABL5AC/+QAnxAAAAT/8gAAAI+QAn/kAb8gAAAF//oAAABP0AJ/5AE+QAAABf/6AAAAJ8gCf+gBPkAAA + An/+QAAACfIAX/oAX7AAAAR//iAAAA36AF/6AJ+gAAAJ//+QAAAF+QBf8gCfoAAAEv//SAAABfkAT/IA + n6AF/0X//6L/oAX5AE/yAL+gBAAX///oACAF/QBP9AC/oAQAf////gAgBf0AL/QAv6AF////////oAX9 + AC/0AL+gBf///////6AF/QAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf////// + /6AF/IAv9AE/oAX///////+gBfyAL/QBP6AF////////oAX8gC/0AT+gBf///////6AF/IAv9AE/oAX/ + //////+gBfyAL/QBP6AF////////oAX8gC/0AL+gBf///////6AF/QAv9AC/oAX///////+gBf0AL/QA + v6AEAH////4AIAX9AC/yAL+gBAAX///oACAF/QBP8gCfoAX/Rf//ov+gBfkAT/IAn6AAABL//0gAAAX5 + AE/6AJ+gAAAJ//+QAAAF+QBf+gBfsAAABH/+IAAADfoAX/oAT5AAAAJ//kAAAAnyAF/5AE+QAAABf/6A + AAAJ8gCf+QBvyAAAAX/+gAAAE/QAn/kAJ8QAAAE//IAAACPkAJ/9ACfSAAABP/yAAABL5AC//IAT6QAA + AT/8gAAAl8gBP/yAE/Rf9AE//IAv+i/IAT/8gBH9AAQBP/yAIAC/iAE//kAJ///0AT/8gC///5ACf/5A + CP//9AE//IAv//8QAn/+IAT///QBP/yAL///IAR//yAEf//0AT/8gC///iAE//8gAr//9AE//IAv//1A + BP//kAI///QBAACAL//8QAn//5ABX//0AT/8gC//+oAJ///IAK//9AAAAAAv//UAE///xACP//QAAAAA + L//xACP//+QAV//0AAAAAC//6gAn///qACv/9AAAAAAv/9QAV///8gAV//IAAAAAT/+oAE////UACv/y + AAAAAE//UACv///6gAF/8QAAAACP/oABX////AAAv/iAAAABH/0AAD////1AAV/6QAAAAl/6gAK////+ + oACn/RAAAAi/5QAFf////1AAS/5F//+if9IACv////+oACT/4AAAB/8kABX/////pAARf//////+iAAl + /////9IABN//////+SAAS//////pAAIn/////+RAAJf/////9IAAhf////+hAAEv//////pAACF////+ + hAACX//////9IAAID///8BAABL///////pAAAQD//wCAAAl///////8gAAAoAAAUAAAE////////0gAA + ANALIAAAS////////+kAAAAL0AAAAJf////////yQAAAAAAAAAJP/////////RAAAAAAAAAIv/////// + //5IAAAAAAAAEn//////////ogAAAAAAAEX//////////+hAAAAAAAIX///////////6EAAAAAAIX/// + /////////oIAAAAAQX////////////+QoAAABQn/////////////8BAAAIgP//////////////+AX/oA + /////////////////AAAP/////////////////////////////////////////////////////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/bin/Debug/MySql.Data.dll b/bin/Debug/MySql.Data.dll new file mode 100644 index 0000000..a851892 Binary files /dev/null and b/bin/Debug/MySql.Data.dll differ diff --git a/bin/Debug/Neshina1703.exe b/bin/Debug/Neshina1703.exe new file mode 100644 index 0000000..50663af Binary files /dev/null and b/bin/Debug/Neshina1703.exe differ diff --git a/bin/Debug/Neshina1703.exe.config b/bin/Debug/Neshina1703.exe.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/bin/Debug/Neshina1703.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/bin/Debug/Neshina1703.pdb b/bin/Debug/Neshina1703.pdb new file mode 100644 index 0000000..9c2d49d Binary files /dev/null and b/bin/Debug/Neshina1703.pdb differ diff --git a/bin/Debug/Newtonsoft.Json.dll b/bin/Debug/Newtonsoft.Json.dll new file mode 100644 index 0000000..3f6541a Binary files /dev/null and b/bin/Debug/Newtonsoft.Json.dll differ diff --git a/bin/Debug/Newtonsoft.Json.xml b/bin/Debug/Newtonsoft.Json.xml new file mode 100644 index 0000000..1d42757 --- /dev/null +++ b/bin/Debug/Newtonsoft.Json.xml @@ -0,0 +1,11698 @@ + + + + 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. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; 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 Entity Framework 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 + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is 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 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 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. This value overrides the formatting specified on . + 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. This value overrides the formatting specified on . + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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 serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + 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 . + + + + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 . + A null value means there is no maximum. + The default value is 64. + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 64. + + + + + 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 64. + + + + + 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. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + 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. + + + + Raises the event. + + The instance containing the event data. + + + + 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. + + + + + Occurs when a property value is changing. + + + + + 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. + + + + 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 view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + 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 cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + 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. + + + + 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. + + + + + 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. + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + 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. + + + + 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. + The JSON for this token using the given formatting and converters. + + + + 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 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. + + + 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. + + + + 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. + + 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 . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + 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. + + + + + + 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 the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; 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. + + + + 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. + + + + Represents a trace writer that writes to the application's instances. + + + + + 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. + + + + 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. + + + + + 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 . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + 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. + + + + + 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 + + + + + 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 that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Indicates that the specified public static boolean get-only property + guards access to the specified feature. + + + Analyzers can use this to prevent warnings on calls to code that is + annotated as requiring that feature, when the callsite is guarded by a + call to the property. + + + + + Initializes a new instance of the class + with the specified feature type. + + + The type that represents the feature guarded by the property. + + + + + The type that represents the feature guarded by the property. + + + + + Indicates that the specified public static boolean get-only property + corresponds to the feature switch specified by name. + + + IL rewriters and compilers can use this to substitute the return value + of the specified property with the value of the feature switch. + + + + + Initializes a new instance of the class + with the specified feature switch name. + + + The name of the feature switch that provides the value for the specified property. + + + + + The name of the feature switch that provides the value for the specified property. + + + + 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. + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + diff --git a/bin/Debug/QRCoder.dll b/bin/Debug/QRCoder.dll new file mode 100644 index 0000000..d547980 Binary files /dev/null and b/bin/Debug/QRCoder.dll differ diff --git a/bin/Debug/QRCoder.xml b/bin/Debug/QRCoder.xml new file mode 100644 index 0000000..7e7796a --- /dev/null +++ b/bin/Debug/QRCoder.xml @@ -0,0 +1,5590 @@ + + + + QRCoder + + + + + Abstract base class for generating QR codes. + Derived classes typically render a QR code into a specific format (png, System.Drawing.Bitmap, PDF, etc). + + + + + Gets or sets the QRCodeData used to generate the QR code. + + + + + Initializes a new instance of the AbstractQRCode class. + + + + + Initializes a new instance of the AbstractQRCode class with the specified QRCodeData. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Sets the QRCodeData object that will be used to generate the QR code. + This method is useful for COM objects connections. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Disposes the QRCodeData object. + + + + + Represents an art-style QR code generator that provides functionality to render QR codes with dots as modules. + + + + + Initializes a new instance of the class. + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + generated by the . + + + + Renders an art-style QR code with dots as modules. (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and a background image (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + A bitmap object that will be used as background picture + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and various user settings + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + If the pixelSize is bigger than the pixelsPerModule or may end up filling the Module making a traditional QR code. + + Pixels used per module rendered + Size of the dots + Color of the pixels + + + + + Checks if a given module(-position) is part of the quietzone of a QR code + + X position + Y position + Total number of modules per row + true, if position is part of quiet zone + + + + Checks if a given module(-position) is part of one of the three finder patterns of a QR code + + X position + Y position + Total number of modules per row + Offset in modules (usually depending on drawQuietZones parameter) + true, if position is part of any finder pattern + + + + Resize to a square bitmap, but maintain the aspect ratio by padding transparently. + + + + Resized image as bitmap + + + + Defines how the quiet zones shall be rendered. + + + + + Quiet zones are rendered with dotted modules. + + + + + Quiet zones are rendered with flat, solid modules. + + + + + Defines how the background image (if set) shall be rendered. + + + + + Background image spans the complete graphic. + + + + + Background image is only painted in the data area, excluding the quiet zone. + + + + + Provides static methods for creating art-style QR codes. + + + + + Helper function to create an ArtQRCode graphic with a single function call + + Text/payload to be encoded inside the QR code + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + Represents an ASCII-style QR code generator that provides functionality to render QR codes as textual representations. + + + + + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + The QR code data generated by the . + + + + Returns a strings that contains the resulting QR code as textual representation. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + End of line separator. (Default: \n) + + + + + Returns an array of strings that contains each line of the resulting QR code as ASCII chars. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + + + + + Returns a strings that contains the resulting QR code as minified textual representation. + + Bool that defines if quiet zones around the QR code shall be drawn + If set to true, dark and light colors will be inverted + End of line separator. (Default: \n) + + + + + Provides static methods for generating ASCII-style QR codes. + + + + + Generates an ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Number of repeated characters per module. + String representing dark modules. + String representing light modules. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + ASCII representation of the QR code. + + + + Generates a small ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + Invert dark and light colors. + Minified ASCII representation of the QR code. + + + + Represents a QR code generator that outputs base64-encoded images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a base64-encoded string that contains the resulting QR code as a PNG image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image with an embedded icon. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The icon to embed in the center of the QR code. + The size of the icon as a percentage of the QR code. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Converts a bitmap to a base64-encoded string. + + The bitmap to convert. + The type of image (PNG, JPEG, GIF). + Returns the base64-encoded string representation of the bitmap. + + + + Specifies the type of image to generate. + + + + + Graphics Interchange Format (GIF) image format, a bitmap image format with limited color support + + + + + Joint Photographic Experts Group (JPEG) image format, a lossy compressed image format + + + + + Portable Network Graphics (PNG) image format, a lossless raster graphics format + + + + + Provides static methods for creating base64-encoded QR codes. + + + + + Creates a base64-encoded QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Represents a QR code generator that outputs QR codes as bitmap byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGB byte array. + The color of the light modules as an RGB byte array. + Returns the QR code graphic as a bitmap byte array. + + + + Converts an integer to a 4 bytes and writes them to a byte array at given position + + The integer to convert. + Index of destinationArray where the converted bytes are written to + Destination byte array that receives the bytes + + + + Provides helper functions for creating bitmap byte array QR codes. + + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a bitmap byte array. + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Exception thrown when the given payload exceeds the maximum size of the QR code standard. + + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The fixed version of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Helper methods for . + + + + + Copies a specified number of elements from one to another starting at the specified offsets. + + The source from which elements will be copied. + The zero-based index in the source at which copying begins. + The destination to which elements will be copied. + The zero-based index in the destination at which storing begins. + The number of elements to copy. + The index in the destination immediately following the last copied element. + + + + Indicates whether the specified string is null, empty, or consists only of white-space characters. + + + if the is null, empty, or white space; otherwise, . + + + + + Converts a hex color string to a byte array. + + Color in HEX format like #ffffff. + Returns the color as a byte array. + + + + Appends an integer value to the StringBuilder using invariant culture formatting. + + The StringBuilder to append to. + The integer value to append. + + + + Appends a float value to the StringBuilder using invariant culture formatting with G7 precision. + + The StringBuilder to append to. + The float value to append. + + + + Used to represent a string value for a value in an enum + + + + + Holds the alue in an enum + + + + + Init a StringValue Attribute + + + + + + Enumeration extension methods. + + + + + Will get the string value for a given enum's value + + + + + Provides utility methods for generating QR code payloads. + + + Contains classes and methods for generating payloads for QR codes. + + + + + Validates the structure and checksum of an IBAN. + + The IBAN to validate. + True if the IBAN is valid; otherwise, false. + + + + Validates the structure and checksum of a QR IBAN. + + The QR IBAN to validate. + True if the QR IBAN is valid; otherwise, false. + + + + Validates the structure of a BIC. + + The BIC to validate. + True if the BIC is valid; otherwise, false. + + + + Validates the structure of a BIC with optional requirement check. + + The BIC to validate. + Whether the BIC is required. If false, null/empty values are considered valid. + True if the BIC is valid; otherwise, false. + + + + Converts a string to a specified encoding. + + The string to convert. + The encoding to use. + The converted string. + + + + Escapes forbidden characters in a string. + + The input string. + Indicates whether to use a simple escape mode. + The escaped string. + + + + Validates a string using the Mod10 checksum algorithm. + + The string to validate. + True if the string is valid; otherwise, false. + + + + Checks if a string is in hexadecimal format. + + The input string. + True if the string is in hexadecimal format; otherwise, false. + + + + Represents a BezahlCode payload for QR codes. + + + + + Initializes a new instance of the class for contact data. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Reason (Verwendungszweck) + + + + Initializes a new instance of the class for non-SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Initializes a new instance of the class for SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Generic constructor. Please use specific (non-SEPA or SEPA) constructor. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + Only used for internal state handdling + + + + + + + ISO 4217 currency codes + + + + + United Arab Emirates Dirham + + + + + Afghan Afghani + + + + + Albanian Lek + + + + + Armenian Dram + + + + + Netherlands Antillean Guilder + + + + + Angolan Kwanza + + + + + Argentine Peso + + + + + Australian Dollar + + + + + Aruban Florin + + + + + Azerbaijani Manat + + + + + Bosnia and Herzegovina Convertible Mark + + + + + Barbados Dollar + + + + + Bangladeshi Taka + + + + + Bulgarian Lev + + + + + Bahraini Dinar + + + + + Burundian Franc + + + + + Bermudian Dollar + + + + + Brunei Dollar + + + + + Bolivian Boliviano + + + + + Bolivian Mvdol (funds code) + + + + + Brazilian Real + + + + + Bahamian Dollar + + + + + Bhutanese Ngultrum + + + + + Botswana Pula + + + + + Belarusian Ruble + + + + + Belize Dollar + + + + + Canadian Dollar + + + + + Congolese Franc + + + + + WIR Euro (complementary currency) + + + + + Swiss Franc + + + + + WIR Franc (complementary currency) + + + + + Unidad de Fomento (funds code) + + + + + Chilean Peso + + + + + Chinese Yuan + + + + + Colombian Peso + + + + + Unidad de Valor Real (UVR) (funds code) + + + + + Costa Rican Colón + + + + + Cuban Convertible Peso + + + + + Cuban Peso + + + + + Cape Verde Escudo + + + + + Czech Koruna + + + + + Djiboutian Franc + + + + + Danish Krone + + + + + Dominican Peso + + + + + Algerian Dinar + + + + + Egyptian Pound + + + + + Eritrean Nakfa + + + + + Ethiopian Birr + + + + + Euro + + + + + Fiji Dollar + + + + + Falkland Islands Pound + + + + + Pound Sterling + + + + + Georgian Lari + + + + + Ghanaian Cedi + + + + + Gibraltar Pound + + + + + Gambian Dalasi + + + + + Guinean Franc + + + + + Guatemalan Quetzal + + + + + Guyanese Dollar + + + + + Hong Kong Dollar + + + + + Honduran Lempira + + + + + Croatian Kuna + + + + + Haitian Gourde + + + + + Hungarian Forint + + + + + Indonesian Rupiah + + + + + Israeli New Shekel + + + + + Indian Rupee + + + + + Iraqi Dinar + + + + + Iranian Rial + + + + + Icelandic Króna + + + + + Jamaican Dollar + + + + + Jordanian Dinar + + + + + Japanese Yen + + + + + Kenyan Shilling + + + + + Kyrgyzstani Som + + + + + Cambodian Riel + + + + + Comoro Franc + + + + + North Korean Won + + + + + South Korean Won + + + + + Kuwaiti Dinar + + + + + Cayman Islands Dollar + + + + + Kazakhstani Tenge + + + + + Lao Kip + + + + + Lebanese Pound + + + + + Sri Lankan Rupee + + + + + Liberian Dollar + + + + + Lesotho Loti + + + + + Libyan Dinar + + + + + Moroccan Dirham + + + + + Moldovan Leu + + + + + Malagasy Ariary + + + + + Macedonian Denar + + + + + Myanmar Kyat + + + + + Mongolian Tögrög + + + + + Macanese Pataca + + + + + Mauritanian Ouguiya + + + + + Mauritian Rupee + + + + + Maldivian Rufiyaa + + + + + Malawian Kwacha + + + + + Mexican Peso + + + + + Mexican Unidad de Inversión (UDI) (funds code) + + + + + Malaysian Ringgit + + + + + Mozambican Metical + + + + + Namibian Dollar + + + + + Nigerian Naira + + + + + Nicaraguan Córdoba + + + + + Norwegian Krone + + + + + Nepalese Rupee + + + + + New Zealand Dollar + + + + + Omani Rial + + + + + Panamanian Balboa + + + + + Peruvian Sol + + + + + Papua New Guinean Kina + + + + + Philippine Peso + + + + + Pakistani Rupee + + + + + Polish Złoty + + + + + Paraguayan Guaraní + + + + + Qatari Riyal + + + + + Romanian Leu + + + + + Serbian Dinar + + + + + Russian Ruble + + + + + Rwandan Franc + + + + + Saudi Riyal + + + + + Solomon Islands Dollar + + + + + Seychelles Rupee + + + + + Sudanese Pound + + + + + Swedish Krona + + + + + Singapore Dollar + + + + + Saint Helena Pound + + + + + Sierra Leonean Leone + + + + + Somali Shilling + + + + + Surinamese Dollar + + + + + South Sudanese Pound + + + + + São Tomé and Príncipe Dobra + + + + + Salvadoran Colón + + + + + Syrian Pound + + + + + Swazi Lilangeni + + + + + Thai Baht + + + + + Tajikistani Somoni + + + + + Turkmenistan Manat + + + + + Tunisian Dinar + + + + + Tongan Paʻanga + + + + + Turkish Lira + + + + + Trinidad and Tobago Dollar + + + + + New Taiwan Dollar + + + + + Tanzanian Shilling + + + + + Ukrainian Hryvnia + + + + + Ugandan Shilling + + + + + United States Dollar + + + + + United States Dollar (Next day) (funds code) + + + + + Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code) + + + + + Uruguayan Peso + + + + + Uzbekistan Som + + + + + Venezuelan Bolívar + + + + + Vietnamese Đồng + + + + + Vanuatu Vatu + + + + + Samoan Tālā + + + + + CFA Franc BEAC + + + + + Silver (one troy ounce) + + + + + Gold (one troy ounce) + + + + + Bond Markets Unit European Composite Unit (EURCO) + + + + + Bond Markets Unit European Monetary Unit (E.M.U.-6) + + + + + Bond Markets Unit European Unit of Account 9 (E.U.A.-9) + + + + + Bond Markets Unit European Unit of Account 17 (E.U.A.-17) + + + + + East Caribbean Dollar + + + + + Special Drawing Rights + + + + + CFA Franc BCEAO + + + + + Palladium (one troy ounce) + + + + + CFP Franc + + + + + Platinum (one troy ounce) + + + + + SUCRE + + + + + Codes specifically reserved for testing purposes + + + + + ADB Unit of Account + + + + + The code assigned for transactions where no currency is involved + + + + + Yemeni Rial + + + + + South African Rand + + + + + Zambian Kwacha + + + + + Zimbabwean Dollar + + + + + Operation modes of the BezahlCode + + + + + Single payment (Überweisung) + + + + + Single SEPA payment (SEPA-Überweisung) + + + + + Single debit (Lastschrift) + + + + + Single SEPA debit (SEPA-Lastschrift) + + + + + Periodic payment (Dauerauftrag) + + + + + Periodic SEPA payment (SEPA-Dauerauftrag) + + + + + Contact data + + + + + Contact data V2 + + + + + Exception class for BezahlCode errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for Bitcoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin address of the payment receiver. + The amount of Bitcoin to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin Cash payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin Cash payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin Cash address of the payment receiver. + The amount of Bitcoin Cash to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin-like cryptocurrency payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin-like cryptocurrency payment payload. QR Codes with this payload can open a payment app. + + The type of Bitcoin-like cryptocurrency. + The cryptocurrency address of the payment receiver. + The amount of coins to transfer. + A reference label. + A reference text or message. + + + + Returns a string representation of the Bitcoin-like cryptocurrency address payload. + + A string representation of the cryptocurrency address payload. + + + + Enumerates Bitcoin-like cryptocurrencies. + + + + + Bitcoin. + + + + + Bitcoin Cash. + + + + + Litecoin. + + + + + Generates a bookmark payload. When scanned by a QR code reader, this creates a browser bookmark. + + + + + Initializes a new instance of the class. + + The URL of the bookmark. + The title of the bookmark. + + + + Returns a string representation of the bookmark payload. + + A string representation of the bookmark payload in the MEBKM format. + + + + Generates a calendar entry/event payload. + + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time (including UTC offset) of the event. + End time (including UTC offset) of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time of the event. + End time of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Returns a string representation of the calendar event payload. + + A string representation of the calendar event in the VEVENT format. + + + + Specifies the encoding type for the calendar event. + + + + + iCalendar complete encoding. + + + + + Universal encoding. + + + + + Generates a vCard or meCard contact dataset. + + + + + Initializes a new instance of the class. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + + + + Initializes a new instance of the class with address type support. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + The address type (Home, Work, HomePreferred, or WorkPreferred). + + + + Returns a string representation of the contact data payload. + + A string representation of the contact data in the specified format. + + + + Gets the address type string for vCard 2.1 format. + + + + + Gets the address type string for vCard 3.0 format. + + + + + Gets the address type string for vCard 4.0 format. + + + + + Defines the type of address (home or work). + + + + + Home address. + + + + + Work address. + + + + + Home address marked as preferred (default for backwards compatibility). + + + + + Work address marked as preferred. + + + + + Possible output types. Either vCard 2.1, vCard 3.0, vCard 4.0 or MeCard. + + + + + MeCard output type. + + + + + vCard 2.1 output type. + + + + + vCard 3.0 output type. + + + + + vCard 4.0 output type. + + + + + Define the address format. + Default: European format, ([Street] [House Number] and [Postal Code] [City]) + Reversed: North American and others format ([House Number] [Street] and [City] [Postal Code]) + + + + + Default address order format (European format). + + + + + Reversed address order format (North American and others format). + + + + + Generates a geo location payload. Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + + + + Initializes a new instance of the class. + Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + Latitude with . as splitter. + Longitude with . as splitter. + Encoding type - GEO or GoogleMaps. + + + + Returns a string representation of the geolocation payload. + + A string representation of the geolocation payload in the specified encoding format. + + + + Defines the encoding types for geolocation payloads. + + + + + GEO encoding type. + + + + + Google Maps encoding type. + + + + + Generates the payload for a Girocode (QR-Code with credit transfer information). + + + + + Gets the ECC level required for Girocode, which is always set to M. + + + + + Initializes a new instance of the class, which contains a payload for a Girocode (QR-Code with credit transfer information). + + Account number of the Beneficiary. Only IBAN is allowed. + BIC of the Beneficiary Bank. + Name of the Beneficiary. + Amount of the Credit Transfer in Euro. (Amount must be more than 0.01 and less than 999999999.99) + Remittance Information (Purpose-/reference text). (optional) + Type of remittance information. Either structured (e.g. ISO 11649 RF Creditor Reference) and max. 35 chars or unstructured and max. 140 chars. + Purpose of the Credit Transfer (optional) + Beneficiary to originator information. (optional) + Girocode version. Either 001 or 002. Default: 001. + Encoding of the Girocode payload. Default: ISO-8859-1 + Thrown when the input values are not valid according to the Girocode specification. + + + + Returns the Girocode payload as a string. + + The Girocode payload as a string. + + + + Defines the Girocode version. + + + + + Girocode version 1. + + + + + Girocode version 2. + + + + + Defines the type of remittance information. + + + + + Structured remittance information. + + + + + Unstructured remittance information. + + + + + Defines the encoding types for Girocode payloads. + + + + + UTF-8 encoding. + + + + + ISO-8859-1 encoding. + + + + + ISO-8859-2 encoding. + + + + + ISO-8859-4 encoding. + + + + + ISO-8859-5 encoding. + + + + + ISO-8859-7 encoding. + + + + + ISO-8859-10 encoding. + + + + + ISO-8859-15 encoding. + + + + + Represents errors that occur during Girocode generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a payload for Litecoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Litecoin payment payload. QR Codes with this payload can open a payment app. + + The Litecoin address of the payment receiver. + The amount of Litecoin to transfer. + A reference label. + A reference text or message. + + + + Generates an email payload that can be used to create a QR code for sending an email. + + + + + Creates an email payload with subject and message/text. + + Receiver's email address. + Subject line of the email. + Message content of the email. + Payload encoding type. Choose dependent on your QR Code scanner app. + + + + Returns the email payload as a string. + + The email payload as a string. + + + + Defines the encoding types for the email payload. + + + + + Uses the "mailto:" URI scheme. + + + + + Uses the "MATMSG:" format. + + + + + Uses the "SMTP:" format. + + + + + Generates a MMS (Multimedia Messaging Service) payload for QR codes. + + + + + Creates a MMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates a MMS payload with text (subject). + + Receiver phone number. + Text of the MMS. + Encoding type. + + + + Returns the MMS payload as a string. + + The MMS payload as a string. + + + + Defines the encoding types for the MMS payload. + + + + + Uses the "mms:" URI scheme. + + + + + Uses the "mmsto:" URI scheme. + + + + + Generates a Monero transaction payload for QR codes. + + + + + Creates a Monero transaction payload. + + Receiver's Monero address. + Amount to transfer. + Payment ID. + Recipient's name. + Reference text / payment description. + Thrown when the address is null or empty, or when the txAmount is less than or equal to 0. + + + + Returns the Monero transaction payload as a URI string. + + The Monero transaction payload as a URI string. + + + + Exception class for Monero transaction errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for One Time Password (OTP) used in applications like Google Authenticator. + + + + + The type of OTP (TOTP or HOTP). + + + + + The secret key used for OTP generation. + + + + + The hashing algorithm used for OTP (SHA1, SHA256, SHA512). + + + + + Obsolete. Use instead. + + + + + The issuer of the OTP (usually the service or company name). + + + + + The label for the OTP (usually the user's email or username). + + + + + The number of digits in the OTP (default is 6). + + + + + The counter value for HOTP (only used if Type is HOTP). + + + + + The period in seconds for TOTP (default is 30). + + + + + Enum for OTP types. + + + + + Time-based One-Time Password (TOTP) + + + + + HMAC-based One-Time Password (HOTP) + + + + + Enum for hashing algorithms used in OTP. + + + + + SHA-1 hashing algorithm + + + + + SHA-256 hashing algorithm + + + + + SHA-512 hashing algorithm + + + + + Obsolete. Use instead. + + + + + SHA-1 hashing algorithm (Obsolete) + + + + + SHA-256 hashing algorithm (Obsolete) + + + + + SHA-512 hashing algorithm (Obsolete) + + + + + Returns the OTP payload as a string. + + The OTP payload as a string. + + + + Returns the HOTP payload as a string. + + The HOTP payload as a string. + + + + Returns the TOTP payload as a string. + + The TOTP payload as a string. + + + + Processes the common fields for both TOTP and HOTP. + + StringBuilder to append the common fields. + + + + Represents the base class for all QR code payloads. + + + + + Gets the version of the QR code payload. + + + + + Gets the error correction level of the QR code payload. + + + + + Gets the ECI mode of the QR code payload. + + + + + Returns a string representation of the QR code payload. + + A string representation of the QR code payload. + + + + Generates a phone call payload. + + + + + Initializes a new instance of the class. + + Phone number of the receiver. + + + + Returns the phone call payload as a string. + + The phone call payload as a string. + + + + Generates a payload for a Russian payment order. + + + + + Initializes a new instance of the class. + + Name of the payee (Наименование получателя платежа) + Beneficiary account number (Номер счета получателя платежа) + Name of the beneficiary's bank (Наименование банка получателя платежа) + BIC (БИК) + Box number / account payee's bank (Номер кор./сч. банка получателя платежа) + An (optional) object of additional fields + Type of encoding (default UTF-8) + + + + Returns the payload as a string. + + ⚠ Attention: If CharacterSets was set to windows-1251 or koi8-r you should use ToBytes() instead of ToString() and pass the bytes to CreateQrCode()! + The payload as a string. + + + + Returns the payload as a byte array. + + Should be used if CharacterSets equals windows-1251 or koi8-r. + The payload as a byte array. + + + + Determines a valid separator + + + + + + Takes all optional fields that are not null and returns their string represantion + + A List of strings + + + + Takes all mandatory fields that are not null and returns their string represantion + + A List of strings + + + + Validates a string against a given Regex pattern. Returns input if it matches the Regex expression (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + A regex pattern to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Validates a string against one or more given Regex patterns. Returns input if it matches all regex expressions (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + An array of regex patterns to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Represents optional fields for the RussiaPaymentOrder. + + + + + Payment amount, in kopecks (FTI’s Amount.) + Сумма платежа, в копейках + + + + + Payment name (purpose) + Наименование платежа (назначение) + + + + + Payee's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН получателя платежа + + + + + Payer's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН плательщика + + + + + Status compiler payment document + Статус составителя платежного документа + + + + + KPP of the payee (Tax Registration Code; Text, up to 9 characters.) + КПП получателя платежа + + + + + CBC + КБК + + + + + All-Russian classifier territories of municipal formations + Общероссийский классификатор территорий муниципальных образований + + + + + Basis of tax payment + Основание налогового платежа + + + + + Taxable period + Налоговый период + + + + + Document number + Номер документа + + + + + Document date + Дата документа + + + + + Payment type + Тип платежа + + + + + Payer's surname + Фамилия плательщика + + + + + Payer's name + Имя плательщика + + + + + Payer's patronymic + Отчество плательщика + + + + + Payer's address + Адрес плательщика + + + + + Personal account of a budget recipient + Лицевой счет бюджетного получателя + + + + + Payment document index + Индекс платежного документа + + + + + Personal account number in the personalized accounting system in the Pension Fund of the Russian Federation - SNILS + № лицевого счета в системе персонифицированного учета в ПФР - СНИЛС + + + + + Number of contract + Номер договора + + + + + Personal account number of the payer in the organization (in the accounting system of the PU) + Номер лицевого счета плательщика в организации (в системе учета ПУ) + + + + + Apartment number + Номер квартиры + + + + + Phone number + Номер телефона + + + + + DUL payer type + Вид ДУЛ плательщика + + + + + DUL number of the payer + Номер ДУЛ плательщика + + + + + FULL NAME. child / student + Ф.И.О. ребенка/учащегося + + + + + Date of birth + Дата рождения + + + + + Due date / Invoice date + Срок платежа/дата выставления счета + + + + + Payment period + Период оплаты + + + + + Payment type + Вид платежа + + + + + Service code / meter name + Код услуги/название прибора учета + + + + + Metering device number + Номер прибора учета + + + + + Meter reading + Показание прибора учета + + + + + Notification, accrual, account number + Номер извещения, начисления, счета + + + + + Date of notification / accrual / invoice / resolution (for traffic police) + Дата извещения/начисления/счета/постановления (для ГИБДД) + + + + + Institution number (educational, medical) + Номер учреждения (образовательного, медицинского) + + + + + Kindergarten / school class number + Номер группы детсада/класса школы + + + + + Full name of the teacher, specialist providing the service + ФИО преподавателя, специалиста, оказывающего услугу + + + + + Insurance / additional service amount / Penalty amount (in kopecks) + Сумма страховки/дополнительной услуги/Сумма пени (в копейках) + + + + + Resolution number (for traffic police) + Номер постановления (для ГИБДД) + + + + + Enforcement Proceedings Number + Номер исполнительного производства + + + + + Type of payment code (for example, for payments to Rosreestr) + Код вида платежа (например, для платежей в адрес Росреестра) + + + + + Unique accrual identifier + Уникальный идентификатор начисления + + + + + The technical code recommended by the service provider. Maybe used by the receiving organization to call the appropriate processing IT system. + Технический код, рекомендуемый для заполнения поставщиком услуг. Может использоваться принимающей организацией для вызова соответствующей обрабатывающей ИТ-системы. + + + + + (List of values of the technical code of the payment) + Перечень значений технического кода платежа + + + + + Mobile and landline telephone services + Мобильная связь и стационарный телефон + + + + + Utility services (Housing and Communal Services) + Коммунальные услуги (ЖКХ) + + + + + Traffic police, taxes, duties, and budget payments + ГИБДД, налоги, пошлины, бюджетные платежи + + + + + Security services + Охранные услуги + + + + + Services provided by the Federal Migration Service + Услуги, оказываемые УФМС + + + + + Pension Fund of the Russian Federation + Пенсионный фонд России (ПФР) + + + + + Loan repayment + Погашение кредитов + + + + + Educational institutions + Образовательные учреждения + + + + + Internet and TV services + Интернет и телевидение + + + + + Electronic money + Электронные деньги + + + + + Recreation and travel + Отдых и путешествия + + + + + Investments and insurance + Инвестиции и страхование + + + + + Sports and health + Спорт и здоровье + + + + + Charitable and public organizations + Благотворительные и общественные организации + + + + + Other services + Прочие услуги + + + + + Specifies character sets for encoding the RussiaPaymentOrder payload. + + + + + Windows-1251 encoding. + + + + + UTF-8 encoding. + + + + + KOI8-R encoding. + + + + + Represents errors that occur during the generation of a RussiaPaymentOrder payload. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + Generates a ShadowSocks proxy config payload. + + + + + Generates a ShadowSocks proxy config payload. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Optional tag line + + + + Generates a ShadowSocks proxy config payload with plugin options. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Plugin name + Plugin option + Optional tag line + + + + Generates a ShadowSocks proxy config payload with additional parameters. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Additional parameters + Optional tag line + + + + Converts the ShadowSocks config payload to a string. + + A string representation of the ShadowSocks config payload. + + + + Specifies the encryption methods used by ShadowSocks. + + + + + ChaCha20-IETF with Poly1305 AEAD encryption method + + + + + AES-128 Galois/Counter Mode (GCM) encryption method + + + + + AES-192 Galois/Counter Mode (GCM) encryption method + + + + + AES-256 Galois/Counter Mode (GCM) encryption method + + + + + Extended ChaCha20-IETF with Poly1305 AEAD encryption method (non-standard) + + + + + AES-128 Cipher Feedback (CFB) stream cipher + + + + + AES-192 Cipher Feedback (CFB) stream cipher + + + + + AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Counter (CTR) stream cipher + + + + + AES-192 Counter (CTR) stream cipher + + + + + AES-256 Counter (CTR) stream cipher + + + + + Camellia-128 Cipher Feedback (CFB) stream cipher + + + + + Camellia-192 Cipher Feedback (CFB) stream cipher + + + + + Camellia-256 Cipher Feedback (CFB) stream cipher + + + + + ChaCha20-IETF stream cipher + + + + + Alias for AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-192 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-256 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-128 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-192 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-256 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-128 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-192 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-256 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + ChaCha20 stream cipher (deprecated) + + + + + Blowfish Cipher Feedback (CFB) stream cipher (deprecated) + + + + + RC4-MD5 stream cipher (deprecated) + + + + + Salsa20 stream cipher (deprecated) + + + + + DES Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + IDEA Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + RC2 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + CAST5 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Salsa20 Counter (CTR) stream cipher (not standard, not in active use) + + + + + RC4 stream cipher (not standard, not in active use) + + + + + SEED Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Table-based encryption method (not standard, not in active use) + + + + + Represents errors that occur during the generation of a ShadowSocksConfig payload. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a Skype call payload + + + + + Initializes a new instance of the class. + + Skype username which will be called + + + + Converts the Skype call payload to a string. + + A string representation of the Skype call payload. + + + + Generates a Slovenian UPN QR payment payload. + + + + + Gets the version of the QR code, which is 15 for Slovenian UPN QR. + + + + + Gets the error correction level of the QR code, which is M for Slovenian UPN QR. + + + + + Gets the ECI mode of the QR code, which is Iso8859_2 for Slovenian UPN QR. + + + + + Limits the length of a string to a specified maximum length. + + The string to limit. + The maximum length of the string. + The limited string. + + + + Initializes a new instance of the class. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Initializes a new instance of the class with a deadline. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The deadline for the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Formats the amount as a string with leading zeros. + + The amount to format. + The formatted amount string. + + + + Calculates the checksum of the payment data. + + The checksum of the payment data. + + + + Returns the Slovenian UPN QR payment data as a string. + + The Slovenian UPN QR payment data as a string. + + + + Generates an SMS payload. + + + + + Creates an SMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates an SMS payload with text (subject). + + Receiver phone number. + Text of the SMS. + Encoding type. + + + + Returns the SMS payload as a string. + + The SMS payload as a string. + + + + Specifies the encoding type for the SMS payload. + + + + + Standard SMS encoding. + + + + + SMSTO encoding. + + + + + SMS encoding for iOS. + + + + + Generates the payload for a SwissQrCode. + + + + + + + + + + + Generates the payload for a SwissQrCode v2.0. (Don't forget to use ECC-Level=M, EncodingMode=UTF-8 and to set the Swiss flag icon to the final QR code.) + + IBAN object + Currency (either EUR or CHF) + Creditor (payee) information + Reference information + Additional information for the QR code + Debitor (payer) information + Amount + Requested date of debitor's payment + Ultimate creditor information (use only in consultation with your bank - for future use only!) + Optional command for alternative processing mode - line 1 + Optional command for alternative processing mode - line 2 + + + + Represents additional information for the SwissQrCode. + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Gets the unstructured message. + + + + + Gets the bill information. + + + + + Gets the trailer. + + + + + Represents exceptions specific to SwissQrCode additional information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents reference information for the SwissQrCode. + + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Gets the reference type. + + + + + Gets the reference text. + + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR". + + + + + QR Reference + + + + + Creditor Reference + + + + + No Reference + + + + + Represents the text type for the reference. + + + + + QR Reference Text + + + + + Creditor Reference ISO 11649 + + + + + Represents exceptions specific to SwissQrCode references. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents an IBAN with type information. + + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Gets a value indicating whether this is a QR-IBAN. + + + + + Converts the IBAN object to its string representation. + + A string representation of the IBAN. + + + + Represents the type of IBAN. + + + + + Regular IBAN + + + + + QR-IBAN + + + + + Represents exceptions specific to SwissQrCode IBANs. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents contact information. + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + Creates a contact with structured address. + + + + + Creates a contact with combined address. + + + + + Returns a string that represents the contact information in the format required for Swiss QR codes. + + A string representing the contact information. + + + + Defines the type of address. + + + + + Structured Address + + + + + Combined Address + + + + + Represents errors that occur during the creation of a Swiss QR code contact. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Returns a string that represents the entire Swiss QR code payload. + + A string representing the Swiss QR code payload. + + + + ISO 4217 currency codes. + + + + + Swiss Franc + + + + + Euro + + + + + Represents errors that occur during Swiss QR Code generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a URL payload for QR codes. + + + + + Initializes a new instance of the class. + + The target URL. If the protocol is not specified, the http protocol will be added. + + + + Returns the URL payload as a string. + + The URL payload as a string, ensuring it starts with "http://" if no protocol is specified. + + + + Generates a WhatsApp message payload for QR codes. + + + + + Initializes a new instance of the class with a receiver number and message. + + + Receiver phone number in full international format. + Omit any zeroes, brackets, or dashes. Use format: 1XXXXXXXXXX. Don't use: +001-(XXX)XXXXXXX. + + The message to be sent. + + + + Initializes a new instance of the class with a message only. + When scanned, the user is asked to choose a contact to receive the message. + + The message to be sent. + + + + Returns the WhatsApp message payload as a string. + + The WhatsApp message URL as a string. + + + + Generates a WiFi payload. Scanned by a QR Code scanner app, the device will connect to the WiFi. + + + + + Initializes a new instance of the class. + + SSID of the WiFi network + Password of the WiFi network + Authentication mode (WEP, WPA, WPA2) + Set flag if the WiFi network hides its SSID + Set flag if ssid/password is delivered as HEX string. Note: May not be supported on iOS devices. + + + + Returns the WiFi payload as a string. + + + + + Specifies the authentication mode for the WiFi network. + + + + + WEP authentication mode + + + + + WPA authentication mode + + + + + No password authentication mode + + + + + WPA2 authentication mode + + + + + Represents a QR code generator that outputs QR codes as PDF byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a PDF document with a black and white QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF document with specified colors and DPI. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The DPI (dots per inch) of the PDF document. + The JPEG quality parameter (obsolete, no longer used). + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF path with rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + PDF path commands as a string. + + + + Converts RGB byte array to PDF color space values (0.0 to 1.0). + + RGB color as byte array. + PDF color string (three decimal values). + + + + Converts an integer to a string using invariant culture for consistent PDF formatting. + + The integer value to convert. + String representation of the integer. + + + + Converts a float to a string using invariant culture for consistent PDF formatting. + + The float value to convert. + String representation of the float. + + + + Provides static methods for creating PDF byte array QR codes. + + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Represents a QR code generator that outputs QR codes as PNG byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PNG of the QR code, using 1-bit grayscale. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Colors may contain transparency. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Accepts 3-byte RGB colors for normal images and 4-byte RGBA-colors for transparent images. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a bitmap where each pixel is represented by a single bit, dark = 0 and light = 1. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the bitmap as a byte array. + + + + Writes the chunks that make up a PNG file. + + + See https://www.w3.org/TR/2003/REC-PNG-20031110 and https://www.ietf.org/rfc/rfc1950.txt. + + + + + Writes the IHDR chunk. This must be the first chunk in the file. + + + + + Writes the PLTE chunk, and also the tRNS chunk if necessary. Must come before the IDAT chunk. + + + + + Writes the IDAT chunk with the actual picture. + + + + + Writes the IEND chunk. This must be the last chunk in the file. + + + + + Provides static methods for creating PNG byte array QR codes. + + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Represents a QR code generator that outputs QR codes as PostScript code. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a black and white PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Cleans double values for international use/formats. + + The input double value. + Returns the cleaned string representation of the double value, with a maximum of 7 significant digits. + + + + Provides static methods for creating PostScript QR codes. + + + + + Creates a PostScript QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Represents a QR code generator that outputs QR codes as bitmap images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code with an optional icon in the center. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The background color of the icon. + Returns the QR code graphic as a bitmap. + + + + Creates a GraphicsPath containing rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + The number of pixels per module. + The offset to apply for quiet zones. + Whether quiet zones are being drawn. + A GraphicsPath containing all dark module rectangles. + + + + Creates a rounded rectangle path for drawing. + + The rectangle for which to create the rounded path. + The radius of the corners. + Returns the rounded rectangle path. + + + + Provides static methods for creating bitmap QR codes. + + + + + Creates a bitmap QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Represents the data structure of a QR code. + + + + + Gets or sets the module matrix of the QR code. + + + + + Initializes a new instance of the class with the specified version. + + The version of the QR code. + + + + Initializes a new instance of the class with the specified version and padding option. + + The version of the QR code. + Indicates whether padding should be added to the QR code. + + + + Initializes a new instance of the class with raw data from a specified path and compression mode. + + The path to the raw data file. + The compression mode used for the raw data. + + + + Initializes a new instance of the class with raw data and compression mode. + + The raw data of the QR code. + The compression mode used for the raw data. + + + + Gets the raw data of the QR code with the specified compression mode. + + The compression mode used for the raw data. + Returns the raw data of the QR code as a byte array. + + + + Saves the raw data of the QR code to a specified file with the specified compression mode. + + The path to the file where the raw data will be saved. + The compression mode used for the raw data. + + + + Gets the version of the QR code. + + + + + Gets the number of modules per side from the specified version. + + The version of the QR code (1 to 40, or -1 to -4 for Micro QR codes). + Returns the number of modules per side. + + + + Releases all resources used by the . + + + + + Specifies the compression mode used for the raw data. + + + + + No compression. + + + + + Deflate compression. + + + + + GZip compression. + + + + + Provides functionality to generate QR code data that can be used to create QR code images. + + + + + Initializes the QR code generator + + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the Micro QR code data which then can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Set fixed Micro QR code target version; must be -1 to -4 representing M1 to M4, or 0 for default. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Validates the specified error correction level. + Returns the provided level if it is valid, or the level M if the provided level is Default. + Throws an exception if an invalid level is provided. + + + + + Generates a QR code data structure using the provided BitArray, error correction level, and version. + The BitArray provided is assumed to already include the count, encoding mode, and/or ECI mode information. + + The BitArray containing the binary-encoded data to be included in the QR code. It should already contain the count, encoding mode, and/or ECI mode information. + The desired error correction level for the QR code. This impacts how much data can be recovered if damaged. + The version of the QR code, determining the size and complexity of the QR code data matrix. + A QRCodeData structure containing the full QR code matrix, which can be used for rendering or analysis. + + + + Generates a BitArray containing the format string for a QR code based on the error correction level and mask pattern version. + The format string includes the error correction level, mask pattern version, and error correction coding. + + The to write to, or null to create a new one. + The version number of the QR Code (1-40, or -1 to -4 for Micro QR codes). + The error correction level to be encoded in the format string. + The mask pattern version to be encoded in the format string. + A BitArray containing the 15-bit format string used in QR code generation. + + + + Encodes the version information of a QR code into a BitArray using error correction coding similar to format information encoding. + This method is used for QR codes version 7 and above. + + A to write the version string to. + The version number of the QR code (7-40). + A BitArray containing the encoded version information, which includes error correction bits. + + + + Calculates the Error Correction Codewords (ECC) for a segment of data using the provided ECC information. + This method applies polynomial division, using the message polynomial and a generator polynomial, + to compute the remainder which forms the ECC codewords. + + + + + Converts all polynomial item coefficients from their alpha exponent notation to decimal representation in place. + This conversion facilitates operations that require polynomial coefficients in their integer forms. + + + + + Determines the most efficient encoding mode for the given plain text based on its character content + and a flag indicating whether to force UTF-8 encoding. + + + + + Checks if a character falls within a specified range. + + + + + Converts a segment of a BitArray representing QR code data into a polynomial, + padding the final byte if necessary (for Micro QR variants like M1 or M3). + + The full bit array representing encoded QR code data. + Starting position in the bit array. + Total number of bits to convert into codewords. + A polynomial representing the message codewords. + + + + Calculates the generator polynomial used for creating error correction codewords. + + The number of error correction codewords to generate. + A polynomial that can be used to generate ECC codewords. + + + + Converts a segment of a BitArray into its decimal (integer) equivalent. + + The integer value that represents the specified binary data. + + + + Converts a decimal number to binary and stores the result in a BitArray starting from a specific index. + + The decimal number to convert to binary. + The number of bits to use for the binary representation (ensuring fixed-width like 8, 16, 32 bits). + The BitArray where the binary bits will be stored. + The starting index in the BitArray where the bits will be stored. + The next index in the BitArray after the last bit placed. + + + + Determines the number of bits used to indicate the count of characters in a segment, depending on the QR code version and the encoding mode. + + The version of the QR code, which influences the number of bits due to increasing data capacity. + The encoding mode (e.g., Numeric, Alphanumeric, Byte) used for the data segment. + The number of bits needed to represent the character count in the specified encoding mode and version. + + + + Calculates the data length based on the encoding mode, text content, and whether UTF-8 is forced. + + The encoding mode used for the QR code data. + The plain text input to be encoded. + A BitArray representing the binary data of the encoded text. + Flag to determine if UTF-8 encoding should be enforced. + The length of data in units appropriate to the encoding (bytes or characters). + + + + Checks if the given string can be accurately represented and retrieved in ISO-8859-1 encoding. + + + + + Converts plain text to a binary format suitable for QR code generation, based on the specified encoding mode. + + The text to be encoded. + The encoding mode. + The ECI mode specifying the character encoding to use. + Flag indicating whether to prepend a UTF-8 Byte Order Mark. + Flag indicating whether UTF-8 encoding is forced. + A BitArray containing the binary representation of the encoded data. + + + + Converts numeric plain text into a binary format specifically optimized for QR codes. + Numeric compression groups up to 3 digits into 10 bits, less for remaining digits if they do not complete a group of three. + + The numeric text to be encoded, which should only contain digit characters. + A BitArray representing the binary data of the encoded numeric text. + + + + Converts plain text into a binary format using byte mode encoding, which supports various character encodings through ECI (Extended Channel Interpretations). + + The text to be encoded. + The ECI mode that specifies the character encoding to use. + Specifies whether to include a Byte Order Mark (BOM) for UTF-8 encoding. + Forces UTF-8 encoding regardless of the text content's compatibility with ISO-8859-1. + A BitArray representing the binary data of the encoded text. + + The returned text is always encoded as ISO-8859-1 unless either the text contains a non-ISO-8859-1 character or + UTF-8 encoding is forced. This does not meet the QR Code standard, which requires the use of ECI to specify the encoding + when not ISO-8859-1. + + + + + Converts an array of bytes into a BitArray, considering the proper bit order within each byte. + Unlike the constructor of BitArray, this function preserves the MSB-to-LSB order within each byte. + + The byte array to convert into a BitArray. + The number of leading zeros to prepend to the resulting BitArray. + A BitArray representing the bits of the input byteArray, with optional leading zeros. + + + + Performs a bitwise XOR operation between two polynomials, commonly used in QR code error correction coding. + + The resultant polynomial after performing the XOR operation. + + + + Multiplies a generator polynomial by a leading term polynomial, reducing the result by a specified lower exponent, + used in constructing QR code error correction codewords. + + + + + Multiplies two polynomials, treating coefficients as exponents of a primitive element (alpha), which is common in error correction algorithms such as Reed-Solomon. + + The first polynomial to multiply. + The second polynomial to multiply. + A new polynomial which is the result of the multiplication of the two input polynomials. + + + + + + + Represents the alignment pattern used in QR codes, which helps ensure the code remains readable even if it is somewhat distorted. + Each QR code version has its own specific alignment pattern locations which this struct encapsulates. + + + + + The version of the QR code. Higher versions have more complex and numerous alignment patterns. + + + + + A list of points where alignment patterns are located within the QR code matrix. + Each point represents the center of an alignment pattern. + + + + + This class contains the alignment patterns used in QR codes. + + + + + A lookup table mapping QR code versions to their corresponding alignment patterns. + + + + + Retrieves the alignment pattern for a specific QR code version. + + + + + Creates a lookup table mapping QR code versions to their corresponding alignment patterns. + Alignment patterns are used in QR codes to help scanners accurately read the code at high speeds and when partially obscured. + This table provides the necessary patterns based on the QR code version which dictates the size and complexity of the QR code. + + A dictionary where keys are QR code version numbers and values are AlignmentPattern structures detailing the positions of alignment patterns for each version. + + + + Encodes alphanumeric characters (0–9, A–Z (uppercase), space, $, %, *, +, -, period, /, colon) into a binary format suitable for QR codes. + + + + + A dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + + + + Creates a dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + A dictionary mapping each supported alphanumeric character to its corresponding value. + + + + Checks if a character is present in the alphanumeric encoding table. + + + + + Converts alphanumeric plain text into a binary format optimized for QR codes. + Alphanumeric encoding packs characters into 11-bit groups for each pair of characters, + and 6 bits for a single remaining character if the total count is odd. + + The alphanumeric text to be encoded, which should only contain characters valid in QR alphanumeric mode. + A BitArray representing the binary data of the encoded alphanumeric text. + + + + Provides QR code capacity and error correction data for each version and encoding mode. + Used to determine how much data can be stored in a QR code and which version is required. + + + + + A list containing detailed capacity information for each version of QR codes. + The index in the capacity table corresponds to one less than the version number. + + + + + A table containing the error correction capacities and data codeword information for different combinations of QR code versions and error correction levels. + + + + + Retrieves the error correction information for a specific QR code version and error correction level. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + The desired error correction level (L, M, Q, or H). Do not supply . + + An object containing the total number of data codewords, ECC per block, + block group details, and other parameters required for encoding error correction data. + + + + + Retrieves the capacity information for a specific QR code version. + The returned structure contains detailed data capacity values for each error correction level (L, M, Q, H) + and encoding mode (Numeric, Alphanumeric, Byte, Kanji), indicating the maximum number of characters + that can be stored in a QR code of the specified version under each configuration. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + A object containing data capacity details for all error correction levels + and encoding modes for the specified version. + + + + + Retrieves the number of remainder bits required for a specific QR code version. + Remainder bits are added to the final bit stream to ensure proper alignment with byte boundaries, + as required by the QR code specification. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + The number of remainder bits (0 to 7) that must be appended to the encoded bit stream. + + + + + Determines the minimum QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Low, Medium, Quartile, High). + The minimum version of the QR code that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Determines the minimum Micro QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Default, Low, Medium, Quartile, High). + The minimum version of the QR code (-1 to -4) that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Generates a table containing the error correction capacities and data codeword information for different QR code versions and error correction levels. + This table is essential for determining how much data can be encoded in a QR code of a specific version and ECC level, + as well as how robust the QR code will be against distortions or obstructions. + + A list of ECCInfo structures, each representing the ECC data and capacities for different combinations of QR code versions and ECC levels. + + + + Generates a list containing detailed capacity information for various versions of QR codes. + This table includes capacities for different encoding modes (numeric, alphanumeric, byte, etc.) under each error correction level. + The capacity table is crucial for QR code generation, as it determines how much data each QR code version can store depending on the encoding mode and error correction level used. + The index in the capacity table corresponds to one less than the version number. + + + + + + + + Represents a block of codewords in a QR code. QR codes are divided into several blocks for error correction purposes. + Each block contains a series of data codewords followed by error correction codewords. + + + + + Initializes a new instance of the CodewordBlock struct with specified arrays of code words and error correction (ECC) words. + + The offset of the data codewords within the main BitArray. Data codewords carry the actual information. + The length in bits of the data codewords within the main BitArray. + The array of error correction codewords for this block. These codewords help recover the data if the QR code is damaged. + + + + Gets the offset of the data codewords in the BitArray. + + + + + Gets the length of the data codewords in the BitArray. + + + + + Gets the error correction codewords associated with this block. + + + + + Represents the error correction coding (ECC) information for a specific version and error correction level of a QR code. + + + + + Initializes a new instance of the ECCInfo struct with specified properties. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The number of error correction codewords per block. + The number of blocks in group 1. + The number of codewords in each block of group 1. + The number of blocks in group 2, if any. + The number of codewords in each block of group 2, if any. + + + + Initializes a new instance of the ECCInfo struct with specified properties for Micro QR codes. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The total number of data bits for this version and error correction level. + The number of error correction codewords per block. + + + + Gets the version number of the QR code. + + + + + Gets the error correction level of the QR code. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the number of error correction codewords per block. + + + + + Gets the number of blocks in group 1. + + + + + Gets the number of codewords in each block of group 1. + + + + + Gets the number of blocks in group 2, if any. + + + + + Gets the number of codewords in each block of group 2, if any. + + + + + Defines the levels of error correction available in QR codes. + Each level specifies the proportion of data that can be recovered if the QR code is partially obscured or damaged. + + + + + Default error correction level, which will select Level M (Medium) unless otherwise specified by the payload. + Level M allows approximately 15% of data to be recovered, offering a balance between data capacity and error recovery. + + + + + Level L: Low error correction (approximately 7% of data can be recovered). + This level allows the highest data density. + + + + + Level M: Medium error correction (approximately 15% of data can be recovered). + Offers a balance between data capacity and error recovery. + + + + + Level Q: Quartile error correction (approximately 25% of data can be recovered). + More robust error correction at the cost of reduced data capacity. + + + + + Level H: High error correction (approximately 30% of data can be recovered). + Provides the highest level of error recovery, ideal for environments with high risk of data loss. + + + + + Enumerates the Extended Channel Interpretation (ECI) modes used in QR codes to handle different character encoding standards. + ECI mode allows QR codes to efficiently encode data using character sets other than the default ISO-8859-1. + + + + + Default encoding mode (typically ISO-8859-1). Used when no ECI mode is explicitly specified. + This mode is assumed in basic QR codes where no extended character sets are needed. + + + + + Specifies the use of the ISO-8859-1 character set, covering most Western European languages. + This mode explicitly sets the encoding to ISO-8859-1, which includes characters used in languages such as English, French, German, and Spanish. + + + + + Specifies the use of the ISO-8859-2 character set, which is primarily used for Central and Eastern European languages. + This includes characters used in languages such as Polish, Czech, Slovak, Hungarian, and Romanian. + + + + + Specifies the use of UTF-8 encoding. + UTF-8 can encode any Unicode character and is useful for QR codes that need to support multi-language content. + + + + + Specifies the encoding modes for the characters in a QR code. + + + + + Numeric encoding mode, which is used to encode numeric data (digits 0-9). + Three characters are encoded into 10 bits. + + + + + Alphanumeric encoding mode, which is used to encode alphanumeric characters (0-9, A-Z, space, and some punctuation). + Two characters are encoded into 11 bits. + + + + + Byte encoding mode, primarily using the ISO-8859-1 character set. Each character is encoded into 8 bits. + When combined with ECI, it can be adapted to use other character sets. + + + + + Kanji encoding mode, which is used to encode characters from the Shift JIS character set, primarily for Japanese Kanji and Kana characters. + One character is encoded into 13 bits. This mode is not currently supported by QRCoder. + + + + + Extended Channel Interpretation (ECI) mode, which specifies a character set via an 8-bit number followed by one of the other encoding modes. + This allows adapting the byte encoding to accommodate various global text encodings. + + + + + Represents a Galois field of 256 elements (GF(256)) used in finite field arithmetic, + typically for error correction algorithms such as Reed-Solomon. + + Provides mappings between exponential and integer representations of field elements + using a primitive element (α). The field is constructed with respect to a generator + polynomial and used for efficient encoding and decoding operations. + + + + + + Retrieves the integer value from the Galois field that corresponds to a given exponent. + This is used in Reed-Solomon and other error correction calculations involving Galois fields. + + + + + Retrieves the exponent from the Galois field that corresponds to a given integer value. + Throws an exception if the integer value is zero, as zero does not have a logarithmic representation in the field. + + + + + Normalizes a Galois field exponent to ensure it remains within the bounds of the field's size. + This is particularly necessary when performing multiplications in the field which can result in exponents exceeding the field's maximum. + + + + + Struct that represents blocked modules using rectangles. + + + + + Initializes a new instance of the struct with a specified size. + + The size of the blocked modules matrix. + + + + Adds a blocked module at the specified coordinates. + + The x-coordinate of the module. + The y-coordinate of the module. + + + + Adds a blocked module defined by the specified rectangle. + + The rectangle that defines the blocked module. + + + + Checks if the specified coordinates are blocked. + + The x-coordinate to check. + The y-coordinate to check. + true if the coordinates are blocked; otherwise, false. + + + + Checks if the specified rectangle is blocked. + + The rectangle to check. + true if the rectangle is blocked; otherwise, false. + + + + Places the version information on the QR code matrix for versions 7 and higher. Version information + is encoded into two small rectangular areas near the bottom left and top right corners outside the timing patterns. + + The QR code data structure to modify. + The bit array containing the version information. + Indicates whether an offset should be applied to the version information placement. + + + + Places the format information on the QR code, encoding the error correction level and mask pattern used. + + The QR code data structure to modify. + The bit array containing the format information. + Specifies whether an offset should be applied. + + + + Applies the most effective mask pattern to the QR code based on minimizing the penalty score, + which evaluates how well the pattern will work for QR scanners. + + The QR code data structure where the mask will be applied. + The version of the QR code, which determines the size and complexity. + List of rectangles representing areas that must not be overwritten. + The error correction level of the QR code, which affects format string values. + The index of the selected mask pattern. + + + + Places data bits into the QR code's module matrix following a specific pattern that navigates around blocked modules. + + The QR code data structure where the data bits are to be placed. + The data bits to be placed within the QR code matrix. + A list of rectangles representing areas within the QR code matrix that should not be modified because they contain other necessary information like format and version info. + + + + Reserves separator areas around the positioning patterns of a QR code to ensure that these crucial areas remain unmodified during data placement. + + The version of the QR code, which determines the number of finder patterns. + The size of the QR code matrix. + A list of rectangles representing areas that must not be overwritten. + + + + Reserves areas for version information on QR codes that are version 7 or higher. Also reserves space for format information. + + The size of the QR code matrix. + The version number of the QR code, which determines the placement of version information. + A list of rectangles representing areas that must not be overwritten. + + + + Places a dark module on the QR code matrix as per QR code specification, which requires a dark module at a specific position for all QR codes. + + The QR code data structure where the dark module is to be placed. + The version number of the QR code, which determines the specific location of the dark module. + A list of rectangles representing areas that must not be overwritten, updated to include the dark module. + + + + Places finder patterns on the QR code. Finder patterns are critical for QR code scanners to correctly orient and recognize the QR code. + + The QR code data structure where the finder patterns will be placed. + A list of rectangles representing areas that must not be overwritten. This is updated with the areas occupied by the finder patterns. + + + + Places alignment patterns on the QR code matrix. Alignment patterns help ensure the scanner can correctly interpret the QR code at various scales and orientations. + + The QR code data structure where the alignment patterns will be placed. + A list of points representing the centers of where alignment patterns should be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by alignment patterns. + + + + Places timing patterns in the QR code. Timing patterns are alternating dark and light modules that help scanners determine the coordinates of modules within the QR code. + + The QR code data structure where the timing patterns will be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by timing patterns. + + + + Provides static methods and properties to handle mask patterns used in QR code generation. + Mask patterns are applied to QR codes to break up patterns in the data matrix that might confuse scanners. + + + + + A dictionary mapping each mask pattern index to its corresponding function that calculates whether a given pixel should be masked. + + + + + Mask pattern 1: (x + y) % 2 == 0 + Applies a checkerboard mask on the QR code. + + + + + Mask pattern 2: y % 2 == 0 + Applies a horizontal striping mask on the QR code. + + + + + Mask pattern 3: x % 3 == 0 + Applies a vertical striping mask on the QR code. + + + + + Mask pattern 4: (x + y) % 3 == 0 + Applies a diagonal striping mask on the QR code. + + + + + Mask pattern 5: ((y / 2) + (x / 3)) % 2 == 0 + Applies a complex pattern mask on the QR code, mixing horizontal and vertical rules. + + + + + Mask pattern 6: ((x * y) % 2 + (x * y) % 3) == 0 + Applies a mask based on the product of x and y coordinates modulo 2 and 3. + + + + + Mask pattern 7: (((x * y) % 2 + (x * y) % 3) % 2) == 0 + Applies a mask based on a more complex function involving the product of x and y coordinates. + + + + + Mask pattern 8: (((x + y) % 2) + ((x * y) % 3) % 2) == 0 + Combines rules of checkers and complex multiplicative masks. + + + + + Calculates a penalty score for a Micro QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Calculates a penalty score for a QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + The score is the sum of four penalty rules applied to the QR code. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Represents a 2D point with integer coordinates. + + + + + Gets the X-coordinate of the point. + + + + + Gets the Y-coordinate of the point. + + + + + Initializes a new instance of the struct with specified X and Y coordinates. + + The X-coordinate of the point. + The Y-coordinate of the point. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + True if the specified has the same X and Y coordinates as the current ; otherwise, false. + + If this method which implements is not implemented, comparisons used by methods such as + fall back to reflection, which causes heap allocations internally during the calls to . + + + + + + + + + + + Represents a polynomial, which is a sum of polynomial terms. + + + + + Initializes a new instance of the struct with a specified number of initial capacity for polynomial terms. + + The initial capacity of the polynomial items list. + + + + Adds a polynomial term to the polynomial. + + + + + Removes the polynomial term at the specified index. + + + + + Gets or sets a polynomial term at the specified index. + + + + + Gets the number of polynomial terms in the polynomial. + + + + + Removes all polynomial terms from the polynomial. + + + + + Clones the polynomial, creating a new instance with the same polynomial terms. + + + + + Sorts the collection of using a custom comparer function. + + + A function that compares two objects and returns an integer indicating their relative order: + less than zero if the first is less than the second, zero if they are equal, or greater than zero if the first is greater than the second. + + + + + Returns a string that represents the polynomial in standard algebraic notation. + Example output: "a^2*x^3 + a^5*x^1 + a^3*x^0", which represents the polynomial 2x³ + 5x + 3. + + + + + + + + Ensures that the polynomial has enough capacity to store the specified number of polynomial terms. + + + + + Rents memory for the polynomial terms from a shared memory pool. + + + + + Returns memory allocated for the polynomial terms back to a shared memory pool. + + + + + Returns an enumerator that iterates through the polynomial terms. + + + + + Value type enumerator for the struct. + + + + + Represents an individual term of a polynomial, consisting of a coefficient and an exponent. + For example, the term 3x² would be represented as a with a coefficient of 3 and an exponent of 2. + + + + + Initializes a new instance of the struct with the specified coefficient and exponent. + + The coefficient of the polynomial term. For example, in the term 3x², the coefficient is 3. + The exponent of the polynomial term. For example, in the term 3x², the exponent is 2. + + + + Gets the coefficient of the polynomial term. + + + + + Gets the exponent of the polynomial term. + + + + + Represents a rectangle defined by its top-left corner's coordinates, width, and height. + + + + + Gets the X-coordinate of the top-left corner of the rectangle. + + + + + Gets the Y-coordinate of the top-left corner of the rectangle. + + + + + Gets the width of the rectangle. + + + + + Gets the height of the rectangle. + + + + + Initializes a new instance of the struct with the specified top-left corner coordinates, width, and height. + + The X-coordinate of the top-left corner of the rectangle. + The Y-coordinate of the top-left corner of the rectangle. + The width of the rectangle. + The height of the rectangle. + + + + Represents version-specific information of a QR code. + + + + + Initializes a new instance of the struct with a specific version number and its details. + + The version number of the QR code. Each version has a different module configuration. + A list of detailed information related to error correction levels and capacity for each encoding mode. + + + + Gets the version number of the QR code. Each version number specifies a different size of the QR matrix. + + + + + Gets a list of details about the QR code version, including the error correction levels and encoding capacities. + + + + + Represents the detailed information about each error correction level and its corresponding capacities in different encoding modes for a specific version of a QR code. + + + + + Initializes a new instance of the struct, detailing the error correction level and the capacity for each encoding mode. + + The error correction level, which determines how much of the code can be restored if the QR code gets damaged. + A dictionary mapping each encoding mode to its capacity for the specific error correction level. + + + + Gets the error correction level of the QR code, influencing how robust the QR code is against errors and damage. + + + + + Gets a dictionary that contains the capacities of different encoding modes under the specified error correction level. + These capacities dictate how many characters can be encoded under each mode. + + + + + Represents a QR code generator that outputs QR codes as SVG images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a scalable QR code as an SVG string. + + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string. + + The pixel size each dark/light module is drawn. + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors, optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors and optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Determines if a module at (x,y) is blocked by the logo area defined by attr. + + + + + Calculates the logo's position and size within the QR code based on the specified percentage size. + + + + + Gets the transparency value (0-255) from a color string. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + The alpha/transparency value from 0 (fully transparent) to 255 (fully opaque). Returns 255 for colors without alpha channel. + + + + Determines if a color string represents a partially transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is transparent; otherwise false. + + + + Determines if a color string represents a fully transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is fully transparent; otherwise false. + + + + Converts a Color to a hex string in #RGB, #RRGGBB or #RRGGBBAA format; or 'transparent' for fully transparent colors. + + The color to convert. + A hex string representation of the color. + + + + Mode of sizing attribute on SVG root node + + + + + Specifies width and height attributes for SVG sizing + + + + + Width and height are not included within the SVG tag; viewBox is scaled to fit the container + + + + + Represents a logo graphic that can be rendered on a SvgQRCode + + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as Bitmap/rasterized graphic + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as SVG/vectorized graphic/string + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + If true, the logo will embedded as native svg instead of embedding it as image-tag + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as PNG + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Returns the raw logo's data + + + + + Defines, if the logo shall be natively embedded. + true=native svg embedding, false=embedding via image-tag + + + + + Returns the media type of the logo + + + + + + Returns the logo as data-uri + + + + + Returns how much of the QR code should be covered by the logo (in percent) + + + + + Returns if the background of the logo should be cleaned (no QR modules will be rendered behind the logo) + + + + + Media types for SvgLogos + + + + + Portable Network Graphics (PNG) image format + + + + + Scalable Vector Graphics (SVG) image format + + + + + Provides static methods for creating SVG QR codes. + + + + + Creates an SVG QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The pixel size each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HEX format (e.g., #000000). + The color of the light modules in HEX format (e.g., #ffffff). + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Specifies that when a method returns System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue, + the parameter will not be null even if the corresponding type allows it. + + + + + Initializes the attribute with the specified return value condition. + + If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. If the method returns this value, the associated + parameter will not be null. + + + + diff --git a/bin/Debug/QRCodes/medication_15.png b/bin/Debug/QRCodes/medication_15.png new file mode 100644 index 0000000..eccea35 Binary files /dev/null and b/bin/Debug/QRCodes/medication_15.png differ diff --git a/bin/Debug/QRCodes/medication_16.png b/bin/Debug/QRCodes/medication_16.png new file mode 100644 index 0000000..7410963 Binary files /dev/null and b/bin/Debug/QRCodes/medication_16.png differ diff --git a/bin/Debug/QRCodes/medication_26.png b/bin/Debug/QRCodes/medication_26.png new file mode 100644 index 0000000..c2b95c0 Binary files /dev/null and b/bin/Debug/QRCodes/medication_26.png differ diff --git a/bin/Debug/QRCodes/medication_31.png b/bin/Debug/QRCodes/medication_31.png new file mode 100644 index 0000000..79d755c Binary files /dev/null and b/bin/Debug/QRCodes/medication_31.png differ diff --git a/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs b/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs new file mode 100644 index 0000000..3871b18 --- /dev/null +++ b/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] diff --git a/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000..8b9b776 Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..373a21e Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/obj/Debug/Neshina1703.AdminForm.resources b/obj/Debug/Neshina1703.AdminForm.resources new file mode 100644 index 0000000..3802491 Binary files /dev/null and b/obj/Debug/Neshina1703.AdminForm.resources differ diff --git a/obj/Debug/Neshina1703.EmployeeForm.resources b/obj/Debug/Neshina1703.EmployeeForm.resources new file mode 100644 index 0000000..3802491 Binary files /dev/null and b/obj/Debug/Neshina1703.EmployeeForm.resources differ diff --git a/obj/Debug/Neshina1703.LoginForm.resources b/obj/Debug/Neshina1703.LoginForm.resources new file mode 100644 index 0000000..3802491 Binary files /dev/null and b/obj/Debug/Neshina1703.LoginForm.resources differ diff --git a/obj/Debug/Neshina1703.MessengerForm.resources b/obj/Debug/Neshina1703.MessengerForm.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/obj/Debug/Neshina1703.MessengerForm.resources differ diff --git a/obj/Debug/Neshina1703.OrderForm.resources b/obj/Debug/Neshina1703.OrderForm.resources new file mode 100644 index 0000000..3802491 Binary files /dev/null and b/obj/Debug/Neshina1703.OrderForm.resources differ diff --git a/obj/Debug/Neshina1703.ProductForm.resources b/obj/Debug/Neshina1703.ProductForm.resources new file mode 100644 index 0000000..3802491 Binary files /dev/null and b/obj/Debug/Neshina1703.ProductForm.resources differ diff --git a/obj/Debug/Neshina1703.Properties.Resources.resources b/obj/Debug/Neshina1703.Properties.Resources.resources new file mode 100644 index 0000000..6c05a97 Binary files /dev/null and b/obj/Debug/Neshina1703.Properties.Resources.resources differ diff --git a/obj/Debug/Neshina1703.QRCodeViewerForm.resources b/obj/Debug/Neshina1703.QRCodeViewerForm.resources new file mode 100644 index 0000000..3802491 Binary files /dev/null and b/obj/Debug/Neshina1703.QRCodeViewerForm.resources differ diff --git a/obj/Debug/Neshina1703.csproj.AssemblyReference.cache b/obj/Debug/Neshina1703.csproj.AssemblyReference.cache new file mode 100644 index 0000000..8ec9f1a Binary files /dev/null and b/obj/Debug/Neshina1703.csproj.AssemblyReference.cache differ diff --git a/obj/Debug/Neshina1703.csproj.CopyComplete b/obj/Debug/Neshina1703.csproj.CopyComplete new file mode 100644 index 0000000..e69de29 diff --git a/obj/Debug/Neshina1703.csproj.CoreCompileInputs.cache b/obj/Debug/Neshina1703.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..9d45ab7 --- /dev/null +++ b/obj/Debug/Neshina1703.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +6a8573826ab569b5b5838a2076561373d6ed42120d7437c1fc1e2ac46fafbec4 diff --git a/obj/Debug/Neshina1703.csproj.FileListAbsolute.txt b/obj/Debug/Neshina1703.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..678a2fb --- /dev/null +++ b/obj/Debug/Neshina1703.csproj.FileListAbsolute.txt @@ -0,0 +1,22 @@ +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.csproj.AssemblyReference.cache +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.AdminForm.resources +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.EmployeeForm.resources +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.LoginForm.resources +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.OrderForm.resources +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.ProductForm.resources +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.Properties.Resources.resources +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.csproj.GenerateResource.cache +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.csproj.CoreCompileInputs.cache +C:\Users\Student\ISP31\Neshina1703\bin\Debug\Neshina1703.exe.config +C:\Users\Student\ISP31\Neshina1703\bin\Debug\Neshina1703.exe +C:\Users\Student\ISP31\Neshina1703\bin\Debug\Neshina1703.pdb +C:\Users\Student\ISP31\Neshina1703\bin\Debug\MySql.Data.dll +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.csproj.CopyComplete +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.exe +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.pdb +C:\Users\Student\ISP31\Neshina1703\bin\Debug\Newtonsoft.Json.dll +C:\Users\Student\ISP31\Neshina1703\bin\Debug\QRCoder.dll +C:\Users\Student\ISP31\Neshina1703\bin\Debug\Newtonsoft.Json.xml +C:\Users\Student\ISP31\Neshina1703\bin\Debug\QRCoder.xml +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.QRCodeViewerForm.resources +C:\Users\Student\ISP31\Neshina1703\obj\Debug\Neshina1703.MessengerForm.resources diff --git a/obj/Debug/Neshina1703.csproj.GenerateResource.cache b/obj/Debug/Neshina1703.csproj.GenerateResource.cache new file mode 100644 index 0000000..1216930 Binary files /dev/null and b/obj/Debug/Neshina1703.csproj.GenerateResource.cache differ diff --git a/obj/Debug/Neshina1703.exe b/obj/Debug/Neshina1703.exe new file mode 100644 index 0000000..50663af Binary files /dev/null and b/obj/Debug/Neshina1703.exe differ diff --git a/obj/Debug/Neshina1703.pdb b/obj/Debug/Neshina1703.pdb new file mode 100644 index 0000000..9c2d49d Binary files /dev/null and b/obj/Debug/Neshina1703.pdb differ diff --git a/packages.config b/packages.config new file mode 100644 index 0000000..fba067c --- /dev/null +++ b/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/Newtonsoft.Json.13.0.4/.signature.p7s b/packages/Newtonsoft.Json.13.0.4/.signature.p7s new file mode 100644 index 0000000..2c00682 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/.signature.p7s differ diff --git a/packages/Newtonsoft.Json.13.0.4/LICENSE.md b/packages/Newtonsoft.Json.13.0.4/LICENSE.md new file mode 100644 index 0000000..dfaadbe --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.4/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/Newtonsoft.Json.13.0.4/Newtonsoft.Json.13.0.4.nupkg b/packages/Newtonsoft.Json.13.0.4/Newtonsoft.Json.13.0.4.nupkg new file mode 100644 index 0000000..28c70ad Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/Newtonsoft.Json.13.0.4.nupkg differ diff --git a/packages/Newtonsoft.Json.13.0.4/README.md b/packages/Newtonsoft.Json.13.0.4/README.md new file mode 100644 index 0000000..9982a45 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.4/README.md @@ -0,0 +1,71 @@ +# ![Logo](https://raw.githubusercontent.com/JamesNK/Newtonsoft.Json/master/Doc/icons/logo.jpg) Json.NET + +[![NuGet version (Newtonsoft.Json)](https://img.shields.io/nuget/v/Newtonsoft.Json.svg?style=flat-square)](https://www.nuget.org/packages/Newtonsoft.Json/) +[![Build status](https://dev.azure.com/jamesnk/Public/_apis/build/status/JamesNK.Newtonsoft.Json?branchName=master)](https://dev.azure.com/jamesnk/Public/_build/latest?definitionId=8) + +Json.NET is a popular high-performance JSON framework for .NET + +## Serialize JSON + +```csharp +Product product = new Product(); +product.Name = "Apple"; +product.Expiry = new DateTime(2008, 12, 28); +product.Sizes = new string[] { "Small" }; + +string json = JsonConvert.SerializeObject(product); +// { +// "Name": "Apple", +// "Expiry": "2008-12-28T00:00:00", +// "Sizes": [ +// "Small" +// ] +// } +``` + +## Deserialize JSON + +```csharp +string json = @"{ + 'Name': 'Bad Boys', + 'ReleaseDate': '1995-4-7T00:00:00', + 'Genres': [ + 'Action', + 'Comedy' + ] +}"; + +Movie m = JsonConvert.DeserializeObject(json); + +string name = m.Name; +// Bad Boys +``` + +## LINQ to JSON + +```csharp +JArray array = new JArray(); +array.Add("Manual text"); +array.Add(new DateTime(2000, 5, 23)); + +JObject o = new JObject(); +o["MyArray"] = array; + +string json = o.ToString(); +// { +// "MyArray": [ +// "Manual text", +// "2000-05-23T00:00:00" +// ] +// } +``` + +## Links + +- [Homepage](https://www.newtonsoft.com/json) +- [Documentation](https://www.newtonsoft.com/json/help) +- [NuGet Package](https://www.nuget.org/packages/Newtonsoft.Json) +- [Release Notes](https://github.com/JamesNK/Newtonsoft.Json/releases) +- [Contributing Guidelines](https://github.com/JamesNK/Newtonsoft.Json/blob/master/CONTRIBUTING.md) +- [License](https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md) +- [Stack Overflow](https://stackoverflow.com/questions/tagged/json.net) diff --git a/packages/Newtonsoft.Json.13.0.4/lib/net20/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.4/lib/net20/Newtonsoft.Json.dll new file mode 100644 index 0000000..9054b93 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/lib/net20/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.4/lib/net20/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.4/lib/net20/Newtonsoft.Json.xml new file mode 100644 index 0000000..119d765 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.4/lib/net20/Newtonsoft.Json.xml @@ -0,0 +1,10713 @@ + + + + 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 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. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; 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 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 + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is 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 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 . + + + + + 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. + + 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 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. This value overrides the formatting specified on . + 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. This value overrides the formatting specified on . + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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 serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 . + A null value means there is no maximum. + The default value is 64. + + + + + 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. + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 64. + + + + + 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 64. + + + + + 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. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + 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. + + + + 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 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 . + + + 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 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + 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. + + + + + + + + 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 view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + 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 cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + 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. + + + + 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. + + + + + 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. + + + + 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. + The JSON for this token using the given formatting and converters. + + + + 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 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 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 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 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. + + + 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. + + + + 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. + + A new instance of the . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + 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. + + + + 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. + + + + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + 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. + + + + + + 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 the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; 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. + + + + Represents a trace writer that writes to the application's instances. + + + + + 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. + + + + 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. + + + + + 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. + + + + 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 or sets the object constructor. + + The object constructor. + + + + 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. + + + + + 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 + + + + + Provides a set of static (Shared in Visual Basic) methods for + querying objects that implement . + + + + + Returns the input typed as . + + + + + Returns an empty that has the + specified type argument. + + + + + Converts the elements of an to the + specified type. + + + + + Filters the elements of an based on a specified type. + + + + + Generates a sequence of integral numbers within a specified range. + + The value of the first integer in the sequence. + The number of sequential integers to generate. + + + + Generates a sequence that contains one repeated value. + + + + + Filters a sequence of values based on a predicate. + + + + + Filters a sequence of values based on a predicate. + Each element's index is used in the logic of the predicate function. + + + + + Projects each element of a sequence into a new form. + + + + + Projects each element of a sequence into a new form by + incorporating the element's index. + + + + + Projects each element of a sequence to an + and flattens the resulting sequences into one sequence. + + + + + Projects each element of a sequence to an , + and flattens the resulting sequences into one sequence. The + index of each source element is used in the projected form of + that element. + + + + + Projects each element of a sequence to an , + flattens the resulting sequences into one sequence, and invokes + a result selector function on each element therein. + + + + + Projects each element of a sequence to an , + flattens the resulting sequences into one sequence, and invokes + a result selector function on each element therein. The index of + each source element is used in the intermediate projected form + of that element. + + + + + Returns elements from a sequence as long as a specified condition is true. + + + + + Returns elements from a sequence as long as a specified condition is true. + The element's index is used in the logic of the predicate function. + + + + + Base implementation of First operator. + + + + + Returns the first element of a sequence. + + + + + Returns the first element in a sequence that satisfies a specified condition. + + + + + Returns the first element of a sequence, or a default value if + the sequence contains no elements. + + + + + Returns the first element of the sequence that satisfies a + condition or a default value if no such element is found. + + + + + Base implementation of Last operator. + + + + + Returns the last element of a sequence. + + + + + Returns the last element of a sequence that satisfies a + specified condition. + + + + + Returns the last element of a sequence, or a default value if + the sequence contains no elements. + + + + + Returns the last element of a sequence that satisfies a + condition or a default value if no such element is found. + + + + + Base implementation of Single operator. + + + + + Returns the only element of a sequence, and throws an exception + if there is not exactly one element in the sequence. + + + + + Returns the only element of a sequence that satisfies a + specified condition, and throws an exception if more than one + such element exists. + + + + + Returns the only element of a sequence, or a default value if + the sequence is empty; this method throws an exception if there + is more than one element in the sequence. + + + + + Returns the only element of a sequence that satisfies a + specified condition or a default value if no such element + exists; this method throws an exception if more than one element + satisfies the condition. + + + + + Returns the element at a specified index in a sequence. + + + + + Returns the element at a specified index in a sequence or a + default value if the index is out of range. + + + + + Inverts the order of the elements in a sequence. + + + + + Returns a specified number of contiguous elements from the start + of a sequence. + + + + + Bypasses a specified number of elements in a sequence and then + returns the remaining elements. + + + + + Bypasses elements in a sequence as long as a specified condition + is true and then returns the remaining elements. + + + + + Bypasses elements in a sequence as long as a specified condition + is true and then returns the remaining elements. The element's + index is used in the logic of the predicate function. + + + + + Returns the number of elements in a sequence. + + + + + Returns a number that represents how many elements in the + specified sequence satisfy a condition. + + + + + Returns a that represents the total number + of elements in a sequence. + + + + + Returns a that represents how many elements + in a sequence satisfy a condition. + + + + + Concatenates two sequences. + + + + + Creates a from an . + + + + + Creates an array from an . + + + + + Returns distinct elements from a sequence by using the default + equality comparer to compare values. + + + + + Returns distinct elements from a sequence by using a specified + to compare values. + + + + + Creates a from an + according to a specified key + selector function. + + + + + Creates a from an + according to a specified key + selector function and a key comparer. + + + + + Creates a from an + according to specified key + and element selector functions. + + + + + Creates a from an + according to a specified key + selector function, a comparer and an element selector function. + + + + + Groups the elements of a sequence according to a specified key + selector function. + + + + + Groups the elements of a sequence according to a specified key + selector function and compares the keys by using a specified + comparer. + + + + + Groups the elements of a sequence according to a specified key + selector function and projects the elements for each group by + using a specified function. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. + + + + + Groups the elements of a sequence according to a key selector + function. The keys are compared by using a comparer and each + group's elements are projected by using a specified function. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. The elements of each group are projected by using a + specified function. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. The keys are compared by using a specified comparer. + + + + + Groups the elements of a sequence according to a specified key + selector function and creates a result value from each group and + its key. Key values are compared by using a specified comparer, + and the elements of each group are projected by using a + specified function. + + + + + Applies an accumulator function over a sequence. + + + + + Applies an accumulator function over a sequence. The specified + seed value is used as the initial accumulator value. + + + + + Applies an accumulator function over a sequence. The specified + seed value is used as the initial accumulator value, and the + specified function is used to select the result value. + + + + + Produces the set union of two sequences by using the default + equality comparer. + + + + + Produces the set union of two sequences by using a specified + . + + + + + Returns the elements of the specified sequence or the type + parameter's default value in a singleton collection if the + sequence is empty. + + + + + Returns the elements of the specified sequence or the specified + value in a singleton collection if the sequence is empty. + + + + + Determines whether all elements of a sequence satisfy a condition. + + + + + Determines whether a sequence contains any elements. + + + + + Determines whether any element of a sequence satisfies a + condition. + + + + + Determines whether a sequence contains a specified element by + using the default equality comparer. + + + + + Determines whether a sequence contains a specified element by + using a specified . + + + + + Determines whether two sequences are equal by comparing the + elements by using the default equality comparer for their type. + + + + + Determines whether two sequences are equal by comparing their + elements by using a specified . + + + + + Base implementation for Min/Max operator. + + + + + Base implementation for Min/Max operator for nullable types. + + + + + Returns the minimum value in a generic sequence. + + + + + Invokes a transform function on each element of a generic + sequence and returns the minimum resulting value. + + + + + Returns the maximum value in a generic sequence. + + + + + Invokes a transform function on each element of a generic + sequence and returns the maximum resulting value. + + + + + Makes an enumerator seen as enumerable once more. + + + The supplied enumerator must have been started. The first element + returned is the element the enumerator was on when passed in. + DO NOT use this method if the caller must be a generator. It is + mostly safe among aggregate operations. + + + + + Sorts the elements of a sequence in ascending order according to a key. + + + + + Sorts the elements of a sequence in ascending order by using a + specified comparer. + + + + + Sorts the elements of a sequence in descending order according to a key. + + + + + Sorts the elements of a sequence in descending order by using a + specified comparer. + + + + + Performs a subsequent ordering of the elements in a sequence in + ascending order according to a key. + + + + + Performs a subsequent ordering of the elements in a sequence in + ascending order by using a specified comparer. + + + + + Performs a subsequent ordering of the elements in a sequence in + descending order, according to a key. + + + + + Performs a subsequent ordering of the elements in a sequence in + descending order by using a specified comparer. + + + + + Base implementation for Intersect and Except operators. + + + + + Produces the set intersection of two sequences by using the + default equality comparer to compare values. + + + + + Produces the set intersection of two sequences by using the + specified to compare values. + + + + + Produces the set difference of two sequences by using the + default equality comparer to compare values. + + + + + Produces the set difference of two sequences by using the + specified to compare values. + + + + + Creates a from an + according to a specified key + selector function. + + + + + Creates a from an + according to a specified key + selector function and key comparer. + + + + + Creates a from an + according to specified key + selector and element selector functions. + + + + + Creates a from an + according to a specified key + selector function, a comparer, and an element selector function. + + + + + Correlates the elements of two sequences based on matching keys. + The default equality comparer is used to compare keys. + + + + + Correlates the elements of two sequences based on matching keys. + The default equality comparer is used to compare keys. A + specified is used to compare keys. + + + + + Correlates the elements of two sequences based on equality of + keys and groups the results. The default equality comparer is + used to compare keys. + + + + + Correlates the elements of two sequences based on equality of + keys and groups the results. The default equality comparer is + used to compare keys. A specified + is used to compare keys. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Computes the sum of a sequence of values. + + + + + Computes the sum of a sequence of + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of values. + + + + + Computes the average of a sequence of values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Computes the sum of a sequence of nullable values. + + + + + Computes the sum of a sequence of nullable + values that are obtained by invoking a transform function on + each element of the input sequence. + + + + + Computes the average of a sequence of nullable values. + + + + + Computes the average of a sequence of nullable values + that are obtained by invoking a transform function on each + element of the input sequence. + + + + + Returns the minimum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the minimum nullable value. + + + + + Returns the maximum value in a sequence of nullable + values. + + + + + Invokes a transform function on each element of a sequence and + returns the maximum nullable value. + + + + + Represents a collection of objects that have a common key. + + + + + Gets the key of the . + + + + + Defines an indexer, size property, and Boolean search method for + data structures that map keys to + sequences of values. + + + + + Represents a sorted sequence. + + + + + Performs a subsequent ordering on the elements of an + according to a key. + + + + + Represents a collection of keys each mapped to one or more values. + + + + + Gets the number of key/value collection pairs in the . + + + + + Gets the collection of values indexed by the specified key. + + + + + Determines whether a specified key is in the . + + + + + Applies a transform function to each key and its associated + values and returns the results. + + + + + Returns a generic enumerator that iterates through the . + + + + + See issue #11 + for why this method is needed and cannot be expressed as a + lambda at the call site. + + + + + See issue #11 + for why this method is needed and cannot be expressed as a + lambda at the call site. + + + + + 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 that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Indicates that the specified public static boolean get-only property + guards access to the specified feature. + + + Analyzers can use this to prevent warnings on calls to code that is + annotated as requiring that feature, when the callsite is guarded by a + call to the property. + + + + + Initializes a new instance of the class + with the specified feature type. + + + The type that represents the feature guarded by the property. + + + + + The type that represents the feature guarded by the property. + + + + + Indicates that the specified public static boolean get-only property + corresponds to the feature switch specified by name. + + + IL rewriters and compilers can use this to substitute the return value + of the specified property with the value of the feature switch. + + + + + Initializes a new instance of the class + with the specified feature switch name. + + + The name of the feature switch that provides the value for the specified property. + + + + + The name of the feature switch that provides the value for the specified property. + + + + 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. + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + + This attribute allows us to define extension methods without + requiring .NET Framework 3.5. For more information, see the section, + Extension Methods in .NET Framework 2.0 Apps, + of Basic Instincts: Extension Methods + column in MSDN Magazine, + issue Nov 2007. + + + + diff --git a/packages/Newtonsoft.Json.13.0.4/lib/net35/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.4/lib/net35/Newtonsoft.Json.dll new file mode 100644 index 0000000..4b0e79d Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/lib/net35/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.4/lib/net35/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.4/lib/net35/Newtonsoft.Json.xml new file mode 100644 index 0000000..6406c38 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.4/lib/net35/Newtonsoft.Json.xml @@ -0,0 +1,9861 @@ + + + + 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. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; 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 an Entity Framework 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 + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is 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 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 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. This value overrides the formatting specified on . + 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. This value overrides the formatting specified on . + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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 serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + 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 . + + + + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 . + A null value means there is no maximum. + The default value is 64. + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 64. + + + + + 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 64. + + + + + 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. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Raises the event. + + The instance containing the event data. + + + + 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. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + 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. + + + + 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 view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + 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 cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + 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. + + + + 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. + + + + + 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. + + + + 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. + The JSON for this token using the given formatting and converters. + + + + 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 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. + + + 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. + + + + 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. + + A new instance of the . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + 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. + + + + + + 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 the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; 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. + + + + Represents a trace writer that writes to the application's instances. + + + + + 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. + + + + 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. + + + + + 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. + + + + 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 or sets the object constructor. + + The object constructor. + + + + 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. + + + + + 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 that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Indicates that the specified public static boolean get-only property + guards access to the specified feature. + + + Analyzers can use this to prevent warnings on calls to code that is + annotated as requiring that feature, when the callsite is guarded by a + call to the property. + + + + + Initializes a new instance of the class + with the specified feature type. + + + The type that represents the feature guarded by the property. + + + + + The type that represents the feature guarded by the property. + + + + + Indicates that the specified public static boolean get-only property + corresponds to the feature switch specified by name. + + + IL rewriters and compilers can use this to substitute the return value + of the specified property with the value of the feature switch. + + + + + Initializes a new instance of the class + with the specified feature switch name. + + + The name of the feature switch that provides the value for the specified property. + + + + + The name of the feature switch that provides the value for the specified property. + + + + 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. + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + diff --git a/packages/Newtonsoft.Json.13.0.4/lib/net40/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.4/lib/net40/Newtonsoft.Json.dll new file mode 100644 index 0000000..87f28e5 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/lib/net40/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.4/lib/net40/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.4/lib/net40/Newtonsoft.Json.xml new file mode 100644 index 0000000..b8fe444 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.4/lib/net40/Newtonsoft.Json.xml @@ -0,0 +1,10061 @@ + + + + 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. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; 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 Entity Framework 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 + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is 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 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 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. This value overrides the formatting specified on . + 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. This value overrides the formatting specified on . + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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 serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + 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 . + + + + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 . + A null value means there is no maximum. + The default value is 64. + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 64. + + + + + 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 64. + + + + + 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. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + 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. + + + + Raises the event. + + The instance containing the event data. + + + + 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. + + + + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + 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. + + + + 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. + + + + + 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 view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + 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 cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + 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. + + + + 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. + + + + + 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. + + + + 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. + The JSON for this token using the given formatting and converters. + + + + 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 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. + + + 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. + + + + 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. + + 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 . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + 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. + + + + + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + 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. + + + + + + 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 the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; 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. + + + + 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. + + + + Represents a trace writer that writes to the application's instances. + + + + + 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. + + + + 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. + + + + + 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 . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + 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. + + + + + 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 + + + + + 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 that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Indicates that the specified public static boolean get-only property + guards access to the specified feature. + + + Analyzers can use this to prevent warnings on calls to code that is + annotated as requiring that feature, when the callsite is guarded by a + call to the property. + + + + + Initializes a new instance of the class + with the specified feature type. + + + The type that represents the feature guarded by the property. + + + + + The type that represents the feature guarded by the property. + + + + + Indicates that the specified public static boolean get-only property + corresponds to the feature switch specified by name. + + + IL rewriters and compilers can use this to substitute the return value + of the specified property with the value of the feature switch. + + + + + Initializes a new instance of the class + with the specified feature switch name. + + + The name of the feature switch that provides the value for the specified property. + + + + + The name of the feature switch that provides the value for the specified property. + + + + 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. + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + diff --git a/packages/Newtonsoft.Json.13.0.4/lib/net45/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.4/lib/net45/Newtonsoft.Json.dll new file mode 100644 index 0000000..3f6541a Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/lib/net45/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.4/lib/net45/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.4/lib/net45/Newtonsoft.Json.xml new file mode 100644 index 0000000..1d42757 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.4/lib/net45/Newtonsoft.Json.xml @@ -0,0 +1,11698 @@ + + + + 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. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; 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 Entity Framework 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 + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is 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 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 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. This value overrides the formatting specified on . + 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. This value overrides the formatting specified on . + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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 serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + 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 . + + + + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 . + A null value means there is no maximum. + The default value is 64. + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 64. + + + + + 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 64. + + + + + 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. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + 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. + + + + Raises the event. + + The instance containing the event data. + + + + 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. + + + + + Occurs when a property value is changing. + + + + + 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. + + + + 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 view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + 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 cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + 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. + + + + 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. + + + + + 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. + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + 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. + + + + 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. + The JSON for this token using the given formatting and converters. + + + + 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 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. + + + 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. + + + + 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. + + 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 . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + 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. + + + + + + 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 the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; 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. + + + + 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. + + + + Represents a trace writer that writes to the application's instances. + + + + + 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. + + + + 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. + + + + + 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 . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + 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. + + + + + 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 + + + + + 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 that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Indicates that the specified public static boolean get-only property + guards access to the specified feature. + + + Analyzers can use this to prevent warnings on calls to code that is + annotated as requiring that feature, when the callsite is guarded by a + call to the property. + + + + + Initializes a new instance of the class + with the specified feature type. + + + The type that represents the feature guarded by the property. + + + + + The type that represents the feature guarded by the property. + + + + + Indicates that the specified public static boolean get-only property + corresponds to the feature switch specified by name. + + + IL rewriters and compilers can use this to substitute the return value + of the specified property with the value of the feature switch. + + + + + Initializes a new instance of the class + with the specified feature switch name. + + + The name of the feature switch that provides the value for the specified property. + + + + + The name of the feature switch that provides the value for the specified property. + + + + 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. + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + diff --git a/packages/Newtonsoft.Json.13.0.4/lib/net6.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.4/lib/net6.0/Newtonsoft.Json.dll new file mode 100644 index 0000000..5813d8c Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/lib/net6.0/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.4/lib/net6.0/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.4/lib/net6.0/Newtonsoft.Json.xml new file mode 100644 index 0000000..040f078 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.4/lib/net6.0/Newtonsoft.Json.xml @@ -0,0 +1,11431 @@ + + + + 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. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; 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 Entity Framework 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 + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is 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 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 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. This value overrides the formatting specified on . + 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. This value overrides the formatting specified on . + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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 serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + 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 . + + + + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 . + A null value means there is no maximum. + The default value is 64. + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 64. + + + + + 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 64. + + + + + 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. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + 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. + + + + Raises the event. + + The instance containing the event data. + + + + 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. + + + + + Occurs when a property value is changing. + + + + + 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. + + + + 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 view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + 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 cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + 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. + + + + 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. + + + + + 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. + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + 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. + + + + 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. + The JSON for this token using the given formatting and converters. + + + + 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 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. + + + 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. + + + + 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. + + 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 . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + 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. + + + + + + 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 the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; 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. + + + + 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. + + + + Represents a trace writer that writes to the application's instances. + + + + + 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. + + + + 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. + + + + + 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 . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + 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. + + + + + 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 + + + + + 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 that the specified public static boolean get-only property + guards access to the specified feature. + + + Analyzers can use this to prevent warnings on calls to code that is + annotated as requiring that feature, when the callsite is guarded by a + call to the property. + + + + + Initializes a new instance of the class + with the specified feature type. + + + The type that represents the feature guarded by the property. + + + + + The type that represents the feature guarded by the property. + + + + + Indicates that the specified public static boolean get-only property + corresponds to the feature switch specified by name. + + + IL rewriters and compilers can use this to substitute the return value + of the specified property with the value of the feature switch. + + + + + Initializes a new instance of the class + with the specified feature switch name. + + + The name of the feature switch that provides the value for the specified property. + + + + + The name of the feature switch that provides the value for the specified property. + + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + diff --git a/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.0/Newtonsoft.Json.dll new file mode 100644 index 0000000..ae93dcf Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.0/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.0/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.0/Newtonsoft.Json.xml new file mode 100644 index 0000000..e0cef5a --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.0/Newtonsoft.Json.xml @@ -0,0 +1,11386 @@ + + + + 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 + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is 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 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 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. This value overrides the formatting specified on . + 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. This value overrides the formatting specified on . + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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 . + A null value means there is no maximum. + The default value is 64. + + + + + 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 64. + + + + + 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 64. + + + + + 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. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + 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 cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + 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. + + + + 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. + + + + + 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. + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + 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. + + + + 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. + The JSON for this token using the given formatting and converters. + + + + 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 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. + + + 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. + + + + 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. + + 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 . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + 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. + + + + + Indicates that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Indicates that the specified public static boolean get-only property + guards access to the specified feature. + + + Analyzers can use this to prevent warnings on calls to code that is + annotated as requiring that feature, when the callsite is guarded by a + call to the property. + + + + + Initializes a new instance of the class + with the specified feature type. + + + The type that represents the feature guarded by the property. + + + + + The type that represents the feature guarded by the property. + + + + + Indicates that the specified public static boolean get-only property + corresponds to the feature switch specified by name. + + + IL rewriters and compilers can use this to substitute the return value + of the specified property with the value of the feature switch. + + + + + Initializes a new instance of the class + with the specified feature switch name. + + + The name of the feature switch that provides the value for the specified property. + + + + + The name of the feature switch that provides the value for the specified property. + + + + 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. + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + diff --git a/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.3/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.3/Newtonsoft.Json.dll new file mode 100644 index 0000000..801b768 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.3/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.3/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.3/Newtonsoft.Json.xml new file mode 100644 index 0000000..fc1a32e --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.4/lib/netstandard1.3/Newtonsoft.Json.xml @@ -0,0 +1,11508 @@ + + + + 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 + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is 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 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 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. This value overrides the formatting specified on . + 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. This value overrides the formatting specified on . + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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 serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + 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 . + + + + 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 . + A null value means there is no maximum. + The default value is 64. + + + + + 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 64. + + + + + 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 64. + + + + + 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. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + 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. + + + + + Occurs when a property value is changing. + + + + + 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. + + + + 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 cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + 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. + + + + 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. + + + + + 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. + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + 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. + + + + 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. + The JSON for this token using the given formatting and converters. + + + + 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 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. + + + 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. + + + + 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. + + 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 . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + 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 the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; 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. + + + + 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 . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + 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. + + + + + Indicates that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Indicates that the specified public static boolean get-only property + guards access to the specified feature. + + + Analyzers can use this to prevent warnings on calls to code that is + annotated as requiring that feature, when the callsite is guarded by a + call to the property. + + + + + Initializes a new instance of the class + with the specified feature type. + + + The type that represents the feature guarded by the property. + + + + + The type that represents the feature guarded by the property. + + + + + Indicates that the specified public static boolean get-only property + corresponds to the feature switch specified by name. + + + IL rewriters and compilers can use this to substitute the return value + of the specified property with the value of the feature switch. + + + + + Initializes a new instance of the class + with the specified feature switch name. + + + The name of the feature switch that provides the value for the specified property. + + + + + The name of the feature switch that provides the value for the specified property. + + + + 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. + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + diff --git a/packages/Newtonsoft.Json.13.0.4/lib/netstandard2.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.13.0.4/lib/netstandard2.0/Newtonsoft.Json.dll new file mode 100644 index 0000000..da695d1 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/lib/netstandard2.0/Newtonsoft.Json.dll differ diff --git a/packages/Newtonsoft.Json.13.0.4/lib/netstandard2.0/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.13.0.4/lib/netstandard2.0/Newtonsoft.Json.xml new file mode 100644 index 0000000..775fdd1 --- /dev/null +++ b/packages/Newtonsoft.Json.13.0.4/lib/netstandard2.0/Newtonsoft.Json.xml @@ -0,0 +1,11673 @@ + + + + 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. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + 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 value type. + + Type of the value. + + true if this instance can convert the specified value type; 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 Entity Framework 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 + + + + + Gets or sets a value indicating whether the dates before Unix epoch + should converted to and from JSON. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + true to allow converting dates before Unix epoch to and from JSON; + false to throw an exception when a date being converted to or from JSON + occurred before Unix epoch. The default value is 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 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 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. This value overrides the formatting specified on . + 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. This value overrides the formatting specified on . + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the JSON string. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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. A value is returned if the provided JSON is valid but represents a null value. + + + + 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 serialize. + A JSON string of the . + + + + Serializes the to a JSON string using formatting. + + The node to serialize. + 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 . + + + + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 . + A null value means there is no maximum. + The default value is 64. + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 64. + + + + + 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 64. + + + + + 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. + + + + + Initializes a new instance of the class + using values copied from the passed in . + + + + + 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. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + 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 list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + 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. + + + + Raises the event. + + The instance containing the event data. + + + + 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. + + + + + Occurs when a property value is changing. + + + + + 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. + + + + 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 view of a . + + + + + Initializes a new instance of the class. + + The name. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. + When the or + + methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + 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 cloning JSON. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a flag that indicates whether to copy annotations when cloning a . + The default value is true. + + + A flag that indicates whether to copy annotations when cloning a . + + + + + 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. + + + + 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. + + + + + 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. + + + + Writes this token to a asynchronously. + + A into which this method will write. + The token to monitor for cancellation requests. + A that represents the asynchronous write operation. + + + + Writes this token to a asynchronously. + + A into which this method will write. + 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. + + + + 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. + The JSON for this token using the given formatting and converters. + + + + 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 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. + + + 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. + + + + 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. + + 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 . + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A object to configure cloning settings. + 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. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + + 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. + + + + + + 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 the interface when serializing and deserializing types. + + + true if the interface will be ignored when serializing and deserializing types; otherwise, false. + + + + + Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types. + + + true if the attribute will be ignored when serializing and deserializing types; 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. + + + + 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. + + + + Represents a trace writer that writes to the application's instances. + + + + + 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 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 . + + + + + Gets or sets the object constructor. + + The object constructor. + + + + 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. + + + + + 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 + + + + + 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 that certain members on a specified are accessed dynamically, + for example through . + + + This allows tools to understand which members are being accessed during the execution + of a program. + + This attribute is valid on members whose type is or . + + When this attribute is applied to a location of type , the assumption is + that the string represents a fully qualified type name. + + When this attribute is applied to a class, interface, or struct, the members specified + can be accessed dynamically on instances returned from calling + on instances of that class, interface, or struct. + + If the attribute is applied to a method it's treated as a special case and it implies + the attribute should be applied to the "this" parameter of the method. As such the attribute + should only be used on instance methods of types assignable to System.Type (or string, but no methods + will use it there). + + + + + Initializes a new instance of the class + with the specified member types. + + The types of members dynamically accessed. + + + + Gets the which specifies the type + of members dynamically accessed. + + + + + Specifies the types of members that are dynamically accessed. + + This enumeration has a attribute that allows a + bitwise combination of its member values. + + + + + Specifies no members. + + + + + Specifies the default, parameterless public constructor. + + + + + Specifies all public constructors. + + + + + Specifies all non-public constructors. + + + + + Specifies all public methods. + + + + + Specifies all non-public methods. + + + + + Specifies all public fields. + + + + + Specifies all non-public fields. + + + + + Specifies all public nested types. + + + + + Specifies all non-public nested types. + + + + + Specifies all public properties. + + + + + Specifies all non-public properties. + + + + + Specifies all public events. + + + + + Specifies all non-public events. + + + + + Specifies all interfaces implemented by the type. + + + + + Specifies all members. + + + + + Indicates that the specified public static boolean get-only property + guards access to the specified feature. + + + Analyzers can use this to prevent warnings on calls to code that is + annotated as requiring that feature, when the callsite is guarded by a + call to the property. + + + + + Initializes a new instance of the class + with the specified feature type. + + + The type that represents the feature guarded by the property. + + + + + The type that represents the feature guarded by the property. + + + + + Indicates that the specified public static boolean get-only property + corresponds to the feature switch specified by name. + + + IL rewriters and compilers can use this to substitute the return value + of the specified property with the value of the feature switch. + + + + + Initializes a new instance of the class + with the specified feature switch name. + + + The name of the feature switch that provides the value for the specified property. + + + + + The name of the feature switch that provides the value for the specified property. + + + + 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. + + + + Indicates that the specified method requires the ability to generate new code at runtime, + for example through . + + + This allows tools to understand which methods are unsafe to call when compiling ahead of time. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of dynamic code. + + + + + Gets a message that contains information about the usage of dynamic code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires dynamic code, and what options a consumer has to deal with it. + + + + + Indicates that the specified method requires dynamic access to code that is not referenced + statically, for example through . + + + This allows tools to understand which methods are unsafe to call when removing unreferenced + code from an application. + + + + + Initializes a new instance of the class + with the specified message. + + + A message that contains information about the usage of unreferenced code. + + + + + Gets a message that contains information about the usage of unreferenced code. + + + + + Gets or sets an optional URL that contains more information about the method, + why it requires unreferenced code, and what options a consumer has to deal with it. + + + + + Suppresses reporting of a specific rule violation, allowing multiple suppressions on a + single code artifact. + + + is different than + in that it doesn't have a + . So it is always preserved in the compiled assembly. + + + + + Initializes a new instance of the + class, specifying the category of the tool and the identifier for an analysis rule. + + The category for the attribute. + The identifier of the analysis rule the attribute applies to. + + + + Gets the category identifying the classification of the attribute. + + + The property describes the tool or tool analysis category + for which a message suppression attribute applies. + + + + + Gets the identifier of the analysis tool rule to be suppressed. + + + Concatenated together, the and + properties form a unique check identifier. + + + + + Gets or sets the scope of the code that is relevant for the attribute. + + + The Scope property is an optional argument that specifies the metadata scope for which + the attribute is relevant. + + + + + Gets or sets a fully qualified path that represents the target of the attribute. + + + The property is an optional argument identifying the analysis target + of the attribute. An example value is "System.IO.Stream.ctor():System.Void". + Because it is fully qualified, it can be long, particularly for targets such as parameters. + The analysis tool user interface should be capable of automatically formatting the parameter. + + + + + Gets or sets an optional argument expanding on exclusion criteria. + + + The property is an optional argument that specifies additional + exclusion where the literal metadata target is not sufficiently precise. For example, + the cannot be applied within a method, + and it may be desirable to suppress a violation against a statement in the method that will + give a rule violation, but not against all statements in the method. + + + + + Gets or sets the justification for suppressing the code analysis message. + + + + diff --git a/packages/Newtonsoft.Json.13.0.4/packageIcon.png b/packages/Newtonsoft.Json.13.0.4/packageIcon.png new file mode 100644 index 0000000..10c06a5 Binary files /dev/null and b/packages/Newtonsoft.Json.13.0.4/packageIcon.png differ diff --git a/packages/QRCoder.1.7.0/.signature.p7s b/packages/QRCoder.1.7.0/.signature.p7s new file mode 100644 index 0000000..7855dbf Binary files /dev/null and b/packages/QRCoder.1.7.0/.signature.p7s differ diff --git a/packages/QRCoder.1.7.0/QRCoder.1.7.0.nupkg b/packages/QRCoder.1.7.0/QRCoder.1.7.0.nupkg new file mode 100644 index 0000000..c623438 Binary files /dev/null and b/packages/QRCoder.1.7.0/QRCoder.1.7.0.nupkg differ diff --git a/packages/QRCoder.1.7.0/README.md b/packages/QRCoder.1.7.0/README.md new file mode 100644 index 0000000..295d15c --- /dev/null +++ b/packages/QRCoder.1.7.0/README.md @@ -0,0 +1,195 @@ +# QRCoder + +[![License](https://img.shields.io/github/license/Shane32/QRCoder)](LICENSE.txt) +[![NuGet](https://img.shields.io/nuget/v/QRCoder)](https://www.nuget.org/packages/QRCoder/) +[![Nuget](https://img.shields.io/nuget/dt/QRCoder)](https://www.nuget.org/packages/QRCoder) +[![Coverage](https://codecov.io/gh/Shane32/QRCoder/branch/master/graph/badge.svg?token=3yNs88KD8S)](https://codecov.io/gh/Shane32/QRCoder) +[![GitHub contributors](https://img.shields.io/github/contributors/Shane32/QRCoder)](https://github.com/Shane32/QRCoder/graphs/contributors) + +QRCoder is a simple C# library originally created by [Raffael Herrmann](https://raffaelherrmann.de) for generating QR codes and Micro QR codes. + +- 📚 [Documentation & Wiki](https://github.com/Shane32/QRCoder/wiki) +- 📋 [Release notes / Changelog](https://github.com/Shane32/QRCoder/releases) +- 🚀 [Upcoming features](https://github.com/Shane32/QRCoder/milestones) + +## ✨ Features + +- 🚀 **Zero dependencies** - No external libraries required (framework dependencies only) +- ⚡ **Fast performance** - Optimized QR code generation with low memory footprint +- 🎨 **Multiple output formats** - PNG, SVG, PDF, ASCII, Bitmap, PostScript, and more +- 📱 **23+ payload generators** - WiFi, vCard, URLs, payments, and many more +- 🔧 **Highly configurable** - Error correction levels, custom colors, logos, and styling +- 🌐 **Cross-platform** - Supports .NET 5+, .NET Framework 3.5+, .NET Core 1.0+, and .NET Standard 1.3+ +- 📦 **Micro QR codes** - Smaller QR codes for space-constrained applications + +## 📦 Installation + +Install via NuGet Package Manager: + +```bash +PM> Install-Package QRCoder +``` + +## 🚀 Quick Start + +Generate a QR code with just a few lines of code, either using a renderer's static helper method, or by creating a QR code first and then passing it to a renderer: + +```csharp +using QRCoder; + +// Generate a simple black and white PNG QR code +byte[] qrCodeImage = PngByteQRCodeHelper.GetQRCode("Hello World", QRCodeGenerator.ECCLevel.Q, 20); + +// Generate a scalable black and white SVG QR code +using var qrCodeData = QRCodeGenerator.GenerateQrCode("Hello World", QRCodeGenerator.ECCLevel.Q); +using var svgRenderer = new SvgQRCode(qrCodeData); +string svg = svgRenderer.GetGraphic(); +``` + +For more examples and detailed usage instructions, see: [Wiki: How to use QRCoder](https://github.com/Shane32/QRCoder/wiki/How-to-use-QRCoder) + +## 📱 Payload Generators + +QR codes can encode structured data that triggers specific actions when scanned (e.g., WiFi credentials, contact information, URLs). QRCoder includes payload generators that create properly formatted strings for these common use cases. + +### Usage Example + +```csharp +using QRCoder; + +// Create a bookmark payload +var bookmarkPayload = new PayloadGenerator.Bookmark("https://github.com/Shane32/QRCoder", "QRCoder Repository"); + +// Generate the QR code data from the payload +using var qrCodeData = QRCodeGenerator.GenerateQrCode(bookmarkPayload); + +// Or override the ECC level +using var qrCodeData2 = QRCodeGenerator.GenerateQrCode(bookmarkPayload, QRCodeGenerator.ECCLevel.H); + +// Render the QR code +using var pngRenderer = new PngByteQRCode(qrCodeData); +byte[] qrCodeImage = pngRenderer.GetGraphic(20); +``` + +### Available Payload Types + +| Payload Type | Usage Example | Description | +|--------------|---------------|-------------| +| [**WiFi**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#321-wifi) | `new PayloadGenerator.WiFi(ssid, password, auth)` | WiFi network credentials | +| [**URL**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#319-url) | `new PayloadGenerator.Url("https://example.com")` | Website URL | +| [**Bookmark**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#33-bookmark) | `new PayloadGenerator.Bookmark(url, title)` | Browser bookmark | +| [**Mail**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#38-mail) | `new PayloadGenerator.Mail(email, subject, body)` | Email with pre-filled fields | +| [**SMS**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#317-sms) | `new PayloadGenerator.SMS(number, message)` | SMS message | +| [**MMS**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#39-mms) | `new PayloadGenerator.MMS(number, subject)` | MMS message | +| [**Geolocation**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#36-geolocation) | `new PayloadGenerator.Geolocation(lat, lng)` | GPS coordinates | +| [**PhoneNumber**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#312-phonenumber) | `new PayloadGenerator.PhoneNumber(number)` | Phone number for calling | +| [**SkypeCall**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#315-skype-call) | `new PayloadGenerator.SkypeCall(username)` | Skype call | +| [**WhatsAppMessage**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#320-whatsappmessage) | `new PayloadGenerator.WhatsAppMessage(number, msg)` | WhatsApp message | +| [**ContactData**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#35-contactdata-mecardvcard) | `new PayloadGenerator.ContactData(...)` | vCard/MeCard contact | +| [**CalendarEvent**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#34-calendar-events-icalvevent) | `new PayloadGenerator.CalendarEvent(...)` | iCal/vEvent | +| [**OneTimePassword**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#311-one-time-password) | `new PayloadGenerator.OneTimePassword(...)` | TOTP/HOTP for 2FA | +| [**BitcoinAddress**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#32-bitcoin-like-crypto-currency-payment-address) | `new PayloadGenerator.BitcoinAddress(address)` | Bitcoin payment | +| [**BitcoinCashAddress**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#32-bitcoin-like-crypto-currency-payment-address) | `new PayloadGenerator.BitcoinCashAddress(address)` | Bitcoin Cash payment | +| [**LitecoinAddress**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#32-bitcoin-like-crypto-currency-payment-address) | `new PayloadGenerator.LitecoinAddress(address)` | Litecoin payment | +| [**MoneroTransaction**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#310-monero-addresspayment) | `new PayloadGenerator.MoneroTransaction(...)` | Monero payment | +| [**SwissQrCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#318-swissqrcode-iso-20022) | `new PayloadGenerator.SwissQrCode(...)` | Swiss QR bill (ISO-20022) | +| [**Girocode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#37-girocode) | `new PayloadGenerator.Girocode(...)` | SEPA payment (EPC QR) | +| [**BezahlCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#31-bezahlcode) | `new PayloadGenerator.BezahlCode(...)` | German payment code | +| [**RussiaPaymentOrder**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#313-russiapaymentorder) | `new PayloadGenerator.RussiaPaymentOrder(...)` | Russian payment (ГОСТ Р 56042-2014) | +| [**SlovenianUpnQr**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#316-slovenianupnqr) | `new PayloadGenerator.SlovenianUpnQr(...)` | Slovenian UPN payment | +| [**ShadowSocksConfig**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators#314-shadowsocks-configuration) | `new PayloadGenerator.ShadowSocksConfig(...)` | Shadowsocks proxy config | + +For detailed information about payload generators, see: [Wiki: Advanced usage - Payload generators](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---Payload-generators) + +## 🎨 QR Code Renderers + +QRCoder provides multiple renderers for different output formats and use cases. Each renderer has specific capabilities and framework requirements. + +| Renderer | Output Format | Requires | Usage Example | +|----------|---------------|----------|---------------| +| [**PngByteQRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#25-pngbyteqrcode-renderer-in-detail) | PNG byte array | — | `new PngByteQRCode(data).GetGraphic(20)` | +| [**SvgQRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#26-svgqrcode-renderer-in-detail) | SVG string | — | `new SvgQRCode(data).GetGraphic(20)` | +| [**QRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#21-qrcode-renderer-in-detail) | System.Drawing.Bitmap | Windows¹ | `new QRCode(data).GetGraphic(20)` | +| [**ArtQRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#211-artqrcode-renderer-in-detail) | Artistic bitmap with custom images | Windows¹ | `new ArtQRCode(data).GetGraphic(20)` | +| [**AsciiQRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#22-asciiqrcode-renderer-in-detail) | ASCII art string | — | `new AsciiQRCode(data).GetGraphic(1)`
`new AsciiQRCode(data).GetGraphicSmall()` | +| [**Base64QRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#23-base64qrcode-renderer-in-detail) | Base64 encoded image | — | `new Base64QRCode(data).GetGraphic(20)` | +| [**BitmapByteQRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#24-bitmapbyteqrcode-renderer-in-detail) | BMP byte array | — | `new BitmapByteQRCode(data).GetGraphic(20)` | +| [**PdfByteQRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#210-pdfbyteqrcode-renderer-in-detail) | PDF byte array | — | `new PdfByteQRCode(data).GetGraphic(20)` | +| [**PostscriptQRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#29-postscriptqrcode-renderer-in-detail) | PostScript/EPS string | — | `new PostscriptQRCode(data).GetGraphic(20)` | +| [**XamlQRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#28-xamlqrcode-renderer-in-detail) | XAML DrawingImage | XAML² | `new XamlQRCode(data).GetGraphic(20)` | +| [**UnityQRCode**](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#27-unityqrcode-renderer-in-detail) | Unity Texture2D | Unity³ | `new UnityQRCode(data).GetGraphic(20)` | + +**Notes:** +- ¹ Requires Windows or System.Drawing.Common package (uses GDI+) +- ² Requires the [QRCoder.Xaml](https://www.nuget.org/packages/QRCoder.Xaml) package +- ³ Requires the [QRCoder.Unity](https://www.nuget.org/packages/QRCoder.Unity) package + +**Framework Compatibility:** Not all renderers are available on all target frameworks. Check the [compatibility table](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers#2-overview-of-the-different-renderers) for details. + +For comprehensive information about renderers, see: [Wiki: Advanced usage - QR Code renderers](https://github.com/Shane32/QRCoder/wiki/Advanced-usage---QR-Code-renderers) + +## 🔧 Advanced Features + +### Micro QR Codes + +QRCoder supports Micro QR codes, which are smaller versions of standard QR codes suitable for applications with limited space. Micro QR codes have significantly limited storage capacity—as few as 5 numeric digits (M1) or as many as 35 numeric digits (M4), with alphanumeric and byte data storing considerably less. + +```csharp +using QRCoder; + +// Generate a Micro QR code (versions M1-M4, represented as -1 to -4) +using var qrCodeData = QRCodeGenerator.GenerateMicroQrCode("Hello", QRCodeGenerator.ECCLevel.L, requestedVersion: -2); +using var qrCode = new PngByteQRCode(qrCodeData); +byte[] qrCodeImage = qrCode.GetGraphic(20); +``` + +**Note:** Micro QR codes have limitations on data capacity and error correction levels. They support versions M1 through M4 (specified as -1 to -4), and not all ECC levels are available for all versions. M1 only supports detection (no ECC), M2 and M3 support L and M levels, and M4 supports L, M, and Q levels. For detailed capacity tables, see the [Micro QR Code specification](https://www.qrcode.com/en/codes/microqr.html). + +### Working with QRCodeData + +`QRCodeData` is the core data structure that represents a QR code's module matrix. It contains a `List` called `ModuleMatrix`, where each `BitArray` represents a row of modules in the QR code. A module is set to `true` for dark/black modules and `false` for light/white modules. + +You can access the `ModuleMatrix` directly to read or manipulate the QR code data at the module level. This is useful for custom rendering implementations or analyzing QR code structure. + +```csharp +using QRCoder; + +// Generate QR code data +using var qrCodeData = QRCodeGenerator.GenerateQrCode("Hello World", QRCodeGenerator.ECCLevel.Q); + +// Access the module matrix +var moduleMatrix = qrCodeData.ModuleMatrix; +int size = moduleMatrix.Count; // Size of the QR code (includes quiet zone) + +// Manually render as ASCII (versus the included ASCII renderer) +for (int y = 0; y < size; y++) +{ + for (int x = 0; x < size; x++) + { + // Check if module is dark (true) or light (false) + bool isDark = moduleMatrix[y][x]; + Console.Write(isDark ? "██" : " "); + } + Console.WriteLine(); +} +``` + +## 🚀 CI Builds + +The NuGet feed contains only **major/stable** releases. If you want the latest functions and features, you can use the CI builds [via Github packages](https://github.com/Shane32/qrcoder/packages). + +_(More information on how to use Github Packages in Nuget Package Manager can be [found here](https://samlearnsazure.blog/2021/08/08/consuming-a-nuget-package-from-github-packages/).)_ + +## 🤝 Contributing + +Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change. + +## 📄 License + +QRCoder is a project originally by [Raffael Herrmann](https://raffaelherrmann.de) and was first released in 10/2013. It's licensed under the [MIT license](https://github.com/Shane32/QRCoder/blob/master/LICENSE.txt). + +Since 2025, QRCoder has been maintained by [Shane32](https://github.com/Shane32) with contributions from the community. + +## 🙏 Credits + +Glory to Jehovah, Lord of Lords and King of Kings, creator of Heaven and Earth, who through his Son Jesus Christ, has redeemed me to become a child of God. -[Shane32](https://github.com/Shane32) diff --git a/packages/QRCoder.1.7.0/lib/net35/QRCoder.dll b/packages/QRCoder.1.7.0/lib/net35/QRCoder.dll new file mode 100644 index 0000000..f235e08 Binary files /dev/null and b/packages/QRCoder.1.7.0/lib/net35/QRCoder.dll differ diff --git a/packages/QRCoder.1.7.0/lib/net35/QRCoder.xml b/packages/QRCoder.1.7.0/lib/net35/QRCoder.xml new file mode 100644 index 0000000..43babd0 --- /dev/null +++ b/packages/QRCoder.1.7.0/lib/net35/QRCoder.xml @@ -0,0 +1,5595 @@ + + + + QRCoder + + + + + Abstract base class for generating QR codes. + Derived classes typically render a QR code into a specific format (png, System.Drawing.Bitmap, PDF, etc). + + + + + Gets or sets the QRCodeData used to generate the QR code. + + + + + Initializes a new instance of the AbstractQRCode class. + + + + + Initializes a new instance of the AbstractQRCode class with the specified QRCodeData. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Sets the QRCodeData object that will be used to generate the QR code. + This method is useful for COM objects connections. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Disposes the QRCodeData object. + + + + + Represents an art-style QR code generator that provides functionality to render QR codes with dots as modules. + + + + + Initializes a new instance of the class. + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + generated by the . + + + + Renders an art-style QR code with dots as modules. (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and a background image (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + A bitmap object that will be used as background picture + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and various user settings + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + If the pixelSize is bigger than the pixelsPerModule or may end up filling the Module making a traditional QR code. + + Pixels used per module rendered + Size of the dots + Color of the pixels + + + + + Checks if a given module(-position) is part of the quietzone of a QR code + + X position + Y position + Total number of modules per row + true, if position is part of quiet zone + + + + Checks if a given module(-position) is part of one of the three finder patterns of a QR code + + X position + Y position + Total number of modules per row + Offset in modules (usually depending on drawQuietZones parameter) + true, if position is part of any finder pattern + + + + Resize to a square bitmap, but maintain the aspect ratio by padding transparently. + + + + Resized image as bitmap + + + + Defines how the quiet zones shall be rendered. + + + + + Quiet zones are rendered with dotted modules. + + + + + Quiet zones are rendered with flat, solid modules. + + + + + Defines how the background image (if set) shall be rendered. + + + + + Background image spans the complete graphic. + + + + + Background image is only painted in the data area, excluding the quiet zone. + + + + + Provides static methods for creating art-style QR codes. + + + + + Helper function to create an ArtQRCode graphic with a single function call + + Text/payload to be encoded inside the QR code + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + Represents an ASCII-style QR code generator that provides functionality to render QR codes as textual representations. + + + + + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + The QR code data generated by the . + + + + Returns a strings that contains the resulting QR code as textual representation. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + End of line separator. (Default: \n) + + + + + Returns an array of strings that contains each line of the resulting QR code as ASCII chars. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + + + + + Returns a strings that contains the resulting QR code as minified textual representation. + + Bool that defines if quiet zones around the QR code shall be drawn + If set to true, dark and light colors will be inverted + End of line separator. (Default: \n) + + + + + Provides static methods for generating ASCII-style QR codes. + + + + + Generates an ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Number of repeated characters per module. + String representing dark modules. + String representing light modules. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + ASCII representation of the QR code. + + + + Generates a small ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + Invert dark and light colors. + Minified ASCII representation of the QR code. + + + + Represents a QR code generator that outputs base64-encoded images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a base64-encoded string that contains the resulting QR code as a PNG image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image with an embedded icon. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The icon to embed in the center of the QR code. + The size of the icon as a percentage of the QR code. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Converts a bitmap to a base64-encoded string. + + The bitmap to convert. + The type of image (PNG, JPEG, GIF). + Returns the base64-encoded string representation of the bitmap. + + + + Specifies the type of image to generate. + + + + + Graphics Interchange Format (GIF) image format, a bitmap image format with limited color support + + + + + Joint Photographic Experts Group (JPEG) image format, a lossy compressed image format + + + + + Portable Network Graphics (PNG) image format, a lossless raster graphics format + + + + + Provides static methods for creating base64-encoded QR codes. + + + + + Creates a base64-encoded QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Represents a QR code generator that outputs QR codes as bitmap byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGB byte array. + The color of the light modules as an RGB byte array. + Returns the QR code graphic as a bitmap byte array. + + + + Converts an integer to a 4 bytes and writes them to a byte array at given position + + The integer to convert. + Index of destinationArray where the converted bytes are written to + Destination byte array that receives the bytes + + + + Provides helper functions for creating bitmap byte array QR codes. + + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a bitmap byte array. + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Exception thrown when the given payload exceeds the maximum size of the QR code standard. + + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The fixed version of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Helper methods for . + + + + + Copies a specified number of elements from one to another starting at the specified offsets. + + The source from which elements will be copied. + The zero-based index in the source at which copying begins. + The destination to which elements will be copied. + The zero-based index in the destination at which storing begins. + The number of elements to copy. + The index in the destination immediately following the last copied element. + + + + Copies a stream to another stream. + + + + + Indicates whether the specified string is null, empty, or consists only of white-space characters. + + + if the is null, empty, or white space; otherwise, . + + + + + Converts a hex color string to a byte array. + + Color in HEX format like #ffffff. + Returns the color as a byte array. + + + + Appends an integer value to the StringBuilder using invariant culture formatting. + + The StringBuilder to append to. + The integer value to append. + + + + Appends a float value to the StringBuilder using invariant culture formatting with G7 precision. + + The StringBuilder to append to. + The float value to append. + + + + Used to represent a string value for a value in an enum + + + + + Holds the alue in an enum + + + + + Init a StringValue Attribute + + + + + + Enumeration extension methods. + + + + + Will get the string value for a given enum's value + + + + + Provides utility methods for generating QR code payloads. + + + Contains classes and methods for generating payloads for QR codes. + + + + + Validates the structure and checksum of an IBAN. + + The IBAN to validate. + True if the IBAN is valid; otherwise, false. + + + + Validates the structure and checksum of a QR IBAN. + + The QR IBAN to validate. + True if the QR IBAN is valid; otherwise, false. + + + + Validates the structure of a BIC. + + The BIC to validate. + True if the BIC is valid; otherwise, false. + + + + Validates the structure of a BIC with optional requirement check. + + The BIC to validate. + Whether the BIC is required. If false, null/empty values are considered valid. + True if the BIC is valid; otherwise, false. + + + + Converts a string to a specified encoding. + + The string to convert. + The encoding to use. + The converted string. + + + + Escapes forbidden characters in a string. + + The input string. + Indicates whether to use a simple escape mode. + The escaped string. + + + + Validates a string using the Mod10 checksum algorithm. + + The string to validate. + True if the string is valid; otherwise, false. + + + + Checks if a string is in hexadecimal format. + + The input string. + True if the string is in hexadecimal format; otherwise, false. + + + + Represents a BezahlCode payload for QR codes. + + + + + Initializes a new instance of the class for contact data. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Reason (Verwendungszweck) + + + + Initializes a new instance of the class for non-SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Initializes a new instance of the class for SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Generic constructor. Please use specific (non-SEPA or SEPA) constructor. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + Only used for internal state handdling + + + + + + + ISO 4217 currency codes + + + + + United Arab Emirates Dirham + + + + + Afghan Afghani + + + + + Albanian Lek + + + + + Armenian Dram + + + + + Netherlands Antillean Guilder + + + + + Angolan Kwanza + + + + + Argentine Peso + + + + + Australian Dollar + + + + + Aruban Florin + + + + + Azerbaijani Manat + + + + + Bosnia and Herzegovina Convertible Mark + + + + + Barbados Dollar + + + + + Bangladeshi Taka + + + + + Bulgarian Lev + + + + + Bahraini Dinar + + + + + Burundian Franc + + + + + Bermudian Dollar + + + + + Brunei Dollar + + + + + Bolivian Boliviano + + + + + Bolivian Mvdol (funds code) + + + + + Brazilian Real + + + + + Bahamian Dollar + + + + + Bhutanese Ngultrum + + + + + Botswana Pula + + + + + Belarusian Ruble + + + + + Belize Dollar + + + + + Canadian Dollar + + + + + Congolese Franc + + + + + WIR Euro (complementary currency) + + + + + Swiss Franc + + + + + WIR Franc (complementary currency) + + + + + Unidad de Fomento (funds code) + + + + + Chilean Peso + + + + + Chinese Yuan + + + + + Colombian Peso + + + + + Unidad de Valor Real (UVR) (funds code) + + + + + Costa Rican Colón + + + + + Cuban Convertible Peso + + + + + Cuban Peso + + + + + Cape Verde Escudo + + + + + Czech Koruna + + + + + Djiboutian Franc + + + + + Danish Krone + + + + + Dominican Peso + + + + + Algerian Dinar + + + + + Egyptian Pound + + + + + Eritrean Nakfa + + + + + Ethiopian Birr + + + + + Euro + + + + + Fiji Dollar + + + + + Falkland Islands Pound + + + + + Pound Sterling + + + + + Georgian Lari + + + + + Ghanaian Cedi + + + + + Gibraltar Pound + + + + + Gambian Dalasi + + + + + Guinean Franc + + + + + Guatemalan Quetzal + + + + + Guyanese Dollar + + + + + Hong Kong Dollar + + + + + Honduran Lempira + + + + + Croatian Kuna + + + + + Haitian Gourde + + + + + Hungarian Forint + + + + + Indonesian Rupiah + + + + + Israeli New Shekel + + + + + Indian Rupee + + + + + Iraqi Dinar + + + + + Iranian Rial + + + + + Icelandic Króna + + + + + Jamaican Dollar + + + + + Jordanian Dinar + + + + + Japanese Yen + + + + + Kenyan Shilling + + + + + Kyrgyzstani Som + + + + + Cambodian Riel + + + + + Comoro Franc + + + + + North Korean Won + + + + + South Korean Won + + + + + Kuwaiti Dinar + + + + + Cayman Islands Dollar + + + + + Kazakhstani Tenge + + + + + Lao Kip + + + + + Lebanese Pound + + + + + Sri Lankan Rupee + + + + + Liberian Dollar + + + + + Lesotho Loti + + + + + Libyan Dinar + + + + + Moroccan Dirham + + + + + Moldovan Leu + + + + + Malagasy Ariary + + + + + Macedonian Denar + + + + + Myanmar Kyat + + + + + Mongolian Tögrög + + + + + Macanese Pataca + + + + + Mauritanian Ouguiya + + + + + Mauritian Rupee + + + + + Maldivian Rufiyaa + + + + + Malawian Kwacha + + + + + Mexican Peso + + + + + Mexican Unidad de Inversión (UDI) (funds code) + + + + + Malaysian Ringgit + + + + + Mozambican Metical + + + + + Namibian Dollar + + + + + Nigerian Naira + + + + + Nicaraguan Córdoba + + + + + Norwegian Krone + + + + + Nepalese Rupee + + + + + New Zealand Dollar + + + + + Omani Rial + + + + + Panamanian Balboa + + + + + Peruvian Sol + + + + + Papua New Guinean Kina + + + + + Philippine Peso + + + + + Pakistani Rupee + + + + + Polish Złoty + + + + + Paraguayan Guaraní + + + + + Qatari Riyal + + + + + Romanian Leu + + + + + Serbian Dinar + + + + + Russian Ruble + + + + + Rwandan Franc + + + + + Saudi Riyal + + + + + Solomon Islands Dollar + + + + + Seychelles Rupee + + + + + Sudanese Pound + + + + + Swedish Krona + + + + + Singapore Dollar + + + + + Saint Helena Pound + + + + + Sierra Leonean Leone + + + + + Somali Shilling + + + + + Surinamese Dollar + + + + + South Sudanese Pound + + + + + São Tomé and Príncipe Dobra + + + + + Salvadoran Colón + + + + + Syrian Pound + + + + + Swazi Lilangeni + + + + + Thai Baht + + + + + Tajikistani Somoni + + + + + Turkmenistan Manat + + + + + Tunisian Dinar + + + + + Tongan Paʻanga + + + + + Turkish Lira + + + + + Trinidad and Tobago Dollar + + + + + New Taiwan Dollar + + + + + Tanzanian Shilling + + + + + Ukrainian Hryvnia + + + + + Ugandan Shilling + + + + + United States Dollar + + + + + United States Dollar (Next day) (funds code) + + + + + Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code) + + + + + Uruguayan Peso + + + + + Uzbekistan Som + + + + + Venezuelan Bolívar + + + + + Vietnamese Đồng + + + + + Vanuatu Vatu + + + + + Samoan Tālā + + + + + CFA Franc BEAC + + + + + Silver (one troy ounce) + + + + + Gold (one troy ounce) + + + + + Bond Markets Unit European Composite Unit (EURCO) + + + + + Bond Markets Unit European Monetary Unit (E.M.U.-6) + + + + + Bond Markets Unit European Unit of Account 9 (E.U.A.-9) + + + + + Bond Markets Unit European Unit of Account 17 (E.U.A.-17) + + + + + East Caribbean Dollar + + + + + Special Drawing Rights + + + + + CFA Franc BCEAO + + + + + Palladium (one troy ounce) + + + + + CFP Franc + + + + + Platinum (one troy ounce) + + + + + SUCRE + + + + + Codes specifically reserved for testing purposes + + + + + ADB Unit of Account + + + + + The code assigned for transactions where no currency is involved + + + + + Yemeni Rial + + + + + South African Rand + + + + + Zambian Kwacha + + + + + Zimbabwean Dollar + + + + + Operation modes of the BezahlCode + + + + + Single payment (Überweisung) + + + + + Single SEPA payment (SEPA-Überweisung) + + + + + Single debit (Lastschrift) + + + + + Single SEPA debit (SEPA-Lastschrift) + + + + + Periodic payment (Dauerauftrag) + + + + + Periodic SEPA payment (SEPA-Dauerauftrag) + + + + + Contact data + + + + + Contact data V2 + + + + + Exception class for BezahlCode errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for Bitcoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin address of the payment receiver. + The amount of Bitcoin to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin Cash payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin Cash payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin Cash address of the payment receiver. + The amount of Bitcoin Cash to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin-like cryptocurrency payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin-like cryptocurrency payment payload. QR Codes with this payload can open a payment app. + + The type of Bitcoin-like cryptocurrency. + The cryptocurrency address of the payment receiver. + The amount of coins to transfer. + A reference label. + A reference text or message. + + + + Returns a string representation of the Bitcoin-like cryptocurrency address payload. + + A string representation of the cryptocurrency address payload. + + + + Enumerates Bitcoin-like cryptocurrencies. + + + + + Bitcoin. + + + + + Bitcoin Cash. + + + + + Litecoin. + + + + + Generates a bookmark payload. When scanned by a QR code reader, this creates a browser bookmark. + + + + + Initializes a new instance of the class. + + The URL of the bookmark. + The title of the bookmark. + + + + Returns a string representation of the bookmark payload. + + A string representation of the bookmark payload in the MEBKM format. + + + + Generates a calendar entry/event payload. + + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time (including UTC offset) of the event. + End time (including UTC offset) of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time of the event. + End time of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Returns a string representation of the calendar event payload. + + A string representation of the calendar event in the VEVENT format. + + + + Specifies the encoding type for the calendar event. + + + + + iCalendar complete encoding. + + + + + Universal encoding. + + + + + Generates a vCard or meCard contact dataset. + + + + + Initializes a new instance of the class. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + + + + Initializes a new instance of the class with address type support. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + The address type (Home, Work, HomePreferred, or WorkPreferred). + + + + Returns a string representation of the contact data payload. + + A string representation of the contact data in the specified format. + + + + Gets the address type string for vCard 2.1 format. + + + + + Gets the address type string for vCard 3.0 format. + + + + + Gets the address type string for vCard 4.0 format. + + + + + Defines the type of address (home or work). + + + + + Home address. + + + + + Work address. + + + + + Home address marked as preferred (default for backwards compatibility). + + + + + Work address marked as preferred. + + + + + Possible output types. Either vCard 2.1, vCard 3.0, vCard 4.0 or MeCard. + + + + + MeCard output type. + + + + + vCard 2.1 output type. + + + + + vCard 3.0 output type. + + + + + vCard 4.0 output type. + + + + + Define the address format. + Default: European format, ([Street] [House Number] and [Postal Code] [City]) + Reversed: North American and others format ([House Number] [Street] and [City] [Postal Code]) + + + + + Default address order format (European format). + + + + + Reversed address order format (North American and others format). + + + + + Generates a geo location payload. Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + + + + Initializes a new instance of the class. + Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + Latitude with . as splitter. + Longitude with . as splitter. + Encoding type - GEO or GoogleMaps. + + + + Returns a string representation of the geolocation payload. + + A string representation of the geolocation payload in the specified encoding format. + + + + Defines the encoding types for geolocation payloads. + + + + + GEO encoding type. + + + + + Google Maps encoding type. + + + + + Generates the payload for a Girocode (QR-Code with credit transfer information). + + + + + Gets the ECC level required for Girocode, which is always set to M. + + + + + Initializes a new instance of the class, which contains a payload for a Girocode (QR-Code with credit transfer information). + + Account number of the Beneficiary. Only IBAN is allowed. + BIC of the Beneficiary Bank. + Name of the Beneficiary. + Amount of the Credit Transfer in Euro. (Amount must be more than 0.01 and less than 999999999.99) + Remittance Information (Purpose-/reference text). (optional) + Type of remittance information. Either structured (e.g. ISO 11649 RF Creditor Reference) and max. 35 chars or unstructured and max. 140 chars. + Purpose of the Credit Transfer (optional) + Beneficiary to originator information. (optional) + Girocode version. Either 001 or 002. Default: 001. + Encoding of the Girocode payload. Default: ISO-8859-1 + Thrown when the input values are not valid according to the Girocode specification. + + + + Returns the Girocode payload as a string. + + The Girocode payload as a string. + + + + Defines the Girocode version. + + + + + Girocode version 1. + + + + + Girocode version 2. + + + + + Defines the type of remittance information. + + + + + Structured remittance information. + + + + + Unstructured remittance information. + + + + + Defines the encoding types for Girocode payloads. + + + + + UTF-8 encoding. + + + + + ISO-8859-1 encoding. + + + + + ISO-8859-2 encoding. + + + + + ISO-8859-4 encoding. + + + + + ISO-8859-5 encoding. + + + + + ISO-8859-7 encoding. + + + + + ISO-8859-10 encoding. + + + + + ISO-8859-15 encoding. + + + + + Represents errors that occur during Girocode generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a payload for Litecoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Litecoin payment payload. QR Codes with this payload can open a payment app. + + The Litecoin address of the payment receiver. + The amount of Litecoin to transfer. + A reference label. + A reference text or message. + + + + Generates an email payload that can be used to create a QR code for sending an email. + + + + + Creates an email payload with subject and message/text. + + Receiver's email address. + Subject line of the email. + Message content of the email. + Payload encoding type. Choose dependent on your QR Code scanner app. + + + + Returns the email payload as a string. + + The email payload as a string. + + + + Defines the encoding types for the email payload. + + + + + Uses the "mailto:" URI scheme. + + + + + Uses the "MATMSG:" format. + + + + + Uses the "SMTP:" format. + + + + + Generates a MMS (Multimedia Messaging Service) payload for QR codes. + + + + + Creates a MMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates a MMS payload with text (subject). + + Receiver phone number. + Text of the MMS. + Encoding type. + + + + Returns the MMS payload as a string. + + The MMS payload as a string. + + + + Defines the encoding types for the MMS payload. + + + + + Uses the "mms:" URI scheme. + + + + + Uses the "mmsto:" URI scheme. + + + + + Generates a Monero transaction payload for QR codes. + + + + + Creates a Monero transaction payload. + + Receiver's Monero address. + Amount to transfer. + Payment ID. + Recipient's name. + Reference text / payment description. + Thrown when the address is null or empty, or when the txAmount is less than or equal to 0. + + + + Returns the Monero transaction payload as a URI string. + + The Monero transaction payload as a URI string. + + + + Exception class for Monero transaction errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for One Time Password (OTP) used in applications like Google Authenticator. + + + + + The type of OTP (TOTP or HOTP). + + + + + The secret key used for OTP generation. + + + + + The hashing algorithm used for OTP (SHA1, SHA256, SHA512). + + + + + Obsolete. Use instead. + + + + + The issuer of the OTP (usually the service or company name). + + + + + The label for the OTP (usually the user's email or username). + + + + + The number of digits in the OTP (default is 6). + + + + + The counter value for HOTP (only used if Type is HOTP). + + + + + The period in seconds for TOTP (default is 30). + + + + + Enum for OTP types. + + + + + Time-based One-Time Password (TOTP) + + + + + HMAC-based One-Time Password (HOTP) + + + + + Enum for hashing algorithms used in OTP. + + + + + SHA-1 hashing algorithm + + + + + SHA-256 hashing algorithm + + + + + SHA-512 hashing algorithm + + + + + Obsolete. Use instead. + + + + + SHA-1 hashing algorithm (Obsolete) + + + + + SHA-256 hashing algorithm (Obsolete) + + + + + SHA-512 hashing algorithm (Obsolete) + + + + + Returns the OTP payload as a string. + + The OTP payload as a string. + + + + Returns the HOTP payload as a string. + + The HOTP payload as a string. + + + + Returns the TOTP payload as a string. + + The TOTP payload as a string. + + + + Processes the common fields for both TOTP and HOTP. + + StringBuilder to append the common fields. + + + + Represents the base class for all QR code payloads. + + + + + Gets the version of the QR code payload. + + + + + Gets the error correction level of the QR code payload. + + + + + Gets the ECI mode of the QR code payload. + + + + + Returns a string representation of the QR code payload. + + A string representation of the QR code payload. + + + + Generates a phone call payload. + + + + + Initializes a new instance of the class. + + Phone number of the receiver. + + + + Returns the phone call payload as a string. + + The phone call payload as a string. + + + + Generates a payload for a Russian payment order. + + + + + Initializes a new instance of the class. + + Name of the payee (Наименование получателя платежа) + Beneficiary account number (Номер счета получателя платежа) + Name of the beneficiary's bank (Наименование банка получателя платежа) + BIC (БИК) + Box number / account payee's bank (Номер кор./сч. банка получателя платежа) + An (optional) object of additional fields + Type of encoding (default UTF-8) + + + + Returns the payload as a string. + + ⚠ Attention: If CharacterSets was set to windows-1251 or koi8-r you should use ToBytes() instead of ToString() and pass the bytes to CreateQrCode()! + The payload as a string. + + + + Returns the payload as a byte array. + + Should be used if CharacterSets equals windows-1251 or koi8-r. + The payload as a byte array. + + + + Determines a valid separator + + + + + + Takes all optional fields that are not null and returns their string represantion + + A List of strings + + + + Takes all mandatory fields that are not null and returns their string represantion + + A List of strings + + + + Validates a string against a given Regex pattern. Returns input if it matches the Regex expression (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + A regex pattern to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Validates a string against one or more given Regex patterns. Returns input if it matches all regex expressions (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + An array of regex patterns to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Represents optional fields for the RussiaPaymentOrder. + + + + + Payment amount, in kopecks (FTI’s Amount.) + Сумма платежа, в копейках + + + + + Payment name (purpose) + Наименование платежа (назначение) + + + + + Payee's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН получателя платежа + + + + + Payer's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН плательщика + + + + + Status compiler payment document + Статус составителя платежного документа + + + + + KPP of the payee (Tax Registration Code; Text, up to 9 characters.) + КПП получателя платежа + + + + + CBC + КБК + + + + + All-Russian classifier territories of municipal formations + Общероссийский классификатор территорий муниципальных образований + + + + + Basis of tax payment + Основание налогового платежа + + + + + Taxable period + Налоговый период + + + + + Document number + Номер документа + + + + + Document date + Дата документа + + + + + Payment type + Тип платежа + + + + + Payer's surname + Фамилия плательщика + + + + + Payer's name + Имя плательщика + + + + + Payer's patronymic + Отчество плательщика + + + + + Payer's address + Адрес плательщика + + + + + Personal account of a budget recipient + Лицевой счет бюджетного получателя + + + + + Payment document index + Индекс платежного документа + + + + + Personal account number in the personalized accounting system in the Pension Fund of the Russian Federation - SNILS + № лицевого счета в системе персонифицированного учета в ПФР - СНИЛС + + + + + Number of contract + Номер договора + + + + + Personal account number of the payer in the organization (in the accounting system of the PU) + Номер лицевого счета плательщика в организации (в системе учета ПУ) + + + + + Apartment number + Номер квартиры + + + + + Phone number + Номер телефона + + + + + DUL payer type + Вид ДУЛ плательщика + + + + + DUL number of the payer + Номер ДУЛ плательщика + + + + + FULL NAME. child / student + Ф.И.О. ребенка/учащегося + + + + + Date of birth + Дата рождения + + + + + Due date / Invoice date + Срок платежа/дата выставления счета + + + + + Payment period + Период оплаты + + + + + Payment type + Вид платежа + + + + + Service code / meter name + Код услуги/название прибора учета + + + + + Metering device number + Номер прибора учета + + + + + Meter reading + Показание прибора учета + + + + + Notification, accrual, account number + Номер извещения, начисления, счета + + + + + Date of notification / accrual / invoice / resolution (for traffic police) + Дата извещения/начисления/счета/постановления (для ГИБДД) + + + + + Institution number (educational, medical) + Номер учреждения (образовательного, медицинского) + + + + + Kindergarten / school class number + Номер группы детсада/класса школы + + + + + Full name of the teacher, specialist providing the service + ФИО преподавателя, специалиста, оказывающего услугу + + + + + Insurance / additional service amount / Penalty amount (in kopecks) + Сумма страховки/дополнительной услуги/Сумма пени (в копейках) + + + + + Resolution number (for traffic police) + Номер постановления (для ГИБДД) + + + + + Enforcement Proceedings Number + Номер исполнительного производства + + + + + Type of payment code (for example, for payments to Rosreestr) + Код вида платежа (например, для платежей в адрес Росреестра) + + + + + Unique accrual identifier + Уникальный идентификатор начисления + + + + + The technical code recommended by the service provider. Maybe used by the receiving organization to call the appropriate processing IT system. + Технический код, рекомендуемый для заполнения поставщиком услуг. Может использоваться принимающей организацией для вызова соответствующей обрабатывающей ИТ-системы. + + + + + (List of values of the technical code of the payment) + Перечень значений технического кода платежа + + + + + Mobile and landline telephone services + Мобильная связь и стационарный телефон + + + + + Utility services (Housing and Communal Services) + Коммунальные услуги (ЖКХ) + + + + + Traffic police, taxes, duties, and budget payments + ГИБДД, налоги, пошлины, бюджетные платежи + + + + + Security services + Охранные услуги + + + + + Services provided by the Federal Migration Service + Услуги, оказываемые УФМС + + + + + Pension Fund of the Russian Federation + Пенсионный фонд России (ПФР) + + + + + Loan repayment + Погашение кредитов + + + + + Educational institutions + Образовательные учреждения + + + + + Internet and TV services + Интернет и телевидение + + + + + Electronic money + Электронные деньги + + + + + Recreation and travel + Отдых и путешествия + + + + + Investments and insurance + Инвестиции и страхование + + + + + Sports and health + Спорт и здоровье + + + + + Charitable and public organizations + Благотворительные и общественные организации + + + + + Other services + Прочие услуги + + + + + Specifies character sets for encoding the RussiaPaymentOrder payload. + + + + + Windows-1251 encoding. + + + + + UTF-8 encoding. + + + + + KOI8-R encoding. + + + + + Represents errors that occur during the generation of a RussiaPaymentOrder payload. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + Generates a ShadowSocks proxy config payload. + + + + + Generates a ShadowSocks proxy config payload. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Optional tag line + + + + Generates a ShadowSocks proxy config payload with plugin options. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Plugin name + Plugin option + Optional tag line + + + + Generates a ShadowSocks proxy config payload with additional parameters. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Additional parameters + Optional tag line + + + + Converts the ShadowSocks config payload to a string. + + A string representation of the ShadowSocks config payload. + + + + Specifies the encryption methods used by ShadowSocks. + + + + + ChaCha20-IETF with Poly1305 AEAD encryption method + + + + + AES-128 Galois/Counter Mode (GCM) encryption method + + + + + AES-192 Galois/Counter Mode (GCM) encryption method + + + + + AES-256 Galois/Counter Mode (GCM) encryption method + + + + + Extended ChaCha20-IETF with Poly1305 AEAD encryption method (non-standard) + + + + + AES-128 Cipher Feedback (CFB) stream cipher + + + + + AES-192 Cipher Feedback (CFB) stream cipher + + + + + AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Counter (CTR) stream cipher + + + + + AES-192 Counter (CTR) stream cipher + + + + + AES-256 Counter (CTR) stream cipher + + + + + Camellia-128 Cipher Feedback (CFB) stream cipher + + + + + Camellia-192 Cipher Feedback (CFB) stream cipher + + + + + Camellia-256 Cipher Feedback (CFB) stream cipher + + + + + ChaCha20-IETF stream cipher + + + + + Alias for AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-192 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-256 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-128 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-192 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-256 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-128 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-192 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-256 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + ChaCha20 stream cipher (deprecated) + + + + + Blowfish Cipher Feedback (CFB) stream cipher (deprecated) + + + + + RC4-MD5 stream cipher (deprecated) + + + + + Salsa20 stream cipher (deprecated) + + + + + DES Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + IDEA Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + RC2 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + CAST5 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Salsa20 Counter (CTR) stream cipher (not standard, not in active use) + + + + + RC4 stream cipher (not standard, not in active use) + + + + + SEED Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Table-based encryption method (not standard, not in active use) + + + + + Represents errors that occur during the generation of a ShadowSocksConfig payload. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a Skype call payload + + + + + Initializes a new instance of the class. + + Skype username which will be called + + + + Converts the Skype call payload to a string. + + A string representation of the Skype call payload. + + + + Generates a Slovenian UPN QR payment payload. + + + + + Gets the version of the QR code, which is 15 for Slovenian UPN QR. + + + + + Gets the error correction level of the QR code, which is M for Slovenian UPN QR. + + + + + Gets the ECI mode of the QR code, which is Iso8859_2 for Slovenian UPN QR. + + + + + Limits the length of a string to a specified maximum length. + + The string to limit. + The maximum length of the string. + The limited string. + + + + Initializes a new instance of the class. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Initializes a new instance of the class with a deadline. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The deadline for the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Formats the amount as a string with leading zeros. + + The amount to format. + The formatted amount string. + + + + Calculates the checksum of the payment data. + + The checksum of the payment data. + + + + Returns the Slovenian UPN QR payment data as a string. + + The Slovenian UPN QR payment data as a string. + + + + Generates an SMS payload. + + + + + Creates an SMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates an SMS payload with text (subject). + + Receiver phone number. + Text of the SMS. + Encoding type. + + + + Returns the SMS payload as a string. + + The SMS payload as a string. + + + + Specifies the encoding type for the SMS payload. + + + + + Standard SMS encoding. + + + + + SMSTO encoding. + + + + + SMS encoding for iOS. + + + + + Generates the payload for a SwissQrCode. + + + + + + + + + + + Generates the payload for a SwissQrCode v2.0. (Don't forget to use ECC-Level=M, EncodingMode=UTF-8 and to set the Swiss flag icon to the final QR code.) + + IBAN object + Currency (either EUR or CHF) + Creditor (payee) information + Reference information + Additional information for the QR code + Debitor (payer) information + Amount + Requested date of debitor's payment + Ultimate creditor information (use only in consultation with your bank - for future use only!) + Optional command for alternative processing mode - line 1 + Optional command for alternative processing mode - line 2 + + + + Represents additional information for the SwissQrCode. + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Gets the unstructured message. + + + + + Gets the bill information. + + + + + Gets the trailer. + + + + + Represents exceptions specific to SwissQrCode additional information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents reference information for the SwissQrCode. + + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Gets the reference type. + + + + + Gets the reference text. + + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR". + + + + + QR Reference + + + + + Creditor Reference + + + + + No Reference + + + + + Represents the text type for the reference. + + + + + QR Reference Text + + + + + Creditor Reference ISO 11649 + + + + + Represents exceptions specific to SwissQrCode references. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents an IBAN with type information. + + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Gets a value indicating whether this is a QR-IBAN. + + + + + Converts the IBAN object to its string representation. + + A string representation of the IBAN. + + + + Represents the type of IBAN. + + + + + Regular IBAN + + + + + QR-IBAN + + + + + Represents exceptions specific to SwissQrCode IBANs. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents contact information. + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + Creates a contact with structured address. + + + + + Creates a contact with combined address. + + + + + Returns a string that represents the contact information in the format required for Swiss QR codes. + + A string representing the contact information. + + + + Defines the type of address. + + + + + Structured Address + + + + + Combined Address + + + + + Represents errors that occur during the creation of a Swiss QR code contact. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Returns a string that represents the entire Swiss QR code payload. + + A string representing the Swiss QR code payload. + + + + ISO 4217 currency codes. + + + + + Swiss Franc + + + + + Euro + + + + + Represents errors that occur during Swiss QR Code generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a URL payload for QR codes. + + + + + Initializes a new instance of the class. + + The target URL. If the protocol is not specified, the http protocol will be added. + + + + Returns the URL payload as a string. + + The URL payload as a string, ensuring it starts with "http://" if no protocol is specified. + + + + Generates a WhatsApp message payload for QR codes. + + + + + Initializes a new instance of the class with a receiver number and message. + + + Receiver phone number in full international format. + Omit any zeroes, brackets, or dashes. Use format: 1XXXXXXXXXX. Don't use: +001-(XXX)XXXXXXX. + + The message to be sent. + + + + Initializes a new instance of the class with a message only. + When scanned, the user is asked to choose a contact to receive the message. + + The message to be sent. + + + + Returns the WhatsApp message payload as a string. + + The WhatsApp message URL as a string. + + + + Generates a WiFi payload. Scanned by a QR Code scanner app, the device will connect to the WiFi. + + + + + Initializes a new instance of the class. + + SSID of the WiFi network + Password of the WiFi network + Authentication mode (WEP, WPA, WPA2) + Set flag if the WiFi network hides its SSID + Set flag if ssid/password is delivered as HEX string. Note: May not be supported on iOS devices. + + + + Returns the WiFi payload as a string. + + + + + Specifies the authentication mode for the WiFi network. + + + + + WEP authentication mode + + + + + WPA authentication mode + + + + + No password authentication mode + + + + + WPA2 authentication mode + + + + + Represents a QR code generator that outputs QR codes as PDF byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a PDF document with a black and white QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF document with specified colors and DPI. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The DPI (dots per inch) of the PDF document. + The JPEG quality parameter (obsolete, no longer used). + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF path with rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + PDF path commands as a string. + + + + Converts RGB byte array to PDF color space values (0.0 to 1.0). + + RGB color as byte array. + PDF color string (three decimal values). + + + + Converts an integer to a string using invariant culture for consistent PDF formatting. + + The integer value to convert. + String representation of the integer. + + + + Converts a float to a string using invariant culture for consistent PDF formatting. + + The float value to convert. + String representation of the float. + + + + Provides static methods for creating PDF byte array QR codes. + + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Represents a QR code generator that outputs QR codes as PNG byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PNG of the QR code, using 1-bit grayscale. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Colors may contain transparency. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Accepts 3-byte RGB colors for normal images and 4-byte RGBA-colors for transparent images. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a bitmap where each pixel is represented by a single bit, dark = 0 and light = 1. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the bitmap as a byte array. + + + + Writes the chunks that make up a PNG file. + + + See https://www.w3.org/TR/2003/REC-PNG-20031110 and https://www.ietf.org/rfc/rfc1950.txt. + + + + + Writes the IHDR chunk. This must be the first chunk in the file. + + + + + Writes the PLTE chunk, and also the tRNS chunk if necessary. Must come before the IDAT chunk. + + + + + Writes the IDAT chunk with the actual picture. + + + + + Writes the IEND chunk. This must be the last chunk in the file. + + + + + Provides static methods for creating PNG byte array QR codes. + + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Represents a QR code generator that outputs QR codes as PostScript code. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a black and white PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Cleans double values for international use/formats. + + The input double value. + Returns the cleaned string representation of the double value, with a maximum of 7 significant digits. + + + + Provides static methods for creating PostScript QR codes. + + + + + Creates a PostScript QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Represents a QR code generator that outputs QR codes as bitmap images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code with an optional icon in the center. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The background color of the icon. + Returns the QR code graphic as a bitmap. + + + + Creates a GraphicsPath containing rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + The number of pixels per module. + The offset to apply for quiet zones. + Whether quiet zones are being drawn. + A GraphicsPath containing all dark module rectangles. + + + + Creates a rounded rectangle path for drawing. + + The rectangle for which to create the rounded path. + The radius of the corners. + Returns the rounded rectangle path. + + + + Provides static methods for creating bitmap QR codes. + + + + + Creates a bitmap QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Represents the data structure of a QR code. + + + + + Gets or sets the module matrix of the QR code. + + + + + Initializes a new instance of the class with the specified version. + + The version of the QR code. + + + + Initializes a new instance of the class with the specified version and padding option. + + The version of the QR code. + Indicates whether padding should be added to the QR code. + + + + Initializes a new instance of the class with raw data from a specified path and compression mode. + + The path to the raw data file. + The compression mode used for the raw data. + + + + Initializes a new instance of the class with raw data and compression mode. + + The raw data of the QR code. + The compression mode used for the raw data. + + + + Gets the raw data of the QR code with the specified compression mode. + + The compression mode used for the raw data. + Returns the raw data of the QR code as a byte array. + + + + Saves the raw data of the QR code to a specified file with the specified compression mode. + + The path to the file where the raw data will be saved. + The compression mode used for the raw data. + + + + Gets the version of the QR code. + + + + + Gets the number of modules per side from the specified version. + + The version of the QR code (1 to 40, or -1 to -4 for Micro QR codes). + Returns the number of modules per side. + + + + Releases all resources used by the . + + + + + Specifies the compression mode used for the raw data. + + + + + No compression. + + + + + Deflate compression. + + + + + GZip compression. + + + + + Provides functionality to generate QR code data that can be used to create QR code images. + + + + + Initializes the QR code generator + + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the Micro QR code data which then can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Set fixed Micro QR code target version; must be -1 to -4 representing M1 to M4, or 0 for default. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Validates the specified error correction level. + Returns the provided level if it is valid, or the level M if the provided level is Default. + Throws an exception if an invalid level is provided. + + + + + Generates a QR code data structure using the provided BitArray, error correction level, and version. + The BitArray provided is assumed to already include the count, encoding mode, and/or ECI mode information. + + The BitArray containing the binary-encoded data to be included in the QR code. It should already contain the count, encoding mode, and/or ECI mode information. + The desired error correction level for the QR code. This impacts how much data can be recovered if damaged. + The version of the QR code, determining the size and complexity of the QR code data matrix. + A QRCodeData structure containing the full QR code matrix, which can be used for rendering or analysis. + + + + Generates a BitArray containing the format string for a QR code based on the error correction level and mask pattern version. + The format string includes the error correction level, mask pattern version, and error correction coding. + + The to write to, or null to create a new one. + The version number of the QR Code (1-40, or -1 to -4 for Micro QR codes). + The error correction level to be encoded in the format string. + The mask pattern version to be encoded in the format string. + A BitArray containing the 15-bit format string used in QR code generation. + + + + Encodes the version information of a QR code into a BitArray using error correction coding similar to format information encoding. + This method is used for QR codes version 7 and above. + + A to write the version string to. + The version number of the QR code (7-40). + A BitArray containing the encoded version information, which includes error correction bits. + + + + Calculates the Error Correction Codewords (ECC) for a segment of data using the provided ECC information. + This method applies polynomial division, using the message polynomial and a generator polynomial, + to compute the remainder which forms the ECC codewords. + + + + + Converts all polynomial item coefficients from their alpha exponent notation to decimal representation in place. + This conversion facilitates operations that require polynomial coefficients in their integer forms. + + + + + Determines the most efficient encoding mode for the given plain text based on its character content + and a flag indicating whether to force UTF-8 encoding. + + + + + Checks if a character falls within a specified range. + + + + + Converts a segment of a BitArray representing QR code data into a polynomial, + padding the final byte if necessary (for Micro QR variants like M1 or M3). + + The full bit array representing encoded QR code data. + Starting position in the bit array. + Total number of bits to convert into codewords. + A polynomial representing the message codewords. + + + + Calculates the generator polynomial used for creating error correction codewords. + + The number of error correction codewords to generate. + A polynomial that can be used to generate ECC codewords. + + + + Converts a segment of a BitArray into its decimal (integer) equivalent. + + The integer value that represents the specified binary data. + + + + Converts a decimal number to binary and stores the result in a BitArray starting from a specific index. + + The decimal number to convert to binary. + The number of bits to use for the binary representation (ensuring fixed-width like 8, 16, 32 bits). + The BitArray where the binary bits will be stored. + The starting index in the BitArray where the bits will be stored. + The next index in the BitArray after the last bit placed. + + + + Determines the number of bits used to indicate the count of characters in a segment, depending on the QR code version and the encoding mode. + + The version of the QR code, which influences the number of bits due to increasing data capacity. + The encoding mode (e.g., Numeric, Alphanumeric, Byte) used for the data segment. + The number of bits needed to represent the character count in the specified encoding mode and version. + + + + Calculates the data length based on the encoding mode, text content, and whether UTF-8 is forced. + + The encoding mode used for the QR code data. + The plain text input to be encoded. + A BitArray representing the binary data of the encoded text. + Flag to determine if UTF-8 encoding should be enforced. + The length of data in units appropriate to the encoding (bytes or characters). + + + + Checks if the given string can be accurately represented and retrieved in ISO-8859-1 encoding. + + + + + Converts plain text to a binary format suitable for QR code generation, based on the specified encoding mode. + + The text to be encoded. + The encoding mode. + The ECI mode specifying the character encoding to use. + Flag indicating whether to prepend a UTF-8 Byte Order Mark. + Flag indicating whether UTF-8 encoding is forced. + A BitArray containing the binary representation of the encoded data. + + + + Converts numeric plain text into a binary format specifically optimized for QR codes. + Numeric compression groups up to 3 digits into 10 bits, less for remaining digits if they do not complete a group of three. + + The numeric text to be encoded, which should only contain digit characters. + A BitArray representing the binary data of the encoded numeric text. + + + + Converts plain text into a binary format using byte mode encoding, which supports various character encodings through ECI (Extended Channel Interpretations). + + The text to be encoded. + The ECI mode that specifies the character encoding to use. + Specifies whether to include a Byte Order Mark (BOM) for UTF-8 encoding. + Forces UTF-8 encoding regardless of the text content's compatibility with ISO-8859-1. + A BitArray representing the binary data of the encoded text. + + The returned text is always encoded as ISO-8859-1 unless either the text contains a non-ISO-8859-1 character or + UTF-8 encoding is forced. This does not meet the QR Code standard, which requires the use of ECI to specify the encoding + when not ISO-8859-1. + + + + + Converts an array of bytes into a BitArray, considering the proper bit order within each byte. + Unlike the constructor of BitArray, this function preserves the MSB-to-LSB order within each byte. + + The byte array to convert into a BitArray. + The number of leading zeros to prepend to the resulting BitArray. + A BitArray representing the bits of the input byteArray, with optional leading zeros. + + + + Performs a bitwise XOR operation between two polynomials, commonly used in QR code error correction coding. + + The resultant polynomial after performing the XOR operation. + + + + Multiplies a generator polynomial by a leading term polynomial, reducing the result by a specified lower exponent, + used in constructing QR code error correction codewords. + + + + + Multiplies two polynomials, treating coefficients as exponents of a primitive element (alpha), which is common in error correction algorithms such as Reed-Solomon. + + The first polynomial to multiply. + The second polynomial to multiply. + A new polynomial which is the result of the multiplication of the two input polynomials. + + + + + + + Represents the alignment pattern used in QR codes, which helps ensure the code remains readable even if it is somewhat distorted. + Each QR code version has its own specific alignment pattern locations which this struct encapsulates. + + + + + The version of the QR code. Higher versions have more complex and numerous alignment patterns. + + + + + A list of points where alignment patterns are located within the QR code matrix. + Each point represents the center of an alignment pattern. + + + + + This class contains the alignment patterns used in QR codes. + + + + + A lookup table mapping QR code versions to their corresponding alignment patterns. + + + + + Retrieves the alignment pattern for a specific QR code version. + + + + + Creates a lookup table mapping QR code versions to their corresponding alignment patterns. + Alignment patterns are used in QR codes to help scanners accurately read the code at high speeds and when partially obscured. + This table provides the necessary patterns based on the QR code version which dictates the size and complexity of the QR code. + + A dictionary where keys are QR code version numbers and values are AlignmentPattern structures detailing the positions of alignment patterns for each version. + + + + Encodes alphanumeric characters (0–9, A–Z (uppercase), space, $, %, *, +, -, period, /, colon) into a binary format suitable for QR codes. + + + + + A dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + + + + Creates a dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + A dictionary mapping each supported alphanumeric character to its corresponding value. + + + + Checks if a character is present in the alphanumeric encoding table. + + + + + Converts alphanumeric plain text into a binary format optimized for QR codes. + Alphanumeric encoding packs characters into 11-bit groups for each pair of characters, + and 6 bits for a single remaining character if the total count is odd. + + The alphanumeric text to be encoded, which should only contain characters valid in QR alphanumeric mode. + A BitArray representing the binary data of the encoded alphanumeric text. + + + + Provides QR code capacity and error correction data for each version and encoding mode. + Used to determine how much data can be stored in a QR code and which version is required. + + + + + A list containing detailed capacity information for each version of QR codes. + The index in the capacity table corresponds to one less than the version number. + + + + + A table containing the error correction capacities and data codeword information for different combinations of QR code versions and error correction levels. + + + + + Retrieves the error correction information for a specific QR code version and error correction level. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + The desired error correction level (L, M, Q, or H). Do not supply . + + An object containing the total number of data codewords, ECC per block, + block group details, and other parameters required for encoding error correction data. + + + + + Retrieves the capacity information for a specific QR code version. + The returned structure contains detailed data capacity values for each error correction level (L, M, Q, H) + and encoding mode (Numeric, Alphanumeric, Byte, Kanji), indicating the maximum number of characters + that can be stored in a QR code of the specified version under each configuration. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + A object containing data capacity details for all error correction levels + and encoding modes for the specified version. + + + + + Retrieves the number of remainder bits required for a specific QR code version. + Remainder bits are added to the final bit stream to ensure proper alignment with byte boundaries, + as required by the QR code specification. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + The number of remainder bits (0 to 7) that must be appended to the encoded bit stream. + + + + + Determines the minimum QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Low, Medium, Quartile, High). + The minimum version of the QR code that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Determines the minimum Micro QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Default, Low, Medium, Quartile, High). + The minimum version of the QR code (-1 to -4) that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Generates a table containing the error correction capacities and data codeword information for different QR code versions and error correction levels. + This table is essential for determining how much data can be encoded in a QR code of a specific version and ECC level, + as well as how robust the QR code will be against distortions or obstructions. + + A list of ECCInfo structures, each representing the ECC data and capacities for different combinations of QR code versions and ECC levels. + + + + Generates a list containing detailed capacity information for various versions of QR codes. + This table includes capacities for different encoding modes (numeric, alphanumeric, byte, etc.) under each error correction level. + The capacity table is crucial for QR code generation, as it determines how much data each QR code version can store depending on the encoding mode and error correction level used. + The index in the capacity table corresponds to one less than the version number. + + + + + + + + Represents a block of codewords in a QR code. QR codes are divided into several blocks for error correction purposes. + Each block contains a series of data codewords followed by error correction codewords. + + + + + Initializes a new instance of the CodewordBlock struct with specified arrays of code words and error correction (ECC) words. + + The offset of the data codewords within the main BitArray. Data codewords carry the actual information. + The length in bits of the data codewords within the main BitArray. + The array of error correction codewords for this block. These codewords help recover the data if the QR code is damaged. + + + + Gets the offset of the data codewords in the BitArray. + + + + + Gets the length of the data codewords in the BitArray. + + + + + Gets the error correction codewords associated with this block. + + + + + Represents the error correction coding (ECC) information for a specific version and error correction level of a QR code. + + + + + Initializes a new instance of the ECCInfo struct with specified properties. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The number of error correction codewords per block. + The number of blocks in group 1. + The number of codewords in each block of group 1. + The number of blocks in group 2, if any. + The number of codewords in each block of group 2, if any. + + + + Initializes a new instance of the ECCInfo struct with specified properties for Micro QR codes. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The total number of data bits for this version and error correction level. + The number of error correction codewords per block. + + + + Gets the version number of the QR code. + + + + + Gets the error correction level of the QR code. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the number of error correction codewords per block. + + + + + Gets the number of blocks in group 1. + + + + + Gets the number of codewords in each block of group 1. + + + + + Gets the number of blocks in group 2, if any. + + + + + Gets the number of codewords in each block of group 2, if any. + + + + + Defines the levels of error correction available in QR codes. + Each level specifies the proportion of data that can be recovered if the QR code is partially obscured or damaged. + + + + + Default error correction level, which will select Level M (Medium) unless otherwise specified by the payload. + Level M allows approximately 15% of data to be recovered, offering a balance between data capacity and error recovery. + + + + + Level L: Low error correction (approximately 7% of data can be recovered). + This level allows the highest data density. + + + + + Level M: Medium error correction (approximately 15% of data can be recovered). + Offers a balance between data capacity and error recovery. + + + + + Level Q: Quartile error correction (approximately 25% of data can be recovered). + More robust error correction at the cost of reduced data capacity. + + + + + Level H: High error correction (approximately 30% of data can be recovered). + Provides the highest level of error recovery, ideal for environments with high risk of data loss. + + + + + Enumerates the Extended Channel Interpretation (ECI) modes used in QR codes to handle different character encoding standards. + ECI mode allows QR codes to efficiently encode data using character sets other than the default ISO-8859-1. + + + + + Default encoding mode (typically ISO-8859-1). Used when no ECI mode is explicitly specified. + This mode is assumed in basic QR codes where no extended character sets are needed. + + + + + Specifies the use of the ISO-8859-1 character set, covering most Western European languages. + This mode explicitly sets the encoding to ISO-8859-1, which includes characters used in languages such as English, French, German, and Spanish. + + + + + Specifies the use of the ISO-8859-2 character set, which is primarily used for Central and Eastern European languages. + This includes characters used in languages such as Polish, Czech, Slovak, Hungarian, and Romanian. + + + + + Specifies the use of UTF-8 encoding. + UTF-8 can encode any Unicode character and is useful for QR codes that need to support multi-language content. + + + + + Specifies the encoding modes for the characters in a QR code. + + + + + Numeric encoding mode, which is used to encode numeric data (digits 0-9). + Three characters are encoded into 10 bits. + + + + + Alphanumeric encoding mode, which is used to encode alphanumeric characters (0-9, A-Z, space, and some punctuation). + Two characters are encoded into 11 bits. + + + + + Byte encoding mode, primarily using the ISO-8859-1 character set. Each character is encoded into 8 bits. + When combined with ECI, it can be adapted to use other character sets. + + + + + Kanji encoding mode, which is used to encode characters from the Shift JIS character set, primarily for Japanese Kanji and Kana characters. + One character is encoded into 13 bits. This mode is not currently supported by QRCoder. + + + + + Extended Channel Interpretation (ECI) mode, which specifies a character set via an 8-bit number followed by one of the other encoding modes. + This allows adapting the byte encoding to accommodate various global text encodings. + + + + + Represents a Galois field of 256 elements (GF(256)) used in finite field arithmetic, + typically for error correction algorithms such as Reed-Solomon. + + Provides mappings between exponential and integer representations of field elements + using a primitive element (α). The field is constructed with respect to a generator + polynomial and used for efficient encoding and decoding operations. + + + + + + Retrieves the integer value from the Galois field that corresponds to a given exponent. + This is used in Reed-Solomon and other error correction calculations involving Galois fields. + + + + + Retrieves the exponent from the Galois field that corresponds to a given integer value. + Throws an exception if the integer value is zero, as zero does not have a logarithmic representation in the field. + + + + + Normalizes a Galois field exponent to ensure it remains within the bounds of the field's size. + This is particularly necessary when performing multiplications in the field which can result in exponents exceeding the field's maximum. + + + + + Struct that represents blocked modules using rectangles. + + + + + Initializes a new instance of the struct with a specified size. + + The size of the blocked modules matrix. + + + + Adds a blocked module at the specified coordinates. + + The x-coordinate of the module. + The y-coordinate of the module. + + + + Adds a blocked module defined by the specified rectangle. + + The rectangle that defines the blocked module. + + + + Checks if the specified coordinates are blocked. + + The x-coordinate to check. + The y-coordinate to check. + true if the coordinates are blocked; otherwise, false. + + + + Checks if the specified rectangle is blocked. + + The rectangle to check. + true if the rectangle is blocked; otherwise, false. + + + + Places the version information on the QR code matrix for versions 7 and higher. Version information + is encoded into two small rectangular areas near the bottom left and top right corners outside the timing patterns. + + The QR code data structure to modify. + The bit array containing the version information. + Indicates whether an offset should be applied to the version information placement. + + + + Places the format information on the QR code, encoding the error correction level and mask pattern used. + + The QR code data structure to modify. + The bit array containing the format information. + Specifies whether an offset should be applied. + + + + Applies the most effective mask pattern to the QR code based on minimizing the penalty score, + which evaluates how well the pattern will work for QR scanners. + + The QR code data structure where the mask will be applied. + The version of the QR code, which determines the size and complexity. + List of rectangles representing areas that must not be overwritten. + The error correction level of the QR code, which affects format string values. + The index of the selected mask pattern. + + + + Places data bits into the QR code's module matrix following a specific pattern that navigates around blocked modules. + + The QR code data structure where the data bits are to be placed. + The data bits to be placed within the QR code matrix. + A list of rectangles representing areas within the QR code matrix that should not be modified because they contain other necessary information like format and version info. + + + + Reserves separator areas around the positioning patterns of a QR code to ensure that these crucial areas remain unmodified during data placement. + + The version of the QR code, which determines the number of finder patterns. + The size of the QR code matrix. + A list of rectangles representing areas that must not be overwritten. + + + + Reserves areas for version information on QR codes that are version 7 or higher. Also reserves space for format information. + + The size of the QR code matrix. + The version number of the QR code, which determines the placement of version information. + A list of rectangles representing areas that must not be overwritten. + + + + Places a dark module on the QR code matrix as per QR code specification, which requires a dark module at a specific position for all QR codes. + + The QR code data structure where the dark module is to be placed. + The version number of the QR code, which determines the specific location of the dark module. + A list of rectangles representing areas that must not be overwritten, updated to include the dark module. + + + + Places finder patterns on the QR code. Finder patterns are critical for QR code scanners to correctly orient and recognize the QR code. + + The QR code data structure where the finder patterns will be placed. + A list of rectangles representing areas that must not be overwritten. This is updated with the areas occupied by the finder patterns. + + + + Places alignment patterns on the QR code matrix. Alignment patterns help ensure the scanner can correctly interpret the QR code at various scales and orientations. + + The QR code data structure where the alignment patterns will be placed. + A list of points representing the centers of where alignment patterns should be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by alignment patterns. + + + + Places timing patterns in the QR code. Timing patterns are alternating dark and light modules that help scanners determine the coordinates of modules within the QR code. + + The QR code data structure where the timing patterns will be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by timing patterns. + + + + Provides static methods and properties to handle mask patterns used in QR code generation. + Mask patterns are applied to QR codes to break up patterns in the data matrix that might confuse scanners. + + + + + A dictionary mapping each mask pattern index to its corresponding function that calculates whether a given pixel should be masked. + + + + + Mask pattern 1: (x + y) % 2 == 0 + Applies a checkerboard mask on the QR code. + + + + + Mask pattern 2: y % 2 == 0 + Applies a horizontal striping mask on the QR code. + + + + + Mask pattern 3: x % 3 == 0 + Applies a vertical striping mask on the QR code. + + + + + Mask pattern 4: (x + y) % 3 == 0 + Applies a diagonal striping mask on the QR code. + + + + + Mask pattern 5: ((y / 2) + (x / 3)) % 2 == 0 + Applies a complex pattern mask on the QR code, mixing horizontal and vertical rules. + + + + + Mask pattern 6: ((x * y) % 2 + (x * y) % 3) == 0 + Applies a mask based on the product of x and y coordinates modulo 2 and 3. + + + + + Mask pattern 7: (((x * y) % 2 + (x * y) % 3) % 2) == 0 + Applies a mask based on a more complex function involving the product of x and y coordinates. + + + + + Mask pattern 8: (((x + y) % 2) + ((x * y) % 3) % 2) == 0 + Combines rules of checkers and complex multiplicative masks. + + + + + Calculates a penalty score for a Micro QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Calculates a penalty score for a QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + The score is the sum of four penalty rules applied to the QR code. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Represents a 2D point with integer coordinates. + + + + + Gets the X-coordinate of the point. + + + + + Gets the Y-coordinate of the point. + + + + + Initializes a new instance of the struct with specified X and Y coordinates. + + The X-coordinate of the point. + The Y-coordinate of the point. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + True if the specified has the same X and Y coordinates as the current ; otherwise, false. + + If this method which implements is not implemented, comparisons used by methods such as + fall back to reflection, which causes heap allocations internally during the calls to . + + + + + + + + + + + Represents a polynomial, which is a sum of polynomial terms. + + + + + Initializes a new instance of the struct with a specified number of initial capacity for polynomial terms. + + The initial capacity of the polynomial items list. + + + + Adds a polynomial term to the polynomial. + + + + + Removes the polynomial term at the specified index. + + + + + Gets or sets a polynomial term at the specified index. + + + + + Gets the number of polynomial terms in the polynomial. + + + + + Removes all polynomial terms from the polynomial. + + + + + Clones the polynomial, creating a new instance with the same polynomial terms. + + + + + Sorts the collection of using a custom comparer function. + + + A function that compares two objects and returns an integer indicating their relative order: + less than zero if the first is less than the second, zero if they are equal, or greater than zero if the first is greater than the second. + + + + + Returns a string that represents the polynomial in standard algebraic notation. + Example output: "a^2*x^3 + a^5*x^1 + a^3*x^0", which represents the polynomial 2x³ + 5x + 3. + + + + + + + + Ensures that the polynomial has enough capacity to store the specified number of polynomial terms. + + + + + Rents memory for the polynomial terms from a shared memory pool. + + + + + Returns memory allocated for the polynomial terms back to a shared memory pool. + + + + + Returns an enumerator that iterates through the polynomial terms. + + + + + Value type enumerator for the struct. + + + + + Represents an individual term of a polynomial, consisting of a coefficient and an exponent. + For example, the term 3x² would be represented as a with a coefficient of 3 and an exponent of 2. + + + + + Initializes a new instance of the struct with the specified coefficient and exponent. + + The coefficient of the polynomial term. For example, in the term 3x², the coefficient is 3. + The exponent of the polynomial term. For example, in the term 3x², the exponent is 2. + + + + Gets the coefficient of the polynomial term. + + + + + Gets the exponent of the polynomial term. + + + + + Represents a rectangle defined by its top-left corner's coordinates, width, and height. + + + + + Gets the X-coordinate of the top-left corner of the rectangle. + + + + + Gets the Y-coordinate of the top-left corner of the rectangle. + + + + + Gets the width of the rectangle. + + + + + Gets the height of the rectangle. + + + + + Initializes a new instance of the struct with the specified top-left corner coordinates, width, and height. + + The X-coordinate of the top-left corner of the rectangle. + The Y-coordinate of the top-left corner of the rectangle. + The width of the rectangle. + The height of the rectangle. + + + + Represents version-specific information of a QR code. + + + + + Initializes a new instance of the struct with a specific version number and its details. + + The version number of the QR code. Each version has a different module configuration. + A list of detailed information related to error correction levels and capacity for each encoding mode. + + + + Gets the version number of the QR code. Each version number specifies a different size of the QR matrix. + + + + + Gets a list of details about the QR code version, including the error correction levels and encoding capacities. + + + + + Represents the detailed information about each error correction level and its corresponding capacities in different encoding modes for a specific version of a QR code. + + + + + Initializes a new instance of the struct, detailing the error correction level and the capacity for each encoding mode. + + The error correction level, which determines how much of the code can be restored if the QR code gets damaged. + A dictionary mapping each encoding mode to its capacity for the specific error correction level. + + + + Gets the error correction level of the QR code, influencing how robust the QR code is against errors and damage. + + + + + Gets a dictionary that contains the capacities of different encoding modes under the specified error correction level. + These capacities dictate how many characters can be encoded under each mode. + + + + + Represents a QR code generator that outputs QR codes as SVG images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a scalable QR code as an SVG string. + + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string. + + The pixel size each dark/light module is drawn. + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors, optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors and optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Determines if a module at (x,y) is blocked by the logo area defined by attr. + + + + + Calculates the logo's position and size within the QR code based on the specified percentage size. + + + + + Gets the transparency value (0-255) from a color string. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + The alpha/transparency value from 0 (fully transparent) to 255 (fully opaque). Returns 255 for colors without alpha channel. + + + + Determines if a color string represents a partially transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is transparent; otherwise false. + + + + Determines if a color string represents a fully transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is fully transparent; otherwise false. + + + + Converts a Color to a hex string in #RGB, #RRGGBB or #RRGGBBAA format; or 'transparent' for fully transparent colors. + + The color to convert. + A hex string representation of the color. + + + + Mode of sizing attribute on SVG root node + + + + + Specifies width and height attributes for SVG sizing + + + + + Width and height are not included within the SVG tag; viewBox is scaled to fit the container + + + + + Represents a logo graphic that can be rendered on a SvgQRCode + + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as Bitmap/rasterized graphic + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as SVG/vectorized graphic/string + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + If true, the logo will embedded as native svg instead of embedding it as image-tag + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as PNG + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Returns the raw logo's data + + + + + Defines, if the logo shall be natively embedded. + true=native svg embedding, false=embedding via image-tag + + + + + Returns the media type of the logo + + + + + + Returns the logo as data-uri + + + + + Returns how much of the QR code should be covered by the logo (in percent) + + + + + Returns if the background of the logo should be cleaned (no QR modules will be rendered behind the logo) + + + + + Media types for SvgLogos + + + + + Portable Network Graphics (PNG) image format + + + + + Scalable Vector Graphics (SVG) image format + + + + + Provides static methods for creating SVG QR codes. + + + + + Creates an SVG QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The pixel size each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HEX format (e.g., #000000). + The color of the light modules in HEX format (e.g., #ffffff). + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Specifies that when a method returns System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue, + the parameter will not be null even if the corresponding type allows it. + + + + + Initializes the attribute with the specified return value condition. + + If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. If the method returns this value, the associated + parameter will not be null. + + + + diff --git a/packages/QRCoder.1.7.0/lib/net40/QRCoder.dll b/packages/QRCoder.1.7.0/lib/net40/QRCoder.dll new file mode 100644 index 0000000..d547980 Binary files /dev/null and b/packages/QRCoder.1.7.0/lib/net40/QRCoder.dll differ diff --git a/packages/QRCoder.1.7.0/lib/net40/QRCoder.xml b/packages/QRCoder.1.7.0/lib/net40/QRCoder.xml new file mode 100644 index 0000000..7e7796a --- /dev/null +++ b/packages/QRCoder.1.7.0/lib/net40/QRCoder.xml @@ -0,0 +1,5590 @@ + + + + QRCoder + + + + + Abstract base class for generating QR codes. + Derived classes typically render a QR code into a specific format (png, System.Drawing.Bitmap, PDF, etc). + + + + + Gets or sets the QRCodeData used to generate the QR code. + + + + + Initializes a new instance of the AbstractQRCode class. + + + + + Initializes a new instance of the AbstractQRCode class with the specified QRCodeData. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Sets the QRCodeData object that will be used to generate the QR code. + This method is useful for COM objects connections. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Disposes the QRCodeData object. + + + + + Represents an art-style QR code generator that provides functionality to render QR codes with dots as modules. + + + + + Initializes a new instance of the class. + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + generated by the . + + + + Renders an art-style QR code with dots as modules. (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and a background image (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + A bitmap object that will be used as background picture + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and various user settings + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + If the pixelSize is bigger than the pixelsPerModule or may end up filling the Module making a traditional QR code. + + Pixels used per module rendered + Size of the dots + Color of the pixels + + + + + Checks if a given module(-position) is part of the quietzone of a QR code + + X position + Y position + Total number of modules per row + true, if position is part of quiet zone + + + + Checks if a given module(-position) is part of one of the three finder patterns of a QR code + + X position + Y position + Total number of modules per row + Offset in modules (usually depending on drawQuietZones parameter) + true, if position is part of any finder pattern + + + + Resize to a square bitmap, but maintain the aspect ratio by padding transparently. + + + + Resized image as bitmap + + + + Defines how the quiet zones shall be rendered. + + + + + Quiet zones are rendered with dotted modules. + + + + + Quiet zones are rendered with flat, solid modules. + + + + + Defines how the background image (if set) shall be rendered. + + + + + Background image spans the complete graphic. + + + + + Background image is only painted in the data area, excluding the quiet zone. + + + + + Provides static methods for creating art-style QR codes. + + + + + Helper function to create an ArtQRCode graphic with a single function call + + Text/payload to be encoded inside the QR code + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + Represents an ASCII-style QR code generator that provides functionality to render QR codes as textual representations. + + + + + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + The QR code data generated by the . + + + + Returns a strings that contains the resulting QR code as textual representation. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + End of line separator. (Default: \n) + + + + + Returns an array of strings that contains each line of the resulting QR code as ASCII chars. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + + + + + Returns a strings that contains the resulting QR code as minified textual representation. + + Bool that defines if quiet zones around the QR code shall be drawn + If set to true, dark and light colors will be inverted + End of line separator. (Default: \n) + + + + + Provides static methods for generating ASCII-style QR codes. + + + + + Generates an ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Number of repeated characters per module. + String representing dark modules. + String representing light modules. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + ASCII representation of the QR code. + + + + Generates a small ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + Invert dark and light colors. + Minified ASCII representation of the QR code. + + + + Represents a QR code generator that outputs base64-encoded images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a base64-encoded string that contains the resulting QR code as a PNG image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image with an embedded icon. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The icon to embed in the center of the QR code. + The size of the icon as a percentage of the QR code. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Converts a bitmap to a base64-encoded string. + + The bitmap to convert. + The type of image (PNG, JPEG, GIF). + Returns the base64-encoded string representation of the bitmap. + + + + Specifies the type of image to generate. + + + + + Graphics Interchange Format (GIF) image format, a bitmap image format with limited color support + + + + + Joint Photographic Experts Group (JPEG) image format, a lossy compressed image format + + + + + Portable Network Graphics (PNG) image format, a lossless raster graphics format + + + + + Provides static methods for creating base64-encoded QR codes. + + + + + Creates a base64-encoded QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Represents a QR code generator that outputs QR codes as bitmap byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGB byte array. + The color of the light modules as an RGB byte array. + Returns the QR code graphic as a bitmap byte array. + + + + Converts an integer to a 4 bytes and writes them to a byte array at given position + + The integer to convert. + Index of destinationArray where the converted bytes are written to + Destination byte array that receives the bytes + + + + Provides helper functions for creating bitmap byte array QR codes. + + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a bitmap byte array. + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Exception thrown when the given payload exceeds the maximum size of the QR code standard. + + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The fixed version of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Helper methods for . + + + + + Copies a specified number of elements from one to another starting at the specified offsets. + + The source from which elements will be copied. + The zero-based index in the source at which copying begins. + The destination to which elements will be copied. + The zero-based index in the destination at which storing begins. + The number of elements to copy. + The index in the destination immediately following the last copied element. + + + + Indicates whether the specified string is null, empty, or consists only of white-space characters. + + + if the is null, empty, or white space; otherwise, . + + + + + Converts a hex color string to a byte array. + + Color in HEX format like #ffffff. + Returns the color as a byte array. + + + + Appends an integer value to the StringBuilder using invariant culture formatting. + + The StringBuilder to append to. + The integer value to append. + + + + Appends a float value to the StringBuilder using invariant culture formatting with G7 precision. + + The StringBuilder to append to. + The float value to append. + + + + Used to represent a string value for a value in an enum + + + + + Holds the alue in an enum + + + + + Init a StringValue Attribute + + + + + + Enumeration extension methods. + + + + + Will get the string value for a given enum's value + + + + + Provides utility methods for generating QR code payloads. + + + Contains classes and methods for generating payloads for QR codes. + + + + + Validates the structure and checksum of an IBAN. + + The IBAN to validate. + True if the IBAN is valid; otherwise, false. + + + + Validates the structure and checksum of a QR IBAN. + + The QR IBAN to validate. + True if the QR IBAN is valid; otherwise, false. + + + + Validates the structure of a BIC. + + The BIC to validate. + True if the BIC is valid; otherwise, false. + + + + Validates the structure of a BIC with optional requirement check. + + The BIC to validate. + Whether the BIC is required. If false, null/empty values are considered valid. + True if the BIC is valid; otherwise, false. + + + + Converts a string to a specified encoding. + + The string to convert. + The encoding to use. + The converted string. + + + + Escapes forbidden characters in a string. + + The input string. + Indicates whether to use a simple escape mode. + The escaped string. + + + + Validates a string using the Mod10 checksum algorithm. + + The string to validate. + True if the string is valid; otherwise, false. + + + + Checks if a string is in hexadecimal format. + + The input string. + True if the string is in hexadecimal format; otherwise, false. + + + + Represents a BezahlCode payload for QR codes. + + + + + Initializes a new instance of the class for contact data. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Reason (Verwendungszweck) + + + + Initializes a new instance of the class for non-SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Initializes a new instance of the class for SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Generic constructor. Please use specific (non-SEPA or SEPA) constructor. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + Only used for internal state handdling + + + + + + + ISO 4217 currency codes + + + + + United Arab Emirates Dirham + + + + + Afghan Afghani + + + + + Albanian Lek + + + + + Armenian Dram + + + + + Netherlands Antillean Guilder + + + + + Angolan Kwanza + + + + + Argentine Peso + + + + + Australian Dollar + + + + + Aruban Florin + + + + + Azerbaijani Manat + + + + + Bosnia and Herzegovina Convertible Mark + + + + + Barbados Dollar + + + + + Bangladeshi Taka + + + + + Bulgarian Lev + + + + + Bahraini Dinar + + + + + Burundian Franc + + + + + Bermudian Dollar + + + + + Brunei Dollar + + + + + Bolivian Boliviano + + + + + Bolivian Mvdol (funds code) + + + + + Brazilian Real + + + + + Bahamian Dollar + + + + + Bhutanese Ngultrum + + + + + Botswana Pula + + + + + Belarusian Ruble + + + + + Belize Dollar + + + + + Canadian Dollar + + + + + Congolese Franc + + + + + WIR Euro (complementary currency) + + + + + Swiss Franc + + + + + WIR Franc (complementary currency) + + + + + Unidad de Fomento (funds code) + + + + + Chilean Peso + + + + + Chinese Yuan + + + + + Colombian Peso + + + + + Unidad de Valor Real (UVR) (funds code) + + + + + Costa Rican Colón + + + + + Cuban Convertible Peso + + + + + Cuban Peso + + + + + Cape Verde Escudo + + + + + Czech Koruna + + + + + Djiboutian Franc + + + + + Danish Krone + + + + + Dominican Peso + + + + + Algerian Dinar + + + + + Egyptian Pound + + + + + Eritrean Nakfa + + + + + Ethiopian Birr + + + + + Euro + + + + + Fiji Dollar + + + + + Falkland Islands Pound + + + + + Pound Sterling + + + + + Georgian Lari + + + + + Ghanaian Cedi + + + + + Gibraltar Pound + + + + + Gambian Dalasi + + + + + Guinean Franc + + + + + Guatemalan Quetzal + + + + + Guyanese Dollar + + + + + Hong Kong Dollar + + + + + Honduran Lempira + + + + + Croatian Kuna + + + + + Haitian Gourde + + + + + Hungarian Forint + + + + + Indonesian Rupiah + + + + + Israeli New Shekel + + + + + Indian Rupee + + + + + Iraqi Dinar + + + + + Iranian Rial + + + + + Icelandic Króna + + + + + Jamaican Dollar + + + + + Jordanian Dinar + + + + + Japanese Yen + + + + + Kenyan Shilling + + + + + Kyrgyzstani Som + + + + + Cambodian Riel + + + + + Comoro Franc + + + + + North Korean Won + + + + + South Korean Won + + + + + Kuwaiti Dinar + + + + + Cayman Islands Dollar + + + + + Kazakhstani Tenge + + + + + Lao Kip + + + + + Lebanese Pound + + + + + Sri Lankan Rupee + + + + + Liberian Dollar + + + + + Lesotho Loti + + + + + Libyan Dinar + + + + + Moroccan Dirham + + + + + Moldovan Leu + + + + + Malagasy Ariary + + + + + Macedonian Denar + + + + + Myanmar Kyat + + + + + Mongolian Tögrög + + + + + Macanese Pataca + + + + + Mauritanian Ouguiya + + + + + Mauritian Rupee + + + + + Maldivian Rufiyaa + + + + + Malawian Kwacha + + + + + Mexican Peso + + + + + Mexican Unidad de Inversión (UDI) (funds code) + + + + + Malaysian Ringgit + + + + + Mozambican Metical + + + + + Namibian Dollar + + + + + Nigerian Naira + + + + + Nicaraguan Córdoba + + + + + Norwegian Krone + + + + + Nepalese Rupee + + + + + New Zealand Dollar + + + + + Omani Rial + + + + + Panamanian Balboa + + + + + Peruvian Sol + + + + + Papua New Guinean Kina + + + + + Philippine Peso + + + + + Pakistani Rupee + + + + + Polish Złoty + + + + + Paraguayan Guaraní + + + + + Qatari Riyal + + + + + Romanian Leu + + + + + Serbian Dinar + + + + + Russian Ruble + + + + + Rwandan Franc + + + + + Saudi Riyal + + + + + Solomon Islands Dollar + + + + + Seychelles Rupee + + + + + Sudanese Pound + + + + + Swedish Krona + + + + + Singapore Dollar + + + + + Saint Helena Pound + + + + + Sierra Leonean Leone + + + + + Somali Shilling + + + + + Surinamese Dollar + + + + + South Sudanese Pound + + + + + São Tomé and Príncipe Dobra + + + + + Salvadoran Colón + + + + + Syrian Pound + + + + + Swazi Lilangeni + + + + + Thai Baht + + + + + Tajikistani Somoni + + + + + Turkmenistan Manat + + + + + Tunisian Dinar + + + + + Tongan Paʻanga + + + + + Turkish Lira + + + + + Trinidad and Tobago Dollar + + + + + New Taiwan Dollar + + + + + Tanzanian Shilling + + + + + Ukrainian Hryvnia + + + + + Ugandan Shilling + + + + + United States Dollar + + + + + United States Dollar (Next day) (funds code) + + + + + Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code) + + + + + Uruguayan Peso + + + + + Uzbekistan Som + + + + + Venezuelan Bolívar + + + + + Vietnamese Đồng + + + + + Vanuatu Vatu + + + + + Samoan Tālā + + + + + CFA Franc BEAC + + + + + Silver (one troy ounce) + + + + + Gold (one troy ounce) + + + + + Bond Markets Unit European Composite Unit (EURCO) + + + + + Bond Markets Unit European Monetary Unit (E.M.U.-6) + + + + + Bond Markets Unit European Unit of Account 9 (E.U.A.-9) + + + + + Bond Markets Unit European Unit of Account 17 (E.U.A.-17) + + + + + East Caribbean Dollar + + + + + Special Drawing Rights + + + + + CFA Franc BCEAO + + + + + Palladium (one troy ounce) + + + + + CFP Franc + + + + + Platinum (one troy ounce) + + + + + SUCRE + + + + + Codes specifically reserved for testing purposes + + + + + ADB Unit of Account + + + + + The code assigned for transactions where no currency is involved + + + + + Yemeni Rial + + + + + South African Rand + + + + + Zambian Kwacha + + + + + Zimbabwean Dollar + + + + + Operation modes of the BezahlCode + + + + + Single payment (Überweisung) + + + + + Single SEPA payment (SEPA-Überweisung) + + + + + Single debit (Lastschrift) + + + + + Single SEPA debit (SEPA-Lastschrift) + + + + + Periodic payment (Dauerauftrag) + + + + + Periodic SEPA payment (SEPA-Dauerauftrag) + + + + + Contact data + + + + + Contact data V2 + + + + + Exception class for BezahlCode errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for Bitcoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin address of the payment receiver. + The amount of Bitcoin to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin Cash payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin Cash payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin Cash address of the payment receiver. + The amount of Bitcoin Cash to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin-like cryptocurrency payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin-like cryptocurrency payment payload. QR Codes with this payload can open a payment app. + + The type of Bitcoin-like cryptocurrency. + The cryptocurrency address of the payment receiver. + The amount of coins to transfer. + A reference label. + A reference text or message. + + + + Returns a string representation of the Bitcoin-like cryptocurrency address payload. + + A string representation of the cryptocurrency address payload. + + + + Enumerates Bitcoin-like cryptocurrencies. + + + + + Bitcoin. + + + + + Bitcoin Cash. + + + + + Litecoin. + + + + + Generates a bookmark payload. When scanned by a QR code reader, this creates a browser bookmark. + + + + + Initializes a new instance of the class. + + The URL of the bookmark. + The title of the bookmark. + + + + Returns a string representation of the bookmark payload. + + A string representation of the bookmark payload in the MEBKM format. + + + + Generates a calendar entry/event payload. + + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time (including UTC offset) of the event. + End time (including UTC offset) of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time of the event. + End time of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Returns a string representation of the calendar event payload. + + A string representation of the calendar event in the VEVENT format. + + + + Specifies the encoding type for the calendar event. + + + + + iCalendar complete encoding. + + + + + Universal encoding. + + + + + Generates a vCard or meCard contact dataset. + + + + + Initializes a new instance of the class. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + + + + Initializes a new instance of the class with address type support. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + The address type (Home, Work, HomePreferred, or WorkPreferred). + + + + Returns a string representation of the contact data payload. + + A string representation of the contact data in the specified format. + + + + Gets the address type string for vCard 2.1 format. + + + + + Gets the address type string for vCard 3.0 format. + + + + + Gets the address type string for vCard 4.0 format. + + + + + Defines the type of address (home or work). + + + + + Home address. + + + + + Work address. + + + + + Home address marked as preferred (default for backwards compatibility). + + + + + Work address marked as preferred. + + + + + Possible output types. Either vCard 2.1, vCard 3.0, vCard 4.0 or MeCard. + + + + + MeCard output type. + + + + + vCard 2.1 output type. + + + + + vCard 3.0 output type. + + + + + vCard 4.0 output type. + + + + + Define the address format. + Default: European format, ([Street] [House Number] and [Postal Code] [City]) + Reversed: North American and others format ([House Number] [Street] and [City] [Postal Code]) + + + + + Default address order format (European format). + + + + + Reversed address order format (North American and others format). + + + + + Generates a geo location payload. Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + + + + Initializes a new instance of the class. + Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + Latitude with . as splitter. + Longitude with . as splitter. + Encoding type - GEO or GoogleMaps. + + + + Returns a string representation of the geolocation payload. + + A string representation of the geolocation payload in the specified encoding format. + + + + Defines the encoding types for geolocation payloads. + + + + + GEO encoding type. + + + + + Google Maps encoding type. + + + + + Generates the payload for a Girocode (QR-Code with credit transfer information). + + + + + Gets the ECC level required for Girocode, which is always set to M. + + + + + Initializes a new instance of the class, which contains a payload for a Girocode (QR-Code with credit transfer information). + + Account number of the Beneficiary. Only IBAN is allowed. + BIC of the Beneficiary Bank. + Name of the Beneficiary. + Amount of the Credit Transfer in Euro. (Amount must be more than 0.01 and less than 999999999.99) + Remittance Information (Purpose-/reference text). (optional) + Type of remittance information. Either structured (e.g. ISO 11649 RF Creditor Reference) and max. 35 chars or unstructured and max. 140 chars. + Purpose of the Credit Transfer (optional) + Beneficiary to originator information. (optional) + Girocode version. Either 001 or 002. Default: 001. + Encoding of the Girocode payload. Default: ISO-8859-1 + Thrown when the input values are not valid according to the Girocode specification. + + + + Returns the Girocode payload as a string. + + The Girocode payload as a string. + + + + Defines the Girocode version. + + + + + Girocode version 1. + + + + + Girocode version 2. + + + + + Defines the type of remittance information. + + + + + Structured remittance information. + + + + + Unstructured remittance information. + + + + + Defines the encoding types for Girocode payloads. + + + + + UTF-8 encoding. + + + + + ISO-8859-1 encoding. + + + + + ISO-8859-2 encoding. + + + + + ISO-8859-4 encoding. + + + + + ISO-8859-5 encoding. + + + + + ISO-8859-7 encoding. + + + + + ISO-8859-10 encoding. + + + + + ISO-8859-15 encoding. + + + + + Represents errors that occur during Girocode generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a payload for Litecoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Litecoin payment payload. QR Codes with this payload can open a payment app. + + The Litecoin address of the payment receiver. + The amount of Litecoin to transfer. + A reference label. + A reference text or message. + + + + Generates an email payload that can be used to create a QR code for sending an email. + + + + + Creates an email payload with subject and message/text. + + Receiver's email address. + Subject line of the email. + Message content of the email. + Payload encoding type. Choose dependent on your QR Code scanner app. + + + + Returns the email payload as a string. + + The email payload as a string. + + + + Defines the encoding types for the email payload. + + + + + Uses the "mailto:" URI scheme. + + + + + Uses the "MATMSG:" format. + + + + + Uses the "SMTP:" format. + + + + + Generates a MMS (Multimedia Messaging Service) payload for QR codes. + + + + + Creates a MMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates a MMS payload with text (subject). + + Receiver phone number. + Text of the MMS. + Encoding type. + + + + Returns the MMS payload as a string. + + The MMS payload as a string. + + + + Defines the encoding types for the MMS payload. + + + + + Uses the "mms:" URI scheme. + + + + + Uses the "mmsto:" URI scheme. + + + + + Generates a Monero transaction payload for QR codes. + + + + + Creates a Monero transaction payload. + + Receiver's Monero address. + Amount to transfer. + Payment ID. + Recipient's name. + Reference text / payment description. + Thrown when the address is null or empty, or when the txAmount is less than or equal to 0. + + + + Returns the Monero transaction payload as a URI string. + + The Monero transaction payload as a URI string. + + + + Exception class for Monero transaction errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for One Time Password (OTP) used in applications like Google Authenticator. + + + + + The type of OTP (TOTP or HOTP). + + + + + The secret key used for OTP generation. + + + + + The hashing algorithm used for OTP (SHA1, SHA256, SHA512). + + + + + Obsolete. Use instead. + + + + + The issuer of the OTP (usually the service or company name). + + + + + The label for the OTP (usually the user's email or username). + + + + + The number of digits in the OTP (default is 6). + + + + + The counter value for HOTP (only used if Type is HOTP). + + + + + The period in seconds for TOTP (default is 30). + + + + + Enum for OTP types. + + + + + Time-based One-Time Password (TOTP) + + + + + HMAC-based One-Time Password (HOTP) + + + + + Enum for hashing algorithms used in OTP. + + + + + SHA-1 hashing algorithm + + + + + SHA-256 hashing algorithm + + + + + SHA-512 hashing algorithm + + + + + Obsolete. Use instead. + + + + + SHA-1 hashing algorithm (Obsolete) + + + + + SHA-256 hashing algorithm (Obsolete) + + + + + SHA-512 hashing algorithm (Obsolete) + + + + + Returns the OTP payload as a string. + + The OTP payload as a string. + + + + Returns the HOTP payload as a string. + + The HOTP payload as a string. + + + + Returns the TOTP payload as a string. + + The TOTP payload as a string. + + + + Processes the common fields for both TOTP and HOTP. + + StringBuilder to append the common fields. + + + + Represents the base class for all QR code payloads. + + + + + Gets the version of the QR code payload. + + + + + Gets the error correction level of the QR code payload. + + + + + Gets the ECI mode of the QR code payload. + + + + + Returns a string representation of the QR code payload. + + A string representation of the QR code payload. + + + + Generates a phone call payload. + + + + + Initializes a new instance of the class. + + Phone number of the receiver. + + + + Returns the phone call payload as a string. + + The phone call payload as a string. + + + + Generates a payload for a Russian payment order. + + + + + Initializes a new instance of the class. + + Name of the payee (Наименование получателя платежа) + Beneficiary account number (Номер счета получателя платежа) + Name of the beneficiary's bank (Наименование банка получателя платежа) + BIC (БИК) + Box number / account payee's bank (Номер кор./сч. банка получателя платежа) + An (optional) object of additional fields + Type of encoding (default UTF-8) + + + + Returns the payload as a string. + + ⚠ Attention: If CharacterSets was set to windows-1251 or koi8-r you should use ToBytes() instead of ToString() and pass the bytes to CreateQrCode()! + The payload as a string. + + + + Returns the payload as a byte array. + + Should be used if CharacterSets equals windows-1251 or koi8-r. + The payload as a byte array. + + + + Determines a valid separator + + + + + + Takes all optional fields that are not null and returns their string represantion + + A List of strings + + + + Takes all mandatory fields that are not null and returns their string represantion + + A List of strings + + + + Validates a string against a given Regex pattern. Returns input if it matches the Regex expression (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + A regex pattern to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Validates a string against one or more given Regex patterns. Returns input if it matches all regex expressions (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + An array of regex patterns to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Represents optional fields for the RussiaPaymentOrder. + + + + + Payment amount, in kopecks (FTI’s Amount.) + Сумма платежа, в копейках + + + + + Payment name (purpose) + Наименование платежа (назначение) + + + + + Payee's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН получателя платежа + + + + + Payer's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН плательщика + + + + + Status compiler payment document + Статус составителя платежного документа + + + + + KPP of the payee (Tax Registration Code; Text, up to 9 characters.) + КПП получателя платежа + + + + + CBC + КБК + + + + + All-Russian classifier territories of municipal formations + Общероссийский классификатор территорий муниципальных образований + + + + + Basis of tax payment + Основание налогового платежа + + + + + Taxable period + Налоговый период + + + + + Document number + Номер документа + + + + + Document date + Дата документа + + + + + Payment type + Тип платежа + + + + + Payer's surname + Фамилия плательщика + + + + + Payer's name + Имя плательщика + + + + + Payer's patronymic + Отчество плательщика + + + + + Payer's address + Адрес плательщика + + + + + Personal account of a budget recipient + Лицевой счет бюджетного получателя + + + + + Payment document index + Индекс платежного документа + + + + + Personal account number in the personalized accounting system in the Pension Fund of the Russian Federation - SNILS + № лицевого счета в системе персонифицированного учета в ПФР - СНИЛС + + + + + Number of contract + Номер договора + + + + + Personal account number of the payer in the organization (in the accounting system of the PU) + Номер лицевого счета плательщика в организации (в системе учета ПУ) + + + + + Apartment number + Номер квартиры + + + + + Phone number + Номер телефона + + + + + DUL payer type + Вид ДУЛ плательщика + + + + + DUL number of the payer + Номер ДУЛ плательщика + + + + + FULL NAME. child / student + Ф.И.О. ребенка/учащегося + + + + + Date of birth + Дата рождения + + + + + Due date / Invoice date + Срок платежа/дата выставления счета + + + + + Payment period + Период оплаты + + + + + Payment type + Вид платежа + + + + + Service code / meter name + Код услуги/название прибора учета + + + + + Metering device number + Номер прибора учета + + + + + Meter reading + Показание прибора учета + + + + + Notification, accrual, account number + Номер извещения, начисления, счета + + + + + Date of notification / accrual / invoice / resolution (for traffic police) + Дата извещения/начисления/счета/постановления (для ГИБДД) + + + + + Institution number (educational, medical) + Номер учреждения (образовательного, медицинского) + + + + + Kindergarten / school class number + Номер группы детсада/класса школы + + + + + Full name of the teacher, specialist providing the service + ФИО преподавателя, специалиста, оказывающего услугу + + + + + Insurance / additional service amount / Penalty amount (in kopecks) + Сумма страховки/дополнительной услуги/Сумма пени (в копейках) + + + + + Resolution number (for traffic police) + Номер постановления (для ГИБДД) + + + + + Enforcement Proceedings Number + Номер исполнительного производства + + + + + Type of payment code (for example, for payments to Rosreestr) + Код вида платежа (например, для платежей в адрес Росреестра) + + + + + Unique accrual identifier + Уникальный идентификатор начисления + + + + + The technical code recommended by the service provider. Maybe used by the receiving organization to call the appropriate processing IT system. + Технический код, рекомендуемый для заполнения поставщиком услуг. Может использоваться принимающей организацией для вызова соответствующей обрабатывающей ИТ-системы. + + + + + (List of values of the technical code of the payment) + Перечень значений технического кода платежа + + + + + Mobile and landline telephone services + Мобильная связь и стационарный телефон + + + + + Utility services (Housing and Communal Services) + Коммунальные услуги (ЖКХ) + + + + + Traffic police, taxes, duties, and budget payments + ГИБДД, налоги, пошлины, бюджетные платежи + + + + + Security services + Охранные услуги + + + + + Services provided by the Federal Migration Service + Услуги, оказываемые УФМС + + + + + Pension Fund of the Russian Federation + Пенсионный фонд России (ПФР) + + + + + Loan repayment + Погашение кредитов + + + + + Educational institutions + Образовательные учреждения + + + + + Internet and TV services + Интернет и телевидение + + + + + Electronic money + Электронные деньги + + + + + Recreation and travel + Отдых и путешествия + + + + + Investments and insurance + Инвестиции и страхование + + + + + Sports and health + Спорт и здоровье + + + + + Charitable and public organizations + Благотворительные и общественные организации + + + + + Other services + Прочие услуги + + + + + Specifies character sets for encoding the RussiaPaymentOrder payload. + + + + + Windows-1251 encoding. + + + + + UTF-8 encoding. + + + + + KOI8-R encoding. + + + + + Represents errors that occur during the generation of a RussiaPaymentOrder payload. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + Generates a ShadowSocks proxy config payload. + + + + + Generates a ShadowSocks proxy config payload. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Optional tag line + + + + Generates a ShadowSocks proxy config payload with plugin options. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Plugin name + Plugin option + Optional tag line + + + + Generates a ShadowSocks proxy config payload with additional parameters. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Additional parameters + Optional tag line + + + + Converts the ShadowSocks config payload to a string. + + A string representation of the ShadowSocks config payload. + + + + Specifies the encryption methods used by ShadowSocks. + + + + + ChaCha20-IETF with Poly1305 AEAD encryption method + + + + + AES-128 Galois/Counter Mode (GCM) encryption method + + + + + AES-192 Galois/Counter Mode (GCM) encryption method + + + + + AES-256 Galois/Counter Mode (GCM) encryption method + + + + + Extended ChaCha20-IETF with Poly1305 AEAD encryption method (non-standard) + + + + + AES-128 Cipher Feedback (CFB) stream cipher + + + + + AES-192 Cipher Feedback (CFB) stream cipher + + + + + AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Counter (CTR) stream cipher + + + + + AES-192 Counter (CTR) stream cipher + + + + + AES-256 Counter (CTR) stream cipher + + + + + Camellia-128 Cipher Feedback (CFB) stream cipher + + + + + Camellia-192 Cipher Feedback (CFB) stream cipher + + + + + Camellia-256 Cipher Feedback (CFB) stream cipher + + + + + ChaCha20-IETF stream cipher + + + + + Alias for AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-192 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-256 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-128 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-192 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-256 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-128 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-192 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-256 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + ChaCha20 stream cipher (deprecated) + + + + + Blowfish Cipher Feedback (CFB) stream cipher (deprecated) + + + + + RC4-MD5 stream cipher (deprecated) + + + + + Salsa20 stream cipher (deprecated) + + + + + DES Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + IDEA Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + RC2 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + CAST5 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Salsa20 Counter (CTR) stream cipher (not standard, not in active use) + + + + + RC4 stream cipher (not standard, not in active use) + + + + + SEED Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Table-based encryption method (not standard, not in active use) + + + + + Represents errors that occur during the generation of a ShadowSocksConfig payload. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a Skype call payload + + + + + Initializes a new instance of the class. + + Skype username which will be called + + + + Converts the Skype call payload to a string. + + A string representation of the Skype call payload. + + + + Generates a Slovenian UPN QR payment payload. + + + + + Gets the version of the QR code, which is 15 for Slovenian UPN QR. + + + + + Gets the error correction level of the QR code, which is M for Slovenian UPN QR. + + + + + Gets the ECI mode of the QR code, which is Iso8859_2 for Slovenian UPN QR. + + + + + Limits the length of a string to a specified maximum length. + + The string to limit. + The maximum length of the string. + The limited string. + + + + Initializes a new instance of the class. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Initializes a new instance of the class with a deadline. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The deadline for the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Formats the amount as a string with leading zeros. + + The amount to format. + The formatted amount string. + + + + Calculates the checksum of the payment data. + + The checksum of the payment data. + + + + Returns the Slovenian UPN QR payment data as a string. + + The Slovenian UPN QR payment data as a string. + + + + Generates an SMS payload. + + + + + Creates an SMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates an SMS payload with text (subject). + + Receiver phone number. + Text of the SMS. + Encoding type. + + + + Returns the SMS payload as a string. + + The SMS payload as a string. + + + + Specifies the encoding type for the SMS payload. + + + + + Standard SMS encoding. + + + + + SMSTO encoding. + + + + + SMS encoding for iOS. + + + + + Generates the payload for a SwissQrCode. + + + + + + + + + + + Generates the payload for a SwissQrCode v2.0. (Don't forget to use ECC-Level=M, EncodingMode=UTF-8 and to set the Swiss flag icon to the final QR code.) + + IBAN object + Currency (either EUR or CHF) + Creditor (payee) information + Reference information + Additional information for the QR code + Debitor (payer) information + Amount + Requested date of debitor's payment + Ultimate creditor information (use only in consultation with your bank - for future use only!) + Optional command for alternative processing mode - line 1 + Optional command for alternative processing mode - line 2 + + + + Represents additional information for the SwissQrCode. + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Gets the unstructured message. + + + + + Gets the bill information. + + + + + Gets the trailer. + + + + + Represents exceptions specific to SwissQrCode additional information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents reference information for the SwissQrCode. + + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Gets the reference type. + + + + + Gets the reference text. + + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR". + + + + + QR Reference + + + + + Creditor Reference + + + + + No Reference + + + + + Represents the text type for the reference. + + + + + QR Reference Text + + + + + Creditor Reference ISO 11649 + + + + + Represents exceptions specific to SwissQrCode references. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents an IBAN with type information. + + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Gets a value indicating whether this is a QR-IBAN. + + + + + Converts the IBAN object to its string representation. + + A string representation of the IBAN. + + + + Represents the type of IBAN. + + + + + Regular IBAN + + + + + QR-IBAN + + + + + Represents exceptions specific to SwissQrCode IBANs. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents contact information. + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + Creates a contact with structured address. + + + + + Creates a contact with combined address. + + + + + Returns a string that represents the contact information in the format required for Swiss QR codes. + + A string representing the contact information. + + + + Defines the type of address. + + + + + Structured Address + + + + + Combined Address + + + + + Represents errors that occur during the creation of a Swiss QR code contact. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Returns a string that represents the entire Swiss QR code payload. + + A string representing the Swiss QR code payload. + + + + ISO 4217 currency codes. + + + + + Swiss Franc + + + + + Euro + + + + + Represents errors that occur during Swiss QR Code generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a URL payload for QR codes. + + + + + Initializes a new instance of the class. + + The target URL. If the protocol is not specified, the http protocol will be added. + + + + Returns the URL payload as a string. + + The URL payload as a string, ensuring it starts with "http://" if no protocol is specified. + + + + Generates a WhatsApp message payload for QR codes. + + + + + Initializes a new instance of the class with a receiver number and message. + + + Receiver phone number in full international format. + Omit any zeroes, brackets, or dashes. Use format: 1XXXXXXXXXX. Don't use: +001-(XXX)XXXXXXX. + + The message to be sent. + + + + Initializes a new instance of the class with a message only. + When scanned, the user is asked to choose a contact to receive the message. + + The message to be sent. + + + + Returns the WhatsApp message payload as a string. + + The WhatsApp message URL as a string. + + + + Generates a WiFi payload. Scanned by a QR Code scanner app, the device will connect to the WiFi. + + + + + Initializes a new instance of the class. + + SSID of the WiFi network + Password of the WiFi network + Authentication mode (WEP, WPA, WPA2) + Set flag if the WiFi network hides its SSID + Set flag if ssid/password is delivered as HEX string. Note: May not be supported on iOS devices. + + + + Returns the WiFi payload as a string. + + + + + Specifies the authentication mode for the WiFi network. + + + + + WEP authentication mode + + + + + WPA authentication mode + + + + + No password authentication mode + + + + + WPA2 authentication mode + + + + + Represents a QR code generator that outputs QR codes as PDF byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a PDF document with a black and white QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF document with specified colors and DPI. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The DPI (dots per inch) of the PDF document. + The JPEG quality parameter (obsolete, no longer used). + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF path with rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + PDF path commands as a string. + + + + Converts RGB byte array to PDF color space values (0.0 to 1.0). + + RGB color as byte array. + PDF color string (three decimal values). + + + + Converts an integer to a string using invariant culture for consistent PDF formatting. + + The integer value to convert. + String representation of the integer. + + + + Converts a float to a string using invariant culture for consistent PDF formatting. + + The float value to convert. + String representation of the float. + + + + Provides static methods for creating PDF byte array QR codes. + + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Represents a QR code generator that outputs QR codes as PNG byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PNG of the QR code, using 1-bit grayscale. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Colors may contain transparency. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Accepts 3-byte RGB colors for normal images and 4-byte RGBA-colors for transparent images. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a bitmap where each pixel is represented by a single bit, dark = 0 and light = 1. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the bitmap as a byte array. + + + + Writes the chunks that make up a PNG file. + + + See https://www.w3.org/TR/2003/REC-PNG-20031110 and https://www.ietf.org/rfc/rfc1950.txt. + + + + + Writes the IHDR chunk. This must be the first chunk in the file. + + + + + Writes the PLTE chunk, and also the tRNS chunk if necessary. Must come before the IDAT chunk. + + + + + Writes the IDAT chunk with the actual picture. + + + + + Writes the IEND chunk. This must be the last chunk in the file. + + + + + Provides static methods for creating PNG byte array QR codes. + + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Represents a QR code generator that outputs QR codes as PostScript code. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a black and white PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Cleans double values for international use/formats. + + The input double value. + Returns the cleaned string representation of the double value, with a maximum of 7 significant digits. + + + + Provides static methods for creating PostScript QR codes. + + + + + Creates a PostScript QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Represents a QR code generator that outputs QR codes as bitmap images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code with an optional icon in the center. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The background color of the icon. + Returns the QR code graphic as a bitmap. + + + + Creates a GraphicsPath containing rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + The number of pixels per module. + The offset to apply for quiet zones. + Whether quiet zones are being drawn. + A GraphicsPath containing all dark module rectangles. + + + + Creates a rounded rectangle path for drawing. + + The rectangle for which to create the rounded path. + The radius of the corners. + Returns the rounded rectangle path. + + + + Provides static methods for creating bitmap QR codes. + + + + + Creates a bitmap QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Represents the data structure of a QR code. + + + + + Gets or sets the module matrix of the QR code. + + + + + Initializes a new instance of the class with the specified version. + + The version of the QR code. + + + + Initializes a new instance of the class with the specified version and padding option. + + The version of the QR code. + Indicates whether padding should be added to the QR code. + + + + Initializes a new instance of the class with raw data from a specified path and compression mode. + + The path to the raw data file. + The compression mode used for the raw data. + + + + Initializes a new instance of the class with raw data and compression mode. + + The raw data of the QR code. + The compression mode used for the raw data. + + + + Gets the raw data of the QR code with the specified compression mode. + + The compression mode used for the raw data. + Returns the raw data of the QR code as a byte array. + + + + Saves the raw data of the QR code to a specified file with the specified compression mode. + + The path to the file where the raw data will be saved. + The compression mode used for the raw data. + + + + Gets the version of the QR code. + + + + + Gets the number of modules per side from the specified version. + + The version of the QR code (1 to 40, or -1 to -4 for Micro QR codes). + Returns the number of modules per side. + + + + Releases all resources used by the . + + + + + Specifies the compression mode used for the raw data. + + + + + No compression. + + + + + Deflate compression. + + + + + GZip compression. + + + + + Provides functionality to generate QR code data that can be used to create QR code images. + + + + + Initializes the QR code generator + + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the Micro QR code data which then can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Set fixed Micro QR code target version; must be -1 to -4 representing M1 to M4, or 0 for default. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Validates the specified error correction level. + Returns the provided level if it is valid, or the level M if the provided level is Default. + Throws an exception if an invalid level is provided. + + + + + Generates a QR code data structure using the provided BitArray, error correction level, and version. + The BitArray provided is assumed to already include the count, encoding mode, and/or ECI mode information. + + The BitArray containing the binary-encoded data to be included in the QR code. It should already contain the count, encoding mode, and/or ECI mode information. + The desired error correction level for the QR code. This impacts how much data can be recovered if damaged. + The version of the QR code, determining the size and complexity of the QR code data matrix. + A QRCodeData structure containing the full QR code matrix, which can be used for rendering or analysis. + + + + Generates a BitArray containing the format string for a QR code based on the error correction level and mask pattern version. + The format string includes the error correction level, mask pattern version, and error correction coding. + + The to write to, or null to create a new one. + The version number of the QR Code (1-40, or -1 to -4 for Micro QR codes). + The error correction level to be encoded in the format string. + The mask pattern version to be encoded in the format string. + A BitArray containing the 15-bit format string used in QR code generation. + + + + Encodes the version information of a QR code into a BitArray using error correction coding similar to format information encoding. + This method is used for QR codes version 7 and above. + + A to write the version string to. + The version number of the QR code (7-40). + A BitArray containing the encoded version information, which includes error correction bits. + + + + Calculates the Error Correction Codewords (ECC) for a segment of data using the provided ECC information. + This method applies polynomial division, using the message polynomial and a generator polynomial, + to compute the remainder which forms the ECC codewords. + + + + + Converts all polynomial item coefficients from their alpha exponent notation to decimal representation in place. + This conversion facilitates operations that require polynomial coefficients in their integer forms. + + + + + Determines the most efficient encoding mode for the given plain text based on its character content + and a flag indicating whether to force UTF-8 encoding. + + + + + Checks if a character falls within a specified range. + + + + + Converts a segment of a BitArray representing QR code data into a polynomial, + padding the final byte if necessary (for Micro QR variants like M1 or M3). + + The full bit array representing encoded QR code data. + Starting position in the bit array. + Total number of bits to convert into codewords. + A polynomial representing the message codewords. + + + + Calculates the generator polynomial used for creating error correction codewords. + + The number of error correction codewords to generate. + A polynomial that can be used to generate ECC codewords. + + + + Converts a segment of a BitArray into its decimal (integer) equivalent. + + The integer value that represents the specified binary data. + + + + Converts a decimal number to binary and stores the result in a BitArray starting from a specific index. + + The decimal number to convert to binary. + The number of bits to use for the binary representation (ensuring fixed-width like 8, 16, 32 bits). + The BitArray where the binary bits will be stored. + The starting index in the BitArray where the bits will be stored. + The next index in the BitArray after the last bit placed. + + + + Determines the number of bits used to indicate the count of characters in a segment, depending on the QR code version and the encoding mode. + + The version of the QR code, which influences the number of bits due to increasing data capacity. + The encoding mode (e.g., Numeric, Alphanumeric, Byte) used for the data segment. + The number of bits needed to represent the character count in the specified encoding mode and version. + + + + Calculates the data length based on the encoding mode, text content, and whether UTF-8 is forced. + + The encoding mode used for the QR code data. + The plain text input to be encoded. + A BitArray representing the binary data of the encoded text. + Flag to determine if UTF-8 encoding should be enforced. + The length of data in units appropriate to the encoding (bytes or characters). + + + + Checks if the given string can be accurately represented and retrieved in ISO-8859-1 encoding. + + + + + Converts plain text to a binary format suitable for QR code generation, based on the specified encoding mode. + + The text to be encoded. + The encoding mode. + The ECI mode specifying the character encoding to use. + Flag indicating whether to prepend a UTF-8 Byte Order Mark. + Flag indicating whether UTF-8 encoding is forced. + A BitArray containing the binary representation of the encoded data. + + + + Converts numeric plain text into a binary format specifically optimized for QR codes. + Numeric compression groups up to 3 digits into 10 bits, less for remaining digits if they do not complete a group of three. + + The numeric text to be encoded, which should only contain digit characters. + A BitArray representing the binary data of the encoded numeric text. + + + + Converts plain text into a binary format using byte mode encoding, which supports various character encodings through ECI (Extended Channel Interpretations). + + The text to be encoded. + The ECI mode that specifies the character encoding to use. + Specifies whether to include a Byte Order Mark (BOM) for UTF-8 encoding. + Forces UTF-8 encoding regardless of the text content's compatibility with ISO-8859-1. + A BitArray representing the binary data of the encoded text. + + The returned text is always encoded as ISO-8859-1 unless either the text contains a non-ISO-8859-1 character or + UTF-8 encoding is forced. This does not meet the QR Code standard, which requires the use of ECI to specify the encoding + when not ISO-8859-1. + + + + + Converts an array of bytes into a BitArray, considering the proper bit order within each byte. + Unlike the constructor of BitArray, this function preserves the MSB-to-LSB order within each byte. + + The byte array to convert into a BitArray. + The number of leading zeros to prepend to the resulting BitArray. + A BitArray representing the bits of the input byteArray, with optional leading zeros. + + + + Performs a bitwise XOR operation between two polynomials, commonly used in QR code error correction coding. + + The resultant polynomial after performing the XOR operation. + + + + Multiplies a generator polynomial by a leading term polynomial, reducing the result by a specified lower exponent, + used in constructing QR code error correction codewords. + + + + + Multiplies two polynomials, treating coefficients as exponents of a primitive element (alpha), which is common in error correction algorithms such as Reed-Solomon. + + The first polynomial to multiply. + The second polynomial to multiply. + A new polynomial which is the result of the multiplication of the two input polynomials. + + + + + + + Represents the alignment pattern used in QR codes, which helps ensure the code remains readable even if it is somewhat distorted. + Each QR code version has its own specific alignment pattern locations which this struct encapsulates. + + + + + The version of the QR code. Higher versions have more complex and numerous alignment patterns. + + + + + A list of points where alignment patterns are located within the QR code matrix. + Each point represents the center of an alignment pattern. + + + + + This class contains the alignment patterns used in QR codes. + + + + + A lookup table mapping QR code versions to their corresponding alignment patterns. + + + + + Retrieves the alignment pattern for a specific QR code version. + + + + + Creates a lookup table mapping QR code versions to their corresponding alignment patterns. + Alignment patterns are used in QR codes to help scanners accurately read the code at high speeds and when partially obscured. + This table provides the necessary patterns based on the QR code version which dictates the size and complexity of the QR code. + + A dictionary where keys are QR code version numbers and values are AlignmentPattern structures detailing the positions of alignment patterns for each version. + + + + Encodes alphanumeric characters (0–9, A–Z (uppercase), space, $, %, *, +, -, period, /, colon) into a binary format suitable for QR codes. + + + + + A dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + + + + Creates a dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + A dictionary mapping each supported alphanumeric character to its corresponding value. + + + + Checks if a character is present in the alphanumeric encoding table. + + + + + Converts alphanumeric plain text into a binary format optimized for QR codes. + Alphanumeric encoding packs characters into 11-bit groups for each pair of characters, + and 6 bits for a single remaining character if the total count is odd. + + The alphanumeric text to be encoded, which should only contain characters valid in QR alphanumeric mode. + A BitArray representing the binary data of the encoded alphanumeric text. + + + + Provides QR code capacity and error correction data for each version and encoding mode. + Used to determine how much data can be stored in a QR code and which version is required. + + + + + A list containing detailed capacity information for each version of QR codes. + The index in the capacity table corresponds to one less than the version number. + + + + + A table containing the error correction capacities and data codeword information for different combinations of QR code versions and error correction levels. + + + + + Retrieves the error correction information for a specific QR code version and error correction level. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + The desired error correction level (L, M, Q, or H). Do not supply . + + An object containing the total number of data codewords, ECC per block, + block group details, and other parameters required for encoding error correction data. + + + + + Retrieves the capacity information for a specific QR code version. + The returned structure contains detailed data capacity values for each error correction level (L, M, Q, H) + and encoding mode (Numeric, Alphanumeric, Byte, Kanji), indicating the maximum number of characters + that can be stored in a QR code of the specified version under each configuration. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + A object containing data capacity details for all error correction levels + and encoding modes for the specified version. + + + + + Retrieves the number of remainder bits required for a specific QR code version. + Remainder bits are added to the final bit stream to ensure proper alignment with byte boundaries, + as required by the QR code specification. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + The number of remainder bits (0 to 7) that must be appended to the encoded bit stream. + + + + + Determines the minimum QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Low, Medium, Quartile, High). + The minimum version of the QR code that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Determines the minimum Micro QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Default, Low, Medium, Quartile, High). + The minimum version of the QR code (-1 to -4) that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Generates a table containing the error correction capacities and data codeword information for different QR code versions and error correction levels. + This table is essential for determining how much data can be encoded in a QR code of a specific version and ECC level, + as well as how robust the QR code will be against distortions or obstructions. + + A list of ECCInfo structures, each representing the ECC data and capacities for different combinations of QR code versions and ECC levels. + + + + Generates a list containing detailed capacity information for various versions of QR codes. + This table includes capacities for different encoding modes (numeric, alphanumeric, byte, etc.) under each error correction level. + The capacity table is crucial for QR code generation, as it determines how much data each QR code version can store depending on the encoding mode and error correction level used. + The index in the capacity table corresponds to one less than the version number. + + + + + + + + Represents a block of codewords in a QR code. QR codes are divided into several blocks for error correction purposes. + Each block contains a series of data codewords followed by error correction codewords. + + + + + Initializes a new instance of the CodewordBlock struct with specified arrays of code words and error correction (ECC) words. + + The offset of the data codewords within the main BitArray. Data codewords carry the actual information. + The length in bits of the data codewords within the main BitArray. + The array of error correction codewords for this block. These codewords help recover the data if the QR code is damaged. + + + + Gets the offset of the data codewords in the BitArray. + + + + + Gets the length of the data codewords in the BitArray. + + + + + Gets the error correction codewords associated with this block. + + + + + Represents the error correction coding (ECC) information for a specific version and error correction level of a QR code. + + + + + Initializes a new instance of the ECCInfo struct with specified properties. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The number of error correction codewords per block. + The number of blocks in group 1. + The number of codewords in each block of group 1. + The number of blocks in group 2, if any. + The number of codewords in each block of group 2, if any. + + + + Initializes a new instance of the ECCInfo struct with specified properties for Micro QR codes. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The total number of data bits for this version and error correction level. + The number of error correction codewords per block. + + + + Gets the version number of the QR code. + + + + + Gets the error correction level of the QR code. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the number of error correction codewords per block. + + + + + Gets the number of blocks in group 1. + + + + + Gets the number of codewords in each block of group 1. + + + + + Gets the number of blocks in group 2, if any. + + + + + Gets the number of codewords in each block of group 2, if any. + + + + + Defines the levels of error correction available in QR codes. + Each level specifies the proportion of data that can be recovered if the QR code is partially obscured or damaged. + + + + + Default error correction level, which will select Level M (Medium) unless otherwise specified by the payload. + Level M allows approximately 15% of data to be recovered, offering a balance between data capacity and error recovery. + + + + + Level L: Low error correction (approximately 7% of data can be recovered). + This level allows the highest data density. + + + + + Level M: Medium error correction (approximately 15% of data can be recovered). + Offers a balance between data capacity and error recovery. + + + + + Level Q: Quartile error correction (approximately 25% of data can be recovered). + More robust error correction at the cost of reduced data capacity. + + + + + Level H: High error correction (approximately 30% of data can be recovered). + Provides the highest level of error recovery, ideal for environments with high risk of data loss. + + + + + Enumerates the Extended Channel Interpretation (ECI) modes used in QR codes to handle different character encoding standards. + ECI mode allows QR codes to efficiently encode data using character sets other than the default ISO-8859-1. + + + + + Default encoding mode (typically ISO-8859-1). Used when no ECI mode is explicitly specified. + This mode is assumed in basic QR codes where no extended character sets are needed. + + + + + Specifies the use of the ISO-8859-1 character set, covering most Western European languages. + This mode explicitly sets the encoding to ISO-8859-1, which includes characters used in languages such as English, French, German, and Spanish. + + + + + Specifies the use of the ISO-8859-2 character set, which is primarily used for Central and Eastern European languages. + This includes characters used in languages such as Polish, Czech, Slovak, Hungarian, and Romanian. + + + + + Specifies the use of UTF-8 encoding. + UTF-8 can encode any Unicode character and is useful for QR codes that need to support multi-language content. + + + + + Specifies the encoding modes for the characters in a QR code. + + + + + Numeric encoding mode, which is used to encode numeric data (digits 0-9). + Three characters are encoded into 10 bits. + + + + + Alphanumeric encoding mode, which is used to encode alphanumeric characters (0-9, A-Z, space, and some punctuation). + Two characters are encoded into 11 bits. + + + + + Byte encoding mode, primarily using the ISO-8859-1 character set. Each character is encoded into 8 bits. + When combined with ECI, it can be adapted to use other character sets. + + + + + Kanji encoding mode, which is used to encode characters from the Shift JIS character set, primarily for Japanese Kanji and Kana characters. + One character is encoded into 13 bits. This mode is not currently supported by QRCoder. + + + + + Extended Channel Interpretation (ECI) mode, which specifies a character set via an 8-bit number followed by one of the other encoding modes. + This allows adapting the byte encoding to accommodate various global text encodings. + + + + + Represents a Galois field of 256 elements (GF(256)) used in finite field arithmetic, + typically for error correction algorithms such as Reed-Solomon. + + Provides mappings between exponential and integer representations of field elements + using a primitive element (α). The field is constructed with respect to a generator + polynomial and used for efficient encoding and decoding operations. + + + + + + Retrieves the integer value from the Galois field that corresponds to a given exponent. + This is used in Reed-Solomon and other error correction calculations involving Galois fields. + + + + + Retrieves the exponent from the Galois field that corresponds to a given integer value. + Throws an exception if the integer value is zero, as zero does not have a logarithmic representation in the field. + + + + + Normalizes a Galois field exponent to ensure it remains within the bounds of the field's size. + This is particularly necessary when performing multiplications in the field which can result in exponents exceeding the field's maximum. + + + + + Struct that represents blocked modules using rectangles. + + + + + Initializes a new instance of the struct with a specified size. + + The size of the blocked modules matrix. + + + + Adds a blocked module at the specified coordinates. + + The x-coordinate of the module. + The y-coordinate of the module. + + + + Adds a blocked module defined by the specified rectangle. + + The rectangle that defines the blocked module. + + + + Checks if the specified coordinates are blocked. + + The x-coordinate to check. + The y-coordinate to check. + true if the coordinates are blocked; otherwise, false. + + + + Checks if the specified rectangle is blocked. + + The rectangle to check. + true if the rectangle is blocked; otherwise, false. + + + + Places the version information on the QR code matrix for versions 7 and higher. Version information + is encoded into two small rectangular areas near the bottom left and top right corners outside the timing patterns. + + The QR code data structure to modify. + The bit array containing the version information. + Indicates whether an offset should be applied to the version information placement. + + + + Places the format information on the QR code, encoding the error correction level and mask pattern used. + + The QR code data structure to modify. + The bit array containing the format information. + Specifies whether an offset should be applied. + + + + Applies the most effective mask pattern to the QR code based on minimizing the penalty score, + which evaluates how well the pattern will work for QR scanners. + + The QR code data structure where the mask will be applied. + The version of the QR code, which determines the size and complexity. + List of rectangles representing areas that must not be overwritten. + The error correction level of the QR code, which affects format string values. + The index of the selected mask pattern. + + + + Places data bits into the QR code's module matrix following a specific pattern that navigates around blocked modules. + + The QR code data structure where the data bits are to be placed. + The data bits to be placed within the QR code matrix. + A list of rectangles representing areas within the QR code matrix that should not be modified because they contain other necessary information like format and version info. + + + + Reserves separator areas around the positioning patterns of a QR code to ensure that these crucial areas remain unmodified during data placement. + + The version of the QR code, which determines the number of finder patterns. + The size of the QR code matrix. + A list of rectangles representing areas that must not be overwritten. + + + + Reserves areas for version information on QR codes that are version 7 or higher. Also reserves space for format information. + + The size of the QR code matrix. + The version number of the QR code, which determines the placement of version information. + A list of rectangles representing areas that must not be overwritten. + + + + Places a dark module on the QR code matrix as per QR code specification, which requires a dark module at a specific position for all QR codes. + + The QR code data structure where the dark module is to be placed. + The version number of the QR code, which determines the specific location of the dark module. + A list of rectangles representing areas that must not be overwritten, updated to include the dark module. + + + + Places finder patterns on the QR code. Finder patterns are critical for QR code scanners to correctly orient and recognize the QR code. + + The QR code data structure where the finder patterns will be placed. + A list of rectangles representing areas that must not be overwritten. This is updated with the areas occupied by the finder patterns. + + + + Places alignment patterns on the QR code matrix. Alignment patterns help ensure the scanner can correctly interpret the QR code at various scales and orientations. + + The QR code data structure where the alignment patterns will be placed. + A list of points representing the centers of where alignment patterns should be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by alignment patterns. + + + + Places timing patterns in the QR code. Timing patterns are alternating dark and light modules that help scanners determine the coordinates of modules within the QR code. + + The QR code data structure where the timing patterns will be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by timing patterns. + + + + Provides static methods and properties to handle mask patterns used in QR code generation. + Mask patterns are applied to QR codes to break up patterns in the data matrix that might confuse scanners. + + + + + A dictionary mapping each mask pattern index to its corresponding function that calculates whether a given pixel should be masked. + + + + + Mask pattern 1: (x + y) % 2 == 0 + Applies a checkerboard mask on the QR code. + + + + + Mask pattern 2: y % 2 == 0 + Applies a horizontal striping mask on the QR code. + + + + + Mask pattern 3: x % 3 == 0 + Applies a vertical striping mask on the QR code. + + + + + Mask pattern 4: (x + y) % 3 == 0 + Applies a diagonal striping mask on the QR code. + + + + + Mask pattern 5: ((y / 2) + (x / 3)) % 2 == 0 + Applies a complex pattern mask on the QR code, mixing horizontal and vertical rules. + + + + + Mask pattern 6: ((x * y) % 2 + (x * y) % 3) == 0 + Applies a mask based on the product of x and y coordinates modulo 2 and 3. + + + + + Mask pattern 7: (((x * y) % 2 + (x * y) % 3) % 2) == 0 + Applies a mask based on a more complex function involving the product of x and y coordinates. + + + + + Mask pattern 8: (((x + y) % 2) + ((x * y) % 3) % 2) == 0 + Combines rules of checkers and complex multiplicative masks. + + + + + Calculates a penalty score for a Micro QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Calculates a penalty score for a QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + The score is the sum of four penalty rules applied to the QR code. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Represents a 2D point with integer coordinates. + + + + + Gets the X-coordinate of the point. + + + + + Gets the Y-coordinate of the point. + + + + + Initializes a new instance of the struct with specified X and Y coordinates. + + The X-coordinate of the point. + The Y-coordinate of the point. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + True if the specified has the same X and Y coordinates as the current ; otherwise, false. + + If this method which implements is not implemented, comparisons used by methods such as + fall back to reflection, which causes heap allocations internally during the calls to . + + + + + + + + + + + Represents a polynomial, which is a sum of polynomial terms. + + + + + Initializes a new instance of the struct with a specified number of initial capacity for polynomial terms. + + The initial capacity of the polynomial items list. + + + + Adds a polynomial term to the polynomial. + + + + + Removes the polynomial term at the specified index. + + + + + Gets or sets a polynomial term at the specified index. + + + + + Gets the number of polynomial terms in the polynomial. + + + + + Removes all polynomial terms from the polynomial. + + + + + Clones the polynomial, creating a new instance with the same polynomial terms. + + + + + Sorts the collection of using a custom comparer function. + + + A function that compares two objects and returns an integer indicating their relative order: + less than zero if the first is less than the second, zero if they are equal, or greater than zero if the first is greater than the second. + + + + + Returns a string that represents the polynomial in standard algebraic notation. + Example output: "a^2*x^3 + a^5*x^1 + a^3*x^0", which represents the polynomial 2x³ + 5x + 3. + + + + + + + + Ensures that the polynomial has enough capacity to store the specified number of polynomial terms. + + + + + Rents memory for the polynomial terms from a shared memory pool. + + + + + Returns memory allocated for the polynomial terms back to a shared memory pool. + + + + + Returns an enumerator that iterates through the polynomial terms. + + + + + Value type enumerator for the struct. + + + + + Represents an individual term of a polynomial, consisting of a coefficient and an exponent. + For example, the term 3x² would be represented as a with a coefficient of 3 and an exponent of 2. + + + + + Initializes a new instance of the struct with the specified coefficient and exponent. + + The coefficient of the polynomial term. For example, in the term 3x², the coefficient is 3. + The exponent of the polynomial term. For example, in the term 3x², the exponent is 2. + + + + Gets the coefficient of the polynomial term. + + + + + Gets the exponent of the polynomial term. + + + + + Represents a rectangle defined by its top-left corner's coordinates, width, and height. + + + + + Gets the X-coordinate of the top-left corner of the rectangle. + + + + + Gets the Y-coordinate of the top-left corner of the rectangle. + + + + + Gets the width of the rectangle. + + + + + Gets the height of the rectangle. + + + + + Initializes a new instance of the struct with the specified top-left corner coordinates, width, and height. + + The X-coordinate of the top-left corner of the rectangle. + The Y-coordinate of the top-left corner of the rectangle. + The width of the rectangle. + The height of the rectangle. + + + + Represents version-specific information of a QR code. + + + + + Initializes a new instance of the struct with a specific version number and its details. + + The version number of the QR code. Each version has a different module configuration. + A list of detailed information related to error correction levels and capacity for each encoding mode. + + + + Gets the version number of the QR code. Each version number specifies a different size of the QR matrix. + + + + + Gets a list of details about the QR code version, including the error correction levels and encoding capacities. + + + + + Represents the detailed information about each error correction level and its corresponding capacities in different encoding modes for a specific version of a QR code. + + + + + Initializes a new instance of the struct, detailing the error correction level and the capacity for each encoding mode. + + The error correction level, which determines how much of the code can be restored if the QR code gets damaged. + A dictionary mapping each encoding mode to its capacity for the specific error correction level. + + + + Gets the error correction level of the QR code, influencing how robust the QR code is against errors and damage. + + + + + Gets a dictionary that contains the capacities of different encoding modes under the specified error correction level. + These capacities dictate how many characters can be encoded under each mode. + + + + + Represents a QR code generator that outputs QR codes as SVG images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a scalable QR code as an SVG string. + + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string. + + The pixel size each dark/light module is drawn. + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors, optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors and optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Determines if a module at (x,y) is blocked by the logo area defined by attr. + + + + + Calculates the logo's position and size within the QR code based on the specified percentage size. + + + + + Gets the transparency value (0-255) from a color string. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + The alpha/transparency value from 0 (fully transparent) to 255 (fully opaque). Returns 255 for colors without alpha channel. + + + + Determines if a color string represents a partially transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is transparent; otherwise false. + + + + Determines if a color string represents a fully transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is fully transparent; otherwise false. + + + + Converts a Color to a hex string in #RGB, #RRGGBB or #RRGGBBAA format; or 'transparent' for fully transparent colors. + + The color to convert. + A hex string representation of the color. + + + + Mode of sizing attribute on SVG root node + + + + + Specifies width and height attributes for SVG sizing + + + + + Width and height are not included within the SVG tag; viewBox is scaled to fit the container + + + + + Represents a logo graphic that can be rendered on a SvgQRCode + + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as Bitmap/rasterized graphic + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as SVG/vectorized graphic/string + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + If true, the logo will embedded as native svg instead of embedding it as image-tag + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as PNG + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Returns the raw logo's data + + + + + Defines, if the logo shall be natively embedded. + true=native svg embedding, false=embedding via image-tag + + + + + Returns the media type of the logo + + + + + + Returns the logo as data-uri + + + + + Returns how much of the QR code should be covered by the logo (in percent) + + + + + Returns if the background of the logo should be cleaned (no QR modules will be rendered behind the logo) + + + + + Media types for SvgLogos + + + + + Portable Network Graphics (PNG) image format + + + + + Scalable Vector Graphics (SVG) image format + + + + + Provides static methods for creating SVG QR codes. + + + + + Creates an SVG QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The pixel size each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HEX format (e.g., #000000). + The color of the light modules in HEX format (e.g., #ffffff). + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Specifies that when a method returns System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue, + the parameter will not be null even if the corresponding type allows it. + + + + + Initializes the attribute with the specified return value condition. + + If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. If the method returns this value, the associated + parameter will not be null. + + + + diff --git a/packages/QRCoder.1.7.0/lib/net5.0/QRCoder.dll b/packages/QRCoder.1.7.0/lib/net5.0/QRCoder.dll new file mode 100644 index 0000000..ac458ff Binary files /dev/null and b/packages/QRCoder.1.7.0/lib/net5.0/QRCoder.dll differ diff --git a/packages/QRCoder.1.7.0/lib/net5.0/QRCoder.xml b/packages/QRCoder.1.7.0/lib/net5.0/QRCoder.xml new file mode 100644 index 0000000..ce2e39a --- /dev/null +++ b/packages/QRCoder.1.7.0/lib/net5.0/QRCoder.xml @@ -0,0 +1,5572 @@ + + + + QRCoder + + + + + Abstract base class for generating QR codes. + Derived classes typically render a QR code into a specific format (png, System.Drawing.Bitmap, PDF, etc). + + + + + Gets or sets the QRCodeData used to generate the QR code. + + + + + Initializes a new instance of the AbstractQRCode class. + + + + + Initializes a new instance of the AbstractQRCode class with the specified QRCodeData. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Sets the QRCodeData object that will be used to generate the QR code. + This method is useful for COM objects connections. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Disposes the QRCodeData object. + + + + + Represents an art-style QR code generator that provides functionality to render QR codes with dots as modules. + + + + + Initializes a new instance of the class. + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + generated by the . + + + + Renders an art-style QR code with dots as modules. (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and a background image (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + A bitmap object that will be used as background picture + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and various user settings + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + If the pixelSize is bigger than the pixelsPerModule or may end up filling the Module making a traditional QR code. + + Pixels used per module rendered + Size of the dots + Color of the pixels + + + + + Checks if a given module(-position) is part of the quietzone of a QR code + + X position + Y position + Total number of modules per row + true, if position is part of quiet zone + + + + Checks if a given module(-position) is part of one of the three finder patterns of a QR code + + X position + Y position + Total number of modules per row + Offset in modules (usually depending on drawQuietZones parameter) + true, if position is part of any finder pattern + + + + Resize to a square bitmap, but maintain the aspect ratio by padding transparently. + + + + Resized image as bitmap + + + + Defines how the quiet zones shall be rendered. + + + + + Quiet zones are rendered with dotted modules. + + + + + Quiet zones are rendered with flat, solid modules. + + + + + Defines how the background image (if set) shall be rendered. + + + + + Background image spans the complete graphic. + + + + + Background image is only painted in the data area, excluding the quiet zone. + + + + + Provides static methods for creating art-style QR codes. + + + + + Helper function to create an ArtQRCode graphic with a single function call + + Text/payload to be encoded inside the QR code + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + Represents an ASCII-style QR code generator that provides functionality to render QR codes as textual representations. + + + + + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + The QR code data generated by the . + + + + Returns a strings that contains the resulting QR code as textual representation. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + End of line separator. (Default: \n) + + + + + Returns an array of strings that contains each line of the resulting QR code as ASCII chars. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + + + + + Returns a strings that contains the resulting QR code as minified textual representation. + + Bool that defines if quiet zones around the QR code shall be drawn + If set to true, dark and light colors will be inverted + End of line separator. (Default: \n) + + + + + Provides static methods for generating ASCII-style QR codes. + + + + + Generates an ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Number of repeated characters per module. + String representing dark modules. + String representing light modules. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + ASCII representation of the QR code. + + + + Generates a small ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + Invert dark and light colors. + Minified ASCII representation of the QR code. + + + + Represents a QR code generator that outputs base64-encoded images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a base64-encoded string that contains the resulting QR code as a PNG image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image with an embedded icon. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The icon to embed in the center of the QR code. + The size of the icon as a percentage of the QR code. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Converts a bitmap to a base64-encoded string. + + The bitmap to convert. + The type of image (PNG, JPEG, GIF). + Returns the base64-encoded string representation of the bitmap. + + + + Specifies the type of image to generate. + + + + + Graphics Interchange Format (GIF) image format, a bitmap image format with limited color support + + + + + Joint Photographic Experts Group (JPEG) image format, a lossy compressed image format + + + + + Portable Network Graphics (PNG) image format, a lossless raster graphics format + + + + + Provides static methods for creating base64-encoded QR codes. + + + + + Creates a base64-encoded QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Represents a QR code generator that outputs QR codes as bitmap byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGB byte array. + The color of the light modules as an RGB byte array. + Returns the QR code graphic as a bitmap byte array. + + + + Converts an integer to a 4 bytes and writes them to a byte array at given position + + The integer to convert. + Index of destinationArray where the converted bytes are written to + Destination byte array that receives the bytes + + + + Provides helper functions for creating bitmap byte array QR codes. + + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a bitmap byte array. + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Exception thrown when the given payload exceeds the maximum size of the QR code standard. + + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The fixed version of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Helper methods for . + + + + + Copies a specified number of elements from one to another starting at the specified offsets. + + The source from which elements will be copied. + The zero-based index in the source at which copying begins. + The destination to which elements will be copied. + The zero-based index in the destination at which storing begins. + The number of elements to copy. + The index in the destination immediately following the last copied element. + + + + Indicates whether the specified string is null, empty, or consists only of white-space characters. + + + if the is null, empty, or white space; otherwise, . + + + + + Converts a hex color string to a byte array. + + Color in HEX format like #ffffff. + Returns the color as a byte array. + + + + Appends an integer value to the StringBuilder using invariant culture formatting. + + The StringBuilder to append to. + The integer value to append. + + + + Appends a float value to the StringBuilder using invariant culture formatting with G7 precision. + + The StringBuilder to append to. + The float value to append. + + + + Used to represent a string value for a value in an enum + + + + + Holds the alue in an enum + + + + + Init a StringValue Attribute + + + + + + Enumeration extension methods. + + + + + Will get the string value for a given enum's value + + + + + Provides utility methods for generating QR code payloads. + + + Contains classes and methods for generating payloads for QR codes. + + + + + Validates the structure and checksum of an IBAN. + + The IBAN to validate. + True if the IBAN is valid; otherwise, false. + + + + Validates the structure and checksum of a QR IBAN. + + The QR IBAN to validate. + True if the QR IBAN is valid; otherwise, false. + + + + Validates the structure of a BIC. + + The BIC to validate. + True if the BIC is valid; otherwise, false. + + + + Validates the structure of a BIC with optional requirement check. + + The BIC to validate. + Whether the BIC is required. If false, null/empty values are considered valid. + True if the BIC is valid; otherwise, false. + + + + Converts a string to a specified encoding. + + The string to convert. + The encoding to use. + The converted string. + + + + Escapes forbidden characters in a string. + + The input string. + Indicates whether to use a simple escape mode. + The escaped string. + + + + Validates a string using the Mod10 checksum algorithm. + + The string to validate. + True if the string is valid; otherwise, false. + + + + Checks if a string is in hexadecimal format. + + The input string. + True if the string is in hexadecimal format; otherwise, false. + + + + Represents a BezahlCode payload for QR codes. + + + + + Initializes a new instance of the class for contact data. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Reason (Verwendungszweck) + + + + Initializes a new instance of the class for non-SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Initializes a new instance of the class for SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Generic constructor. Please use specific (non-SEPA or SEPA) constructor. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + Only used for internal state handdling + + + + + + + ISO 4217 currency codes + + + + + United Arab Emirates Dirham + + + + + Afghan Afghani + + + + + Albanian Lek + + + + + Armenian Dram + + + + + Netherlands Antillean Guilder + + + + + Angolan Kwanza + + + + + Argentine Peso + + + + + Australian Dollar + + + + + Aruban Florin + + + + + Azerbaijani Manat + + + + + Bosnia and Herzegovina Convertible Mark + + + + + Barbados Dollar + + + + + Bangladeshi Taka + + + + + Bulgarian Lev + + + + + Bahraini Dinar + + + + + Burundian Franc + + + + + Bermudian Dollar + + + + + Brunei Dollar + + + + + Bolivian Boliviano + + + + + Bolivian Mvdol (funds code) + + + + + Brazilian Real + + + + + Bahamian Dollar + + + + + Bhutanese Ngultrum + + + + + Botswana Pula + + + + + Belarusian Ruble + + + + + Belize Dollar + + + + + Canadian Dollar + + + + + Congolese Franc + + + + + WIR Euro (complementary currency) + + + + + Swiss Franc + + + + + WIR Franc (complementary currency) + + + + + Unidad de Fomento (funds code) + + + + + Chilean Peso + + + + + Chinese Yuan + + + + + Colombian Peso + + + + + Unidad de Valor Real (UVR) (funds code) + + + + + Costa Rican Colón + + + + + Cuban Convertible Peso + + + + + Cuban Peso + + + + + Cape Verde Escudo + + + + + Czech Koruna + + + + + Djiboutian Franc + + + + + Danish Krone + + + + + Dominican Peso + + + + + Algerian Dinar + + + + + Egyptian Pound + + + + + Eritrean Nakfa + + + + + Ethiopian Birr + + + + + Euro + + + + + Fiji Dollar + + + + + Falkland Islands Pound + + + + + Pound Sterling + + + + + Georgian Lari + + + + + Ghanaian Cedi + + + + + Gibraltar Pound + + + + + Gambian Dalasi + + + + + Guinean Franc + + + + + Guatemalan Quetzal + + + + + Guyanese Dollar + + + + + Hong Kong Dollar + + + + + Honduran Lempira + + + + + Croatian Kuna + + + + + Haitian Gourde + + + + + Hungarian Forint + + + + + Indonesian Rupiah + + + + + Israeli New Shekel + + + + + Indian Rupee + + + + + Iraqi Dinar + + + + + Iranian Rial + + + + + Icelandic Króna + + + + + Jamaican Dollar + + + + + Jordanian Dinar + + + + + Japanese Yen + + + + + Kenyan Shilling + + + + + Kyrgyzstani Som + + + + + Cambodian Riel + + + + + Comoro Franc + + + + + North Korean Won + + + + + South Korean Won + + + + + Kuwaiti Dinar + + + + + Cayman Islands Dollar + + + + + Kazakhstani Tenge + + + + + Lao Kip + + + + + Lebanese Pound + + + + + Sri Lankan Rupee + + + + + Liberian Dollar + + + + + Lesotho Loti + + + + + Libyan Dinar + + + + + Moroccan Dirham + + + + + Moldovan Leu + + + + + Malagasy Ariary + + + + + Macedonian Denar + + + + + Myanmar Kyat + + + + + Mongolian Tögrög + + + + + Macanese Pataca + + + + + Mauritanian Ouguiya + + + + + Mauritian Rupee + + + + + Maldivian Rufiyaa + + + + + Malawian Kwacha + + + + + Mexican Peso + + + + + Mexican Unidad de Inversión (UDI) (funds code) + + + + + Malaysian Ringgit + + + + + Mozambican Metical + + + + + Namibian Dollar + + + + + Nigerian Naira + + + + + Nicaraguan Córdoba + + + + + Norwegian Krone + + + + + Nepalese Rupee + + + + + New Zealand Dollar + + + + + Omani Rial + + + + + Panamanian Balboa + + + + + Peruvian Sol + + + + + Papua New Guinean Kina + + + + + Philippine Peso + + + + + Pakistani Rupee + + + + + Polish Złoty + + + + + Paraguayan Guaraní + + + + + Qatari Riyal + + + + + Romanian Leu + + + + + Serbian Dinar + + + + + Russian Ruble + + + + + Rwandan Franc + + + + + Saudi Riyal + + + + + Solomon Islands Dollar + + + + + Seychelles Rupee + + + + + Sudanese Pound + + + + + Swedish Krona + + + + + Singapore Dollar + + + + + Saint Helena Pound + + + + + Sierra Leonean Leone + + + + + Somali Shilling + + + + + Surinamese Dollar + + + + + South Sudanese Pound + + + + + São Tomé and Príncipe Dobra + + + + + Salvadoran Colón + + + + + Syrian Pound + + + + + Swazi Lilangeni + + + + + Thai Baht + + + + + Tajikistani Somoni + + + + + Turkmenistan Manat + + + + + Tunisian Dinar + + + + + Tongan Paʻanga + + + + + Turkish Lira + + + + + Trinidad and Tobago Dollar + + + + + New Taiwan Dollar + + + + + Tanzanian Shilling + + + + + Ukrainian Hryvnia + + + + + Ugandan Shilling + + + + + United States Dollar + + + + + United States Dollar (Next day) (funds code) + + + + + Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code) + + + + + Uruguayan Peso + + + + + Uzbekistan Som + + + + + Venezuelan Bolívar + + + + + Vietnamese Đồng + + + + + Vanuatu Vatu + + + + + Samoan Tālā + + + + + CFA Franc BEAC + + + + + Silver (one troy ounce) + + + + + Gold (one troy ounce) + + + + + Bond Markets Unit European Composite Unit (EURCO) + + + + + Bond Markets Unit European Monetary Unit (E.M.U.-6) + + + + + Bond Markets Unit European Unit of Account 9 (E.U.A.-9) + + + + + Bond Markets Unit European Unit of Account 17 (E.U.A.-17) + + + + + East Caribbean Dollar + + + + + Special Drawing Rights + + + + + CFA Franc BCEAO + + + + + Palladium (one troy ounce) + + + + + CFP Franc + + + + + Platinum (one troy ounce) + + + + + SUCRE + + + + + Codes specifically reserved for testing purposes + + + + + ADB Unit of Account + + + + + The code assigned for transactions where no currency is involved + + + + + Yemeni Rial + + + + + South African Rand + + + + + Zambian Kwacha + + + + + Zimbabwean Dollar + + + + + Operation modes of the BezahlCode + + + + + Single payment (Überweisung) + + + + + Single SEPA payment (SEPA-Überweisung) + + + + + Single debit (Lastschrift) + + + + + Single SEPA debit (SEPA-Lastschrift) + + + + + Periodic payment (Dauerauftrag) + + + + + Periodic SEPA payment (SEPA-Dauerauftrag) + + + + + Contact data + + + + + Contact data V2 + + + + + Exception class for BezahlCode errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for Bitcoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin address of the payment receiver. + The amount of Bitcoin to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin Cash payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin Cash payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin Cash address of the payment receiver. + The amount of Bitcoin Cash to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin-like cryptocurrency payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin-like cryptocurrency payment payload. QR Codes with this payload can open a payment app. + + The type of Bitcoin-like cryptocurrency. + The cryptocurrency address of the payment receiver. + The amount of coins to transfer. + A reference label. + A reference text or message. + + + + Returns a string representation of the Bitcoin-like cryptocurrency address payload. + + A string representation of the cryptocurrency address payload. + + + + Enumerates Bitcoin-like cryptocurrencies. + + + + + Bitcoin. + + + + + Bitcoin Cash. + + + + + Litecoin. + + + + + Generates a bookmark payload. When scanned by a QR code reader, this creates a browser bookmark. + + + + + Initializes a new instance of the class. + + The URL of the bookmark. + The title of the bookmark. + + + + Returns a string representation of the bookmark payload. + + A string representation of the bookmark payload in the MEBKM format. + + + + Generates a calendar entry/event payload. + + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time (including UTC offset) of the event. + End time (including UTC offset) of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time of the event. + End time of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Returns a string representation of the calendar event payload. + + A string representation of the calendar event in the VEVENT format. + + + + Specifies the encoding type for the calendar event. + + + + + iCalendar complete encoding. + + + + + Universal encoding. + + + + + Generates a vCard or meCard contact dataset. + + + + + Initializes a new instance of the class. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + + + + Initializes a new instance of the class with address type support. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + The address type (Home, Work, HomePreferred, or WorkPreferred). + + + + Returns a string representation of the contact data payload. + + A string representation of the contact data in the specified format. + + + + Gets the address type string for vCard 2.1 format. + + + + + Gets the address type string for vCard 3.0 format. + + + + + Gets the address type string for vCard 4.0 format. + + + + + Defines the type of address (home or work). + + + + + Home address. + + + + + Work address. + + + + + Home address marked as preferred (default for backwards compatibility). + + + + + Work address marked as preferred. + + + + + Possible output types. Either vCard 2.1, vCard 3.0, vCard 4.0 or MeCard. + + + + + MeCard output type. + + + + + vCard 2.1 output type. + + + + + vCard 3.0 output type. + + + + + vCard 4.0 output type. + + + + + Define the address format. + Default: European format, ([Street] [House Number] and [Postal Code] [City]) + Reversed: North American and others format ([House Number] [Street] and [City] [Postal Code]) + + + + + Default address order format (European format). + + + + + Reversed address order format (North American and others format). + + + + + Generates a geo location payload. Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + + + + Initializes a new instance of the class. + Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + Latitude with . as splitter. + Longitude with . as splitter. + Encoding type - GEO or GoogleMaps. + + + + Returns a string representation of the geolocation payload. + + A string representation of the geolocation payload in the specified encoding format. + + + + Defines the encoding types for geolocation payloads. + + + + + GEO encoding type. + + + + + Google Maps encoding type. + + + + + Generates the payload for a Girocode (QR-Code with credit transfer information). + + + + + Gets the ECC level required for Girocode, which is always set to M. + + + + + Initializes a new instance of the class, which contains a payload for a Girocode (QR-Code with credit transfer information). + + Account number of the Beneficiary. Only IBAN is allowed. + BIC of the Beneficiary Bank. + Name of the Beneficiary. + Amount of the Credit Transfer in Euro. (Amount must be more than 0.01 and less than 999999999.99) + Remittance Information (Purpose-/reference text). (optional) + Type of remittance information. Either structured (e.g. ISO 11649 RF Creditor Reference) and max. 35 chars or unstructured and max. 140 chars. + Purpose of the Credit Transfer (optional) + Beneficiary to originator information. (optional) + Girocode version. Either 001 or 002. Default: 001. + Encoding of the Girocode payload. Default: ISO-8859-1 + Thrown when the input values are not valid according to the Girocode specification. + + + + Returns the Girocode payload as a string. + + The Girocode payload as a string. + + + + Defines the Girocode version. + + + + + Girocode version 1. + + + + + Girocode version 2. + + + + + Defines the type of remittance information. + + + + + Structured remittance information. + + + + + Unstructured remittance information. + + + + + Defines the encoding types for Girocode payloads. + + + + + UTF-8 encoding. + + + + + ISO-8859-1 encoding. + + + + + ISO-8859-2 encoding. + + + + + ISO-8859-4 encoding. + + + + + ISO-8859-5 encoding. + + + + + ISO-8859-7 encoding. + + + + + ISO-8859-10 encoding. + + + + + ISO-8859-15 encoding. + + + + + Represents errors that occur during Girocode generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a payload for Litecoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Litecoin payment payload. QR Codes with this payload can open a payment app. + + The Litecoin address of the payment receiver. + The amount of Litecoin to transfer. + A reference label. + A reference text or message. + + + + Generates an email payload that can be used to create a QR code for sending an email. + + + + + Creates an email payload with subject and message/text. + + Receiver's email address. + Subject line of the email. + Message content of the email. + Payload encoding type. Choose dependent on your QR Code scanner app. + + + + Returns the email payload as a string. + + The email payload as a string. + + + + Defines the encoding types for the email payload. + + + + + Uses the "mailto:" URI scheme. + + + + + Uses the "MATMSG:" format. + + + + + Uses the "SMTP:" format. + + + + + Generates a MMS (Multimedia Messaging Service) payload for QR codes. + + + + + Creates a MMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates a MMS payload with text (subject). + + Receiver phone number. + Text of the MMS. + Encoding type. + + + + Returns the MMS payload as a string. + + The MMS payload as a string. + + + + Defines the encoding types for the MMS payload. + + + + + Uses the "mms:" URI scheme. + + + + + Uses the "mmsto:" URI scheme. + + + + + Generates a Monero transaction payload for QR codes. + + + + + Creates a Monero transaction payload. + + Receiver's Monero address. + Amount to transfer. + Payment ID. + Recipient's name. + Reference text / payment description. + Thrown when the address is null or empty, or when the txAmount is less than or equal to 0. + + + + Returns the Monero transaction payload as a URI string. + + The Monero transaction payload as a URI string. + + + + Exception class for Monero transaction errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for One Time Password (OTP) used in applications like Google Authenticator. + + + + + The type of OTP (TOTP or HOTP). + + + + + The secret key used for OTP generation. + + + + + The hashing algorithm used for OTP (SHA1, SHA256, SHA512). + + + + + Obsolete. Use instead. + + + + + The issuer of the OTP (usually the service or company name). + + + + + The label for the OTP (usually the user's email or username). + + + + + The number of digits in the OTP (default is 6). + + + + + The counter value for HOTP (only used if Type is HOTP). + + + + + The period in seconds for TOTP (default is 30). + + + + + Enum for OTP types. + + + + + Time-based One-Time Password (TOTP) + + + + + HMAC-based One-Time Password (HOTP) + + + + + Enum for hashing algorithms used in OTP. + + + + + SHA-1 hashing algorithm + + + + + SHA-256 hashing algorithm + + + + + SHA-512 hashing algorithm + + + + + Obsolete. Use instead. + + + + + SHA-1 hashing algorithm (Obsolete) + + + + + SHA-256 hashing algorithm (Obsolete) + + + + + SHA-512 hashing algorithm (Obsolete) + + + + + Returns the OTP payload as a string. + + The OTP payload as a string. + + + + Returns the HOTP payload as a string. + + The HOTP payload as a string. + + + + Returns the TOTP payload as a string. + + The TOTP payload as a string. + + + + Processes the common fields for both TOTP and HOTP. + + StringBuilder to append the common fields. + + + + Represents the base class for all QR code payloads. + + + + + Gets the version of the QR code payload. + + + + + Gets the error correction level of the QR code payload. + + + + + Gets the ECI mode of the QR code payload. + + + + + Returns a string representation of the QR code payload. + + A string representation of the QR code payload. + + + + Generates a phone call payload. + + + + + Initializes a new instance of the class. + + Phone number of the receiver. + + + + Returns the phone call payload as a string. + + The phone call payload as a string. + + + + Generates a payload for a Russian payment order. + + + + + Initializes a new instance of the class. + + Name of the payee (Наименование получателя платежа) + Beneficiary account number (Номер счета получателя платежа) + Name of the beneficiary's bank (Наименование банка получателя платежа) + BIC (БИК) + Box number / account payee's bank (Номер кор./сч. банка получателя платежа) + An (optional) object of additional fields + Type of encoding (default UTF-8) + + + + Returns the payload as a string. + + ⚠ Attention: If CharacterSets was set to windows-1251 or koi8-r you should use ToBytes() instead of ToString() and pass the bytes to CreateQrCode()! + The payload as a string. + + + + Returns the payload as a byte array. + + Should be used if CharacterSets equals windows-1251 or koi8-r. + The payload as a byte array. + + + + Determines a valid separator + + + + + + Takes all optional fields that are not null and returns their string represantion + + A List of strings + + + + Takes all mandatory fields that are not null and returns their string represantion + + A List of strings + + + + Validates a string against a given Regex pattern. Returns input if it matches the Regex expression (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + A regex pattern to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Validates a string against one or more given Regex patterns. Returns input if it matches all regex expressions (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + An array of regex patterns to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Represents optional fields for the RussiaPaymentOrder. + + + + + Payment amount, in kopecks (FTI’s Amount.) + Сумма платежа, в копейках + + + + + Payment name (purpose) + Наименование платежа (назначение) + + + + + Payee's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН получателя платежа + + + + + Payer's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН плательщика + + + + + Status compiler payment document + Статус составителя платежного документа + + + + + KPP of the payee (Tax Registration Code; Text, up to 9 characters.) + КПП получателя платежа + + + + + CBC + КБК + + + + + All-Russian classifier territories of municipal formations + Общероссийский классификатор территорий муниципальных образований + + + + + Basis of tax payment + Основание налогового платежа + + + + + Taxable period + Налоговый период + + + + + Document number + Номер документа + + + + + Document date + Дата документа + + + + + Payment type + Тип платежа + + + + + Payer's surname + Фамилия плательщика + + + + + Payer's name + Имя плательщика + + + + + Payer's patronymic + Отчество плательщика + + + + + Payer's address + Адрес плательщика + + + + + Personal account of a budget recipient + Лицевой счет бюджетного получателя + + + + + Payment document index + Индекс платежного документа + + + + + Personal account number in the personalized accounting system in the Pension Fund of the Russian Federation - SNILS + № лицевого счета в системе персонифицированного учета в ПФР - СНИЛС + + + + + Number of contract + Номер договора + + + + + Personal account number of the payer in the organization (in the accounting system of the PU) + Номер лицевого счета плательщика в организации (в системе учета ПУ) + + + + + Apartment number + Номер квартиры + + + + + Phone number + Номер телефона + + + + + DUL payer type + Вид ДУЛ плательщика + + + + + DUL number of the payer + Номер ДУЛ плательщика + + + + + FULL NAME. child / student + Ф.И.О. ребенка/учащегося + + + + + Date of birth + Дата рождения + + + + + Due date / Invoice date + Срок платежа/дата выставления счета + + + + + Payment period + Период оплаты + + + + + Payment type + Вид платежа + + + + + Service code / meter name + Код услуги/название прибора учета + + + + + Metering device number + Номер прибора учета + + + + + Meter reading + Показание прибора учета + + + + + Notification, accrual, account number + Номер извещения, начисления, счета + + + + + Date of notification / accrual / invoice / resolution (for traffic police) + Дата извещения/начисления/счета/постановления (для ГИБДД) + + + + + Institution number (educational, medical) + Номер учреждения (образовательного, медицинского) + + + + + Kindergarten / school class number + Номер группы детсада/класса школы + + + + + Full name of the teacher, specialist providing the service + ФИО преподавателя, специалиста, оказывающего услугу + + + + + Insurance / additional service amount / Penalty amount (in kopecks) + Сумма страховки/дополнительной услуги/Сумма пени (в копейках) + + + + + Resolution number (for traffic police) + Номер постановления (для ГИБДД) + + + + + Enforcement Proceedings Number + Номер исполнительного производства + + + + + Type of payment code (for example, for payments to Rosreestr) + Код вида платежа (например, для платежей в адрес Росреестра) + + + + + Unique accrual identifier + Уникальный идентификатор начисления + + + + + The technical code recommended by the service provider. Maybe used by the receiving organization to call the appropriate processing IT system. + Технический код, рекомендуемый для заполнения поставщиком услуг. Может использоваться принимающей организацией для вызова соответствующей обрабатывающей ИТ-системы. + + + + + (List of values of the technical code of the payment) + Перечень значений технического кода платежа + + + + + Mobile and landline telephone services + Мобильная связь и стационарный телефон + + + + + Utility services (Housing and Communal Services) + Коммунальные услуги (ЖКХ) + + + + + Traffic police, taxes, duties, and budget payments + ГИБДД, налоги, пошлины, бюджетные платежи + + + + + Security services + Охранные услуги + + + + + Services provided by the Federal Migration Service + Услуги, оказываемые УФМС + + + + + Pension Fund of the Russian Federation + Пенсионный фонд России (ПФР) + + + + + Loan repayment + Погашение кредитов + + + + + Educational institutions + Образовательные учреждения + + + + + Internet and TV services + Интернет и телевидение + + + + + Electronic money + Электронные деньги + + + + + Recreation and travel + Отдых и путешествия + + + + + Investments and insurance + Инвестиции и страхование + + + + + Sports and health + Спорт и здоровье + + + + + Charitable and public organizations + Благотворительные и общественные организации + + + + + Other services + Прочие услуги + + + + + Specifies character sets for encoding the RussiaPaymentOrder payload. + + + + + Windows-1251 encoding. + + + + + UTF-8 encoding. + + + + + KOI8-R encoding. + + + + + Represents errors that occur during the generation of a RussiaPaymentOrder payload. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + Generates a ShadowSocks proxy config payload. + + + + + Generates a ShadowSocks proxy config payload. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Optional tag line + + + + Generates a ShadowSocks proxy config payload with plugin options. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Plugin name + Plugin option + Optional tag line + + + + Generates a ShadowSocks proxy config payload with additional parameters. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Additional parameters + Optional tag line + + + + Converts the ShadowSocks config payload to a string. + + A string representation of the ShadowSocks config payload. + + + + Specifies the encryption methods used by ShadowSocks. + + + + + ChaCha20-IETF with Poly1305 AEAD encryption method + + + + + AES-128 Galois/Counter Mode (GCM) encryption method + + + + + AES-192 Galois/Counter Mode (GCM) encryption method + + + + + AES-256 Galois/Counter Mode (GCM) encryption method + + + + + Extended ChaCha20-IETF with Poly1305 AEAD encryption method (non-standard) + + + + + AES-128 Cipher Feedback (CFB) stream cipher + + + + + AES-192 Cipher Feedback (CFB) stream cipher + + + + + AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Counter (CTR) stream cipher + + + + + AES-192 Counter (CTR) stream cipher + + + + + AES-256 Counter (CTR) stream cipher + + + + + Camellia-128 Cipher Feedback (CFB) stream cipher + + + + + Camellia-192 Cipher Feedback (CFB) stream cipher + + + + + Camellia-256 Cipher Feedback (CFB) stream cipher + + + + + ChaCha20-IETF stream cipher + + + + + Alias for AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-192 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-256 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-128 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-192 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-256 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-128 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-192 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-256 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + ChaCha20 stream cipher (deprecated) + + + + + Blowfish Cipher Feedback (CFB) stream cipher (deprecated) + + + + + RC4-MD5 stream cipher (deprecated) + + + + + Salsa20 stream cipher (deprecated) + + + + + DES Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + IDEA Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + RC2 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + CAST5 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Salsa20 Counter (CTR) stream cipher (not standard, not in active use) + + + + + RC4 stream cipher (not standard, not in active use) + + + + + SEED Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Table-based encryption method (not standard, not in active use) + + + + + Represents errors that occur during the generation of a ShadowSocksConfig payload. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a Skype call payload + + + + + Initializes a new instance of the class. + + Skype username which will be called + + + + Converts the Skype call payload to a string. + + A string representation of the Skype call payload. + + + + Generates a Slovenian UPN QR payment payload. + + + + + Gets the version of the QR code, which is 15 for Slovenian UPN QR. + + + + + Gets the error correction level of the QR code, which is M for Slovenian UPN QR. + + + + + Gets the ECI mode of the QR code, which is Iso8859_2 for Slovenian UPN QR. + + + + + Limits the length of a string to a specified maximum length. + + The string to limit. + The maximum length of the string. + The limited string. + + + + Initializes a new instance of the class. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Initializes a new instance of the class with a deadline. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The deadline for the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Formats the amount as a string with leading zeros. + + The amount to format. + The formatted amount string. + + + + Calculates the checksum of the payment data. + + The checksum of the payment data. + + + + Returns the Slovenian UPN QR payment data as a string. + + The Slovenian UPN QR payment data as a string. + + + + Generates an SMS payload. + + + + + Creates an SMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates an SMS payload with text (subject). + + Receiver phone number. + Text of the SMS. + Encoding type. + + + + Returns the SMS payload as a string. + + The SMS payload as a string. + + + + Specifies the encoding type for the SMS payload. + + + + + Standard SMS encoding. + + + + + SMSTO encoding. + + + + + SMS encoding for iOS. + + + + + Generates the payload for a SwissQrCode. + + + + + + + + + + + Generates the payload for a SwissQrCode v2.0. (Don't forget to use ECC-Level=M, EncodingMode=UTF-8 and to set the Swiss flag icon to the final QR code.) + + IBAN object + Currency (either EUR or CHF) + Creditor (payee) information + Reference information + Additional information for the QR code + Debitor (payer) information + Amount + Requested date of debitor's payment + Ultimate creditor information (use only in consultation with your bank - for future use only!) + Optional command for alternative processing mode - line 1 + Optional command for alternative processing mode - line 2 + + + + Represents additional information for the SwissQrCode. + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Gets the unstructured message. + + + + + Gets the bill information. + + + + + Gets the trailer. + + + + + Represents exceptions specific to SwissQrCode additional information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents reference information for the SwissQrCode. + + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Gets the reference type. + + + + + Gets the reference text. + + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR". + + + + + QR Reference + + + + + Creditor Reference + + + + + No Reference + + + + + Represents the text type for the reference. + + + + + QR Reference Text + + + + + Creditor Reference ISO 11649 + + + + + Represents exceptions specific to SwissQrCode references. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents an IBAN with type information. + + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Gets a value indicating whether this is a QR-IBAN. + + + + + Converts the IBAN object to its string representation. + + A string representation of the IBAN. + + + + Represents the type of IBAN. + + + + + Regular IBAN + + + + + QR-IBAN + + + + + Represents exceptions specific to SwissQrCode IBANs. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents contact information. + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + Creates a contact with structured address. + + + + + Creates a contact with combined address. + + + + + Returns a string that represents the contact information in the format required for Swiss QR codes. + + A string representing the contact information. + + + + Defines the type of address. + + + + + Structured Address + + + + + Combined Address + + + + + Represents errors that occur during the creation of a Swiss QR code contact. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Returns a string that represents the entire Swiss QR code payload. + + A string representing the Swiss QR code payload. + + + + ISO 4217 currency codes. + + + + + Swiss Franc + + + + + Euro + + + + + Represents errors that occur during Swiss QR Code generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a URL payload for QR codes. + + + + + Initializes a new instance of the class. + + The target URL. If the protocol is not specified, the http protocol will be added. + + + + Returns the URL payload as a string. + + The URL payload as a string, ensuring it starts with "http://" if no protocol is specified. + + + + Generates a WhatsApp message payload for QR codes. + + + + + Initializes a new instance of the class with a receiver number and message. + + + Receiver phone number in full international format. + Omit any zeroes, brackets, or dashes. Use format: 1XXXXXXXXXX. Don't use: +001-(XXX)XXXXXXX. + + The message to be sent. + + + + Initializes a new instance of the class with a message only. + When scanned, the user is asked to choose a contact to receive the message. + + The message to be sent. + + + + Returns the WhatsApp message payload as a string. + + The WhatsApp message URL as a string. + + + + Generates a WiFi payload. Scanned by a QR Code scanner app, the device will connect to the WiFi. + + + + + Initializes a new instance of the class. + + SSID of the WiFi network + Password of the WiFi network + Authentication mode (WEP, WPA, WPA2) + Set flag if the WiFi network hides its SSID + Set flag if ssid/password is delivered as HEX string. Note: May not be supported on iOS devices. + + + + Returns the WiFi payload as a string. + + + + + Specifies the authentication mode for the WiFi network. + + + + + WEP authentication mode + + + + + WPA authentication mode + + + + + No password authentication mode + + + + + WPA2 authentication mode + + + + + Represents a QR code generator that outputs QR codes as PDF byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a PDF document with a black and white QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF document with specified colors and DPI. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The DPI (dots per inch) of the PDF document. + The JPEG quality parameter (obsolete, no longer used). + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF path with rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + PDF path commands as a string. + + + + Converts RGB byte array to PDF color space values (0.0 to 1.0). + + RGB color as byte array. + PDF color string (three decimal values). + + + + Converts an integer to a string using invariant culture for consistent PDF formatting. + + The integer value to convert. + String representation of the integer. + + + + Converts a float to a string using invariant culture for consistent PDF formatting. + + The float value to convert. + String representation of the float. + + + + Provides static methods for creating PDF byte array QR codes. + + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Represents a QR code generator that outputs QR codes as PNG byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PNG of the QR code, using 1-bit grayscale. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Colors may contain transparency. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Accepts 3-byte RGB colors for normal images and 4-byte RGBA-colors for transparent images. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a bitmap where each pixel is represented by a single bit, dark = 0 and light = 1. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the bitmap as a byte array. + + + + Writes the chunks that make up a PNG file. + + + See https://www.w3.org/TR/2003/REC-PNG-20031110 and https://www.ietf.org/rfc/rfc1950.txt. + + + + + Writes the IHDR chunk. This must be the first chunk in the file. + + + + + Writes the PLTE chunk, and also the tRNS chunk if necessary. Must come before the IDAT chunk. + + + + + Writes the IDAT chunk with the actual picture. + + + + + Writes the IEND chunk. This must be the last chunk in the file. + + + + + Provides static methods for creating PNG byte array QR codes. + + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Represents a QR code generator that outputs QR codes as PostScript code. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a black and white PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Cleans double values for international use/formats. + + The input double value. + Returns the cleaned string representation of the double value, with a maximum of 7 significant digits. + + + + Provides static methods for creating PostScript QR codes. + + + + + Creates a PostScript QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Represents a QR code generator that outputs QR codes as bitmap images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code with an optional icon in the center. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The background color of the icon. + Returns the QR code graphic as a bitmap. + + + + Creates a GraphicsPath containing rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + The number of pixels per module. + The offset to apply for quiet zones. + Whether quiet zones are being drawn. + A GraphicsPath containing all dark module rectangles. + + + + Creates a rounded rectangle path for drawing. + + The rectangle for which to create the rounded path. + The radius of the corners. + Returns the rounded rectangle path. + + + + Provides static methods for creating bitmap QR codes. + + + + + Creates a bitmap QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Represents the data structure of a QR code. + + + + + Gets or sets the module matrix of the QR code. + + + + + Initializes a new instance of the class with the specified version. + + The version of the QR code. + + + + Initializes a new instance of the class with the specified version and padding option. + + The version of the QR code. + Indicates whether padding should be added to the QR code. + + + + Initializes a new instance of the class with raw data from a specified path and compression mode. + + The path to the raw data file. + The compression mode used for the raw data. + + + + Initializes a new instance of the class with raw data and compression mode. + + The raw data of the QR code. + The compression mode used for the raw data. + + + + Gets the raw data of the QR code with the specified compression mode. + + The compression mode used for the raw data. + Returns the raw data of the QR code as a byte array. + + + + Saves the raw data of the QR code to a specified file with the specified compression mode. + + The path to the file where the raw data will be saved. + The compression mode used for the raw data. + + + + Gets the version of the QR code. + + + + + Gets the number of modules per side from the specified version. + + The version of the QR code (1 to 40, or -1 to -4 for Micro QR codes). + Returns the number of modules per side. + + + + Releases all resources used by the . + + + + + Specifies the compression mode used for the raw data. + + + + + No compression. + + + + + Deflate compression. + + + + + GZip compression. + + + + + Provides functionality to generate QR code data that can be used to create QR code images. + + + + + Initializes the QR code generator + + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the Micro QR code data which then can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Set fixed Micro QR code target version; must be -1 to -4 representing M1 to M4, or 0 for default. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Validates the specified error correction level. + Returns the provided level if it is valid, or the level M if the provided level is Default. + Throws an exception if an invalid level is provided. + + + + + Generates a QR code data structure using the provided BitArray, error correction level, and version. + The BitArray provided is assumed to already include the count, encoding mode, and/or ECI mode information. + + The BitArray containing the binary-encoded data to be included in the QR code. It should already contain the count, encoding mode, and/or ECI mode information. + The desired error correction level for the QR code. This impacts how much data can be recovered if damaged. + The version of the QR code, determining the size and complexity of the QR code data matrix. + A QRCodeData structure containing the full QR code matrix, which can be used for rendering or analysis. + + + + Generates a BitArray containing the format string for a QR code based on the error correction level and mask pattern version. + The format string includes the error correction level, mask pattern version, and error correction coding. + + The to write to, or null to create a new one. + The version number of the QR Code (1-40, or -1 to -4 for Micro QR codes). + The error correction level to be encoded in the format string. + The mask pattern version to be encoded in the format string. + A BitArray containing the 15-bit format string used in QR code generation. + + + + Encodes the version information of a QR code into a BitArray using error correction coding similar to format information encoding. + This method is used for QR codes version 7 and above. + + A to write the version string to. + The version number of the QR code (7-40). + A BitArray containing the encoded version information, which includes error correction bits. + + + + Calculates the Error Correction Codewords (ECC) for a segment of data using the provided ECC information. + This method applies polynomial division, using the message polynomial and a generator polynomial, + to compute the remainder which forms the ECC codewords. + + + + + Converts all polynomial item coefficients from their alpha exponent notation to decimal representation in place. + This conversion facilitates operations that require polynomial coefficients in their integer forms. + + + + + Determines the most efficient encoding mode for the given plain text based on its character content + and a flag indicating whether to force UTF-8 encoding. + + + + + Checks if a character falls within a specified range. + + + + + Converts a segment of a BitArray representing QR code data into a polynomial, + padding the final byte if necessary (for Micro QR variants like M1 or M3). + + The full bit array representing encoded QR code data. + Starting position in the bit array. + Total number of bits to convert into codewords. + A polynomial representing the message codewords. + + + + Calculates the generator polynomial used for creating error correction codewords. + + The number of error correction codewords to generate. + A polynomial that can be used to generate ECC codewords. + + + + Converts a segment of a BitArray into its decimal (integer) equivalent. + + The integer value that represents the specified binary data. + + + + Converts a decimal number to binary and stores the result in a BitArray starting from a specific index. + + The decimal number to convert to binary. + The number of bits to use for the binary representation (ensuring fixed-width like 8, 16, 32 bits). + The BitArray where the binary bits will be stored. + The starting index in the BitArray where the bits will be stored. + The next index in the BitArray after the last bit placed. + + + + Determines the number of bits used to indicate the count of characters in a segment, depending on the QR code version and the encoding mode. + + The version of the QR code, which influences the number of bits due to increasing data capacity. + The encoding mode (e.g., Numeric, Alphanumeric, Byte) used for the data segment. + The number of bits needed to represent the character count in the specified encoding mode and version. + + + + Calculates the data length based on the encoding mode, text content, and whether UTF-8 is forced. + + The encoding mode used for the QR code data. + The plain text input to be encoded. + A BitArray representing the binary data of the encoded text. + Flag to determine if UTF-8 encoding should be enforced. + The length of data in units appropriate to the encoding (bytes or characters). + + + + Checks if the given string can be accurately represented and retrieved in ISO-8859-1 encoding. + + + + + Converts plain text to a binary format suitable for QR code generation, based on the specified encoding mode. + + The text to be encoded. + The encoding mode. + The ECI mode specifying the character encoding to use. + Flag indicating whether to prepend a UTF-8 Byte Order Mark. + Flag indicating whether UTF-8 encoding is forced. + A BitArray containing the binary representation of the encoded data. + + + + Converts numeric plain text into a binary format specifically optimized for QR codes. + Numeric compression groups up to 3 digits into 10 bits, less for remaining digits if they do not complete a group of three. + + The numeric text to be encoded, which should only contain digit characters. + A BitArray representing the binary data of the encoded numeric text. + + + + Converts plain text into a binary format using byte mode encoding, which supports various character encodings through ECI (Extended Channel Interpretations). + + The text to be encoded. + The ECI mode that specifies the character encoding to use. + Specifies whether to include a Byte Order Mark (BOM) for UTF-8 encoding. + Forces UTF-8 encoding regardless of the text content's compatibility with ISO-8859-1. + A BitArray representing the binary data of the encoded text. + + The returned text is always encoded as ISO-8859-1 unless either the text contains a non-ISO-8859-1 character or + UTF-8 encoding is forced. This does not meet the QR Code standard, which requires the use of ECI to specify the encoding + when not ISO-8859-1. + + + + + Converts an array of bytes into a BitArray, considering the proper bit order within each byte. + Unlike the constructor of BitArray, this function preserves the MSB-to-LSB order within each byte. + + The byte array to convert into a BitArray. + The number of leading zeros to prepend to the resulting BitArray. + A BitArray representing the bits of the input byteArray, with optional leading zeros. + + + + Performs a bitwise XOR operation between two polynomials, commonly used in QR code error correction coding. + + The resultant polynomial after performing the XOR operation. + + + + Multiplies a generator polynomial by a leading term polynomial, reducing the result by a specified lower exponent, + used in constructing QR code error correction codewords. + + + + + Multiplies two polynomials, treating coefficients as exponents of a primitive element (alpha), which is common in error correction algorithms such as Reed-Solomon. + + The first polynomial to multiply. + The second polynomial to multiply. + A new polynomial which is the result of the multiplication of the two input polynomials. + + + + + + + Represents the alignment pattern used in QR codes, which helps ensure the code remains readable even if it is somewhat distorted. + Each QR code version has its own specific alignment pattern locations which this struct encapsulates. + + + + + The version of the QR code. Higher versions have more complex and numerous alignment patterns. + + + + + A list of points where alignment patterns are located within the QR code matrix. + Each point represents the center of an alignment pattern. + + + + + This class contains the alignment patterns used in QR codes. + + + + + A lookup table mapping QR code versions to their corresponding alignment patterns. + + + + + Retrieves the alignment pattern for a specific QR code version. + + + + + Creates a lookup table mapping QR code versions to their corresponding alignment patterns. + Alignment patterns are used in QR codes to help scanners accurately read the code at high speeds and when partially obscured. + This table provides the necessary patterns based on the QR code version which dictates the size and complexity of the QR code. + + A dictionary where keys are QR code version numbers and values are AlignmentPattern structures detailing the positions of alignment patterns for each version. + + + + Encodes alphanumeric characters (0–9, A–Z (uppercase), space, $, %, *, +, -, period, /, colon) into a binary format suitable for QR codes. + + + + + A dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + + + + Creates a dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + A dictionary mapping each supported alphanumeric character to its corresponding value. + + + + Checks if a character is present in the alphanumeric encoding table. + + + + + Converts alphanumeric plain text into a binary format optimized for QR codes. + Alphanumeric encoding packs characters into 11-bit groups for each pair of characters, + and 6 bits for a single remaining character if the total count is odd. + + The alphanumeric text to be encoded, which should only contain characters valid in QR alphanumeric mode. + A BitArray representing the binary data of the encoded alphanumeric text. + + + + Provides QR code capacity and error correction data for each version and encoding mode. + Used to determine how much data can be stored in a QR code and which version is required. + + + + + A list containing detailed capacity information for each version of QR codes. + The index in the capacity table corresponds to one less than the version number. + + + + + A table containing the error correction capacities and data codeword information for different combinations of QR code versions and error correction levels. + + + + + Retrieves the error correction information for a specific QR code version and error correction level. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + The desired error correction level (L, M, Q, or H). Do not supply . + + An object containing the total number of data codewords, ECC per block, + block group details, and other parameters required for encoding error correction data. + + + + + Retrieves the capacity information for a specific QR code version. + The returned structure contains detailed data capacity values for each error correction level (L, M, Q, H) + and encoding mode (Numeric, Alphanumeric, Byte, Kanji), indicating the maximum number of characters + that can be stored in a QR code of the specified version under each configuration. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + A object containing data capacity details for all error correction levels + and encoding modes for the specified version. + + + + + Retrieves the number of remainder bits required for a specific QR code version. + Remainder bits are added to the final bit stream to ensure proper alignment with byte boundaries, + as required by the QR code specification. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + The number of remainder bits (0 to 7) that must be appended to the encoded bit stream. + + + + + Determines the minimum QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Low, Medium, Quartile, High). + The minimum version of the QR code that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Determines the minimum Micro QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Default, Low, Medium, Quartile, High). + The minimum version of the QR code (-1 to -4) that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Generates a table containing the error correction capacities and data codeword information for different QR code versions and error correction levels. + This table is essential for determining how much data can be encoded in a QR code of a specific version and ECC level, + as well as how robust the QR code will be against distortions or obstructions. + + A list of ECCInfo structures, each representing the ECC data and capacities for different combinations of QR code versions and ECC levels. + + + + Generates a list containing detailed capacity information for various versions of QR codes. + This table includes capacities for different encoding modes (numeric, alphanumeric, byte, etc.) under each error correction level. + The capacity table is crucial for QR code generation, as it determines how much data each QR code version can store depending on the encoding mode and error correction level used. + The index in the capacity table corresponds to one less than the version number. + + + + + + + + Represents a block of codewords in a QR code. QR codes are divided into several blocks for error correction purposes. + Each block contains a series of data codewords followed by error correction codewords. + + + + + Initializes a new instance of the CodewordBlock struct with specified arrays of code words and error correction (ECC) words. + + The offset of the data codewords within the main BitArray. Data codewords carry the actual information. + The length in bits of the data codewords within the main BitArray. + The array of error correction codewords for this block. These codewords help recover the data if the QR code is damaged. + + + + Gets the offset of the data codewords in the BitArray. + + + + + Gets the length of the data codewords in the BitArray. + + + + + Gets the error correction codewords associated with this block. + + + + + Represents the error correction coding (ECC) information for a specific version and error correction level of a QR code. + + + + + Initializes a new instance of the ECCInfo struct with specified properties. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The number of error correction codewords per block. + The number of blocks in group 1. + The number of codewords in each block of group 1. + The number of blocks in group 2, if any. + The number of codewords in each block of group 2, if any. + + + + Initializes a new instance of the ECCInfo struct with specified properties for Micro QR codes. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The total number of data bits for this version and error correction level. + The number of error correction codewords per block. + + + + Gets the version number of the QR code. + + + + + Gets the error correction level of the QR code. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the number of error correction codewords per block. + + + + + Gets the number of blocks in group 1. + + + + + Gets the number of codewords in each block of group 1. + + + + + Gets the number of blocks in group 2, if any. + + + + + Gets the number of codewords in each block of group 2, if any. + + + + + Defines the levels of error correction available in QR codes. + Each level specifies the proportion of data that can be recovered if the QR code is partially obscured or damaged. + + + + + Default error correction level, which will select Level M (Medium) unless otherwise specified by the payload. + Level M allows approximately 15% of data to be recovered, offering a balance between data capacity and error recovery. + + + + + Level L: Low error correction (approximately 7% of data can be recovered). + This level allows the highest data density. + + + + + Level M: Medium error correction (approximately 15% of data can be recovered). + Offers a balance between data capacity and error recovery. + + + + + Level Q: Quartile error correction (approximately 25% of data can be recovered). + More robust error correction at the cost of reduced data capacity. + + + + + Level H: High error correction (approximately 30% of data can be recovered). + Provides the highest level of error recovery, ideal for environments with high risk of data loss. + + + + + Enumerates the Extended Channel Interpretation (ECI) modes used in QR codes to handle different character encoding standards. + ECI mode allows QR codes to efficiently encode data using character sets other than the default ISO-8859-1. + + + + + Default encoding mode (typically ISO-8859-1). Used when no ECI mode is explicitly specified. + This mode is assumed in basic QR codes where no extended character sets are needed. + + + + + Specifies the use of the ISO-8859-1 character set, covering most Western European languages. + This mode explicitly sets the encoding to ISO-8859-1, which includes characters used in languages such as English, French, German, and Spanish. + + + + + Specifies the use of the ISO-8859-2 character set, which is primarily used for Central and Eastern European languages. + This includes characters used in languages such as Polish, Czech, Slovak, Hungarian, and Romanian. + + + + + Specifies the use of UTF-8 encoding. + UTF-8 can encode any Unicode character and is useful for QR codes that need to support multi-language content. + + + + + Specifies the encoding modes for the characters in a QR code. + + + + + Numeric encoding mode, which is used to encode numeric data (digits 0-9). + Three characters are encoded into 10 bits. + + + + + Alphanumeric encoding mode, which is used to encode alphanumeric characters (0-9, A-Z, space, and some punctuation). + Two characters are encoded into 11 bits. + + + + + Byte encoding mode, primarily using the ISO-8859-1 character set. Each character is encoded into 8 bits. + When combined with ECI, it can be adapted to use other character sets. + + + + + Kanji encoding mode, which is used to encode characters from the Shift JIS character set, primarily for Japanese Kanji and Kana characters. + One character is encoded into 13 bits. This mode is not currently supported by QRCoder. + + + + + Extended Channel Interpretation (ECI) mode, which specifies a character set via an 8-bit number followed by one of the other encoding modes. + This allows adapting the byte encoding to accommodate various global text encodings. + + + + + Represents a Galois field of 256 elements (GF(256)) used in finite field arithmetic, + typically for error correction algorithms such as Reed-Solomon. + + Provides mappings between exponential and integer representations of field elements + using a primitive element (α). The field is constructed with respect to a generator + polynomial and used for efficient encoding and decoding operations. + + + + + + Retrieves the integer value from the Galois field that corresponds to a given exponent. + This is used in Reed-Solomon and other error correction calculations involving Galois fields. + + + + + Retrieves the exponent from the Galois field that corresponds to a given integer value. + Throws an exception if the integer value is zero, as zero does not have a logarithmic representation in the field. + + + + + Normalizes a Galois field exponent to ensure it remains within the bounds of the field's size. + This is particularly necessary when performing multiplications in the field which can result in exponents exceeding the field's maximum. + + + + + Struct that represents blocked modules using rectangles. + + + + + Initializes a new instance of the struct with a specified size. + + The size of the blocked modules matrix. + + + + Adds a blocked module at the specified coordinates. + + The x-coordinate of the module. + The y-coordinate of the module. + + + + Adds a blocked module defined by the specified rectangle. + + The rectangle that defines the blocked module. + + + + Checks if the specified coordinates are blocked. + + The x-coordinate to check. + The y-coordinate to check. + true if the coordinates are blocked; otherwise, false. + + + + Checks if the specified rectangle is blocked. + + The rectangle to check. + true if the rectangle is blocked; otherwise, false. + + + + Places the version information on the QR code matrix for versions 7 and higher. Version information + is encoded into two small rectangular areas near the bottom left and top right corners outside the timing patterns. + + The QR code data structure to modify. + The bit array containing the version information. + Indicates whether an offset should be applied to the version information placement. + + + + Places the format information on the QR code, encoding the error correction level and mask pattern used. + + The QR code data structure to modify. + The bit array containing the format information. + Specifies whether an offset should be applied. + + + + Applies the most effective mask pattern to the QR code based on minimizing the penalty score, + which evaluates how well the pattern will work for QR scanners. + + The QR code data structure where the mask will be applied. + The version of the QR code, which determines the size and complexity. + List of rectangles representing areas that must not be overwritten. + The error correction level of the QR code, which affects format string values. + The index of the selected mask pattern. + + + + Places data bits into the QR code's module matrix following a specific pattern that navigates around blocked modules. + + The QR code data structure where the data bits are to be placed. + The data bits to be placed within the QR code matrix. + A list of rectangles representing areas within the QR code matrix that should not be modified because they contain other necessary information like format and version info. + + + + Reserves separator areas around the positioning patterns of a QR code to ensure that these crucial areas remain unmodified during data placement. + + The version of the QR code, which determines the number of finder patterns. + The size of the QR code matrix. + A list of rectangles representing areas that must not be overwritten. + + + + Reserves areas for version information on QR codes that are version 7 or higher. Also reserves space for format information. + + The size of the QR code matrix. + The version number of the QR code, which determines the placement of version information. + A list of rectangles representing areas that must not be overwritten. + + + + Places a dark module on the QR code matrix as per QR code specification, which requires a dark module at a specific position for all QR codes. + + The QR code data structure where the dark module is to be placed. + The version number of the QR code, which determines the specific location of the dark module. + A list of rectangles representing areas that must not be overwritten, updated to include the dark module. + + + + Places finder patterns on the QR code. Finder patterns are critical for QR code scanners to correctly orient and recognize the QR code. + + The QR code data structure where the finder patterns will be placed. + A list of rectangles representing areas that must not be overwritten. This is updated with the areas occupied by the finder patterns. + + + + Places alignment patterns on the QR code matrix. Alignment patterns help ensure the scanner can correctly interpret the QR code at various scales and orientations. + + The QR code data structure where the alignment patterns will be placed. + A list of points representing the centers of where alignment patterns should be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by alignment patterns. + + + + Places timing patterns in the QR code. Timing patterns are alternating dark and light modules that help scanners determine the coordinates of modules within the QR code. + + The QR code data structure where the timing patterns will be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by timing patterns. + + + + Provides static methods and properties to handle mask patterns used in QR code generation. + Mask patterns are applied to QR codes to break up patterns in the data matrix that might confuse scanners. + + + + + A dictionary mapping each mask pattern index to its corresponding function that calculates whether a given pixel should be masked. + + + + + Mask pattern 1: (x + y) % 2 == 0 + Applies a checkerboard mask on the QR code. + + + + + Mask pattern 2: y % 2 == 0 + Applies a horizontal striping mask on the QR code. + + + + + Mask pattern 3: x % 3 == 0 + Applies a vertical striping mask on the QR code. + + + + + Mask pattern 4: (x + y) % 3 == 0 + Applies a diagonal striping mask on the QR code. + + + + + Mask pattern 5: ((y / 2) + (x / 3)) % 2 == 0 + Applies a complex pattern mask on the QR code, mixing horizontal and vertical rules. + + + + + Mask pattern 6: ((x * y) % 2 + (x * y) % 3) == 0 + Applies a mask based on the product of x and y coordinates modulo 2 and 3. + + + + + Mask pattern 7: (((x * y) % 2 + (x * y) % 3) % 2) == 0 + Applies a mask based on a more complex function involving the product of x and y coordinates. + + + + + Mask pattern 8: (((x + y) % 2) + ((x * y) % 3) % 2) == 0 + Combines rules of checkers and complex multiplicative masks. + + + + + Calculates a penalty score for a Micro QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Calculates a penalty score for a QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + The score is the sum of four penalty rules applied to the QR code. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Represents a 2D point with integer coordinates. + + + + + Gets the X-coordinate of the point. + + + + + Gets the Y-coordinate of the point. + + + + + Initializes a new instance of the struct with specified X and Y coordinates. + + The X-coordinate of the point. + The Y-coordinate of the point. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + True if the specified has the same X and Y coordinates as the current ; otherwise, false. + + If this method which implements is not implemented, comparisons used by methods such as + fall back to reflection, which causes heap allocations internally during the calls to . + + + + + + + + + + + Represents a polynomial, which is a sum of polynomial terms. + + + + + Initializes a new instance of the struct with a specified number of initial capacity for polynomial terms. + + The initial capacity of the polynomial items list. + + + + Adds a polynomial term to the polynomial. + + + + + Removes the polynomial term at the specified index. + + + + + Gets or sets a polynomial term at the specified index. + + + + + Gets the number of polynomial terms in the polynomial. + + + + + Removes all polynomial terms from the polynomial. + + + + + Clones the polynomial, creating a new instance with the same polynomial terms. + + + + + Sorts the collection of using a custom comparer function. + + + A function that compares two objects and returns an integer indicating their relative order: + less than zero if the first is less than the second, zero if they are equal, or greater than zero if the first is greater than the second. + + + + + Returns a string that represents the polynomial in standard algebraic notation. + Example output: "a^2*x^3 + a^5*x^1 + a^3*x^0", which represents the polynomial 2x³ + 5x + 3. + + + + + + + + Ensures that the polynomial has enough capacity to store the specified number of polynomial terms. + + + + + Rents memory for the polynomial terms from the shared memory pool. + + + + + Returns memory allocated for the polynomial terms back to the shared memory pool. + + + + + Returns an enumerator that iterates through the polynomial terms. + + + + + Value type enumerator for the struct. + + + + + Represents an individual term of a polynomial, consisting of a coefficient and an exponent. + For example, the term 3x² would be represented as a with a coefficient of 3 and an exponent of 2. + + + + + Initializes a new instance of the struct with the specified coefficient and exponent. + + The coefficient of the polynomial term. For example, in the term 3x², the coefficient is 3. + The exponent of the polynomial term. For example, in the term 3x², the exponent is 2. + + + + Gets the coefficient of the polynomial term. + + + + + Gets the exponent of the polynomial term. + + + + + Represents a rectangle defined by its top-left corner's coordinates, width, and height. + + + + + Gets the X-coordinate of the top-left corner of the rectangle. + + + + + Gets the Y-coordinate of the top-left corner of the rectangle. + + + + + Gets the width of the rectangle. + + + + + Gets the height of the rectangle. + + + + + Initializes a new instance of the struct with the specified top-left corner coordinates, width, and height. + + The X-coordinate of the top-left corner of the rectangle. + The Y-coordinate of the top-left corner of the rectangle. + The width of the rectangle. + The height of the rectangle. + + + + Represents version-specific information of a QR code. + + + + + Initializes a new instance of the struct with a specific version number and its details. + + The version number of the QR code. Each version has a different module configuration. + A list of detailed information related to error correction levels and capacity for each encoding mode. + + + + Gets the version number of the QR code. Each version number specifies a different size of the QR matrix. + + + + + Gets a list of details about the QR code version, including the error correction levels and encoding capacities. + + + + + Represents the detailed information about each error correction level and its corresponding capacities in different encoding modes for a specific version of a QR code. + + + + + Initializes a new instance of the struct, detailing the error correction level and the capacity for each encoding mode. + + The error correction level, which determines how much of the code can be restored if the QR code gets damaged. + A dictionary mapping each encoding mode to its capacity for the specific error correction level. + + + + Gets the error correction level of the QR code, influencing how robust the QR code is against errors and damage. + + + + + Gets a dictionary that contains the capacities of different encoding modes under the specified error correction level. + These capacities dictate how many characters can be encoded under each mode. + + + + + Represents a QR code generator that outputs QR codes as SVG images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a scalable QR code as an SVG string. + + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string. + + The pixel size each dark/light module is drawn. + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors, optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors and optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Determines if a module at (x,y) is blocked by the logo area defined by attr. + + + + + Calculates the logo's position and size within the QR code based on the specified percentage size. + + + + + Gets the transparency value (0-255) from a color string. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + The alpha/transparency value from 0 (fully transparent) to 255 (fully opaque). Returns 255 for colors without alpha channel. + + + + Determines if a color string represents a partially transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is transparent; otherwise false. + + + + Determines if a color string represents a fully transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is fully transparent; otherwise false. + + + + Converts a Color to a hex string in #RGB, #RRGGBB or #RRGGBBAA format; or 'transparent' for fully transparent colors. + + The color to convert. + A hex string representation of the color. + + + + Mode of sizing attribute on SVG root node + + + + + Specifies width and height attributes for SVG sizing + + + + + Width and height are not included within the SVG tag; viewBox is scaled to fit the container + + + + + Represents a logo graphic that can be rendered on a SvgQRCode + + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as Bitmap/rasterized graphic + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as SVG/vectorized graphic/string + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + If true, the logo will embedded as native svg instead of embedding it as image-tag + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as PNG + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Returns the raw logo's data + + + + + Defines, if the logo shall be natively embedded. + true=native svg embedding, false=embedding via image-tag + + + + + Returns the media type of the logo + + + + + + Returns the logo as data-uri + + + + + Returns how much of the QR code should be covered by the logo (in percent) + + + + + Returns if the background of the logo should be cleaned (no QR modules will be rendered behind the logo) + + + + + Media types for SvgLogos + + + + + Portable Network Graphics (PNG) image format + + + + + Scalable Vector Graphics (SVG) image format + + + + + Provides static methods for creating SVG QR codes. + + + + + Creates an SVG QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The pixel size each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HEX format (e.g., #000000). + The color of the light modules in HEX format (e.g., #ffffff). + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + diff --git a/packages/QRCoder.1.7.0/lib/net6.0/QRCoder.dll b/packages/QRCoder.1.7.0/lib/net6.0/QRCoder.dll new file mode 100644 index 0000000..deea6ed Binary files /dev/null and b/packages/QRCoder.1.7.0/lib/net6.0/QRCoder.dll differ diff --git a/packages/QRCoder.1.7.0/lib/net6.0/QRCoder.xml b/packages/QRCoder.1.7.0/lib/net6.0/QRCoder.xml new file mode 100644 index 0000000..ce2e39a --- /dev/null +++ b/packages/QRCoder.1.7.0/lib/net6.0/QRCoder.xml @@ -0,0 +1,5572 @@ + + + + QRCoder + + + + + Abstract base class for generating QR codes. + Derived classes typically render a QR code into a specific format (png, System.Drawing.Bitmap, PDF, etc). + + + + + Gets or sets the QRCodeData used to generate the QR code. + + + + + Initializes a new instance of the AbstractQRCode class. + + + + + Initializes a new instance of the AbstractQRCode class with the specified QRCodeData. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Sets the QRCodeData object that will be used to generate the QR code. + This method is useful for COM objects connections. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Disposes the QRCodeData object. + + + + + Represents an art-style QR code generator that provides functionality to render QR codes with dots as modules. + + + + + Initializes a new instance of the class. + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + generated by the . + + + + Renders an art-style QR code with dots as modules. (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and a background image (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + A bitmap object that will be used as background picture + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and various user settings + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + If the pixelSize is bigger than the pixelsPerModule or may end up filling the Module making a traditional QR code. + + Pixels used per module rendered + Size of the dots + Color of the pixels + + + + + Checks if a given module(-position) is part of the quietzone of a QR code + + X position + Y position + Total number of modules per row + true, if position is part of quiet zone + + + + Checks if a given module(-position) is part of one of the three finder patterns of a QR code + + X position + Y position + Total number of modules per row + Offset in modules (usually depending on drawQuietZones parameter) + true, if position is part of any finder pattern + + + + Resize to a square bitmap, but maintain the aspect ratio by padding transparently. + + + + Resized image as bitmap + + + + Defines how the quiet zones shall be rendered. + + + + + Quiet zones are rendered with dotted modules. + + + + + Quiet zones are rendered with flat, solid modules. + + + + + Defines how the background image (if set) shall be rendered. + + + + + Background image spans the complete graphic. + + + + + Background image is only painted in the data area, excluding the quiet zone. + + + + + Provides static methods for creating art-style QR codes. + + + + + Helper function to create an ArtQRCode graphic with a single function call + + Text/payload to be encoded inside the QR code + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + Represents an ASCII-style QR code generator that provides functionality to render QR codes as textual representations. + + + + + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + The QR code data generated by the . + + + + Returns a strings that contains the resulting QR code as textual representation. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + End of line separator. (Default: \n) + + + + + Returns an array of strings that contains each line of the resulting QR code as ASCII chars. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + + + + + Returns a strings that contains the resulting QR code as minified textual representation. + + Bool that defines if quiet zones around the QR code shall be drawn + If set to true, dark and light colors will be inverted + End of line separator. (Default: \n) + + + + + Provides static methods for generating ASCII-style QR codes. + + + + + Generates an ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Number of repeated characters per module. + String representing dark modules. + String representing light modules. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + ASCII representation of the QR code. + + + + Generates a small ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + Invert dark and light colors. + Minified ASCII representation of the QR code. + + + + Represents a QR code generator that outputs base64-encoded images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a base64-encoded string that contains the resulting QR code as a PNG image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image with an embedded icon. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The icon to embed in the center of the QR code. + The size of the icon as a percentage of the QR code. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Converts a bitmap to a base64-encoded string. + + The bitmap to convert. + The type of image (PNG, JPEG, GIF). + Returns the base64-encoded string representation of the bitmap. + + + + Specifies the type of image to generate. + + + + + Graphics Interchange Format (GIF) image format, a bitmap image format with limited color support + + + + + Joint Photographic Experts Group (JPEG) image format, a lossy compressed image format + + + + + Portable Network Graphics (PNG) image format, a lossless raster graphics format + + + + + Provides static methods for creating base64-encoded QR codes. + + + + + Creates a base64-encoded QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Represents a QR code generator that outputs QR codes as bitmap byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGB byte array. + The color of the light modules as an RGB byte array. + Returns the QR code graphic as a bitmap byte array. + + + + Converts an integer to a 4 bytes and writes them to a byte array at given position + + The integer to convert. + Index of destinationArray where the converted bytes are written to + Destination byte array that receives the bytes + + + + Provides helper functions for creating bitmap byte array QR codes. + + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a bitmap byte array. + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Exception thrown when the given payload exceeds the maximum size of the QR code standard. + + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The fixed version of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Helper methods for . + + + + + Copies a specified number of elements from one to another starting at the specified offsets. + + The source from which elements will be copied. + The zero-based index in the source at which copying begins. + The destination to which elements will be copied. + The zero-based index in the destination at which storing begins. + The number of elements to copy. + The index in the destination immediately following the last copied element. + + + + Indicates whether the specified string is null, empty, or consists only of white-space characters. + + + if the is null, empty, or white space; otherwise, . + + + + + Converts a hex color string to a byte array. + + Color in HEX format like #ffffff. + Returns the color as a byte array. + + + + Appends an integer value to the StringBuilder using invariant culture formatting. + + The StringBuilder to append to. + The integer value to append. + + + + Appends a float value to the StringBuilder using invariant culture formatting with G7 precision. + + The StringBuilder to append to. + The float value to append. + + + + Used to represent a string value for a value in an enum + + + + + Holds the alue in an enum + + + + + Init a StringValue Attribute + + + + + + Enumeration extension methods. + + + + + Will get the string value for a given enum's value + + + + + Provides utility methods for generating QR code payloads. + + + Contains classes and methods for generating payloads for QR codes. + + + + + Validates the structure and checksum of an IBAN. + + The IBAN to validate. + True if the IBAN is valid; otherwise, false. + + + + Validates the structure and checksum of a QR IBAN. + + The QR IBAN to validate. + True if the QR IBAN is valid; otherwise, false. + + + + Validates the structure of a BIC. + + The BIC to validate. + True if the BIC is valid; otherwise, false. + + + + Validates the structure of a BIC with optional requirement check. + + The BIC to validate. + Whether the BIC is required. If false, null/empty values are considered valid. + True if the BIC is valid; otherwise, false. + + + + Converts a string to a specified encoding. + + The string to convert. + The encoding to use. + The converted string. + + + + Escapes forbidden characters in a string. + + The input string. + Indicates whether to use a simple escape mode. + The escaped string. + + + + Validates a string using the Mod10 checksum algorithm. + + The string to validate. + True if the string is valid; otherwise, false. + + + + Checks if a string is in hexadecimal format. + + The input string. + True if the string is in hexadecimal format; otherwise, false. + + + + Represents a BezahlCode payload for QR codes. + + + + + Initializes a new instance of the class for contact data. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Reason (Verwendungszweck) + + + + Initializes a new instance of the class for non-SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Initializes a new instance of the class for SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Generic constructor. Please use specific (non-SEPA or SEPA) constructor. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + Only used for internal state handdling + + + + + + + ISO 4217 currency codes + + + + + United Arab Emirates Dirham + + + + + Afghan Afghani + + + + + Albanian Lek + + + + + Armenian Dram + + + + + Netherlands Antillean Guilder + + + + + Angolan Kwanza + + + + + Argentine Peso + + + + + Australian Dollar + + + + + Aruban Florin + + + + + Azerbaijani Manat + + + + + Bosnia and Herzegovina Convertible Mark + + + + + Barbados Dollar + + + + + Bangladeshi Taka + + + + + Bulgarian Lev + + + + + Bahraini Dinar + + + + + Burundian Franc + + + + + Bermudian Dollar + + + + + Brunei Dollar + + + + + Bolivian Boliviano + + + + + Bolivian Mvdol (funds code) + + + + + Brazilian Real + + + + + Bahamian Dollar + + + + + Bhutanese Ngultrum + + + + + Botswana Pula + + + + + Belarusian Ruble + + + + + Belize Dollar + + + + + Canadian Dollar + + + + + Congolese Franc + + + + + WIR Euro (complementary currency) + + + + + Swiss Franc + + + + + WIR Franc (complementary currency) + + + + + Unidad de Fomento (funds code) + + + + + Chilean Peso + + + + + Chinese Yuan + + + + + Colombian Peso + + + + + Unidad de Valor Real (UVR) (funds code) + + + + + Costa Rican Colón + + + + + Cuban Convertible Peso + + + + + Cuban Peso + + + + + Cape Verde Escudo + + + + + Czech Koruna + + + + + Djiboutian Franc + + + + + Danish Krone + + + + + Dominican Peso + + + + + Algerian Dinar + + + + + Egyptian Pound + + + + + Eritrean Nakfa + + + + + Ethiopian Birr + + + + + Euro + + + + + Fiji Dollar + + + + + Falkland Islands Pound + + + + + Pound Sterling + + + + + Georgian Lari + + + + + Ghanaian Cedi + + + + + Gibraltar Pound + + + + + Gambian Dalasi + + + + + Guinean Franc + + + + + Guatemalan Quetzal + + + + + Guyanese Dollar + + + + + Hong Kong Dollar + + + + + Honduran Lempira + + + + + Croatian Kuna + + + + + Haitian Gourde + + + + + Hungarian Forint + + + + + Indonesian Rupiah + + + + + Israeli New Shekel + + + + + Indian Rupee + + + + + Iraqi Dinar + + + + + Iranian Rial + + + + + Icelandic Króna + + + + + Jamaican Dollar + + + + + Jordanian Dinar + + + + + Japanese Yen + + + + + Kenyan Shilling + + + + + Kyrgyzstani Som + + + + + Cambodian Riel + + + + + Comoro Franc + + + + + North Korean Won + + + + + South Korean Won + + + + + Kuwaiti Dinar + + + + + Cayman Islands Dollar + + + + + Kazakhstani Tenge + + + + + Lao Kip + + + + + Lebanese Pound + + + + + Sri Lankan Rupee + + + + + Liberian Dollar + + + + + Lesotho Loti + + + + + Libyan Dinar + + + + + Moroccan Dirham + + + + + Moldovan Leu + + + + + Malagasy Ariary + + + + + Macedonian Denar + + + + + Myanmar Kyat + + + + + Mongolian Tögrög + + + + + Macanese Pataca + + + + + Mauritanian Ouguiya + + + + + Mauritian Rupee + + + + + Maldivian Rufiyaa + + + + + Malawian Kwacha + + + + + Mexican Peso + + + + + Mexican Unidad de Inversión (UDI) (funds code) + + + + + Malaysian Ringgit + + + + + Mozambican Metical + + + + + Namibian Dollar + + + + + Nigerian Naira + + + + + Nicaraguan Córdoba + + + + + Norwegian Krone + + + + + Nepalese Rupee + + + + + New Zealand Dollar + + + + + Omani Rial + + + + + Panamanian Balboa + + + + + Peruvian Sol + + + + + Papua New Guinean Kina + + + + + Philippine Peso + + + + + Pakistani Rupee + + + + + Polish Złoty + + + + + Paraguayan Guaraní + + + + + Qatari Riyal + + + + + Romanian Leu + + + + + Serbian Dinar + + + + + Russian Ruble + + + + + Rwandan Franc + + + + + Saudi Riyal + + + + + Solomon Islands Dollar + + + + + Seychelles Rupee + + + + + Sudanese Pound + + + + + Swedish Krona + + + + + Singapore Dollar + + + + + Saint Helena Pound + + + + + Sierra Leonean Leone + + + + + Somali Shilling + + + + + Surinamese Dollar + + + + + South Sudanese Pound + + + + + São Tomé and Príncipe Dobra + + + + + Salvadoran Colón + + + + + Syrian Pound + + + + + Swazi Lilangeni + + + + + Thai Baht + + + + + Tajikistani Somoni + + + + + Turkmenistan Manat + + + + + Tunisian Dinar + + + + + Tongan Paʻanga + + + + + Turkish Lira + + + + + Trinidad and Tobago Dollar + + + + + New Taiwan Dollar + + + + + Tanzanian Shilling + + + + + Ukrainian Hryvnia + + + + + Ugandan Shilling + + + + + United States Dollar + + + + + United States Dollar (Next day) (funds code) + + + + + Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code) + + + + + Uruguayan Peso + + + + + Uzbekistan Som + + + + + Venezuelan Bolívar + + + + + Vietnamese Đồng + + + + + Vanuatu Vatu + + + + + Samoan Tālā + + + + + CFA Franc BEAC + + + + + Silver (one troy ounce) + + + + + Gold (one troy ounce) + + + + + Bond Markets Unit European Composite Unit (EURCO) + + + + + Bond Markets Unit European Monetary Unit (E.M.U.-6) + + + + + Bond Markets Unit European Unit of Account 9 (E.U.A.-9) + + + + + Bond Markets Unit European Unit of Account 17 (E.U.A.-17) + + + + + East Caribbean Dollar + + + + + Special Drawing Rights + + + + + CFA Franc BCEAO + + + + + Palladium (one troy ounce) + + + + + CFP Franc + + + + + Platinum (one troy ounce) + + + + + SUCRE + + + + + Codes specifically reserved for testing purposes + + + + + ADB Unit of Account + + + + + The code assigned for transactions where no currency is involved + + + + + Yemeni Rial + + + + + South African Rand + + + + + Zambian Kwacha + + + + + Zimbabwean Dollar + + + + + Operation modes of the BezahlCode + + + + + Single payment (Überweisung) + + + + + Single SEPA payment (SEPA-Überweisung) + + + + + Single debit (Lastschrift) + + + + + Single SEPA debit (SEPA-Lastschrift) + + + + + Periodic payment (Dauerauftrag) + + + + + Periodic SEPA payment (SEPA-Dauerauftrag) + + + + + Contact data + + + + + Contact data V2 + + + + + Exception class for BezahlCode errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for Bitcoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin address of the payment receiver. + The amount of Bitcoin to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin Cash payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin Cash payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin Cash address of the payment receiver. + The amount of Bitcoin Cash to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin-like cryptocurrency payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin-like cryptocurrency payment payload. QR Codes with this payload can open a payment app. + + The type of Bitcoin-like cryptocurrency. + The cryptocurrency address of the payment receiver. + The amount of coins to transfer. + A reference label. + A reference text or message. + + + + Returns a string representation of the Bitcoin-like cryptocurrency address payload. + + A string representation of the cryptocurrency address payload. + + + + Enumerates Bitcoin-like cryptocurrencies. + + + + + Bitcoin. + + + + + Bitcoin Cash. + + + + + Litecoin. + + + + + Generates a bookmark payload. When scanned by a QR code reader, this creates a browser bookmark. + + + + + Initializes a new instance of the class. + + The URL of the bookmark. + The title of the bookmark. + + + + Returns a string representation of the bookmark payload. + + A string representation of the bookmark payload in the MEBKM format. + + + + Generates a calendar entry/event payload. + + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time (including UTC offset) of the event. + End time (including UTC offset) of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time of the event. + End time of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Returns a string representation of the calendar event payload. + + A string representation of the calendar event in the VEVENT format. + + + + Specifies the encoding type for the calendar event. + + + + + iCalendar complete encoding. + + + + + Universal encoding. + + + + + Generates a vCard or meCard contact dataset. + + + + + Initializes a new instance of the class. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + + + + Initializes a new instance of the class with address type support. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + The address type (Home, Work, HomePreferred, or WorkPreferred). + + + + Returns a string representation of the contact data payload. + + A string representation of the contact data in the specified format. + + + + Gets the address type string for vCard 2.1 format. + + + + + Gets the address type string for vCard 3.0 format. + + + + + Gets the address type string for vCard 4.0 format. + + + + + Defines the type of address (home or work). + + + + + Home address. + + + + + Work address. + + + + + Home address marked as preferred (default for backwards compatibility). + + + + + Work address marked as preferred. + + + + + Possible output types. Either vCard 2.1, vCard 3.0, vCard 4.0 or MeCard. + + + + + MeCard output type. + + + + + vCard 2.1 output type. + + + + + vCard 3.0 output type. + + + + + vCard 4.0 output type. + + + + + Define the address format. + Default: European format, ([Street] [House Number] and [Postal Code] [City]) + Reversed: North American and others format ([House Number] [Street] and [City] [Postal Code]) + + + + + Default address order format (European format). + + + + + Reversed address order format (North American and others format). + + + + + Generates a geo location payload. Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + + + + Initializes a new instance of the class. + Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + Latitude with . as splitter. + Longitude with . as splitter. + Encoding type - GEO or GoogleMaps. + + + + Returns a string representation of the geolocation payload. + + A string representation of the geolocation payload in the specified encoding format. + + + + Defines the encoding types for geolocation payloads. + + + + + GEO encoding type. + + + + + Google Maps encoding type. + + + + + Generates the payload for a Girocode (QR-Code with credit transfer information). + + + + + Gets the ECC level required for Girocode, which is always set to M. + + + + + Initializes a new instance of the class, which contains a payload for a Girocode (QR-Code with credit transfer information). + + Account number of the Beneficiary. Only IBAN is allowed. + BIC of the Beneficiary Bank. + Name of the Beneficiary. + Amount of the Credit Transfer in Euro. (Amount must be more than 0.01 and less than 999999999.99) + Remittance Information (Purpose-/reference text). (optional) + Type of remittance information. Either structured (e.g. ISO 11649 RF Creditor Reference) and max. 35 chars or unstructured and max. 140 chars. + Purpose of the Credit Transfer (optional) + Beneficiary to originator information. (optional) + Girocode version. Either 001 or 002. Default: 001. + Encoding of the Girocode payload. Default: ISO-8859-1 + Thrown when the input values are not valid according to the Girocode specification. + + + + Returns the Girocode payload as a string. + + The Girocode payload as a string. + + + + Defines the Girocode version. + + + + + Girocode version 1. + + + + + Girocode version 2. + + + + + Defines the type of remittance information. + + + + + Structured remittance information. + + + + + Unstructured remittance information. + + + + + Defines the encoding types for Girocode payloads. + + + + + UTF-8 encoding. + + + + + ISO-8859-1 encoding. + + + + + ISO-8859-2 encoding. + + + + + ISO-8859-4 encoding. + + + + + ISO-8859-5 encoding. + + + + + ISO-8859-7 encoding. + + + + + ISO-8859-10 encoding. + + + + + ISO-8859-15 encoding. + + + + + Represents errors that occur during Girocode generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a payload for Litecoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Litecoin payment payload. QR Codes with this payload can open a payment app. + + The Litecoin address of the payment receiver. + The amount of Litecoin to transfer. + A reference label. + A reference text or message. + + + + Generates an email payload that can be used to create a QR code for sending an email. + + + + + Creates an email payload with subject and message/text. + + Receiver's email address. + Subject line of the email. + Message content of the email. + Payload encoding type. Choose dependent on your QR Code scanner app. + + + + Returns the email payload as a string. + + The email payload as a string. + + + + Defines the encoding types for the email payload. + + + + + Uses the "mailto:" URI scheme. + + + + + Uses the "MATMSG:" format. + + + + + Uses the "SMTP:" format. + + + + + Generates a MMS (Multimedia Messaging Service) payload for QR codes. + + + + + Creates a MMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates a MMS payload with text (subject). + + Receiver phone number. + Text of the MMS. + Encoding type. + + + + Returns the MMS payload as a string. + + The MMS payload as a string. + + + + Defines the encoding types for the MMS payload. + + + + + Uses the "mms:" URI scheme. + + + + + Uses the "mmsto:" URI scheme. + + + + + Generates a Monero transaction payload for QR codes. + + + + + Creates a Monero transaction payload. + + Receiver's Monero address. + Amount to transfer. + Payment ID. + Recipient's name. + Reference text / payment description. + Thrown when the address is null or empty, or when the txAmount is less than or equal to 0. + + + + Returns the Monero transaction payload as a URI string. + + The Monero transaction payload as a URI string. + + + + Exception class for Monero transaction errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for One Time Password (OTP) used in applications like Google Authenticator. + + + + + The type of OTP (TOTP or HOTP). + + + + + The secret key used for OTP generation. + + + + + The hashing algorithm used for OTP (SHA1, SHA256, SHA512). + + + + + Obsolete. Use instead. + + + + + The issuer of the OTP (usually the service or company name). + + + + + The label for the OTP (usually the user's email or username). + + + + + The number of digits in the OTP (default is 6). + + + + + The counter value for HOTP (only used if Type is HOTP). + + + + + The period in seconds for TOTP (default is 30). + + + + + Enum for OTP types. + + + + + Time-based One-Time Password (TOTP) + + + + + HMAC-based One-Time Password (HOTP) + + + + + Enum for hashing algorithms used in OTP. + + + + + SHA-1 hashing algorithm + + + + + SHA-256 hashing algorithm + + + + + SHA-512 hashing algorithm + + + + + Obsolete. Use instead. + + + + + SHA-1 hashing algorithm (Obsolete) + + + + + SHA-256 hashing algorithm (Obsolete) + + + + + SHA-512 hashing algorithm (Obsolete) + + + + + Returns the OTP payload as a string. + + The OTP payload as a string. + + + + Returns the HOTP payload as a string. + + The HOTP payload as a string. + + + + Returns the TOTP payload as a string. + + The TOTP payload as a string. + + + + Processes the common fields for both TOTP and HOTP. + + StringBuilder to append the common fields. + + + + Represents the base class for all QR code payloads. + + + + + Gets the version of the QR code payload. + + + + + Gets the error correction level of the QR code payload. + + + + + Gets the ECI mode of the QR code payload. + + + + + Returns a string representation of the QR code payload. + + A string representation of the QR code payload. + + + + Generates a phone call payload. + + + + + Initializes a new instance of the class. + + Phone number of the receiver. + + + + Returns the phone call payload as a string. + + The phone call payload as a string. + + + + Generates a payload for a Russian payment order. + + + + + Initializes a new instance of the class. + + Name of the payee (Наименование получателя платежа) + Beneficiary account number (Номер счета получателя платежа) + Name of the beneficiary's bank (Наименование банка получателя платежа) + BIC (БИК) + Box number / account payee's bank (Номер кор./сч. банка получателя платежа) + An (optional) object of additional fields + Type of encoding (default UTF-8) + + + + Returns the payload as a string. + + ⚠ Attention: If CharacterSets was set to windows-1251 or koi8-r you should use ToBytes() instead of ToString() and pass the bytes to CreateQrCode()! + The payload as a string. + + + + Returns the payload as a byte array. + + Should be used if CharacterSets equals windows-1251 or koi8-r. + The payload as a byte array. + + + + Determines a valid separator + + + + + + Takes all optional fields that are not null and returns their string represantion + + A List of strings + + + + Takes all mandatory fields that are not null and returns their string represantion + + A List of strings + + + + Validates a string against a given Regex pattern. Returns input if it matches the Regex expression (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + A regex pattern to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Validates a string against one or more given Regex patterns. Returns input if it matches all regex expressions (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + An array of regex patterns to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Represents optional fields for the RussiaPaymentOrder. + + + + + Payment amount, in kopecks (FTI’s Amount.) + Сумма платежа, в копейках + + + + + Payment name (purpose) + Наименование платежа (назначение) + + + + + Payee's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН получателя платежа + + + + + Payer's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН плательщика + + + + + Status compiler payment document + Статус составителя платежного документа + + + + + KPP of the payee (Tax Registration Code; Text, up to 9 characters.) + КПП получателя платежа + + + + + CBC + КБК + + + + + All-Russian classifier territories of municipal formations + Общероссийский классификатор территорий муниципальных образований + + + + + Basis of tax payment + Основание налогового платежа + + + + + Taxable period + Налоговый период + + + + + Document number + Номер документа + + + + + Document date + Дата документа + + + + + Payment type + Тип платежа + + + + + Payer's surname + Фамилия плательщика + + + + + Payer's name + Имя плательщика + + + + + Payer's patronymic + Отчество плательщика + + + + + Payer's address + Адрес плательщика + + + + + Personal account of a budget recipient + Лицевой счет бюджетного получателя + + + + + Payment document index + Индекс платежного документа + + + + + Personal account number in the personalized accounting system in the Pension Fund of the Russian Federation - SNILS + № лицевого счета в системе персонифицированного учета в ПФР - СНИЛС + + + + + Number of contract + Номер договора + + + + + Personal account number of the payer in the organization (in the accounting system of the PU) + Номер лицевого счета плательщика в организации (в системе учета ПУ) + + + + + Apartment number + Номер квартиры + + + + + Phone number + Номер телефона + + + + + DUL payer type + Вид ДУЛ плательщика + + + + + DUL number of the payer + Номер ДУЛ плательщика + + + + + FULL NAME. child / student + Ф.И.О. ребенка/учащегося + + + + + Date of birth + Дата рождения + + + + + Due date / Invoice date + Срок платежа/дата выставления счета + + + + + Payment period + Период оплаты + + + + + Payment type + Вид платежа + + + + + Service code / meter name + Код услуги/название прибора учета + + + + + Metering device number + Номер прибора учета + + + + + Meter reading + Показание прибора учета + + + + + Notification, accrual, account number + Номер извещения, начисления, счета + + + + + Date of notification / accrual / invoice / resolution (for traffic police) + Дата извещения/начисления/счета/постановления (для ГИБДД) + + + + + Institution number (educational, medical) + Номер учреждения (образовательного, медицинского) + + + + + Kindergarten / school class number + Номер группы детсада/класса школы + + + + + Full name of the teacher, specialist providing the service + ФИО преподавателя, специалиста, оказывающего услугу + + + + + Insurance / additional service amount / Penalty amount (in kopecks) + Сумма страховки/дополнительной услуги/Сумма пени (в копейках) + + + + + Resolution number (for traffic police) + Номер постановления (для ГИБДД) + + + + + Enforcement Proceedings Number + Номер исполнительного производства + + + + + Type of payment code (for example, for payments to Rosreestr) + Код вида платежа (например, для платежей в адрес Росреестра) + + + + + Unique accrual identifier + Уникальный идентификатор начисления + + + + + The technical code recommended by the service provider. Maybe used by the receiving organization to call the appropriate processing IT system. + Технический код, рекомендуемый для заполнения поставщиком услуг. Может использоваться принимающей организацией для вызова соответствующей обрабатывающей ИТ-системы. + + + + + (List of values of the technical code of the payment) + Перечень значений технического кода платежа + + + + + Mobile and landline telephone services + Мобильная связь и стационарный телефон + + + + + Utility services (Housing and Communal Services) + Коммунальные услуги (ЖКХ) + + + + + Traffic police, taxes, duties, and budget payments + ГИБДД, налоги, пошлины, бюджетные платежи + + + + + Security services + Охранные услуги + + + + + Services provided by the Federal Migration Service + Услуги, оказываемые УФМС + + + + + Pension Fund of the Russian Federation + Пенсионный фонд России (ПФР) + + + + + Loan repayment + Погашение кредитов + + + + + Educational institutions + Образовательные учреждения + + + + + Internet and TV services + Интернет и телевидение + + + + + Electronic money + Электронные деньги + + + + + Recreation and travel + Отдых и путешествия + + + + + Investments and insurance + Инвестиции и страхование + + + + + Sports and health + Спорт и здоровье + + + + + Charitable and public organizations + Благотворительные и общественные организации + + + + + Other services + Прочие услуги + + + + + Specifies character sets for encoding the RussiaPaymentOrder payload. + + + + + Windows-1251 encoding. + + + + + UTF-8 encoding. + + + + + KOI8-R encoding. + + + + + Represents errors that occur during the generation of a RussiaPaymentOrder payload. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + Generates a ShadowSocks proxy config payload. + + + + + Generates a ShadowSocks proxy config payload. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Optional tag line + + + + Generates a ShadowSocks proxy config payload with plugin options. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Plugin name + Plugin option + Optional tag line + + + + Generates a ShadowSocks proxy config payload with additional parameters. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Additional parameters + Optional tag line + + + + Converts the ShadowSocks config payload to a string. + + A string representation of the ShadowSocks config payload. + + + + Specifies the encryption methods used by ShadowSocks. + + + + + ChaCha20-IETF with Poly1305 AEAD encryption method + + + + + AES-128 Galois/Counter Mode (GCM) encryption method + + + + + AES-192 Galois/Counter Mode (GCM) encryption method + + + + + AES-256 Galois/Counter Mode (GCM) encryption method + + + + + Extended ChaCha20-IETF with Poly1305 AEAD encryption method (non-standard) + + + + + AES-128 Cipher Feedback (CFB) stream cipher + + + + + AES-192 Cipher Feedback (CFB) stream cipher + + + + + AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Counter (CTR) stream cipher + + + + + AES-192 Counter (CTR) stream cipher + + + + + AES-256 Counter (CTR) stream cipher + + + + + Camellia-128 Cipher Feedback (CFB) stream cipher + + + + + Camellia-192 Cipher Feedback (CFB) stream cipher + + + + + Camellia-256 Cipher Feedback (CFB) stream cipher + + + + + ChaCha20-IETF stream cipher + + + + + Alias for AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-192 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-256 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-128 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-192 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-256 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-128 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-192 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-256 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + ChaCha20 stream cipher (deprecated) + + + + + Blowfish Cipher Feedback (CFB) stream cipher (deprecated) + + + + + RC4-MD5 stream cipher (deprecated) + + + + + Salsa20 stream cipher (deprecated) + + + + + DES Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + IDEA Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + RC2 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + CAST5 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Salsa20 Counter (CTR) stream cipher (not standard, not in active use) + + + + + RC4 stream cipher (not standard, not in active use) + + + + + SEED Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Table-based encryption method (not standard, not in active use) + + + + + Represents errors that occur during the generation of a ShadowSocksConfig payload. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a Skype call payload + + + + + Initializes a new instance of the class. + + Skype username which will be called + + + + Converts the Skype call payload to a string. + + A string representation of the Skype call payload. + + + + Generates a Slovenian UPN QR payment payload. + + + + + Gets the version of the QR code, which is 15 for Slovenian UPN QR. + + + + + Gets the error correction level of the QR code, which is M for Slovenian UPN QR. + + + + + Gets the ECI mode of the QR code, which is Iso8859_2 for Slovenian UPN QR. + + + + + Limits the length of a string to a specified maximum length. + + The string to limit. + The maximum length of the string. + The limited string. + + + + Initializes a new instance of the class. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Initializes a new instance of the class with a deadline. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The deadline for the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Formats the amount as a string with leading zeros. + + The amount to format. + The formatted amount string. + + + + Calculates the checksum of the payment data. + + The checksum of the payment data. + + + + Returns the Slovenian UPN QR payment data as a string. + + The Slovenian UPN QR payment data as a string. + + + + Generates an SMS payload. + + + + + Creates an SMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates an SMS payload with text (subject). + + Receiver phone number. + Text of the SMS. + Encoding type. + + + + Returns the SMS payload as a string. + + The SMS payload as a string. + + + + Specifies the encoding type for the SMS payload. + + + + + Standard SMS encoding. + + + + + SMSTO encoding. + + + + + SMS encoding for iOS. + + + + + Generates the payload for a SwissQrCode. + + + + + + + + + + + Generates the payload for a SwissQrCode v2.0. (Don't forget to use ECC-Level=M, EncodingMode=UTF-8 and to set the Swiss flag icon to the final QR code.) + + IBAN object + Currency (either EUR or CHF) + Creditor (payee) information + Reference information + Additional information for the QR code + Debitor (payer) information + Amount + Requested date of debitor's payment + Ultimate creditor information (use only in consultation with your bank - for future use only!) + Optional command for alternative processing mode - line 1 + Optional command for alternative processing mode - line 2 + + + + Represents additional information for the SwissQrCode. + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Gets the unstructured message. + + + + + Gets the bill information. + + + + + Gets the trailer. + + + + + Represents exceptions specific to SwissQrCode additional information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents reference information for the SwissQrCode. + + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Gets the reference type. + + + + + Gets the reference text. + + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR". + + + + + QR Reference + + + + + Creditor Reference + + + + + No Reference + + + + + Represents the text type for the reference. + + + + + QR Reference Text + + + + + Creditor Reference ISO 11649 + + + + + Represents exceptions specific to SwissQrCode references. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents an IBAN with type information. + + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Gets a value indicating whether this is a QR-IBAN. + + + + + Converts the IBAN object to its string representation. + + A string representation of the IBAN. + + + + Represents the type of IBAN. + + + + + Regular IBAN + + + + + QR-IBAN + + + + + Represents exceptions specific to SwissQrCode IBANs. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents contact information. + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + Creates a contact with structured address. + + + + + Creates a contact with combined address. + + + + + Returns a string that represents the contact information in the format required for Swiss QR codes. + + A string representing the contact information. + + + + Defines the type of address. + + + + + Structured Address + + + + + Combined Address + + + + + Represents errors that occur during the creation of a Swiss QR code contact. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Returns a string that represents the entire Swiss QR code payload. + + A string representing the Swiss QR code payload. + + + + ISO 4217 currency codes. + + + + + Swiss Franc + + + + + Euro + + + + + Represents errors that occur during Swiss QR Code generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a URL payload for QR codes. + + + + + Initializes a new instance of the class. + + The target URL. If the protocol is not specified, the http protocol will be added. + + + + Returns the URL payload as a string. + + The URL payload as a string, ensuring it starts with "http://" if no protocol is specified. + + + + Generates a WhatsApp message payload for QR codes. + + + + + Initializes a new instance of the class with a receiver number and message. + + + Receiver phone number in full international format. + Omit any zeroes, brackets, or dashes. Use format: 1XXXXXXXXXX. Don't use: +001-(XXX)XXXXXXX. + + The message to be sent. + + + + Initializes a new instance of the class with a message only. + When scanned, the user is asked to choose a contact to receive the message. + + The message to be sent. + + + + Returns the WhatsApp message payload as a string. + + The WhatsApp message URL as a string. + + + + Generates a WiFi payload. Scanned by a QR Code scanner app, the device will connect to the WiFi. + + + + + Initializes a new instance of the class. + + SSID of the WiFi network + Password of the WiFi network + Authentication mode (WEP, WPA, WPA2) + Set flag if the WiFi network hides its SSID + Set flag if ssid/password is delivered as HEX string. Note: May not be supported on iOS devices. + + + + Returns the WiFi payload as a string. + + + + + Specifies the authentication mode for the WiFi network. + + + + + WEP authentication mode + + + + + WPA authentication mode + + + + + No password authentication mode + + + + + WPA2 authentication mode + + + + + Represents a QR code generator that outputs QR codes as PDF byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a PDF document with a black and white QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF document with specified colors and DPI. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The DPI (dots per inch) of the PDF document. + The JPEG quality parameter (obsolete, no longer used). + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF path with rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + PDF path commands as a string. + + + + Converts RGB byte array to PDF color space values (0.0 to 1.0). + + RGB color as byte array. + PDF color string (three decimal values). + + + + Converts an integer to a string using invariant culture for consistent PDF formatting. + + The integer value to convert. + String representation of the integer. + + + + Converts a float to a string using invariant culture for consistent PDF formatting. + + The float value to convert. + String representation of the float. + + + + Provides static methods for creating PDF byte array QR codes. + + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Represents a QR code generator that outputs QR codes as PNG byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PNG of the QR code, using 1-bit grayscale. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Colors may contain transparency. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Accepts 3-byte RGB colors for normal images and 4-byte RGBA-colors for transparent images. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a bitmap where each pixel is represented by a single bit, dark = 0 and light = 1. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the bitmap as a byte array. + + + + Writes the chunks that make up a PNG file. + + + See https://www.w3.org/TR/2003/REC-PNG-20031110 and https://www.ietf.org/rfc/rfc1950.txt. + + + + + Writes the IHDR chunk. This must be the first chunk in the file. + + + + + Writes the PLTE chunk, and also the tRNS chunk if necessary. Must come before the IDAT chunk. + + + + + Writes the IDAT chunk with the actual picture. + + + + + Writes the IEND chunk. This must be the last chunk in the file. + + + + + Provides static methods for creating PNG byte array QR codes. + + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Represents a QR code generator that outputs QR codes as PostScript code. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a black and white PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Cleans double values for international use/formats. + + The input double value. + Returns the cleaned string representation of the double value, with a maximum of 7 significant digits. + + + + Provides static methods for creating PostScript QR codes. + + + + + Creates a PostScript QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Represents a QR code generator that outputs QR codes as bitmap images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code with an optional icon in the center. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The background color of the icon. + Returns the QR code graphic as a bitmap. + + + + Creates a GraphicsPath containing rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + The number of pixels per module. + The offset to apply for quiet zones. + Whether quiet zones are being drawn. + A GraphicsPath containing all dark module rectangles. + + + + Creates a rounded rectangle path for drawing. + + The rectangle for which to create the rounded path. + The radius of the corners. + Returns the rounded rectangle path. + + + + Provides static methods for creating bitmap QR codes. + + + + + Creates a bitmap QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Represents the data structure of a QR code. + + + + + Gets or sets the module matrix of the QR code. + + + + + Initializes a new instance of the class with the specified version. + + The version of the QR code. + + + + Initializes a new instance of the class with the specified version and padding option. + + The version of the QR code. + Indicates whether padding should be added to the QR code. + + + + Initializes a new instance of the class with raw data from a specified path and compression mode. + + The path to the raw data file. + The compression mode used for the raw data. + + + + Initializes a new instance of the class with raw data and compression mode. + + The raw data of the QR code. + The compression mode used for the raw data. + + + + Gets the raw data of the QR code with the specified compression mode. + + The compression mode used for the raw data. + Returns the raw data of the QR code as a byte array. + + + + Saves the raw data of the QR code to a specified file with the specified compression mode. + + The path to the file where the raw data will be saved. + The compression mode used for the raw data. + + + + Gets the version of the QR code. + + + + + Gets the number of modules per side from the specified version. + + The version of the QR code (1 to 40, or -1 to -4 for Micro QR codes). + Returns the number of modules per side. + + + + Releases all resources used by the . + + + + + Specifies the compression mode used for the raw data. + + + + + No compression. + + + + + Deflate compression. + + + + + GZip compression. + + + + + Provides functionality to generate QR code data that can be used to create QR code images. + + + + + Initializes the QR code generator + + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the Micro QR code data which then can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Set fixed Micro QR code target version; must be -1 to -4 representing M1 to M4, or 0 for default. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Validates the specified error correction level. + Returns the provided level if it is valid, or the level M if the provided level is Default. + Throws an exception if an invalid level is provided. + + + + + Generates a QR code data structure using the provided BitArray, error correction level, and version. + The BitArray provided is assumed to already include the count, encoding mode, and/or ECI mode information. + + The BitArray containing the binary-encoded data to be included in the QR code. It should already contain the count, encoding mode, and/or ECI mode information. + The desired error correction level for the QR code. This impacts how much data can be recovered if damaged. + The version of the QR code, determining the size and complexity of the QR code data matrix. + A QRCodeData structure containing the full QR code matrix, which can be used for rendering or analysis. + + + + Generates a BitArray containing the format string for a QR code based on the error correction level and mask pattern version. + The format string includes the error correction level, mask pattern version, and error correction coding. + + The to write to, or null to create a new one. + The version number of the QR Code (1-40, or -1 to -4 for Micro QR codes). + The error correction level to be encoded in the format string. + The mask pattern version to be encoded in the format string. + A BitArray containing the 15-bit format string used in QR code generation. + + + + Encodes the version information of a QR code into a BitArray using error correction coding similar to format information encoding. + This method is used for QR codes version 7 and above. + + A to write the version string to. + The version number of the QR code (7-40). + A BitArray containing the encoded version information, which includes error correction bits. + + + + Calculates the Error Correction Codewords (ECC) for a segment of data using the provided ECC information. + This method applies polynomial division, using the message polynomial and a generator polynomial, + to compute the remainder which forms the ECC codewords. + + + + + Converts all polynomial item coefficients from their alpha exponent notation to decimal representation in place. + This conversion facilitates operations that require polynomial coefficients in their integer forms. + + + + + Determines the most efficient encoding mode for the given plain text based on its character content + and a flag indicating whether to force UTF-8 encoding. + + + + + Checks if a character falls within a specified range. + + + + + Converts a segment of a BitArray representing QR code data into a polynomial, + padding the final byte if necessary (for Micro QR variants like M1 or M3). + + The full bit array representing encoded QR code data. + Starting position in the bit array. + Total number of bits to convert into codewords. + A polynomial representing the message codewords. + + + + Calculates the generator polynomial used for creating error correction codewords. + + The number of error correction codewords to generate. + A polynomial that can be used to generate ECC codewords. + + + + Converts a segment of a BitArray into its decimal (integer) equivalent. + + The integer value that represents the specified binary data. + + + + Converts a decimal number to binary and stores the result in a BitArray starting from a specific index. + + The decimal number to convert to binary. + The number of bits to use for the binary representation (ensuring fixed-width like 8, 16, 32 bits). + The BitArray where the binary bits will be stored. + The starting index in the BitArray where the bits will be stored. + The next index in the BitArray after the last bit placed. + + + + Determines the number of bits used to indicate the count of characters in a segment, depending on the QR code version and the encoding mode. + + The version of the QR code, which influences the number of bits due to increasing data capacity. + The encoding mode (e.g., Numeric, Alphanumeric, Byte) used for the data segment. + The number of bits needed to represent the character count in the specified encoding mode and version. + + + + Calculates the data length based on the encoding mode, text content, and whether UTF-8 is forced. + + The encoding mode used for the QR code data. + The plain text input to be encoded. + A BitArray representing the binary data of the encoded text. + Flag to determine if UTF-8 encoding should be enforced. + The length of data in units appropriate to the encoding (bytes or characters). + + + + Checks if the given string can be accurately represented and retrieved in ISO-8859-1 encoding. + + + + + Converts plain text to a binary format suitable for QR code generation, based on the specified encoding mode. + + The text to be encoded. + The encoding mode. + The ECI mode specifying the character encoding to use. + Flag indicating whether to prepend a UTF-8 Byte Order Mark. + Flag indicating whether UTF-8 encoding is forced. + A BitArray containing the binary representation of the encoded data. + + + + Converts numeric plain text into a binary format specifically optimized for QR codes. + Numeric compression groups up to 3 digits into 10 bits, less for remaining digits if they do not complete a group of three. + + The numeric text to be encoded, which should only contain digit characters. + A BitArray representing the binary data of the encoded numeric text. + + + + Converts plain text into a binary format using byte mode encoding, which supports various character encodings through ECI (Extended Channel Interpretations). + + The text to be encoded. + The ECI mode that specifies the character encoding to use. + Specifies whether to include a Byte Order Mark (BOM) for UTF-8 encoding. + Forces UTF-8 encoding regardless of the text content's compatibility with ISO-8859-1. + A BitArray representing the binary data of the encoded text. + + The returned text is always encoded as ISO-8859-1 unless either the text contains a non-ISO-8859-1 character or + UTF-8 encoding is forced. This does not meet the QR Code standard, which requires the use of ECI to specify the encoding + when not ISO-8859-1. + + + + + Converts an array of bytes into a BitArray, considering the proper bit order within each byte. + Unlike the constructor of BitArray, this function preserves the MSB-to-LSB order within each byte. + + The byte array to convert into a BitArray. + The number of leading zeros to prepend to the resulting BitArray. + A BitArray representing the bits of the input byteArray, with optional leading zeros. + + + + Performs a bitwise XOR operation between two polynomials, commonly used in QR code error correction coding. + + The resultant polynomial after performing the XOR operation. + + + + Multiplies a generator polynomial by a leading term polynomial, reducing the result by a specified lower exponent, + used in constructing QR code error correction codewords. + + + + + Multiplies two polynomials, treating coefficients as exponents of a primitive element (alpha), which is common in error correction algorithms such as Reed-Solomon. + + The first polynomial to multiply. + The second polynomial to multiply. + A new polynomial which is the result of the multiplication of the two input polynomials. + + + + + + + Represents the alignment pattern used in QR codes, which helps ensure the code remains readable even if it is somewhat distorted. + Each QR code version has its own specific alignment pattern locations which this struct encapsulates. + + + + + The version of the QR code. Higher versions have more complex and numerous alignment patterns. + + + + + A list of points where alignment patterns are located within the QR code matrix. + Each point represents the center of an alignment pattern. + + + + + This class contains the alignment patterns used in QR codes. + + + + + A lookup table mapping QR code versions to their corresponding alignment patterns. + + + + + Retrieves the alignment pattern for a specific QR code version. + + + + + Creates a lookup table mapping QR code versions to their corresponding alignment patterns. + Alignment patterns are used in QR codes to help scanners accurately read the code at high speeds and when partially obscured. + This table provides the necessary patterns based on the QR code version which dictates the size and complexity of the QR code. + + A dictionary where keys are QR code version numbers and values are AlignmentPattern structures detailing the positions of alignment patterns for each version. + + + + Encodes alphanumeric characters (0–9, A–Z (uppercase), space, $, %, *, +, -, period, /, colon) into a binary format suitable for QR codes. + + + + + A dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + + + + Creates a dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + A dictionary mapping each supported alphanumeric character to its corresponding value. + + + + Checks if a character is present in the alphanumeric encoding table. + + + + + Converts alphanumeric plain text into a binary format optimized for QR codes. + Alphanumeric encoding packs characters into 11-bit groups for each pair of characters, + and 6 bits for a single remaining character if the total count is odd. + + The alphanumeric text to be encoded, which should only contain characters valid in QR alphanumeric mode. + A BitArray representing the binary data of the encoded alphanumeric text. + + + + Provides QR code capacity and error correction data for each version and encoding mode. + Used to determine how much data can be stored in a QR code and which version is required. + + + + + A list containing detailed capacity information for each version of QR codes. + The index in the capacity table corresponds to one less than the version number. + + + + + A table containing the error correction capacities and data codeword information for different combinations of QR code versions and error correction levels. + + + + + Retrieves the error correction information for a specific QR code version and error correction level. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + The desired error correction level (L, M, Q, or H). Do not supply . + + An object containing the total number of data codewords, ECC per block, + block group details, and other parameters required for encoding error correction data. + + + + + Retrieves the capacity information for a specific QR code version. + The returned structure contains detailed data capacity values for each error correction level (L, M, Q, H) + and encoding mode (Numeric, Alphanumeric, Byte, Kanji), indicating the maximum number of characters + that can be stored in a QR code of the specified version under each configuration. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + A object containing data capacity details for all error correction levels + and encoding modes for the specified version. + + + + + Retrieves the number of remainder bits required for a specific QR code version. + Remainder bits are added to the final bit stream to ensure proper alignment with byte boundaries, + as required by the QR code specification. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + The number of remainder bits (0 to 7) that must be appended to the encoded bit stream. + + + + + Determines the minimum QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Low, Medium, Quartile, High). + The minimum version of the QR code that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Determines the minimum Micro QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Default, Low, Medium, Quartile, High). + The minimum version of the QR code (-1 to -4) that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Generates a table containing the error correction capacities and data codeword information for different QR code versions and error correction levels. + This table is essential for determining how much data can be encoded in a QR code of a specific version and ECC level, + as well as how robust the QR code will be against distortions or obstructions. + + A list of ECCInfo structures, each representing the ECC data and capacities for different combinations of QR code versions and ECC levels. + + + + Generates a list containing detailed capacity information for various versions of QR codes. + This table includes capacities for different encoding modes (numeric, alphanumeric, byte, etc.) under each error correction level. + The capacity table is crucial for QR code generation, as it determines how much data each QR code version can store depending on the encoding mode and error correction level used. + The index in the capacity table corresponds to one less than the version number. + + + + + + + + Represents a block of codewords in a QR code. QR codes are divided into several blocks for error correction purposes. + Each block contains a series of data codewords followed by error correction codewords. + + + + + Initializes a new instance of the CodewordBlock struct with specified arrays of code words and error correction (ECC) words. + + The offset of the data codewords within the main BitArray. Data codewords carry the actual information. + The length in bits of the data codewords within the main BitArray. + The array of error correction codewords for this block. These codewords help recover the data if the QR code is damaged. + + + + Gets the offset of the data codewords in the BitArray. + + + + + Gets the length of the data codewords in the BitArray. + + + + + Gets the error correction codewords associated with this block. + + + + + Represents the error correction coding (ECC) information for a specific version and error correction level of a QR code. + + + + + Initializes a new instance of the ECCInfo struct with specified properties. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The number of error correction codewords per block. + The number of blocks in group 1. + The number of codewords in each block of group 1. + The number of blocks in group 2, if any. + The number of codewords in each block of group 2, if any. + + + + Initializes a new instance of the ECCInfo struct with specified properties for Micro QR codes. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The total number of data bits for this version and error correction level. + The number of error correction codewords per block. + + + + Gets the version number of the QR code. + + + + + Gets the error correction level of the QR code. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the number of error correction codewords per block. + + + + + Gets the number of blocks in group 1. + + + + + Gets the number of codewords in each block of group 1. + + + + + Gets the number of blocks in group 2, if any. + + + + + Gets the number of codewords in each block of group 2, if any. + + + + + Defines the levels of error correction available in QR codes. + Each level specifies the proportion of data that can be recovered if the QR code is partially obscured or damaged. + + + + + Default error correction level, which will select Level M (Medium) unless otherwise specified by the payload. + Level M allows approximately 15% of data to be recovered, offering a balance between data capacity and error recovery. + + + + + Level L: Low error correction (approximately 7% of data can be recovered). + This level allows the highest data density. + + + + + Level M: Medium error correction (approximately 15% of data can be recovered). + Offers a balance between data capacity and error recovery. + + + + + Level Q: Quartile error correction (approximately 25% of data can be recovered). + More robust error correction at the cost of reduced data capacity. + + + + + Level H: High error correction (approximately 30% of data can be recovered). + Provides the highest level of error recovery, ideal for environments with high risk of data loss. + + + + + Enumerates the Extended Channel Interpretation (ECI) modes used in QR codes to handle different character encoding standards. + ECI mode allows QR codes to efficiently encode data using character sets other than the default ISO-8859-1. + + + + + Default encoding mode (typically ISO-8859-1). Used when no ECI mode is explicitly specified. + This mode is assumed in basic QR codes where no extended character sets are needed. + + + + + Specifies the use of the ISO-8859-1 character set, covering most Western European languages. + This mode explicitly sets the encoding to ISO-8859-1, which includes characters used in languages such as English, French, German, and Spanish. + + + + + Specifies the use of the ISO-8859-2 character set, which is primarily used for Central and Eastern European languages. + This includes characters used in languages such as Polish, Czech, Slovak, Hungarian, and Romanian. + + + + + Specifies the use of UTF-8 encoding. + UTF-8 can encode any Unicode character and is useful for QR codes that need to support multi-language content. + + + + + Specifies the encoding modes for the characters in a QR code. + + + + + Numeric encoding mode, which is used to encode numeric data (digits 0-9). + Three characters are encoded into 10 bits. + + + + + Alphanumeric encoding mode, which is used to encode alphanumeric characters (0-9, A-Z, space, and some punctuation). + Two characters are encoded into 11 bits. + + + + + Byte encoding mode, primarily using the ISO-8859-1 character set. Each character is encoded into 8 bits. + When combined with ECI, it can be adapted to use other character sets. + + + + + Kanji encoding mode, which is used to encode characters from the Shift JIS character set, primarily for Japanese Kanji and Kana characters. + One character is encoded into 13 bits. This mode is not currently supported by QRCoder. + + + + + Extended Channel Interpretation (ECI) mode, which specifies a character set via an 8-bit number followed by one of the other encoding modes. + This allows adapting the byte encoding to accommodate various global text encodings. + + + + + Represents a Galois field of 256 elements (GF(256)) used in finite field arithmetic, + typically for error correction algorithms such as Reed-Solomon. + + Provides mappings between exponential and integer representations of field elements + using a primitive element (α). The field is constructed with respect to a generator + polynomial and used for efficient encoding and decoding operations. + + + + + + Retrieves the integer value from the Galois field that corresponds to a given exponent. + This is used in Reed-Solomon and other error correction calculations involving Galois fields. + + + + + Retrieves the exponent from the Galois field that corresponds to a given integer value. + Throws an exception if the integer value is zero, as zero does not have a logarithmic representation in the field. + + + + + Normalizes a Galois field exponent to ensure it remains within the bounds of the field's size. + This is particularly necessary when performing multiplications in the field which can result in exponents exceeding the field's maximum. + + + + + Struct that represents blocked modules using rectangles. + + + + + Initializes a new instance of the struct with a specified size. + + The size of the blocked modules matrix. + + + + Adds a blocked module at the specified coordinates. + + The x-coordinate of the module. + The y-coordinate of the module. + + + + Adds a blocked module defined by the specified rectangle. + + The rectangle that defines the blocked module. + + + + Checks if the specified coordinates are blocked. + + The x-coordinate to check. + The y-coordinate to check. + true if the coordinates are blocked; otherwise, false. + + + + Checks if the specified rectangle is blocked. + + The rectangle to check. + true if the rectangle is blocked; otherwise, false. + + + + Places the version information on the QR code matrix for versions 7 and higher. Version information + is encoded into two small rectangular areas near the bottom left and top right corners outside the timing patterns. + + The QR code data structure to modify. + The bit array containing the version information. + Indicates whether an offset should be applied to the version information placement. + + + + Places the format information on the QR code, encoding the error correction level and mask pattern used. + + The QR code data structure to modify. + The bit array containing the format information. + Specifies whether an offset should be applied. + + + + Applies the most effective mask pattern to the QR code based on minimizing the penalty score, + which evaluates how well the pattern will work for QR scanners. + + The QR code data structure where the mask will be applied. + The version of the QR code, which determines the size and complexity. + List of rectangles representing areas that must not be overwritten. + The error correction level of the QR code, which affects format string values. + The index of the selected mask pattern. + + + + Places data bits into the QR code's module matrix following a specific pattern that navigates around blocked modules. + + The QR code data structure where the data bits are to be placed. + The data bits to be placed within the QR code matrix. + A list of rectangles representing areas within the QR code matrix that should not be modified because they contain other necessary information like format and version info. + + + + Reserves separator areas around the positioning patterns of a QR code to ensure that these crucial areas remain unmodified during data placement. + + The version of the QR code, which determines the number of finder patterns. + The size of the QR code matrix. + A list of rectangles representing areas that must not be overwritten. + + + + Reserves areas for version information on QR codes that are version 7 or higher. Also reserves space for format information. + + The size of the QR code matrix. + The version number of the QR code, which determines the placement of version information. + A list of rectangles representing areas that must not be overwritten. + + + + Places a dark module on the QR code matrix as per QR code specification, which requires a dark module at a specific position for all QR codes. + + The QR code data structure where the dark module is to be placed. + The version number of the QR code, which determines the specific location of the dark module. + A list of rectangles representing areas that must not be overwritten, updated to include the dark module. + + + + Places finder patterns on the QR code. Finder patterns are critical for QR code scanners to correctly orient and recognize the QR code. + + The QR code data structure where the finder patterns will be placed. + A list of rectangles representing areas that must not be overwritten. This is updated with the areas occupied by the finder patterns. + + + + Places alignment patterns on the QR code matrix. Alignment patterns help ensure the scanner can correctly interpret the QR code at various scales and orientations. + + The QR code data structure where the alignment patterns will be placed. + A list of points representing the centers of where alignment patterns should be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by alignment patterns. + + + + Places timing patterns in the QR code. Timing patterns are alternating dark and light modules that help scanners determine the coordinates of modules within the QR code. + + The QR code data structure where the timing patterns will be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by timing patterns. + + + + Provides static methods and properties to handle mask patterns used in QR code generation. + Mask patterns are applied to QR codes to break up patterns in the data matrix that might confuse scanners. + + + + + A dictionary mapping each mask pattern index to its corresponding function that calculates whether a given pixel should be masked. + + + + + Mask pattern 1: (x + y) % 2 == 0 + Applies a checkerboard mask on the QR code. + + + + + Mask pattern 2: y % 2 == 0 + Applies a horizontal striping mask on the QR code. + + + + + Mask pattern 3: x % 3 == 0 + Applies a vertical striping mask on the QR code. + + + + + Mask pattern 4: (x + y) % 3 == 0 + Applies a diagonal striping mask on the QR code. + + + + + Mask pattern 5: ((y / 2) + (x / 3)) % 2 == 0 + Applies a complex pattern mask on the QR code, mixing horizontal and vertical rules. + + + + + Mask pattern 6: ((x * y) % 2 + (x * y) % 3) == 0 + Applies a mask based on the product of x and y coordinates modulo 2 and 3. + + + + + Mask pattern 7: (((x * y) % 2 + (x * y) % 3) % 2) == 0 + Applies a mask based on a more complex function involving the product of x and y coordinates. + + + + + Mask pattern 8: (((x + y) % 2) + ((x * y) % 3) % 2) == 0 + Combines rules of checkers and complex multiplicative masks. + + + + + Calculates a penalty score for a Micro QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Calculates a penalty score for a QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + The score is the sum of four penalty rules applied to the QR code. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Represents a 2D point with integer coordinates. + + + + + Gets the X-coordinate of the point. + + + + + Gets the Y-coordinate of the point. + + + + + Initializes a new instance of the struct with specified X and Y coordinates. + + The X-coordinate of the point. + The Y-coordinate of the point. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + True if the specified has the same X and Y coordinates as the current ; otherwise, false. + + If this method which implements is not implemented, comparisons used by methods such as + fall back to reflection, which causes heap allocations internally during the calls to . + + + + + + + + + + + Represents a polynomial, which is a sum of polynomial terms. + + + + + Initializes a new instance of the struct with a specified number of initial capacity for polynomial terms. + + The initial capacity of the polynomial items list. + + + + Adds a polynomial term to the polynomial. + + + + + Removes the polynomial term at the specified index. + + + + + Gets or sets a polynomial term at the specified index. + + + + + Gets the number of polynomial terms in the polynomial. + + + + + Removes all polynomial terms from the polynomial. + + + + + Clones the polynomial, creating a new instance with the same polynomial terms. + + + + + Sorts the collection of using a custom comparer function. + + + A function that compares two objects and returns an integer indicating their relative order: + less than zero if the first is less than the second, zero if they are equal, or greater than zero if the first is greater than the second. + + + + + Returns a string that represents the polynomial in standard algebraic notation. + Example output: "a^2*x^3 + a^5*x^1 + a^3*x^0", which represents the polynomial 2x³ + 5x + 3. + + + + + + + + Ensures that the polynomial has enough capacity to store the specified number of polynomial terms. + + + + + Rents memory for the polynomial terms from the shared memory pool. + + + + + Returns memory allocated for the polynomial terms back to the shared memory pool. + + + + + Returns an enumerator that iterates through the polynomial terms. + + + + + Value type enumerator for the struct. + + + + + Represents an individual term of a polynomial, consisting of a coefficient and an exponent. + For example, the term 3x² would be represented as a with a coefficient of 3 and an exponent of 2. + + + + + Initializes a new instance of the struct with the specified coefficient and exponent. + + The coefficient of the polynomial term. For example, in the term 3x², the coefficient is 3. + The exponent of the polynomial term. For example, in the term 3x², the exponent is 2. + + + + Gets the coefficient of the polynomial term. + + + + + Gets the exponent of the polynomial term. + + + + + Represents a rectangle defined by its top-left corner's coordinates, width, and height. + + + + + Gets the X-coordinate of the top-left corner of the rectangle. + + + + + Gets the Y-coordinate of the top-left corner of the rectangle. + + + + + Gets the width of the rectangle. + + + + + Gets the height of the rectangle. + + + + + Initializes a new instance of the struct with the specified top-left corner coordinates, width, and height. + + The X-coordinate of the top-left corner of the rectangle. + The Y-coordinate of the top-left corner of the rectangle. + The width of the rectangle. + The height of the rectangle. + + + + Represents version-specific information of a QR code. + + + + + Initializes a new instance of the struct with a specific version number and its details. + + The version number of the QR code. Each version has a different module configuration. + A list of detailed information related to error correction levels and capacity for each encoding mode. + + + + Gets the version number of the QR code. Each version number specifies a different size of the QR matrix. + + + + + Gets a list of details about the QR code version, including the error correction levels and encoding capacities. + + + + + Represents the detailed information about each error correction level and its corresponding capacities in different encoding modes for a specific version of a QR code. + + + + + Initializes a new instance of the struct, detailing the error correction level and the capacity for each encoding mode. + + The error correction level, which determines how much of the code can be restored if the QR code gets damaged. + A dictionary mapping each encoding mode to its capacity for the specific error correction level. + + + + Gets the error correction level of the QR code, influencing how robust the QR code is against errors and damage. + + + + + Gets a dictionary that contains the capacities of different encoding modes under the specified error correction level. + These capacities dictate how many characters can be encoded under each mode. + + + + + Represents a QR code generator that outputs QR codes as SVG images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a scalable QR code as an SVG string. + + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string. + + The pixel size each dark/light module is drawn. + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors, optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors and optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Determines if a module at (x,y) is blocked by the logo area defined by attr. + + + + + Calculates the logo's position and size within the QR code based on the specified percentage size. + + + + + Gets the transparency value (0-255) from a color string. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + The alpha/transparency value from 0 (fully transparent) to 255 (fully opaque). Returns 255 for colors without alpha channel. + + + + Determines if a color string represents a partially transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is transparent; otherwise false. + + + + Determines if a color string represents a fully transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is fully transparent; otherwise false. + + + + Converts a Color to a hex string in #RGB, #RRGGBB or #RRGGBBAA format; or 'transparent' for fully transparent colors. + + The color to convert. + A hex string representation of the color. + + + + Mode of sizing attribute on SVG root node + + + + + Specifies width and height attributes for SVG sizing + + + + + Width and height are not included within the SVG tag; viewBox is scaled to fit the container + + + + + Represents a logo graphic that can be rendered on a SvgQRCode + + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as Bitmap/rasterized graphic + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as SVG/vectorized graphic/string + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + If true, the logo will embedded as native svg instead of embedding it as image-tag + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as PNG + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Returns the raw logo's data + + + + + Defines, if the logo shall be natively embedded. + true=native svg embedding, false=embedding via image-tag + + + + + Returns the media type of the logo + + + + + + Returns the logo as data-uri + + + + + Returns how much of the QR code should be covered by the logo (in percent) + + + + + Returns if the background of the logo should be cleaned (no QR modules will be rendered behind the logo) + + + + + Media types for SvgLogos + + + + + Portable Network Graphics (PNG) image format + + + + + Scalable Vector Graphics (SVG) image format + + + + + Provides static methods for creating SVG QR codes. + + + + + Creates an SVG QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The pixel size each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HEX format (e.g., #000000). + The color of the light modules in HEX format (e.g., #ffffff). + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + diff --git a/packages/QRCoder.1.7.0/lib/netstandard1.3/QRCoder.dll b/packages/QRCoder.1.7.0/lib/netstandard1.3/QRCoder.dll new file mode 100644 index 0000000..c2fcff0 Binary files /dev/null and b/packages/QRCoder.1.7.0/lib/netstandard1.3/QRCoder.dll differ diff --git a/packages/QRCoder.1.7.0/lib/netstandard1.3/QRCoder.xml b/packages/QRCoder.1.7.0/lib/netstandard1.3/QRCoder.xml new file mode 100644 index 0000000..281f549 --- /dev/null +++ b/packages/QRCoder.1.7.0/lib/netstandard1.3/QRCoder.xml @@ -0,0 +1,4885 @@ + + + + QRCoder + + + + + Abstract base class for generating QR codes. + Derived classes typically render a QR code into a specific format (png, System.Drawing.Bitmap, PDF, etc). + + + + + Gets or sets the QRCodeData used to generate the QR code. + + + + + Initializes a new instance of the AbstractQRCode class. + + + + + Initializes a new instance of the AbstractQRCode class with the specified QRCodeData. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Sets the QRCodeData object that will be used to generate the QR code. + This method is useful for COM objects connections. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Disposes the QRCodeData object. + + + + + Represents an ASCII-style QR code generator that provides functionality to render QR codes as textual representations. + + + + + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + The QR code data generated by the . + + + + Returns a strings that contains the resulting QR code as textual representation. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + End of line separator. (Default: \n) + + + + + Returns an array of strings that contains each line of the resulting QR code as ASCII chars. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + + + + + Returns a strings that contains the resulting QR code as minified textual representation. + + Bool that defines if quiet zones around the QR code shall be drawn + If set to true, dark and light colors will be inverted + End of line separator. (Default: \n) + + + + + Provides static methods for generating ASCII-style QR codes. + + + + + Generates an ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Number of repeated characters per module. + String representing dark modules. + String representing light modules. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + ASCII representation of the QR code. + + + + Generates a small ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + Invert dark and light colors. + Minified ASCII representation of the QR code. + + + + Represents a QR code generator that outputs QR codes as bitmap byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGB byte array. + The color of the light modules as an RGB byte array. + Returns the QR code graphic as a bitmap byte array. + + + + Converts an integer to a 4 bytes and writes them to a byte array at given position + + The integer to convert. + Index of destinationArray where the converted bytes are written to + Destination byte array that receives the bytes + + + + Provides helper functions for creating bitmap byte array QR codes. + + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a bitmap byte array. + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Exception thrown when the given payload exceeds the maximum size of the QR code standard. + + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The fixed version of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Helper methods for . + + + + + Copies a specified number of elements from one to another starting at the specified offsets. + + The source from which elements will be copied. + The zero-based index in the source at which copying begins. + The destination to which elements will be copied. + The zero-based index in the destination at which storing begins. + The number of elements to copy. + The index in the destination immediately following the last copied element. + + + + Indicates whether the specified string is null, empty, or consists only of white-space characters. + + + if the is null, empty, or white space; otherwise, . + + + + + Converts a hex color string to a byte array. + + Color in HEX format like #ffffff. + Returns the color as a byte array. + + + + + + + Appends an integer value to the StringBuilder using invariant culture formatting. + + The StringBuilder to append to. + The integer value to append. + + + + Appends a float value to the StringBuilder using invariant culture formatting with G7 precision. + + The StringBuilder to append to. + The float value to append. + + + + Used to represent a string value for a value in an enum + + + + + Holds the alue in an enum + + + + + Init a StringValue Attribute + + + + + + Enumeration extension methods. + + + + + Will get the string value for a given enum's value + + + + + Provides utility methods for generating QR code payloads. + + + Contains classes and methods for generating payloads for QR codes. + + + + + Validates the structure and checksum of an IBAN. + + The IBAN to validate. + True if the IBAN is valid; otherwise, false. + + + + Validates the structure and checksum of a QR IBAN. + + The QR IBAN to validate. + True if the QR IBAN is valid; otherwise, false. + + + + Validates the structure of a BIC. + + The BIC to validate. + True if the BIC is valid; otherwise, false. + + + + Validates the structure of a BIC with optional requirement check. + + The BIC to validate. + Whether the BIC is required. If false, null/empty values are considered valid. + True if the BIC is valid; otherwise, false. + + + + Converts a string to a specified encoding. + + The string to convert. + The encoding to use. + The converted string. + + + + Escapes forbidden characters in a string. + + The input string. + Indicates whether to use a simple escape mode. + The escaped string. + + + + Validates a string using the Mod10 checksum algorithm. + + The string to validate. + True if the string is valid; otherwise, false. + + + + Checks if a string is in hexadecimal format. + + The input string. + True if the string is in hexadecimal format; otherwise, false. + + + + Represents a BezahlCode payload for QR codes. + + + + + Initializes a new instance of the class for contact data. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Reason (Verwendungszweck) + + + + Initializes a new instance of the class for non-SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Initializes a new instance of the class for SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Generic constructor. Please use specific (non-SEPA or SEPA) constructor. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + Only used for internal state handdling + + + + + + + ISO 4217 currency codes + + + + + United Arab Emirates Dirham + + + + + Afghan Afghani + + + + + Albanian Lek + + + + + Armenian Dram + + + + + Netherlands Antillean Guilder + + + + + Angolan Kwanza + + + + + Argentine Peso + + + + + Australian Dollar + + + + + Aruban Florin + + + + + Azerbaijani Manat + + + + + Bosnia and Herzegovina Convertible Mark + + + + + Barbados Dollar + + + + + Bangladeshi Taka + + + + + Bulgarian Lev + + + + + Bahraini Dinar + + + + + Burundian Franc + + + + + Bermudian Dollar + + + + + Brunei Dollar + + + + + Bolivian Boliviano + + + + + Bolivian Mvdol (funds code) + + + + + Brazilian Real + + + + + Bahamian Dollar + + + + + Bhutanese Ngultrum + + + + + Botswana Pula + + + + + Belarusian Ruble + + + + + Belize Dollar + + + + + Canadian Dollar + + + + + Congolese Franc + + + + + WIR Euro (complementary currency) + + + + + Swiss Franc + + + + + WIR Franc (complementary currency) + + + + + Unidad de Fomento (funds code) + + + + + Chilean Peso + + + + + Chinese Yuan + + + + + Colombian Peso + + + + + Unidad de Valor Real (UVR) (funds code) + + + + + Costa Rican Colón + + + + + Cuban Convertible Peso + + + + + Cuban Peso + + + + + Cape Verde Escudo + + + + + Czech Koruna + + + + + Djiboutian Franc + + + + + Danish Krone + + + + + Dominican Peso + + + + + Algerian Dinar + + + + + Egyptian Pound + + + + + Eritrean Nakfa + + + + + Ethiopian Birr + + + + + Euro + + + + + Fiji Dollar + + + + + Falkland Islands Pound + + + + + Pound Sterling + + + + + Georgian Lari + + + + + Ghanaian Cedi + + + + + Gibraltar Pound + + + + + Gambian Dalasi + + + + + Guinean Franc + + + + + Guatemalan Quetzal + + + + + Guyanese Dollar + + + + + Hong Kong Dollar + + + + + Honduran Lempira + + + + + Croatian Kuna + + + + + Haitian Gourde + + + + + Hungarian Forint + + + + + Indonesian Rupiah + + + + + Israeli New Shekel + + + + + Indian Rupee + + + + + Iraqi Dinar + + + + + Iranian Rial + + + + + Icelandic Króna + + + + + Jamaican Dollar + + + + + Jordanian Dinar + + + + + Japanese Yen + + + + + Kenyan Shilling + + + + + Kyrgyzstani Som + + + + + Cambodian Riel + + + + + Comoro Franc + + + + + North Korean Won + + + + + South Korean Won + + + + + Kuwaiti Dinar + + + + + Cayman Islands Dollar + + + + + Kazakhstani Tenge + + + + + Lao Kip + + + + + Lebanese Pound + + + + + Sri Lankan Rupee + + + + + Liberian Dollar + + + + + Lesotho Loti + + + + + Libyan Dinar + + + + + Moroccan Dirham + + + + + Moldovan Leu + + + + + Malagasy Ariary + + + + + Macedonian Denar + + + + + Myanmar Kyat + + + + + Mongolian Tögrög + + + + + Macanese Pataca + + + + + Mauritanian Ouguiya + + + + + Mauritian Rupee + + + + + Maldivian Rufiyaa + + + + + Malawian Kwacha + + + + + Mexican Peso + + + + + Mexican Unidad de Inversión (UDI) (funds code) + + + + + Malaysian Ringgit + + + + + Mozambican Metical + + + + + Namibian Dollar + + + + + Nigerian Naira + + + + + Nicaraguan Córdoba + + + + + Norwegian Krone + + + + + Nepalese Rupee + + + + + New Zealand Dollar + + + + + Omani Rial + + + + + Panamanian Balboa + + + + + Peruvian Sol + + + + + Papua New Guinean Kina + + + + + Philippine Peso + + + + + Pakistani Rupee + + + + + Polish Złoty + + + + + Paraguayan Guaraní + + + + + Qatari Riyal + + + + + Romanian Leu + + + + + Serbian Dinar + + + + + Russian Ruble + + + + + Rwandan Franc + + + + + Saudi Riyal + + + + + Solomon Islands Dollar + + + + + Seychelles Rupee + + + + + Sudanese Pound + + + + + Swedish Krona + + + + + Singapore Dollar + + + + + Saint Helena Pound + + + + + Sierra Leonean Leone + + + + + Somali Shilling + + + + + Surinamese Dollar + + + + + South Sudanese Pound + + + + + São Tomé and Príncipe Dobra + + + + + Salvadoran Colón + + + + + Syrian Pound + + + + + Swazi Lilangeni + + + + + Thai Baht + + + + + Tajikistani Somoni + + + + + Turkmenistan Manat + + + + + Tunisian Dinar + + + + + Tongan Paʻanga + + + + + Turkish Lira + + + + + Trinidad and Tobago Dollar + + + + + New Taiwan Dollar + + + + + Tanzanian Shilling + + + + + Ukrainian Hryvnia + + + + + Ugandan Shilling + + + + + United States Dollar + + + + + United States Dollar (Next day) (funds code) + + + + + Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code) + + + + + Uruguayan Peso + + + + + Uzbekistan Som + + + + + Venezuelan Bolívar + + + + + Vietnamese Đồng + + + + + Vanuatu Vatu + + + + + Samoan Tālā + + + + + CFA Franc BEAC + + + + + Silver (one troy ounce) + + + + + Gold (one troy ounce) + + + + + Bond Markets Unit European Composite Unit (EURCO) + + + + + Bond Markets Unit European Monetary Unit (E.M.U.-6) + + + + + Bond Markets Unit European Unit of Account 9 (E.U.A.-9) + + + + + Bond Markets Unit European Unit of Account 17 (E.U.A.-17) + + + + + East Caribbean Dollar + + + + + Special Drawing Rights + + + + + CFA Franc BCEAO + + + + + Palladium (one troy ounce) + + + + + CFP Franc + + + + + Platinum (one troy ounce) + + + + + SUCRE + + + + + Codes specifically reserved for testing purposes + + + + + ADB Unit of Account + + + + + The code assigned for transactions where no currency is involved + + + + + Yemeni Rial + + + + + South African Rand + + + + + Zambian Kwacha + + + + + Zimbabwean Dollar + + + + + Operation modes of the BezahlCode + + + + + Single payment (Überweisung) + + + + + Single SEPA payment (SEPA-Überweisung) + + + + + Single debit (Lastschrift) + + + + + Single SEPA debit (SEPA-Lastschrift) + + + + + Periodic payment (Dauerauftrag) + + + + + Periodic SEPA payment (SEPA-Dauerauftrag) + + + + + Contact data + + + + + Contact data V2 + + + + + Exception class for BezahlCode errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for Bitcoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin address of the payment receiver. + The amount of Bitcoin to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin Cash payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin Cash payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin Cash address of the payment receiver. + The amount of Bitcoin Cash to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin-like cryptocurrency payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin-like cryptocurrency payment payload. QR Codes with this payload can open a payment app. + + The type of Bitcoin-like cryptocurrency. + The cryptocurrency address of the payment receiver. + The amount of coins to transfer. + A reference label. + A reference text or message. + + + + Returns a string representation of the Bitcoin-like cryptocurrency address payload. + + A string representation of the cryptocurrency address payload. + + + + Enumerates Bitcoin-like cryptocurrencies. + + + + + Bitcoin. + + + + + Bitcoin Cash. + + + + + Litecoin. + + + + + Generates a bookmark payload. When scanned by a QR code reader, this creates a browser bookmark. + + + + + Initializes a new instance of the class. + + The URL of the bookmark. + The title of the bookmark. + + + + Returns a string representation of the bookmark payload. + + A string representation of the bookmark payload in the MEBKM format. + + + + Generates a calendar entry/event payload. + + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time (including UTC offset) of the event. + End time (including UTC offset) of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time of the event. + End time of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Returns a string representation of the calendar event payload. + + A string representation of the calendar event in the VEVENT format. + + + + Specifies the encoding type for the calendar event. + + + + + iCalendar complete encoding. + + + + + Universal encoding. + + + + + Generates a vCard or meCard contact dataset. + + + + + Initializes a new instance of the class. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + + + + Initializes a new instance of the class with address type support. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + The address type (Home, Work, HomePreferred, or WorkPreferred). + + + + Returns a string representation of the contact data payload. + + A string representation of the contact data in the specified format. + + + + Gets the address type string for vCard 2.1 format. + + + + + Gets the address type string for vCard 3.0 format. + + + + + Gets the address type string for vCard 4.0 format. + + + + + Defines the type of address (home or work). + + + + + Home address. + + + + + Work address. + + + + + Home address marked as preferred (default for backwards compatibility). + + + + + Work address marked as preferred. + + + + + Possible output types. Either vCard 2.1, vCard 3.0, vCard 4.0 or MeCard. + + + + + MeCard output type. + + + + + vCard 2.1 output type. + + + + + vCard 3.0 output type. + + + + + vCard 4.0 output type. + + + + + Define the address format. + Default: European format, ([Street] [House Number] and [Postal Code] [City]) + Reversed: North American and others format ([House Number] [Street] and [City] [Postal Code]) + + + + + Default address order format (European format). + + + + + Reversed address order format (North American and others format). + + + + + Generates a geo location payload. Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + + + + Initializes a new instance of the class. + Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + Latitude with . as splitter. + Longitude with . as splitter. + Encoding type - GEO or GoogleMaps. + + + + Returns a string representation of the geolocation payload. + + A string representation of the geolocation payload in the specified encoding format. + + + + Defines the encoding types for geolocation payloads. + + + + + GEO encoding type. + + + + + Google Maps encoding type. + + + + + Generates the payload for a Girocode (QR-Code with credit transfer information). + + + + + Gets the ECC level required for Girocode, which is always set to M. + + + + + Initializes a new instance of the class, which contains a payload for a Girocode (QR-Code with credit transfer information). + + Account number of the Beneficiary. Only IBAN is allowed. + BIC of the Beneficiary Bank. + Name of the Beneficiary. + Amount of the Credit Transfer in Euro. (Amount must be more than 0.01 and less than 999999999.99) + Remittance Information (Purpose-/reference text). (optional) + Type of remittance information. Either structured (e.g. ISO 11649 RF Creditor Reference) and max. 35 chars or unstructured and max. 140 chars. + Purpose of the Credit Transfer (optional) + Beneficiary to originator information. (optional) + Girocode version. Either 001 or 002. Default: 001. + Encoding of the Girocode payload. Default: ISO-8859-1 + Thrown when the input values are not valid according to the Girocode specification. + + + + Returns the Girocode payload as a string. + + The Girocode payload as a string. + + + + Defines the Girocode version. + + + + + Girocode version 1. + + + + + Girocode version 2. + + + + + Defines the type of remittance information. + + + + + Structured remittance information. + + + + + Unstructured remittance information. + + + + + Defines the encoding types for Girocode payloads. + + + + + UTF-8 encoding. + + + + + ISO-8859-1 encoding. + + + + + ISO-8859-2 encoding. + + + + + ISO-8859-4 encoding. + + + + + ISO-8859-5 encoding. + + + + + ISO-8859-7 encoding. + + + + + ISO-8859-10 encoding. + + + + + ISO-8859-15 encoding. + + + + + Represents errors that occur during Girocode generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a payload for Litecoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Litecoin payment payload. QR Codes with this payload can open a payment app. + + The Litecoin address of the payment receiver. + The amount of Litecoin to transfer. + A reference label. + A reference text or message. + + + + Generates an email payload that can be used to create a QR code for sending an email. + + + + + Creates an email payload with subject and message/text. + + Receiver's email address. + Subject line of the email. + Message content of the email. + Payload encoding type. Choose dependent on your QR Code scanner app. + + + + Returns the email payload as a string. + + The email payload as a string. + + + + Defines the encoding types for the email payload. + + + + + Uses the "mailto:" URI scheme. + + + + + Uses the "MATMSG:" format. + + + + + Uses the "SMTP:" format. + + + + + Generates a MMS (Multimedia Messaging Service) payload for QR codes. + + + + + Creates a MMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates a MMS payload with text (subject). + + Receiver phone number. + Text of the MMS. + Encoding type. + + + + Returns the MMS payload as a string. + + The MMS payload as a string. + + + + Defines the encoding types for the MMS payload. + + + + + Uses the "mms:" URI scheme. + + + + + Uses the "mmsto:" URI scheme. + + + + + Generates a Monero transaction payload for QR codes. + + + + + Creates a Monero transaction payload. + + Receiver's Monero address. + Amount to transfer. + Payment ID. + Recipient's name. + Reference text / payment description. + Thrown when the address is null or empty, or when the txAmount is less than or equal to 0. + + + + Returns the Monero transaction payload as a URI string. + + The Monero transaction payload as a URI string. + + + + Exception class for Monero transaction errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for One Time Password (OTP) used in applications like Google Authenticator. + + + + + The type of OTP (TOTP or HOTP). + + + + + The secret key used for OTP generation. + + + + + The hashing algorithm used for OTP (SHA1, SHA256, SHA512). + + + + + Obsolete. Use instead. + + + + + The issuer of the OTP (usually the service or company name). + + + + + The label for the OTP (usually the user's email or username). + + + + + The number of digits in the OTP (default is 6). + + + + + The counter value for HOTP (only used if Type is HOTP). + + + + + The period in seconds for TOTP (default is 30). + + + + + Enum for OTP types. + + + + + Time-based One-Time Password (TOTP) + + + + + HMAC-based One-Time Password (HOTP) + + + + + Enum for hashing algorithms used in OTP. + + + + + SHA-1 hashing algorithm + + + + + SHA-256 hashing algorithm + + + + + SHA-512 hashing algorithm + + + + + Obsolete. Use instead. + + + + + SHA-1 hashing algorithm (Obsolete) + + + + + SHA-256 hashing algorithm (Obsolete) + + + + + SHA-512 hashing algorithm (Obsolete) + + + + + Returns the OTP payload as a string. + + The OTP payload as a string. + + + + Returns the HOTP payload as a string. + + The HOTP payload as a string. + + + + Returns the TOTP payload as a string. + + The TOTP payload as a string. + + + + Processes the common fields for both TOTP and HOTP. + + StringBuilder to append the common fields. + + + + Represents the base class for all QR code payloads. + + + + + Gets the version of the QR code payload. + + + + + Gets the error correction level of the QR code payload. + + + + + Gets the ECI mode of the QR code payload. + + + + + Returns a string representation of the QR code payload. + + A string representation of the QR code payload. + + + + Generates a phone call payload. + + + + + Initializes a new instance of the class. + + Phone number of the receiver. + + + + Returns the phone call payload as a string. + + The phone call payload as a string. + + + + Generates a payload for a Russian payment order. + + + + + Initializes a new instance of the class. + + Name of the payee (Наименование получателя платежа) + Beneficiary account number (Номер счета получателя платежа) + Name of the beneficiary's bank (Наименование банка получателя платежа) + BIC (БИК) + Box number / account payee's bank (Номер кор./сч. банка получателя платежа) + An (optional) object of additional fields + Type of encoding (default UTF-8) + + + + Returns the payload as a string. + + ⚠ Attention: If CharacterSets was set to windows-1251 or koi8-r you should use ToBytes() instead of ToString() and pass the bytes to CreateQrCode()! + The payload as a string. + + + + Returns the payload as a byte array. + + Should be used if CharacterSets equals windows-1251 or koi8-r. + The payload as a byte array. + + + + Determines a valid separator + + + + + + Takes all optional fields that are not null and returns their string represantion + + A List of strings + + + + Takes all mandatory fields that are not null and returns their string represantion + + A List of strings + + + + Validates a string against a given Regex pattern. Returns input if it matches the Regex expression (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + A regex pattern to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Validates a string against one or more given Regex patterns. Returns input if it matches all regex expressions (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + An array of regex patterns to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Represents optional fields for the RussiaPaymentOrder. + + + + + Payment amount, in kopecks (FTI’s Amount.) + Сумма платежа, в копейках + + + + + Payment name (purpose) + Наименование платежа (назначение) + + + + + Payee's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН получателя платежа + + + + + Payer's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН плательщика + + + + + Status compiler payment document + Статус составителя платежного документа + + + + + KPP of the payee (Tax Registration Code; Text, up to 9 characters.) + КПП получателя платежа + + + + + CBC + КБК + + + + + All-Russian classifier territories of municipal formations + Общероссийский классификатор территорий муниципальных образований + + + + + Basis of tax payment + Основание налогового платежа + + + + + Taxable period + Налоговый период + + + + + Document number + Номер документа + + + + + Document date + Дата документа + + + + + Payment type + Тип платежа + + + + + Payer's surname + Фамилия плательщика + + + + + Payer's name + Имя плательщика + + + + + Payer's patronymic + Отчество плательщика + + + + + Payer's address + Адрес плательщика + + + + + Personal account of a budget recipient + Лицевой счет бюджетного получателя + + + + + Payment document index + Индекс платежного документа + + + + + Personal account number in the personalized accounting system in the Pension Fund of the Russian Federation - SNILS + № лицевого счета в системе персонифицированного учета в ПФР - СНИЛС + + + + + Number of contract + Номер договора + + + + + Personal account number of the payer in the organization (in the accounting system of the PU) + Номер лицевого счета плательщика в организации (в системе учета ПУ) + + + + + Apartment number + Номер квартиры + + + + + Phone number + Номер телефона + + + + + DUL payer type + Вид ДУЛ плательщика + + + + + DUL number of the payer + Номер ДУЛ плательщика + + + + + FULL NAME. child / student + Ф.И.О. ребенка/учащегося + + + + + Date of birth + Дата рождения + + + + + Due date / Invoice date + Срок платежа/дата выставления счета + + + + + Payment period + Период оплаты + + + + + Payment type + Вид платежа + + + + + Service code / meter name + Код услуги/название прибора учета + + + + + Metering device number + Номер прибора учета + + + + + Meter reading + Показание прибора учета + + + + + Notification, accrual, account number + Номер извещения, начисления, счета + + + + + Date of notification / accrual / invoice / resolution (for traffic police) + Дата извещения/начисления/счета/постановления (для ГИБДД) + + + + + Institution number (educational, medical) + Номер учреждения (образовательного, медицинского) + + + + + Kindergarten / school class number + Номер группы детсада/класса школы + + + + + Full name of the teacher, specialist providing the service + ФИО преподавателя, специалиста, оказывающего услугу + + + + + Insurance / additional service amount / Penalty amount (in kopecks) + Сумма страховки/дополнительной услуги/Сумма пени (в копейках) + + + + + Resolution number (for traffic police) + Номер постановления (для ГИБДД) + + + + + Enforcement Proceedings Number + Номер исполнительного производства + + + + + Type of payment code (for example, for payments to Rosreestr) + Код вида платежа (например, для платежей в адрес Росреестра) + + + + + Unique accrual identifier + Уникальный идентификатор начисления + + + + + The technical code recommended by the service provider. Maybe used by the receiving organization to call the appropriate processing IT system. + Технический код, рекомендуемый для заполнения поставщиком услуг. Может использоваться принимающей организацией для вызова соответствующей обрабатывающей ИТ-системы. + + + + + (List of values of the technical code of the payment) + Перечень значений технического кода платежа + + + + + Mobile and landline telephone services + Мобильная связь и стационарный телефон + + + + + Utility services (Housing and Communal Services) + Коммунальные услуги (ЖКХ) + + + + + Traffic police, taxes, duties, and budget payments + ГИБДД, налоги, пошлины, бюджетные платежи + + + + + Security services + Охранные услуги + + + + + Services provided by the Federal Migration Service + Услуги, оказываемые УФМС + + + + + Pension Fund of the Russian Federation + Пенсионный фонд России (ПФР) + + + + + Loan repayment + Погашение кредитов + + + + + Educational institutions + Образовательные учреждения + + + + + Internet and TV services + Интернет и телевидение + + + + + Electronic money + Электронные деньги + + + + + Recreation and travel + Отдых и путешествия + + + + + Investments and insurance + Инвестиции и страхование + + + + + Sports and health + Спорт и здоровье + + + + + Charitable and public organizations + Благотворительные и общественные организации + + + + + Other services + Прочие услуги + + + + + Specifies character sets for encoding the RussiaPaymentOrder payload. + + + + + Windows-1251 encoding. + + + + + UTF-8 encoding. + + + + + KOI8-R encoding. + + + + + Represents errors that occur during the generation of a RussiaPaymentOrder payload. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + Generates a ShadowSocks proxy config payload. + + + + + Generates a ShadowSocks proxy config payload. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Optional tag line + + + + Generates a ShadowSocks proxy config payload with plugin options. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Plugin name + Plugin option + Optional tag line + + + + Generates a ShadowSocks proxy config payload with additional parameters. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Additional parameters + Optional tag line + + + + Converts the ShadowSocks config payload to a string. + + A string representation of the ShadowSocks config payload. + + + + Specifies the encryption methods used by ShadowSocks. + + + + + ChaCha20-IETF with Poly1305 AEAD encryption method + + + + + AES-128 Galois/Counter Mode (GCM) encryption method + + + + + AES-192 Galois/Counter Mode (GCM) encryption method + + + + + AES-256 Galois/Counter Mode (GCM) encryption method + + + + + Extended ChaCha20-IETF with Poly1305 AEAD encryption method (non-standard) + + + + + AES-128 Cipher Feedback (CFB) stream cipher + + + + + AES-192 Cipher Feedback (CFB) stream cipher + + + + + AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Counter (CTR) stream cipher + + + + + AES-192 Counter (CTR) stream cipher + + + + + AES-256 Counter (CTR) stream cipher + + + + + Camellia-128 Cipher Feedback (CFB) stream cipher + + + + + Camellia-192 Cipher Feedback (CFB) stream cipher + + + + + Camellia-256 Cipher Feedback (CFB) stream cipher + + + + + ChaCha20-IETF stream cipher + + + + + Alias for AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-192 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-256 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-128 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-192 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-256 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-128 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-192 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-256 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + ChaCha20 stream cipher (deprecated) + + + + + Blowfish Cipher Feedback (CFB) stream cipher (deprecated) + + + + + RC4-MD5 stream cipher (deprecated) + + + + + Salsa20 stream cipher (deprecated) + + + + + DES Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + IDEA Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + RC2 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + CAST5 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Salsa20 Counter (CTR) stream cipher (not standard, not in active use) + + + + + RC4 stream cipher (not standard, not in active use) + + + + + SEED Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Table-based encryption method (not standard, not in active use) + + + + + Represents errors that occur during the generation of a ShadowSocksConfig payload. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a Skype call payload + + + + + Initializes a new instance of the class. + + Skype username which will be called + + + + Converts the Skype call payload to a string. + + A string representation of the Skype call payload. + + + + Generates a Slovenian UPN QR payment payload. + + + + + Gets the version of the QR code, which is 15 for Slovenian UPN QR. + + + + + Gets the error correction level of the QR code, which is M for Slovenian UPN QR. + + + + + Gets the ECI mode of the QR code, which is Iso8859_2 for Slovenian UPN QR. + + + + + Limits the length of a string to a specified maximum length. + + The string to limit. + The maximum length of the string. + The limited string. + + + + Initializes a new instance of the class. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Initializes a new instance of the class with a deadline. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The deadline for the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Formats the amount as a string with leading zeros. + + The amount to format. + The formatted amount string. + + + + Calculates the checksum of the payment data. + + The checksum of the payment data. + + + + Returns the Slovenian UPN QR payment data as a string. + + The Slovenian UPN QR payment data as a string. + + + + Generates an SMS payload. + + + + + Creates an SMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates an SMS payload with text (subject). + + Receiver phone number. + Text of the SMS. + Encoding type. + + + + Returns the SMS payload as a string. + + The SMS payload as a string. + + + + Specifies the encoding type for the SMS payload. + + + + + Standard SMS encoding. + + + + + SMSTO encoding. + + + + + SMS encoding for iOS. + + + + + Generates the payload for a SwissQrCode. + + + + + + + + + + + Generates the payload for a SwissQrCode v2.0. (Don't forget to use ECC-Level=M, EncodingMode=UTF-8 and to set the Swiss flag icon to the final QR code.) + + IBAN object + Currency (either EUR or CHF) + Creditor (payee) information + Reference information + Additional information for the QR code + Debitor (payer) information + Amount + Requested date of debitor's payment + Ultimate creditor information (use only in consultation with your bank - for future use only!) + Optional command for alternative processing mode - line 1 + Optional command for alternative processing mode - line 2 + + + + Represents additional information for the SwissQrCode. + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Gets the unstructured message. + + + + + Gets the bill information. + + + + + Gets the trailer. + + + + + Represents exceptions specific to SwissQrCode additional information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents reference information for the SwissQrCode. + + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Gets the reference type. + + + + + Gets the reference text. + + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR". + + + + + QR Reference + + + + + Creditor Reference + + + + + No Reference + + + + + Represents the text type for the reference. + + + + + QR Reference Text + + + + + Creditor Reference ISO 11649 + + + + + Represents exceptions specific to SwissQrCode references. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents an IBAN with type information. + + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Gets a value indicating whether this is a QR-IBAN. + + + + + Converts the IBAN object to its string representation. + + A string representation of the IBAN. + + + + Represents the type of IBAN. + + + + + Regular IBAN + + + + + QR-IBAN + + + + + Represents exceptions specific to SwissQrCode IBANs. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents contact information. + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + Creates a contact with structured address. + + + + + Creates a contact with combined address. + + + + + Returns a string that represents the contact information in the format required for Swiss QR codes. + + A string representing the contact information. + + + + Defines the type of address. + + + + + Structured Address + + + + + Combined Address + + + + + Represents errors that occur during the creation of a Swiss QR code contact. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Returns a string that represents the entire Swiss QR code payload. + + A string representing the Swiss QR code payload. + + + + ISO 4217 currency codes. + + + + + Swiss Franc + + + + + Euro + + + + + Represents errors that occur during Swiss QR Code generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a URL payload for QR codes. + + + + + Initializes a new instance of the class. + + The target URL. If the protocol is not specified, the http protocol will be added. + + + + Returns the URL payload as a string. + + The URL payload as a string, ensuring it starts with "http://" if no protocol is specified. + + + + Generates a WhatsApp message payload for QR codes. + + + + + Initializes a new instance of the class with a receiver number and message. + + + Receiver phone number in full international format. + Omit any zeroes, brackets, or dashes. Use format: 1XXXXXXXXXX. Don't use: +001-(XXX)XXXXXXX. + + The message to be sent. + + + + Initializes a new instance of the class with a message only. + When scanned, the user is asked to choose a contact to receive the message. + + The message to be sent. + + + + Returns the WhatsApp message payload as a string. + + The WhatsApp message URL as a string. + + + + Generates a WiFi payload. Scanned by a QR Code scanner app, the device will connect to the WiFi. + + + + + Initializes a new instance of the class. + + SSID of the WiFi network + Password of the WiFi network + Authentication mode (WEP, WPA, WPA2) + Set flag if the WiFi network hides its SSID + Set flag if ssid/password is delivered as HEX string. Note: May not be supported on iOS devices. + + + + Returns the WiFi payload as a string. + + + + + Specifies the authentication mode for the WiFi network. + + + + + WEP authentication mode + + + + + WPA authentication mode + + + + + No password authentication mode + + + + + WPA2 authentication mode + + + + + Represents a QR code generator that outputs QR codes as PDF byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a PDF document with a black and white QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF document with specified colors and DPI. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The DPI (dots per inch) of the PDF document. + The JPEG quality parameter (obsolete, no longer used). + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF path with rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + PDF path commands as a string. + + + + Converts RGB byte array to PDF color space values (0.0 to 1.0). + + RGB color as byte array. + PDF color string (three decimal values). + + + + Converts an integer to a string using invariant culture for consistent PDF formatting. + + The integer value to convert. + String representation of the integer. + + + + Converts a float to a string using invariant culture for consistent PDF formatting. + + The float value to convert. + String representation of the float. + + + + Provides static methods for creating PDF byte array QR codes. + + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Represents a QR code generator that outputs QR codes as PNG byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PNG of the QR code, using 1-bit grayscale. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Accepts 3-byte RGB colors for normal images and 4-byte RGBA-colors for transparent images. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a bitmap where each pixel is represented by a single bit, dark = 0 and light = 1. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the bitmap as a byte array. + + + + Writes the chunks that make up a PNG file. + + + See https://www.w3.org/TR/2003/REC-PNG-20031110 and https://www.ietf.org/rfc/rfc1950.txt. + + + + + Writes the IHDR chunk. This must be the first chunk in the file. + + + + + Writes the PLTE chunk, and also the tRNS chunk if necessary. Must come before the IDAT chunk. + + + + + Writes the IDAT chunk with the actual picture. + + + + + Writes the IEND chunk. This must be the last chunk in the file. + + + + + Provides static methods for creating PNG byte array QR codes. + + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Represents the data structure of a QR code. + + + + + Gets or sets the module matrix of the QR code. + + + + + Initializes a new instance of the class with the specified version. + + The version of the QR code. + + + + Initializes a new instance of the class with the specified version and padding option. + + The version of the QR code. + Indicates whether padding should be added to the QR code. + + + + Initializes a new instance of the class with raw data from a specified path and compression mode. + + The path to the raw data file. + The compression mode used for the raw data. + + + + Initializes a new instance of the class with raw data and compression mode. + + The raw data of the QR code. + The compression mode used for the raw data. + + + + Gets the raw data of the QR code with the specified compression mode. + + The compression mode used for the raw data. + Returns the raw data of the QR code as a byte array. + + + + Saves the raw data of the QR code to a specified file with the specified compression mode. + + The path to the file where the raw data will be saved. + The compression mode used for the raw data. + + + + Gets the version of the QR code. + + + + + Gets the number of modules per side from the specified version. + + The version of the QR code (1 to 40, or -1 to -4 for Micro QR codes). + Returns the number of modules per side. + + + + Releases all resources used by the . + + + + + Specifies the compression mode used for the raw data. + + + + + No compression. + + + + + Deflate compression. + + + + + GZip compression. + + + + + Provides functionality to generate QR code data that can be used to create QR code images. + + + + + Initializes the QR code generator + + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the Micro QR code data which then can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Set fixed Micro QR code target version; must be -1 to -4 representing M1 to M4, or 0 for default. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Validates the specified error correction level. + Returns the provided level if it is valid, or the level M if the provided level is Default. + Throws an exception if an invalid level is provided. + + + + + Generates a QR code data structure using the provided BitArray, error correction level, and version. + The BitArray provided is assumed to already include the count, encoding mode, and/or ECI mode information. + + The BitArray containing the binary-encoded data to be included in the QR code. It should already contain the count, encoding mode, and/or ECI mode information. + The desired error correction level for the QR code. This impacts how much data can be recovered if damaged. + The version of the QR code, determining the size and complexity of the QR code data matrix. + A QRCodeData structure containing the full QR code matrix, which can be used for rendering or analysis. + + + + Generates a BitArray containing the format string for a QR code based on the error correction level and mask pattern version. + The format string includes the error correction level, mask pattern version, and error correction coding. + + The to write to, or null to create a new one. + The version number of the QR Code (1-40, or -1 to -4 for Micro QR codes). + The error correction level to be encoded in the format string. + The mask pattern version to be encoded in the format string. + A BitArray containing the 15-bit format string used in QR code generation. + + + + Encodes the version information of a QR code into a BitArray using error correction coding similar to format information encoding. + This method is used for QR codes version 7 and above. + + A to write the version string to. + The version number of the QR code (7-40). + A BitArray containing the encoded version information, which includes error correction bits. + + + + Calculates the Error Correction Codewords (ECC) for a segment of data using the provided ECC information. + This method applies polynomial division, using the message polynomial and a generator polynomial, + to compute the remainder which forms the ECC codewords. + + + + + Converts all polynomial item coefficients from their alpha exponent notation to decimal representation in place. + This conversion facilitates operations that require polynomial coefficients in their integer forms. + + + + + Determines the most efficient encoding mode for the given plain text based on its character content + and a flag indicating whether to force UTF-8 encoding. + + + + + Checks if a character falls within a specified range. + + + + + Converts a segment of a BitArray representing QR code data into a polynomial, + padding the final byte if necessary (for Micro QR variants like M1 or M3). + + The full bit array representing encoded QR code data. + Starting position in the bit array. + Total number of bits to convert into codewords. + A polynomial representing the message codewords. + + + + Calculates the generator polynomial used for creating error correction codewords. + + The number of error correction codewords to generate. + A polynomial that can be used to generate ECC codewords. + + + + Converts a segment of a BitArray into its decimal (integer) equivalent. + + The integer value that represents the specified binary data. + + + + Converts a decimal number to binary and stores the result in a BitArray starting from a specific index. + + The decimal number to convert to binary. + The number of bits to use for the binary representation (ensuring fixed-width like 8, 16, 32 bits). + The BitArray where the binary bits will be stored. + The starting index in the BitArray where the bits will be stored. + The next index in the BitArray after the last bit placed. + + + + Determines the number of bits used to indicate the count of characters in a segment, depending on the QR code version and the encoding mode. + + The version of the QR code, which influences the number of bits due to increasing data capacity. + The encoding mode (e.g., Numeric, Alphanumeric, Byte) used for the data segment. + The number of bits needed to represent the character count in the specified encoding mode and version. + + + + Calculates the data length based on the encoding mode, text content, and whether UTF-8 is forced. + + The encoding mode used for the QR code data. + The plain text input to be encoded. + A BitArray representing the binary data of the encoded text. + Flag to determine if UTF-8 encoding should be enforced. + The length of data in units appropriate to the encoding (bytes or characters). + + + + Checks if the given string can be accurately represented and retrieved in ISO-8859-1 encoding. + + + + + Converts plain text to a binary format suitable for QR code generation, based on the specified encoding mode. + + The text to be encoded. + The encoding mode. + The ECI mode specifying the character encoding to use. + Flag indicating whether to prepend a UTF-8 Byte Order Mark. + Flag indicating whether UTF-8 encoding is forced. + A BitArray containing the binary representation of the encoded data. + + + + Converts numeric plain text into a binary format specifically optimized for QR codes. + Numeric compression groups up to 3 digits into 10 bits, less for remaining digits if they do not complete a group of three. + + The numeric text to be encoded, which should only contain digit characters. + A BitArray representing the binary data of the encoded numeric text. + + + + Converts plain text into a binary format using byte mode encoding, which supports various character encodings through ECI (Extended Channel Interpretations). + + The text to be encoded. + The ECI mode that specifies the character encoding to use. + Specifies whether to include a Byte Order Mark (BOM) for UTF-8 encoding. + Forces UTF-8 encoding regardless of the text content's compatibility with ISO-8859-1. + A BitArray representing the binary data of the encoded text. + + The returned text is always encoded as ISO-8859-1 unless either the text contains a non-ISO-8859-1 character or + UTF-8 encoding is forced. This does not meet the QR Code standard, which requires the use of ECI to specify the encoding + when not ISO-8859-1. + + + + + Converts an array of bytes into a BitArray, considering the proper bit order within each byte. + Unlike the constructor of BitArray, this function preserves the MSB-to-LSB order within each byte. + + The byte array to convert into a BitArray. + The number of leading zeros to prepend to the resulting BitArray. + A BitArray representing the bits of the input byteArray, with optional leading zeros. + + + + Performs a bitwise XOR operation between two polynomials, commonly used in QR code error correction coding. + + The resultant polynomial after performing the XOR operation. + + + + Multiplies a generator polynomial by a leading term polynomial, reducing the result by a specified lower exponent, + used in constructing QR code error correction codewords. + + + + + Multiplies two polynomials, treating coefficients as exponents of a primitive element (alpha), which is common in error correction algorithms such as Reed-Solomon. + + The first polynomial to multiply. + The second polynomial to multiply. + A new polynomial which is the result of the multiplication of the two input polynomials. + + + + + + + Represents the alignment pattern used in QR codes, which helps ensure the code remains readable even if it is somewhat distorted. + Each QR code version has its own specific alignment pattern locations which this struct encapsulates. + + + + + The version of the QR code. Higher versions have more complex and numerous alignment patterns. + + + + + A list of points where alignment patterns are located within the QR code matrix. + Each point represents the center of an alignment pattern. + + + + + This class contains the alignment patterns used in QR codes. + + + + + A lookup table mapping QR code versions to their corresponding alignment patterns. + + + + + Retrieves the alignment pattern for a specific QR code version. + + + + + Creates a lookup table mapping QR code versions to their corresponding alignment patterns. + Alignment patterns are used in QR codes to help scanners accurately read the code at high speeds and when partially obscured. + This table provides the necessary patterns based on the QR code version which dictates the size and complexity of the QR code. + + A dictionary where keys are QR code version numbers and values are AlignmentPattern structures detailing the positions of alignment patterns for each version. + + + + Encodes alphanumeric characters (0–9, A–Z (uppercase), space, $, %, *, +, -, period, /, colon) into a binary format suitable for QR codes. + + + + + A dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + + + + Creates a dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + A dictionary mapping each supported alphanumeric character to its corresponding value. + + + + Checks if a character is present in the alphanumeric encoding table. + + + + + Converts alphanumeric plain text into a binary format optimized for QR codes. + Alphanumeric encoding packs characters into 11-bit groups for each pair of characters, + and 6 bits for a single remaining character if the total count is odd. + + The alphanumeric text to be encoded, which should only contain characters valid in QR alphanumeric mode. + A BitArray representing the binary data of the encoded alphanumeric text. + + + + Provides QR code capacity and error correction data for each version and encoding mode. + Used to determine how much data can be stored in a QR code and which version is required. + + + + + A list containing detailed capacity information for each version of QR codes. + The index in the capacity table corresponds to one less than the version number. + + + + + A table containing the error correction capacities and data codeword information for different combinations of QR code versions and error correction levels. + + + + + Retrieves the error correction information for a specific QR code version and error correction level. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + The desired error correction level (L, M, Q, or H). Do not supply . + + An object containing the total number of data codewords, ECC per block, + block group details, and other parameters required for encoding error correction data. + + + + + Retrieves the capacity information for a specific QR code version. + The returned structure contains detailed data capacity values for each error correction level (L, M, Q, H) + and encoding mode (Numeric, Alphanumeric, Byte, Kanji), indicating the maximum number of characters + that can be stored in a QR code of the specified version under each configuration. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + A object containing data capacity details for all error correction levels + and encoding modes for the specified version. + + + + + Retrieves the number of remainder bits required for a specific QR code version. + Remainder bits are added to the final bit stream to ensure proper alignment with byte boundaries, + as required by the QR code specification. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + The number of remainder bits (0 to 7) that must be appended to the encoded bit stream. + + + + + Determines the minimum QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Low, Medium, Quartile, High). + The minimum version of the QR code that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Determines the minimum Micro QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Default, Low, Medium, Quartile, High). + The minimum version of the QR code (-1 to -4) that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Generates a table containing the error correction capacities and data codeword information for different QR code versions and error correction levels. + This table is essential for determining how much data can be encoded in a QR code of a specific version and ECC level, + as well as how robust the QR code will be against distortions or obstructions. + + A list of ECCInfo structures, each representing the ECC data and capacities for different combinations of QR code versions and ECC levels. + + + + Generates a list containing detailed capacity information for various versions of QR codes. + This table includes capacities for different encoding modes (numeric, alphanumeric, byte, etc.) under each error correction level. + The capacity table is crucial for QR code generation, as it determines how much data each QR code version can store depending on the encoding mode and error correction level used. + The index in the capacity table corresponds to one less than the version number. + + + + + + + + Represents a block of codewords in a QR code. QR codes are divided into several blocks for error correction purposes. + Each block contains a series of data codewords followed by error correction codewords. + + + + + Initializes a new instance of the CodewordBlock struct with specified arrays of code words and error correction (ECC) words. + + The offset of the data codewords within the main BitArray. Data codewords carry the actual information. + The length in bits of the data codewords within the main BitArray. + The array of error correction codewords for this block. These codewords help recover the data if the QR code is damaged. + + + + Gets the offset of the data codewords in the BitArray. + + + + + Gets the length of the data codewords in the BitArray. + + + + + Gets the error correction codewords associated with this block. + + + + + Represents the error correction coding (ECC) information for a specific version and error correction level of a QR code. + + + + + Initializes a new instance of the ECCInfo struct with specified properties. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The number of error correction codewords per block. + The number of blocks in group 1. + The number of codewords in each block of group 1. + The number of blocks in group 2, if any. + The number of codewords in each block of group 2, if any. + + + + Initializes a new instance of the ECCInfo struct with specified properties for Micro QR codes. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The total number of data bits for this version and error correction level. + The number of error correction codewords per block. + + + + Gets the version number of the QR code. + + + + + Gets the error correction level of the QR code. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the number of error correction codewords per block. + + + + + Gets the number of blocks in group 1. + + + + + Gets the number of codewords in each block of group 1. + + + + + Gets the number of blocks in group 2, if any. + + + + + Gets the number of codewords in each block of group 2, if any. + + + + + Defines the levels of error correction available in QR codes. + Each level specifies the proportion of data that can be recovered if the QR code is partially obscured or damaged. + + + + + Default error correction level, which will select Level M (Medium) unless otherwise specified by the payload. + Level M allows approximately 15% of data to be recovered, offering a balance between data capacity and error recovery. + + + + + Level L: Low error correction (approximately 7% of data can be recovered). + This level allows the highest data density. + + + + + Level M: Medium error correction (approximately 15% of data can be recovered). + Offers a balance between data capacity and error recovery. + + + + + Level Q: Quartile error correction (approximately 25% of data can be recovered). + More robust error correction at the cost of reduced data capacity. + + + + + Level H: High error correction (approximately 30% of data can be recovered). + Provides the highest level of error recovery, ideal for environments with high risk of data loss. + + + + + Enumerates the Extended Channel Interpretation (ECI) modes used in QR codes to handle different character encoding standards. + ECI mode allows QR codes to efficiently encode data using character sets other than the default ISO-8859-1. + + + + + Default encoding mode (typically ISO-8859-1). Used when no ECI mode is explicitly specified. + This mode is assumed in basic QR codes where no extended character sets are needed. + + + + + Specifies the use of the ISO-8859-1 character set, covering most Western European languages. + This mode explicitly sets the encoding to ISO-8859-1, which includes characters used in languages such as English, French, German, and Spanish. + + + + + Specifies the use of the ISO-8859-2 character set, which is primarily used for Central and Eastern European languages. + This includes characters used in languages such as Polish, Czech, Slovak, Hungarian, and Romanian. + + + + + Specifies the use of UTF-8 encoding. + UTF-8 can encode any Unicode character and is useful for QR codes that need to support multi-language content. + + + + + Specifies the encoding modes for the characters in a QR code. + + + + + Numeric encoding mode, which is used to encode numeric data (digits 0-9). + Three characters are encoded into 10 bits. + + + + + Alphanumeric encoding mode, which is used to encode alphanumeric characters (0-9, A-Z, space, and some punctuation). + Two characters are encoded into 11 bits. + + + + + Byte encoding mode, primarily using the ISO-8859-1 character set. Each character is encoded into 8 bits. + When combined with ECI, it can be adapted to use other character sets. + + + + + Kanji encoding mode, which is used to encode characters from the Shift JIS character set, primarily for Japanese Kanji and Kana characters. + One character is encoded into 13 bits. This mode is not currently supported by QRCoder. + + + + + Extended Channel Interpretation (ECI) mode, which specifies a character set via an 8-bit number followed by one of the other encoding modes. + This allows adapting the byte encoding to accommodate various global text encodings. + + + + + Represents a Galois field of 256 elements (GF(256)) used in finite field arithmetic, + typically for error correction algorithms such as Reed-Solomon. + + Provides mappings between exponential and integer representations of field elements + using a primitive element (α). The field is constructed with respect to a generator + polynomial and used for efficient encoding and decoding operations. + + + + + + Retrieves the integer value from the Galois field that corresponds to a given exponent. + This is used in Reed-Solomon and other error correction calculations involving Galois fields. + + + + + Retrieves the exponent from the Galois field that corresponds to a given integer value. + Throws an exception if the integer value is zero, as zero does not have a logarithmic representation in the field. + + + + + Normalizes a Galois field exponent to ensure it remains within the bounds of the field's size. + This is particularly necessary when performing multiplications in the field which can result in exponents exceeding the field's maximum. + + + + + Struct that represents blocked modules using rectangles. + + + + + Initializes a new instance of the struct with a specified size. + + The size of the blocked modules matrix. + + + + Adds a blocked module at the specified coordinates. + + The x-coordinate of the module. + The y-coordinate of the module. + + + + Adds a blocked module defined by the specified rectangle. + + The rectangle that defines the blocked module. + + + + Checks if the specified coordinates are blocked. + + The x-coordinate to check. + The y-coordinate to check. + true if the coordinates are blocked; otherwise, false. + + + + Checks if the specified rectangle is blocked. + + The rectangle to check. + true if the rectangle is blocked; otherwise, false. + + + + Places the version information on the QR code matrix for versions 7 and higher. Version information + is encoded into two small rectangular areas near the bottom left and top right corners outside the timing patterns. + + The QR code data structure to modify. + The bit array containing the version information. + Indicates whether an offset should be applied to the version information placement. + + + + Places the format information on the QR code, encoding the error correction level and mask pattern used. + + The QR code data structure to modify. + The bit array containing the format information. + Specifies whether an offset should be applied. + + + + Applies the most effective mask pattern to the QR code based on minimizing the penalty score, + which evaluates how well the pattern will work for QR scanners. + + The QR code data structure where the mask will be applied. + The version of the QR code, which determines the size and complexity. + List of rectangles representing areas that must not be overwritten. + The error correction level of the QR code, which affects format string values. + The index of the selected mask pattern. + + + + Places data bits into the QR code's module matrix following a specific pattern that navigates around blocked modules. + + The QR code data structure where the data bits are to be placed. + The data bits to be placed within the QR code matrix. + A list of rectangles representing areas within the QR code matrix that should not be modified because they contain other necessary information like format and version info. + + + + Reserves separator areas around the positioning patterns of a QR code to ensure that these crucial areas remain unmodified during data placement. + + The version of the QR code, which determines the number of finder patterns. + The size of the QR code matrix. + A list of rectangles representing areas that must not be overwritten. + + + + Reserves areas for version information on QR codes that are version 7 or higher. Also reserves space for format information. + + The size of the QR code matrix. + The version number of the QR code, which determines the placement of version information. + A list of rectangles representing areas that must not be overwritten. + + + + Places a dark module on the QR code matrix as per QR code specification, which requires a dark module at a specific position for all QR codes. + + The QR code data structure where the dark module is to be placed. + The version number of the QR code, which determines the specific location of the dark module. + A list of rectangles representing areas that must not be overwritten, updated to include the dark module. + + + + Places finder patterns on the QR code. Finder patterns are critical for QR code scanners to correctly orient and recognize the QR code. + + The QR code data structure where the finder patterns will be placed. + A list of rectangles representing areas that must not be overwritten. This is updated with the areas occupied by the finder patterns. + + + + Places alignment patterns on the QR code matrix. Alignment patterns help ensure the scanner can correctly interpret the QR code at various scales and orientations. + + The QR code data structure where the alignment patterns will be placed. + A list of points representing the centers of where alignment patterns should be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by alignment patterns. + + + + Places timing patterns in the QR code. Timing patterns are alternating dark and light modules that help scanners determine the coordinates of modules within the QR code. + + The QR code data structure where the timing patterns will be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by timing patterns. + + + + Provides static methods and properties to handle mask patterns used in QR code generation. + Mask patterns are applied to QR codes to break up patterns in the data matrix that might confuse scanners. + + + + + A dictionary mapping each mask pattern index to its corresponding function that calculates whether a given pixel should be masked. + + + + + Mask pattern 1: (x + y) % 2 == 0 + Applies a checkerboard mask on the QR code. + + + + + Mask pattern 2: y % 2 == 0 + Applies a horizontal striping mask on the QR code. + + + + + Mask pattern 3: x % 3 == 0 + Applies a vertical striping mask on the QR code. + + + + + Mask pattern 4: (x + y) % 3 == 0 + Applies a diagonal striping mask on the QR code. + + + + + Mask pattern 5: ((y / 2) + (x / 3)) % 2 == 0 + Applies a complex pattern mask on the QR code, mixing horizontal and vertical rules. + + + + + Mask pattern 6: ((x * y) % 2 + (x * y) % 3) == 0 + Applies a mask based on the product of x and y coordinates modulo 2 and 3. + + + + + Mask pattern 7: (((x * y) % 2 + (x * y) % 3) % 2) == 0 + Applies a mask based on a more complex function involving the product of x and y coordinates. + + + + + Mask pattern 8: (((x + y) % 2) + ((x * y) % 3) % 2) == 0 + Combines rules of checkers and complex multiplicative masks. + + + + + Calculates a penalty score for a Micro QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Calculates a penalty score for a QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + The score is the sum of four penalty rules applied to the QR code. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Represents a 2D point with integer coordinates. + + + + + Gets the X-coordinate of the point. + + + + + Gets the Y-coordinate of the point. + + + + + Initializes a new instance of the struct with specified X and Y coordinates. + + The X-coordinate of the point. + The Y-coordinate of the point. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + True if the specified has the same X and Y coordinates as the current ; otherwise, false. + + If this method which implements is not implemented, comparisons used by methods such as + fall back to reflection, which causes heap allocations internally during the calls to . + + + + + + + + + + + Represents a polynomial, which is a sum of polynomial terms. + + + + + Initializes a new instance of the struct with a specified number of initial capacity for polynomial terms. + + The initial capacity of the polynomial items list. + + + + Adds a polynomial term to the polynomial. + + + + + Removes the polynomial term at the specified index. + + + + + Gets or sets a polynomial term at the specified index. + + + + + Gets the number of polynomial terms in the polynomial. + + + + + Removes all polynomial terms from the polynomial. + + + + + Clones the polynomial, creating a new instance with the same polynomial terms. + + + + + Sorts the collection of using a custom comparer function. + + + A function that compares two objects and returns an integer indicating their relative order: + less than zero if the first is less than the second, zero if they are equal, or greater than zero if the first is greater than the second. + + + + + Returns a string that represents the polynomial in standard algebraic notation. + Example output: "a^2*x^3 + a^5*x^1 + a^3*x^0", which represents the polynomial 2x³ + 5x + 3. + + + + + + + + Ensures that the polynomial has enough capacity to store the specified number of polynomial terms. + + + + + Rents memory for the polynomial terms from a shared memory pool. + + + + + Returns memory allocated for the polynomial terms back to a shared memory pool. + + + + + Returns an enumerator that iterates through the polynomial terms. + + + + + Value type enumerator for the struct. + + + + + Represents an individual term of a polynomial, consisting of a coefficient and an exponent. + For example, the term 3x² would be represented as a with a coefficient of 3 and an exponent of 2. + + + + + Initializes a new instance of the struct with the specified coefficient and exponent. + + The coefficient of the polynomial term. For example, in the term 3x², the coefficient is 3. + The exponent of the polynomial term. For example, in the term 3x², the exponent is 2. + + + + Gets the coefficient of the polynomial term. + + + + + Gets the exponent of the polynomial term. + + + + + Represents a rectangle defined by its top-left corner's coordinates, width, and height. + + + + + Gets the X-coordinate of the top-left corner of the rectangle. + + + + + Gets the Y-coordinate of the top-left corner of the rectangle. + + + + + Gets the width of the rectangle. + + + + + Gets the height of the rectangle. + + + + + Initializes a new instance of the struct with the specified top-left corner coordinates, width, and height. + + The X-coordinate of the top-left corner of the rectangle. + The Y-coordinate of the top-left corner of the rectangle. + The width of the rectangle. + The height of the rectangle. + + + + Represents version-specific information of a QR code. + + + + + Initializes a new instance of the struct with a specific version number and its details. + + The version number of the QR code. Each version has a different module configuration. + A list of detailed information related to error correction levels and capacity for each encoding mode. + + + + Gets the version number of the QR code. Each version number specifies a different size of the QR matrix. + + + + + Gets a list of details about the QR code version, including the error correction levels and encoding capacities. + + + + + Represents the detailed information about each error correction level and its corresponding capacities in different encoding modes for a specific version of a QR code. + + + + + Initializes a new instance of the struct, detailing the error correction level and the capacity for each encoding mode. + + The error correction level, which determines how much of the code can be restored if the QR code gets damaged. + A dictionary mapping each encoding mode to its capacity for the specific error correction level. + + + + Gets the error correction level of the QR code, influencing how robust the QR code is against errors and damage. + + + + + Gets a dictionary that contains the capacities of different encoding modes under the specified error correction level. + These capacities dictate how many characters can be encoded under each mode. + + + + + Specifies that when a method returns System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue, + the parameter will not be null even if the corresponding type allows it. + + + + + Initializes the attribute with the specified return value condition. + + If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. If the method returns this value, the associated + parameter will not be null. + + + + diff --git a/packages/QRCoder.1.7.0/lib/netstandard2.0/QRCoder.dll b/packages/QRCoder.1.7.0/lib/netstandard2.0/QRCoder.dll new file mode 100644 index 0000000..ca4e968 Binary files /dev/null and b/packages/QRCoder.1.7.0/lib/netstandard2.0/QRCoder.dll differ diff --git a/packages/QRCoder.1.7.0/lib/netstandard2.0/QRCoder.xml b/packages/QRCoder.1.7.0/lib/netstandard2.0/QRCoder.xml new file mode 100644 index 0000000..7e7796a --- /dev/null +++ b/packages/QRCoder.1.7.0/lib/netstandard2.0/QRCoder.xml @@ -0,0 +1,5590 @@ + + + + QRCoder + + + + + Abstract base class for generating QR codes. + Derived classes typically render a QR code into a specific format (png, System.Drawing.Bitmap, PDF, etc). + + + + + Gets or sets the QRCodeData used to generate the QR code. + + + + + Initializes a new instance of the AbstractQRCode class. + + + + + Initializes a new instance of the AbstractQRCode class with the specified QRCodeData. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Sets the QRCodeData object that will be used to generate the QR code. + This method is useful for COM objects connections. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Disposes the QRCodeData object. + + + + + Represents an art-style QR code generator that provides functionality to render QR codes with dots as modules. + + + + + Initializes a new instance of the class. + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + generated by the . + + + + Renders an art-style QR code with dots as modules. (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and a background image (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + A bitmap object that will be used as background picture + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and various user settings + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + If the pixelSize is bigger than the pixelsPerModule or may end up filling the Module making a traditional QR code. + + Pixels used per module rendered + Size of the dots + Color of the pixels + + + + + Checks if a given module(-position) is part of the quietzone of a QR code + + X position + Y position + Total number of modules per row + true, if position is part of quiet zone + + + + Checks if a given module(-position) is part of one of the three finder patterns of a QR code + + X position + Y position + Total number of modules per row + Offset in modules (usually depending on drawQuietZones parameter) + true, if position is part of any finder pattern + + + + Resize to a square bitmap, but maintain the aspect ratio by padding transparently. + + + + Resized image as bitmap + + + + Defines how the quiet zones shall be rendered. + + + + + Quiet zones are rendered with dotted modules. + + + + + Quiet zones are rendered with flat, solid modules. + + + + + Defines how the background image (if set) shall be rendered. + + + + + Background image spans the complete graphic. + + + + + Background image is only painted in the data area, excluding the quiet zone. + + + + + Provides static methods for creating art-style QR codes. + + + + + Helper function to create an ArtQRCode graphic with a single function call + + Text/payload to be encoded inside the QR code + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + Represents an ASCII-style QR code generator that provides functionality to render QR codes as textual representations. + + + + + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + The QR code data generated by the . + + + + Returns a strings that contains the resulting QR code as textual representation. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + End of line separator. (Default: \n) + + + + + Returns an array of strings that contains each line of the resulting QR code as ASCII chars. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + + + + + Returns a strings that contains the resulting QR code as minified textual representation. + + Bool that defines if quiet zones around the QR code shall be drawn + If set to true, dark and light colors will be inverted + End of line separator. (Default: \n) + + + + + Provides static methods for generating ASCII-style QR codes. + + + + + Generates an ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Number of repeated characters per module. + String representing dark modules. + String representing light modules. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + ASCII representation of the QR code. + + + + Generates a small ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + Invert dark and light colors. + Minified ASCII representation of the QR code. + + + + Represents a QR code generator that outputs base64-encoded images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a base64-encoded string that contains the resulting QR code as a PNG image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image with an embedded icon. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The icon to embed in the center of the QR code. + The size of the icon as a percentage of the QR code. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Converts a bitmap to a base64-encoded string. + + The bitmap to convert. + The type of image (PNG, JPEG, GIF). + Returns the base64-encoded string representation of the bitmap. + + + + Specifies the type of image to generate. + + + + + Graphics Interchange Format (GIF) image format, a bitmap image format with limited color support + + + + + Joint Photographic Experts Group (JPEG) image format, a lossy compressed image format + + + + + Portable Network Graphics (PNG) image format, a lossless raster graphics format + + + + + Provides static methods for creating base64-encoded QR codes. + + + + + Creates a base64-encoded QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Represents a QR code generator that outputs QR codes as bitmap byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGB byte array. + The color of the light modules as an RGB byte array. + Returns the QR code graphic as a bitmap byte array. + + + + Converts an integer to a 4 bytes and writes them to a byte array at given position + + The integer to convert. + Index of destinationArray where the converted bytes are written to + Destination byte array that receives the bytes + + + + Provides helper functions for creating bitmap byte array QR codes. + + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a bitmap byte array. + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Exception thrown when the given payload exceeds the maximum size of the QR code standard. + + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The fixed version of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Helper methods for . + + + + + Copies a specified number of elements from one to another starting at the specified offsets. + + The source from which elements will be copied. + The zero-based index in the source at which copying begins. + The destination to which elements will be copied. + The zero-based index in the destination at which storing begins. + The number of elements to copy. + The index in the destination immediately following the last copied element. + + + + Indicates whether the specified string is null, empty, or consists only of white-space characters. + + + if the is null, empty, or white space; otherwise, . + + + + + Converts a hex color string to a byte array. + + Color in HEX format like #ffffff. + Returns the color as a byte array. + + + + Appends an integer value to the StringBuilder using invariant culture formatting. + + The StringBuilder to append to. + The integer value to append. + + + + Appends a float value to the StringBuilder using invariant culture formatting with G7 precision. + + The StringBuilder to append to. + The float value to append. + + + + Used to represent a string value for a value in an enum + + + + + Holds the alue in an enum + + + + + Init a StringValue Attribute + + + + + + Enumeration extension methods. + + + + + Will get the string value for a given enum's value + + + + + Provides utility methods for generating QR code payloads. + + + Contains classes and methods for generating payloads for QR codes. + + + + + Validates the structure and checksum of an IBAN. + + The IBAN to validate. + True if the IBAN is valid; otherwise, false. + + + + Validates the structure and checksum of a QR IBAN. + + The QR IBAN to validate. + True if the QR IBAN is valid; otherwise, false. + + + + Validates the structure of a BIC. + + The BIC to validate. + True if the BIC is valid; otherwise, false. + + + + Validates the structure of a BIC with optional requirement check. + + The BIC to validate. + Whether the BIC is required. If false, null/empty values are considered valid. + True if the BIC is valid; otherwise, false. + + + + Converts a string to a specified encoding. + + The string to convert. + The encoding to use. + The converted string. + + + + Escapes forbidden characters in a string. + + The input string. + Indicates whether to use a simple escape mode. + The escaped string. + + + + Validates a string using the Mod10 checksum algorithm. + + The string to validate. + True if the string is valid; otherwise, false. + + + + Checks if a string is in hexadecimal format. + + The input string. + True if the string is in hexadecimal format; otherwise, false. + + + + Represents a BezahlCode payload for QR codes. + + + + + Initializes a new instance of the class for contact data. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Reason (Verwendungszweck) + + + + Initializes a new instance of the class for non-SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Initializes a new instance of the class for SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Generic constructor. Please use specific (non-SEPA or SEPA) constructor. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + Only used for internal state handdling + + + + + + + ISO 4217 currency codes + + + + + United Arab Emirates Dirham + + + + + Afghan Afghani + + + + + Albanian Lek + + + + + Armenian Dram + + + + + Netherlands Antillean Guilder + + + + + Angolan Kwanza + + + + + Argentine Peso + + + + + Australian Dollar + + + + + Aruban Florin + + + + + Azerbaijani Manat + + + + + Bosnia and Herzegovina Convertible Mark + + + + + Barbados Dollar + + + + + Bangladeshi Taka + + + + + Bulgarian Lev + + + + + Bahraini Dinar + + + + + Burundian Franc + + + + + Bermudian Dollar + + + + + Brunei Dollar + + + + + Bolivian Boliviano + + + + + Bolivian Mvdol (funds code) + + + + + Brazilian Real + + + + + Bahamian Dollar + + + + + Bhutanese Ngultrum + + + + + Botswana Pula + + + + + Belarusian Ruble + + + + + Belize Dollar + + + + + Canadian Dollar + + + + + Congolese Franc + + + + + WIR Euro (complementary currency) + + + + + Swiss Franc + + + + + WIR Franc (complementary currency) + + + + + Unidad de Fomento (funds code) + + + + + Chilean Peso + + + + + Chinese Yuan + + + + + Colombian Peso + + + + + Unidad de Valor Real (UVR) (funds code) + + + + + Costa Rican Colón + + + + + Cuban Convertible Peso + + + + + Cuban Peso + + + + + Cape Verde Escudo + + + + + Czech Koruna + + + + + Djiboutian Franc + + + + + Danish Krone + + + + + Dominican Peso + + + + + Algerian Dinar + + + + + Egyptian Pound + + + + + Eritrean Nakfa + + + + + Ethiopian Birr + + + + + Euro + + + + + Fiji Dollar + + + + + Falkland Islands Pound + + + + + Pound Sterling + + + + + Georgian Lari + + + + + Ghanaian Cedi + + + + + Gibraltar Pound + + + + + Gambian Dalasi + + + + + Guinean Franc + + + + + Guatemalan Quetzal + + + + + Guyanese Dollar + + + + + Hong Kong Dollar + + + + + Honduran Lempira + + + + + Croatian Kuna + + + + + Haitian Gourde + + + + + Hungarian Forint + + + + + Indonesian Rupiah + + + + + Israeli New Shekel + + + + + Indian Rupee + + + + + Iraqi Dinar + + + + + Iranian Rial + + + + + Icelandic Króna + + + + + Jamaican Dollar + + + + + Jordanian Dinar + + + + + Japanese Yen + + + + + Kenyan Shilling + + + + + Kyrgyzstani Som + + + + + Cambodian Riel + + + + + Comoro Franc + + + + + North Korean Won + + + + + South Korean Won + + + + + Kuwaiti Dinar + + + + + Cayman Islands Dollar + + + + + Kazakhstani Tenge + + + + + Lao Kip + + + + + Lebanese Pound + + + + + Sri Lankan Rupee + + + + + Liberian Dollar + + + + + Lesotho Loti + + + + + Libyan Dinar + + + + + Moroccan Dirham + + + + + Moldovan Leu + + + + + Malagasy Ariary + + + + + Macedonian Denar + + + + + Myanmar Kyat + + + + + Mongolian Tögrög + + + + + Macanese Pataca + + + + + Mauritanian Ouguiya + + + + + Mauritian Rupee + + + + + Maldivian Rufiyaa + + + + + Malawian Kwacha + + + + + Mexican Peso + + + + + Mexican Unidad de Inversión (UDI) (funds code) + + + + + Malaysian Ringgit + + + + + Mozambican Metical + + + + + Namibian Dollar + + + + + Nigerian Naira + + + + + Nicaraguan Córdoba + + + + + Norwegian Krone + + + + + Nepalese Rupee + + + + + New Zealand Dollar + + + + + Omani Rial + + + + + Panamanian Balboa + + + + + Peruvian Sol + + + + + Papua New Guinean Kina + + + + + Philippine Peso + + + + + Pakistani Rupee + + + + + Polish Złoty + + + + + Paraguayan Guaraní + + + + + Qatari Riyal + + + + + Romanian Leu + + + + + Serbian Dinar + + + + + Russian Ruble + + + + + Rwandan Franc + + + + + Saudi Riyal + + + + + Solomon Islands Dollar + + + + + Seychelles Rupee + + + + + Sudanese Pound + + + + + Swedish Krona + + + + + Singapore Dollar + + + + + Saint Helena Pound + + + + + Sierra Leonean Leone + + + + + Somali Shilling + + + + + Surinamese Dollar + + + + + South Sudanese Pound + + + + + São Tomé and Príncipe Dobra + + + + + Salvadoran Colón + + + + + Syrian Pound + + + + + Swazi Lilangeni + + + + + Thai Baht + + + + + Tajikistani Somoni + + + + + Turkmenistan Manat + + + + + Tunisian Dinar + + + + + Tongan Paʻanga + + + + + Turkish Lira + + + + + Trinidad and Tobago Dollar + + + + + New Taiwan Dollar + + + + + Tanzanian Shilling + + + + + Ukrainian Hryvnia + + + + + Ugandan Shilling + + + + + United States Dollar + + + + + United States Dollar (Next day) (funds code) + + + + + Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code) + + + + + Uruguayan Peso + + + + + Uzbekistan Som + + + + + Venezuelan Bolívar + + + + + Vietnamese Đồng + + + + + Vanuatu Vatu + + + + + Samoan Tālā + + + + + CFA Franc BEAC + + + + + Silver (one troy ounce) + + + + + Gold (one troy ounce) + + + + + Bond Markets Unit European Composite Unit (EURCO) + + + + + Bond Markets Unit European Monetary Unit (E.M.U.-6) + + + + + Bond Markets Unit European Unit of Account 9 (E.U.A.-9) + + + + + Bond Markets Unit European Unit of Account 17 (E.U.A.-17) + + + + + East Caribbean Dollar + + + + + Special Drawing Rights + + + + + CFA Franc BCEAO + + + + + Palladium (one troy ounce) + + + + + CFP Franc + + + + + Platinum (one troy ounce) + + + + + SUCRE + + + + + Codes specifically reserved for testing purposes + + + + + ADB Unit of Account + + + + + The code assigned for transactions where no currency is involved + + + + + Yemeni Rial + + + + + South African Rand + + + + + Zambian Kwacha + + + + + Zimbabwean Dollar + + + + + Operation modes of the BezahlCode + + + + + Single payment (Überweisung) + + + + + Single SEPA payment (SEPA-Überweisung) + + + + + Single debit (Lastschrift) + + + + + Single SEPA debit (SEPA-Lastschrift) + + + + + Periodic payment (Dauerauftrag) + + + + + Periodic SEPA payment (SEPA-Dauerauftrag) + + + + + Contact data + + + + + Contact data V2 + + + + + Exception class for BezahlCode errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for Bitcoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin address of the payment receiver. + The amount of Bitcoin to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin Cash payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin Cash payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin Cash address of the payment receiver. + The amount of Bitcoin Cash to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin-like cryptocurrency payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin-like cryptocurrency payment payload. QR Codes with this payload can open a payment app. + + The type of Bitcoin-like cryptocurrency. + The cryptocurrency address of the payment receiver. + The amount of coins to transfer. + A reference label. + A reference text or message. + + + + Returns a string representation of the Bitcoin-like cryptocurrency address payload. + + A string representation of the cryptocurrency address payload. + + + + Enumerates Bitcoin-like cryptocurrencies. + + + + + Bitcoin. + + + + + Bitcoin Cash. + + + + + Litecoin. + + + + + Generates a bookmark payload. When scanned by a QR code reader, this creates a browser bookmark. + + + + + Initializes a new instance of the class. + + The URL of the bookmark. + The title of the bookmark. + + + + Returns a string representation of the bookmark payload. + + A string representation of the bookmark payload in the MEBKM format. + + + + Generates a calendar entry/event payload. + + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time (including UTC offset) of the event. + End time (including UTC offset) of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time of the event. + End time of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Returns a string representation of the calendar event payload. + + A string representation of the calendar event in the VEVENT format. + + + + Specifies the encoding type for the calendar event. + + + + + iCalendar complete encoding. + + + + + Universal encoding. + + + + + Generates a vCard or meCard contact dataset. + + + + + Initializes a new instance of the class. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + + + + Initializes a new instance of the class with address type support. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + The address type (Home, Work, HomePreferred, or WorkPreferred). + + + + Returns a string representation of the contact data payload. + + A string representation of the contact data in the specified format. + + + + Gets the address type string for vCard 2.1 format. + + + + + Gets the address type string for vCard 3.0 format. + + + + + Gets the address type string for vCard 4.0 format. + + + + + Defines the type of address (home or work). + + + + + Home address. + + + + + Work address. + + + + + Home address marked as preferred (default for backwards compatibility). + + + + + Work address marked as preferred. + + + + + Possible output types. Either vCard 2.1, vCard 3.0, vCard 4.0 or MeCard. + + + + + MeCard output type. + + + + + vCard 2.1 output type. + + + + + vCard 3.0 output type. + + + + + vCard 4.0 output type. + + + + + Define the address format. + Default: European format, ([Street] [House Number] and [Postal Code] [City]) + Reversed: North American and others format ([House Number] [Street] and [City] [Postal Code]) + + + + + Default address order format (European format). + + + + + Reversed address order format (North American and others format). + + + + + Generates a geo location payload. Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + + + + Initializes a new instance of the class. + Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + Latitude with . as splitter. + Longitude with . as splitter. + Encoding type - GEO or GoogleMaps. + + + + Returns a string representation of the geolocation payload. + + A string representation of the geolocation payload in the specified encoding format. + + + + Defines the encoding types for geolocation payloads. + + + + + GEO encoding type. + + + + + Google Maps encoding type. + + + + + Generates the payload for a Girocode (QR-Code with credit transfer information). + + + + + Gets the ECC level required for Girocode, which is always set to M. + + + + + Initializes a new instance of the class, which contains a payload for a Girocode (QR-Code with credit transfer information). + + Account number of the Beneficiary. Only IBAN is allowed. + BIC of the Beneficiary Bank. + Name of the Beneficiary. + Amount of the Credit Transfer in Euro. (Amount must be more than 0.01 and less than 999999999.99) + Remittance Information (Purpose-/reference text). (optional) + Type of remittance information. Either structured (e.g. ISO 11649 RF Creditor Reference) and max. 35 chars or unstructured and max. 140 chars. + Purpose of the Credit Transfer (optional) + Beneficiary to originator information. (optional) + Girocode version. Either 001 or 002. Default: 001. + Encoding of the Girocode payload. Default: ISO-8859-1 + Thrown when the input values are not valid according to the Girocode specification. + + + + Returns the Girocode payload as a string. + + The Girocode payload as a string. + + + + Defines the Girocode version. + + + + + Girocode version 1. + + + + + Girocode version 2. + + + + + Defines the type of remittance information. + + + + + Structured remittance information. + + + + + Unstructured remittance information. + + + + + Defines the encoding types for Girocode payloads. + + + + + UTF-8 encoding. + + + + + ISO-8859-1 encoding. + + + + + ISO-8859-2 encoding. + + + + + ISO-8859-4 encoding. + + + + + ISO-8859-5 encoding. + + + + + ISO-8859-7 encoding. + + + + + ISO-8859-10 encoding. + + + + + ISO-8859-15 encoding. + + + + + Represents errors that occur during Girocode generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a payload for Litecoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Litecoin payment payload. QR Codes with this payload can open a payment app. + + The Litecoin address of the payment receiver. + The amount of Litecoin to transfer. + A reference label. + A reference text or message. + + + + Generates an email payload that can be used to create a QR code for sending an email. + + + + + Creates an email payload with subject and message/text. + + Receiver's email address. + Subject line of the email. + Message content of the email. + Payload encoding type. Choose dependent on your QR Code scanner app. + + + + Returns the email payload as a string. + + The email payload as a string. + + + + Defines the encoding types for the email payload. + + + + + Uses the "mailto:" URI scheme. + + + + + Uses the "MATMSG:" format. + + + + + Uses the "SMTP:" format. + + + + + Generates a MMS (Multimedia Messaging Service) payload for QR codes. + + + + + Creates a MMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates a MMS payload with text (subject). + + Receiver phone number. + Text of the MMS. + Encoding type. + + + + Returns the MMS payload as a string. + + The MMS payload as a string. + + + + Defines the encoding types for the MMS payload. + + + + + Uses the "mms:" URI scheme. + + + + + Uses the "mmsto:" URI scheme. + + + + + Generates a Monero transaction payload for QR codes. + + + + + Creates a Monero transaction payload. + + Receiver's Monero address. + Amount to transfer. + Payment ID. + Recipient's name. + Reference text / payment description. + Thrown when the address is null or empty, or when the txAmount is less than or equal to 0. + + + + Returns the Monero transaction payload as a URI string. + + The Monero transaction payload as a URI string. + + + + Exception class for Monero transaction errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for One Time Password (OTP) used in applications like Google Authenticator. + + + + + The type of OTP (TOTP or HOTP). + + + + + The secret key used for OTP generation. + + + + + The hashing algorithm used for OTP (SHA1, SHA256, SHA512). + + + + + Obsolete. Use instead. + + + + + The issuer of the OTP (usually the service or company name). + + + + + The label for the OTP (usually the user's email or username). + + + + + The number of digits in the OTP (default is 6). + + + + + The counter value for HOTP (only used if Type is HOTP). + + + + + The period in seconds for TOTP (default is 30). + + + + + Enum for OTP types. + + + + + Time-based One-Time Password (TOTP) + + + + + HMAC-based One-Time Password (HOTP) + + + + + Enum for hashing algorithms used in OTP. + + + + + SHA-1 hashing algorithm + + + + + SHA-256 hashing algorithm + + + + + SHA-512 hashing algorithm + + + + + Obsolete. Use instead. + + + + + SHA-1 hashing algorithm (Obsolete) + + + + + SHA-256 hashing algorithm (Obsolete) + + + + + SHA-512 hashing algorithm (Obsolete) + + + + + Returns the OTP payload as a string. + + The OTP payload as a string. + + + + Returns the HOTP payload as a string. + + The HOTP payload as a string. + + + + Returns the TOTP payload as a string. + + The TOTP payload as a string. + + + + Processes the common fields for both TOTP and HOTP. + + StringBuilder to append the common fields. + + + + Represents the base class for all QR code payloads. + + + + + Gets the version of the QR code payload. + + + + + Gets the error correction level of the QR code payload. + + + + + Gets the ECI mode of the QR code payload. + + + + + Returns a string representation of the QR code payload. + + A string representation of the QR code payload. + + + + Generates a phone call payload. + + + + + Initializes a new instance of the class. + + Phone number of the receiver. + + + + Returns the phone call payload as a string. + + The phone call payload as a string. + + + + Generates a payload for a Russian payment order. + + + + + Initializes a new instance of the class. + + Name of the payee (Наименование получателя платежа) + Beneficiary account number (Номер счета получателя платежа) + Name of the beneficiary's bank (Наименование банка получателя платежа) + BIC (БИК) + Box number / account payee's bank (Номер кор./сч. банка получателя платежа) + An (optional) object of additional fields + Type of encoding (default UTF-8) + + + + Returns the payload as a string. + + ⚠ Attention: If CharacterSets was set to windows-1251 or koi8-r you should use ToBytes() instead of ToString() and pass the bytes to CreateQrCode()! + The payload as a string. + + + + Returns the payload as a byte array. + + Should be used if CharacterSets equals windows-1251 or koi8-r. + The payload as a byte array. + + + + Determines a valid separator + + + + + + Takes all optional fields that are not null and returns their string represantion + + A List of strings + + + + Takes all mandatory fields that are not null and returns their string represantion + + A List of strings + + + + Validates a string against a given Regex pattern. Returns input if it matches the Regex expression (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + A regex pattern to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Validates a string against one or more given Regex patterns. Returns input if it matches all regex expressions (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + An array of regex patterns to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Represents optional fields for the RussiaPaymentOrder. + + + + + Payment amount, in kopecks (FTI’s Amount.) + Сумма платежа, в копейках + + + + + Payment name (purpose) + Наименование платежа (назначение) + + + + + Payee's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН получателя платежа + + + + + Payer's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН плательщика + + + + + Status compiler payment document + Статус составителя платежного документа + + + + + KPP of the payee (Tax Registration Code; Text, up to 9 characters.) + КПП получателя платежа + + + + + CBC + КБК + + + + + All-Russian classifier territories of municipal formations + Общероссийский классификатор территорий муниципальных образований + + + + + Basis of tax payment + Основание налогового платежа + + + + + Taxable period + Налоговый период + + + + + Document number + Номер документа + + + + + Document date + Дата документа + + + + + Payment type + Тип платежа + + + + + Payer's surname + Фамилия плательщика + + + + + Payer's name + Имя плательщика + + + + + Payer's patronymic + Отчество плательщика + + + + + Payer's address + Адрес плательщика + + + + + Personal account of a budget recipient + Лицевой счет бюджетного получателя + + + + + Payment document index + Индекс платежного документа + + + + + Personal account number in the personalized accounting system in the Pension Fund of the Russian Federation - SNILS + № лицевого счета в системе персонифицированного учета в ПФР - СНИЛС + + + + + Number of contract + Номер договора + + + + + Personal account number of the payer in the organization (in the accounting system of the PU) + Номер лицевого счета плательщика в организации (в системе учета ПУ) + + + + + Apartment number + Номер квартиры + + + + + Phone number + Номер телефона + + + + + DUL payer type + Вид ДУЛ плательщика + + + + + DUL number of the payer + Номер ДУЛ плательщика + + + + + FULL NAME. child / student + Ф.И.О. ребенка/учащегося + + + + + Date of birth + Дата рождения + + + + + Due date / Invoice date + Срок платежа/дата выставления счета + + + + + Payment period + Период оплаты + + + + + Payment type + Вид платежа + + + + + Service code / meter name + Код услуги/название прибора учета + + + + + Metering device number + Номер прибора учета + + + + + Meter reading + Показание прибора учета + + + + + Notification, accrual, account number + Номер извещения, начисления, счета + + + + + Date of notification / accrual / invoice / resolution (for traffic police) + Дата извещения/начисления/счета/постановления (для ГИБДД) + + + + + Institution number (educational, medical) + Номер учреждения (образовательного, медицинского) + + + + + Kindergarten / school class number + Номер группы детсада/класса школы + + + + + Full name of the teacher, specialist providing the service + ФИО преподавателя, специалиста, оказывающего услугу + + + + + Insurance / additional service amount / Penalty amount (in kopecks) + Сумма страховки/дополнительной услуги/Сумма пени (в копейках) + + + + + Resolution number (for traffic police) + Номер постановления (для ГИБДД) + + + + + Enforcement Proceedings Number + Номер исполнительного производства + + + + + Type of payment code (for example, for payments to Rosreestr) + Код вида платежа (например, для платежей в адрес Росреестра) + + + + + Unique accrual identifier + Уникальный идентификатор начисления + + + + + The technical code recommended by the service provider. Maybe used by the receiving organization to call the appropriate processing IT system. + Технический код, рекомендуемый для заполнения поставщиком услуг. Может использоваться принимающей организацией для вызова соответствующей обрабатывающей ИТ-системы. + + + + + (List of values of the technical code of the payment) + Перечень значений технического кода платежа + + + + + Mobile and landline telephone services + Мобильная связь и стационарный телефон + + + + + Utility services (Housing and Communal Services) + Коммунальные услуги (ЖКХ) + + + + + Traffic police, taxes, duties, and budget payments + ГИБДД, налоги, пошлины, бюджетные платежи + + + + + Security services + Охранные услуги + + + + + Services provided by the Federal Migration Service + Услуги, оказываемые УФМС + + + + + Pension Fund of the Russian Federation + Пенсионный фонд России (ПФР) + + + + + Loan repayment + Погашение кредитов + + + + + Educational institutions + Образовательные учреждения + + + + + Internet and TV services + Интернет и телевидение + + + + + Electronic money + Электронные деньги + + + + + Recreation and travel + Отдых и путешествия + + + + + Investments and insurance + Инвестиции и страхование + + + + + Sports and health + Спорт и здоровье + + + + + Charitable and public organizations + Благотворительные и общественные организации + + + + + Other services + Прочие услуги + + + + + Specifies character sets for encoding the RussiaPaymentOrder payload. + + + + + Windows-1251 encoding. + + + + + UTF-8 encoding. + + + + + KOI8-R encoding. + + + + + Represents errors that occur during the generation of a RussiaPaymentOrder payload. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + Generates a ShadowSocks proxy config payload. + + + + + Generates a ShadowSocks proxy config payload. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Optional tag line + + + + Generates a ShadowSocks proxy config payload with plugin options. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Plugin name + Plugin option + Optional tag line + + + + Generates a ShadowSocks proxy config payload with additional parameters. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Additional parameters + Optional tag line + + + + Converts the ShadowSocks config payload to a string. + + A string representation of the ShadowSocks config payload. + + + + Specifies the encryption methods used by ShadowSocks. + + + + + ChaCha20-IETF with Poly1305 AEAD encryption method + + + + + AES-128 Galois/Counter Mode (GCM) encryption method + + + + + AES-192 Galois/Counter Mode (GCM) encryption method + + + + + AES-256 Galois/Counter Mode (GCM) encryption method + + + + + Extended ChaCha20-IETF with Poly1305 AEAD encryption method (non-standard) + + + + + AES-128 Cipher Feedback (CFB) stream cipher + + + + + AES-192 Cipher Feedback (CFB) stream cipher + + + + + AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Counter (CTR) stream cipher + + + + + AES-192 Counter (CTR) stream cipher + + + + + AES-256 Counter (CTR) stream cipher + + + + + Camellia-128 Cipher Feedback (CFB) stream cipher + + + + + Camellia-192 Cipher Feedback (CFB) stream cipher + + + + + Camellia-256 Cipher Feedback (CFB) stream cipher + + + + + ChaCha20-IETF stream cipher + + + + + Alias for AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-192 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-256 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-128 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-192 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-256 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-128 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-192 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-256 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + ChaCha20 stream cipher (deprecated) + + + + + Blowfish Cipher Feedback (CFB) stream cipher (deprecated) + + + + + RC4-MD5 stream cipher (deprecated) + + + + + Salsa20 stream cipher (deprecated) + + + + + DES Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + IDEA Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + RC2 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + CAST5 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Salsa20 Counter (CTR) stream cipher (not standard, not in active use) + + + + + RC4 stream cipher (not standard, not in active use) + + + + + SEED Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Table-based encryption method (not standard, not in active use) + + + + + Represents errors that occur during the generation of a ShadowSocksConfig payload. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a Skype call payload + + + + + Initializes a new instance of the class. + + Skype username which will be called + + + + Converts the Skype call payload to a string. + + A string representation of the Skype call payload. + + + + Generates a Slovenian UPN QR payment payload. + + + + + Gets the version of the QR code, which is 15 for Slovenian UPN QR. + + + + + Gets the error correction level of the QR code, which is M for Slovenian UPN QR. + + + + + Gets the ECI mode of the QR code, which is Iso8859_2 for Slovenian UPN QR. + + + + + Limits the length of a string to a specified maximum length. + + The string to limit. + The maximum length of the string. + The limited string. + + + + Initializes a new instance of the class. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Initializes a new instance of the class with a deadline. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The deadline for the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Formats the amount as a string with leading zeros. + + The amount to format. + The formatted amount string. + + + + Calculates the checksum of the payment data. + + The checksum of the payment data. + + + + Returns the Slovenian UPN QR payment data as a string. + + The Slovenian UPN QR payment data as a string. + + + + Generates an SMS payload. + + + + + Creates an SMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates an SMS payload with text (subject). + + Receiver phone number. + Text of the SMS. + Encoding type. + + + + Returns the SMS payload as a string. + + The SMS payload as a string. + + + + Specifies the encoding type for the SMS payload. + + + + + Standard SMS encoding. + + + + + SMSTO encoding. + + + + + SMS encoding for iOS. + + + + + Generates the payload for a SwissQrCode. + + + + + + + + + + + Generates the payload for a SwissQrCode v2.0. (Don't forget to use ECC-Level=M, EncodingMode=UTF-8 and to set the Swiss flag icon to the final QR code.) + + IBAN object + Currency (either EUR or CHF) + Creditor (payee) information + Reference information + Additional information for the QR code + Debitor (payer) information + Amount + Requested date of debitor's payment + Ultimate creditor information (use only in consultation with your bank - for future use only!) + Optional command for alternative processing mode - line 1 + Optional command for alternative processing mode - line 2 + + + + Represents additional information for the SwissQrCode. + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Gets the unstructured message. + + + + + Gets the bill information. + + + + + Gets the trailer. + + + + + Represents exceptions specific to SwissQrCode additional information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents reference information for the SwissQrCode. + + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Gets the reference type. + + + + + Gets the reference text. + + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR". + + + + + QR Reference + + + + + Creditor Reference + + + + + No Reference + + + + + Represents the text type for the reference. + + + + + QR Reference Text + + + + + Creditor Reference ISO 11649 + + + + + Represents exceptions specific to SwissQrCode references. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents an IBAN with type information. + + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Gets a value indicating whether this is a QR-IBAN. + + + + + Converts the IBAN object to its string representation. + + A string representation of the IBAN. + + + + Represents the type of IBAN. + + + + + Regular IBAN + + + + + QR-IBAN + + + + + Represents exceptions specific to SwissQrCode IBANs. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents contact information. + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + Creates a contact with structured address. + + + + + Creates a contact with combined address. + + + + + Returns a string that represents the contact information in the format required for Swiss QR codes. + + A string representing the contact information. + + + + Defines the type of address. + + + + + Structured Address + + + + + Combined Address + + + + + Represents errors that occur during the creation of a Swiss QR code contact. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Returns a string that represents the entire Swiss QR code payload. + + A string representing the Swiss QR code payload. + + + + ISO 4217 currency codes. + + + + + Swiss Franc + + + + + Euro + + + + + Represents errors that occur during Swiss QR Code generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a URL payload for QR codes. + + + + + Initializes a new instance of the class. + + The target URL. If the protocol is not specified, the http protocol will be added. + + + + Returns the URL payload as a string. + + The URL payload as a string, ensuring it starts with "http://" if no protocol is specified. + + + + Generates a WhatsApp message payload for QR codes. + + + + + Initializes a new instance of the class with a receiver number and message. + + + Receiver phone number in full international format. + Omit any zeroes, brackets, or dashes. Use format: 1XXXXXXXXXX. Don't use: +001-(XXX)XXXXXXX. + + The message to be sent. + + + + Initializes a new instance of the class with a message only. + When scanned, the user is asked to choose a contact to receive the message. + + The message to be sent. + + + + Returns the WhatsApp message payload as a string. + + The WhatsApp message URL as a string. + + + + Generates a WiFi payload. Scanned by a QR Code scanner app, the device will connect to the WiFi. + + + + + Initializes a new instance of the class. + + SSID of the WiFi network + Password of the WiFi network + Authentication mode (WEP, WPA, WPA2) + Set flag if the WiFi network hides its SSID + Set flag if ssid/password is delivered as HEX string. Note: May not be supported on iOS devices. + + + + Returns the WiFi payload as a string. + + + + + Specifies the authentication mode for the WiFi network. + + + + + WEP authentication mode + + + + + WPA authentication mode + + + + + No password authentication mode + + + + + WPA2 authentication mode + + + + + Represents a QR code generator that outputs QR codes as PDF byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a PDF document with a black and white QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF document with specified colors and DPI. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The DPI (dots per inch) of the PDF document. + The JPEG quality parameter (obsolete, no longer used). + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF path with rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + PDF path commands as a string. + + + + Converts RGB byte array to PDF color space values (0.0 to 1.0). + + RGB color as byte array. + PDF color string (three decimal values). + + + + Converts an integer to a string using invariant culture for consistent PDF formatting. + + The integer value to convert. + String representation of the integer. + + + + Converts a float to a string using invariant culture for consistent PDF formatting. + + The float value to convert. + String representation of the float. + + + + Provides static methods for creating PDF byte array QR codes. + + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Represents a QR code generator that outputs QR codes as PNG byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PNG of the QR code, using 1-bit grayscale. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Colors may contain transparency. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Accepts 3-byte RGB colors for normal images and 4-byte RGBA-colors for transparent images. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a bitmap where each pixel is represented by a single bit, dark = 0 and light = 1. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the bitmap as a byte array. + + + + Writes the chunks that make up a PNG file. + + + See https://www.w3.org/TR/2003/REC-PNG-20031110 and https://www.ietf.org/rfc/rfc1950.txt. + + + + + Writes the IHDR chunk. This must be the first chunk in the file. + + + + + Writes the PLTE chunk, and also the tRNS chunk if necessary. Must come before the IDAT chunk. + + + + + Writes the IDAT chunk with the actual picture. + + + + + Writes the IEND chunk. This must be the last chunk in the file. + + + + + Provides static methods for creating PNG byte array QR codes. + + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Represents a QR code generator that outputs QR codes as PostScript code. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a black and white PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Cleans double values for international use/formats. + + The input double value. + Returns the cleaned string representation of the double value, with a maximum of 7 significant digits. + + + + Provides static methods for creating PostScript QR codes. + + + + + Creates a PostScript QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Represents a QR code generator that outputs QR codes as bitmap images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code with an optional icon in the center. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The background color of the icon. + Returns the QR code graphic as a bitmap. + + + + Creates a GraphicsPath containing rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + The number of pixels per module. + The offset to apply for quiet zones. + Whether quiet zones are being drawn. + A GraphicsPath containing all dark module rectangles. + + + + Creates a rounded rectangle path for drawing. + + The rectangle for which to create the rounded path. + The radius of the corners. + Returns the rounded rectangle path. + + + + Provides static methods for creating bitmap QR codes. + + + + + Creates a bitmap QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Represents the data structure of a QR code. + + + + + Gets or sets the module matrix of the QR code. + + + + + Initializes a new instance of the class with the specified version. + + The version of the QR code. + + + + Initializes a new instance of the class with the specified version and padding option. + + The version of the QR code. + Indicates whether padding should be added to the QR code. + + + + Initializes a new instance of the class with raw data from a specified path and compression mode. + + The path to the raw data file. + The compression mode used for the raw data. + + + + Initializes a new instance of the class with raw data and compression mode. + + The raw data of the QR code. + The compression mode used for the raw data. + + + + Gets the raw data of the QR code with the specified compression mode. + + The compression mode used for the raw data. + Returns the raw data of the QR code as a byte array. + + + + Saves the raw data of the QR code to a specified file with the specified compression mode. + + The path to the file where the raw data will be saved. + The compression mode used for the raw data. + + + + Gets the version of the QR code. + + + + + Gets the number of modules per side from the specified version. + + The version of the QR code (1 to 40, or -1 to -4 for Micro QR codes). + Returns the number of modules per side. + + + + Releases all resources used by the . + + + + + Specifies the compression mode used for the raw data. + + + + + No compression. + + + + + Deflate compression. + + + + + GZip compression. + + + + + Provides functionality to generate QR code data that can be used to create QR code images. + + + + + Initializes the QR code generator + + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the Micro QR code data which then can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Set fixed Micro QR code target version; must be -1 to -4 representing M1 to M4, or 0 for default. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Validates the specified error correction level. + Returns the provided level if it is valid, or the level M if the provided level is Default. + Throws an exception if an invalid level is provided. + + + + + Generates a QR code data structure using the provided BitArray, error correction level, and version. + The BitArray provided is assumed to already include the count, encoding mode, and/or ECI mode information. + + The BitArray containing the binary-encoded data to be included in the QR code. It should already contain the count, encoding mode, and/or ECI mode information. + The desired error correction level for the QR code. This impacts how much data can be recovered if damaged. + The version of the QR code, determining the size and complexity of the QR code data matrix. + A QRCodeData structure containing the full QR code matrix, which can be used for rendering or analysis. + + + + Generates a BitArray containing the format string for a QR code based on the error correction level and mask pattern version. + The format string includes the error correction level, mask pattern version, and error correction coding. + + The to write to, or null to create a new one. + The version number of the QR Code (1-40, or -1 to -4 for Micro QR codes). + The error correction level to be encoded in the format string. + The mask pattern version to be encoded in the format string. + A BitArray containing the 15-bit format string used in QR code generation. + + + + Encodes the version information of a QR code into a BitArray using error correction coding similar to format information encoding. + This method is used for QR codes version 7 and above. + + A to write the version string to. + The version number of the QR code (7-40). + A BitArray containing the encoded version information, which includes error correction bits. + + + + Calculates the Error Correction Codewords (ECC) for a segment of data using the provided ECC information. + This method applies polynomial division, using the message polynomial and a generator polynomial, + to compute the remainder which forms the ECC codewords. + + + + + Converts all polynomial item coefficients from their alpha exponent notation to decimal representation in place. + This conversion facilitates operations that require polynomial coefficients in their integer forms. + + + + + Determines the most efficient encoding mode for the given plain text based on its character content + and a flag indicating whether to force UTF-8 encoding. + + + + + Checks if a character falls within a specified range. + + + + + Converts a segment of a BitArray representing QR code data into a polynomial, + padding the final byte if necessary (for Micro QR variants like M1 or M3). + + The full bit array representing encoded QR code data. + Starting position in the bit array. + Total number of bits to convert into codewords. + A polynomial representing the message codewords. + + + + Calculates the generator polynomial used for creating error correction codewords. + + The number of error correction codewords to generate. + A polynomial that can be used to generate ECC codewords. + + + + Converts a segment of a BitArray into its decimal (integer) equivalent. + + The integer value that represents the specified binary data. + + + + Converts a decimal number to binary and stores the result in a BitArray starting from a specific index. + + The decimal number to convert to binary. + The number of bits to use for the binary representation (ensuring fixed-width like 8, 16, 32 bits). + The BitArray where the binary bits will be stored. + The starting index in the BitArray where the bits will be stored. + The next index in the BitArray after the last bit placed. + + + + Determines the number of bits used to indicate the count of characters in a segment, depending on the QR code version and the encoding mode. + + The version of the QR code, which influences the number of bits due to increasing data capacity. + The encoding mode (e.g., Numeric, Alphanumeric, Byte) used for the data segment. + The number of bits needed to represent the character count in the specified encoding mode and version. + + + + Calculates the data length based on the encoding mode, text content, and whether UTF-8 is forced. + + The encoding mode used for the QR code data. + The plain text input to be encoded. + A BitArray representing the binary data of the encoded text. + Flag to determine if UTF-8 encoding should be enforced. + The length of data in units appropriate to the encoding (bytes or characters). + + + + Checks if the given string can be accurately represented and retrieved in ISO-8859-1 encoding. + + + + + Converts plain text to a binary format suitable for QR code generation, based on the specified encoding mode. + + The text to be encoded. + The encoding mode. + The ECI mode specifying the character encoding to use. + Flag indicating whether to prepend a UTF-8 Byte Order Mark. + Flag indicating whether UTF-8 encoding is forced. + A BitArray containing the binary representation of the encoded data. + + + + Converts numeric plain text into a binary format specifically optimized for QR codes. + Numeric compression groups up to 3 digits into 10 bits, less for remaining digits if they do not complete a group of three. + + The numeric text to be encoded, which should only contain digit characters. + A BitArray representing the binary data of the encoded numeric text. + + + + Converts plain text into a binary format using byte mode encoding, which supports various character encodings through ECI (Extended Channel Interpretations). + + The text to be encoded. + The ECI mode that specifies the character encoding to use. + Specifies whether to include a Byte Order Mark (BOM) for UTF-8 encoding. + Forces UTF-8 encoding regardless of the text content's compatibility with ISO-8859-1. + A BitArray representing the binary data of the encoded text. + + The returned text is always encoded as ISO-8859-1 unless either the text contains a non-ISO-8859-1 character or + UTF-8 encoding is forced. This does not meet the QR Code standard, which requires the use of ECI to specify the encoding + when not ISO-8859-1. + + + + + Converts an array of bytes into a BitArray, considering the proper bit order within each byte. + Unlike the constructor of BitArray, this function preserves the MSB-to-LSB order within each byte. + + The byte array to convert into a BitArray. + The number of leading zeros to prepend to the resulting BitArray. + A BitArray representing the bits of the input byteArray, with optional leading zeros. + + + + Performs a bitwise XOR operation between two polynomials, commonly used in QR code error correction coding. + + The resultant polynomial after performing the XOR operation. + + + + Multiplies a generator polynomial by a leading term polynomial, reducing the result by a specified lower exponent, + used in constructing QR code error correction codewords. + + + + + Multiplies two polynomials, treating coefficients as exponents of a primitive element (alpha), which is common in error correction algorithms such as Reed-Solomon. + + The first polynomial to multiply. + The second polynomial to multiply. + A new polynomial which is the result of the multiplication of the two input polynomials. + + + + + + + Represents the alignment pattern used in QR codes, which helps ensure the code remains readable even if it is somewhat distorted. + Each QR code version has its own specific alignment pattern locations which this struct encapsulates. + + + + + The version of the QR code. Higher versions have more complex and numerous alignment patterns. + + + + + A list of points where alignment patterns are located within the QR code matrix. + Each point represents the center of an alignment pattern. + + + + + This class contains the alignment patterns used in QR codes. + + + + + A lookup table mapping QR code versions to their corresponding alignment patterns. + + + + + Retrieves the alignment pattern for a specific QR code version. + + + + + Creates a lookup table mapping QR code versions to their corresponding alignment patterns. + Alignment patterns are used in QR codes to help scanners accurately read the code at high speeds and when partially obscured. + This table provides the necessary patterns based on the QR code version which dictates the size and complexity of the QR code. + + A dictionary where keys are QR code version numbers and values are AlignmentPattern structures detailing the positions of alignment patterns for each version. + + + + Encodes alphanumeric characters (0–9, A–Z (uppercase), space, $, %, *, +, -, period, /, colon) into a binary format suitable for QR codes. + + + + + A dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + + + + Creates a dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + A dictionary mapping each supported alphanumeric character to its corresponding value. + + + + Checks if a character is present in the alphanumeric encoding table. + + + + + Converts alphanumeric plain text into a binary format optimized for QR codes. + Alphanumeric encoding packs characters into 11-bit groups for each pair of characters, + and 6 bits for a single remaining character if the total count is odd. + + The alphanumeric text to be encoded, which should only contain characters valid in QR alphanumeric mode. + A BitArray representing the binary data of the encoded alphanumeric text. + + + + Provides QR code capacity and error correction data for each version and encoding mode. + Used to determine how much data can be stored in a QR code and which version is required. + + + + + A list containing detailed capacity information for each version of QR codes. + The index in the capacity table corresponds to one less than the version number. + + + + + A table containing the error correction capacities and data codeword information for different combinations of QR code versions and error correction levels. + + + + + Retrieves the error correction information for a specific QR code version and error correction level. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + The desired error correction level (L, M, Q, or H). Do not supply . + + An object containing the total number of data codewords, ECC per block, + block group details, and other parameters required for encoding error correction data. + + + + + Retrieves the capacity information for a specific QR code version. + The returned structure contains detailed data capacity values for each error correction level (L, M, Q, H) + and encoding mode (Numeric, Alphanumeric, Byte, Kanji), indicating the maximum number of characters + that can be stored in a QR code of the specified version under each configuration. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + A object containing data capacity details for all error correction levels + and encoding modes for the specified version. + + + + + Retrieves the number of remainder bits required for a specific QR code version. + Remainder bits are added to the final bit stream to ensure proper alignment with byte boundaries, + as required by the QR code specification. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + The number of remainder bits (0 to 7) that must be appended to the encoded bit stream. + + + + + Determines the minimum QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Low, Medium, Quartile, High). + The minimum version of the QR code that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Determines the minimum Micro QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Default, Low, Medium, Quartile, High). + The minimum version of the QR code (-1 to -4) that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Generates a table containing the error correction capacities and data codeword information for different QR code versions and error correction levels. + This table is essential for determining how much data can be encoded in a QR code of a specific version and ECC level, + as well as how robust the QR code will be against distortions or obstructions. + + A list of ECCInfo structures, each representing the ECC data and capacities for different combinations of QR code versions and ECC levels. + + + + Generates a list containing detailed capacity information for various versions of QR codes. + This table includes capacities for different encoding modes (numeric, alphanumeric, byte, etc.) under each error correction level. + The capacity table is crucial for QR code generation, as it determines how much data each QR code version can store depending on the encoding mode and error correction level used. + The index in the capacity table corresponds to one less than the version number. + + + + + + + + Represents a block of codewords in a QR code. QR codes are divided into several blocks for error correction purposes. + Each block contains a series of data codewords followed by error correction codewords. + + + + + Initializes a new instance of the CodewordBlock struct with specified arrays of code words and error correction (ECC) words. + + The offset of the data codewords within the main BitArray. Data codewords carry the actual information. + The length in bits of the data codewords within the main BitArray. + The array of error correction codewords for this block. These codewords help recover the data if the QR code is damaged. + + + + Gets the offset of the data codewords in the BitArray. + + + + + Gets the length of the data codewords in the BitArray. + + + + + Gets the error correction codewords associated with this block. + + + + + Represents the error correction coding (ECC) information for a specific version and error correction level of a QR code. + + + + + Initializes a new instance of the ECCInfo struct with specified properties. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The number of error correction codewords per block. + The number of blocks in group 1. + The number of codewords in each block of group 1. + The number of blocks in group 2, if any. + The number of codewords in each block of group 2, if any. + + + + Initializes a new instance of the ECCInfo struct with specified properties for Micro QR codes. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The total number of data bits for this version and error correction level. + The number of error correction codewords per block. + + + + Gets the version number of the QR code. + + + + + Gets the error correction level of the QR code. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the number of error correction codewords per block. + + + + + Gets the number of blocks in group 1. + + + + + Gets the number of codewords in each block of group 1. + + + + + Gets the number of blocks in group 2, if any. + + + + + Gets the number of codewords in each block of group 2, if any. + + + + + Defines the levels of error correction available in QR codes. + Each level specifies the proportion of data that can be recovered if the QR code is partially obscured or damaged. + + + + + Default error correction level, which will select Level M (Medium) unless otherwise specified by the payload. + Level M allows approximately 15% of data to be recovered, offering a balance between data capacity and error recovery. + + + + + Level L: Low error correction (approximately 7% of data can be recovered). + This level allows the highest data density. + + + + + Level M: Medium error correction (approximately 15% of data can be recovered). + Offers a balance between data capacity and error recovery. + + + + + Level Q: Quartile error correction (approximately 25% of data can be recovered). + More robust error correction at the cost of reduced data capacity. + + + + + Level H: High error correction (approximately 30% of data can be recovered). + Provides the highest level of error recovery, ideal for environments with high risk of data loss. + + + + + Enumerates the Extended Channel Interpretation (ECI) modes used in QR codes to handle different character encoding standards. + ECI mode allows QR codes to efficiently encode data using character sets other than the default ISO-8859-1. + + + + + Default encoding mode (typically ISO-8859-1). Used when no ECI mode is explicitly specified. + This mode is assumed in basic QR codes where no extended character sets are needed. + + + + + Specifies the use of the ISO-8859-1 character set, covering most Western European languages. + This mode explicitly sets the encoding to ISO-8859-1, which includes characters used in languages such as English, French, German, and Spanish. + + + + + Specifies the use of the ISO-8859-2 character set, which is primarily used for Central and Eastern European languages. + This includes characters used in languages such as Polish, Czech, Slovak, Hungarian, and Romanian. + + + + + Specifies the use of UTF-8 encoding. + UTF-8 can encode any Unicode character and is useful for QR codes that need to support multi-language content. + + + + + Specifies the encoding modes for the characters in a QR code. + + + + + Numeric encoding mode, which is used to encode numeric data (digits 0-9). + Three characters are encoded into 10 bits. + + + + + Alphanumeric encoding mode, which is used to encode alphanumeric characters (0-9, A-Z, space, and some punctuation). + Two characters are encoded into 11 bits. + + + + + Byte encoding mode, primarily using the ISO-8859-1 character set. Each character is encoded into 8 bits. + When combined with ECI, it can be adapted to use other character sets. + + + + + Kanji encoding mode, which is used to encode characters from the Shift JIS character set, primarily for Japanese Kanji and Kana characters. + One character is encoded into 13 bits. This mode is not currently supported by QRCoder. + + + + + Extended Channel Interpretation (ECI) mode, which specifies a character set via an 8-bit number followed by one of the other encoding modes. + This allows adapting the byte encoding to accommodate various global text encodings. + + + + + Represents a Galois field of 256 elements (GF(256)) used in finite field arithmetic, + typically for error correction algorithms such as Reed-Solomon. + + Provides mappings between exponential and integer representations of field elements + using a primitive element (α). The field is constructed with respect to a generator + polynomial and used for efficient encoding and decoding operations. + + + + + + Retrieves the integer value from the Galois field that corresponds to a given exponent. + This is used in Reed-Solomon and other error correction calculations involving Galois fields. + + + + + Retrieves the exponent from the Galois field that corresponds to a given integer value. + Throws an exception if the integer value is zero, as zero does not have a logarithmic representation in the field. + + + + + Normalizes a Galois field exponent to ensure it remains within the bounds of the field's size. + This is particularly necessary when performing multiplications in the field which can result in exponents exceeding the field's maximum. + + + + + Struct that represents blocked modules using rectangles. + + + + + Initializes a new instance of the struct with a specified size. + + The size of the blocked modules matrix. + + + + Adds a blocked module at the specified coordinates. + + The x-coordinate of the module. + The y-coordinate of the module. + + + + Adds a blocked module defined by the specified rectangle. + + The rectangle that defines the blocked module. + + + + Checks if the specified coordinates are blocked. + + The x-coordinate to check. + The y-coordinate to check. + true if the coordinates are blocked; otherwise, false. + + + + Checks if the specified rectangle is blocked. + + The rectangle to check. + true if the rectangle is blocked; otherwise, false. + + + + Places the version information on the QR code matrix for versions 7 and higher. Version information + is encoded into two small rectangular areas near the bottom left and top right corners outside the timing patterns. + + The QR code data structure to modify. + The bit array containing the version information. + Indicates whether an offset should be applied to the version information placement. + + + + Places the format information on the QR code, encoding the error correction level and mask pattern used. + + The QR code data structure to modify. + The bit array containing the format information. + Specifies whether an offset should be applied. + + + + Applies the most effective mask pattern to the QR code based on minimizing the penalty score, + which evaluates how well the pattern will work for QR scanners. + + The QR code data structure where the mask will be applied. + The version of the QR code, which determines the size and complexity. + List of rectangles representing areas that must not be overwritten. + The error correction level of the QR code, which affects format string values. + The index of the selected mask pattern. + + + + Places data bits into the QR code's module matrix following a specific pattern that navigates around blocked modules. + + The QR code data structure where the data bits are to be placed. + The data bits to be placed within the QR code matrix. + A list of rectangles representing areas within the QR code matrix that should not be modified because they contain other necessary information like format and version info. + + + + Reserves separator areas around the positioning patterns of a QR code to ensure that these crucial areas remain unmodified during data placement. + + The version of the QR code, which determines the number of finder patterns. + The size of the QR code matrix. + A list of rectangles representing areas that must not be overwritten. + + + + Reserves areas for version information on QR codes that are version 7 or higher. Also reserves space for format information. + + The size of the QR code matrix. + The version number of the QR code, which determines the placement of version information. + A list of rectangles representing areas that must not be overwritten. + + + + Places a dark module on the QR code matrix as per QR code specification, which requires a dark module at a specific position for all QR codes. + + The QR code data structure where the dark module is to be placed. + The version number of the QR code, which determines the specific location of the dark module. + A list of rectangles representing areas that must not be overwritten, updated to include the dark module. + + + + Places finder patterns on the QR code. Finder patterns are critical for QR code scanners to correctly orient and recognize the QR code. + + The QR code data structure where the finder patterns will be placed. + A list of rectangles representing areas that must not be overwritten. This is updated with the areas occupied by the finder patterns. + + + + Places alignment patterns on the QR code matrix. Alignment patterns help ensure the scanner can correctly interpret the QR code at various scales and orientations. + + The QR code data structure where the alignment patterns will be placed. + A list of points representing the centers of where alignment patterns should be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by alignment patterns. + + + + Places timing patterns in the QR code. Timing patterns are alternating dark and light modules that help scanners determine the coordinates of modules within the QR code. + + The QR code data structure where the timing patterns will be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by timing patterns. + + + + Provides static methods and properties to handle mask patterns used in QR code generation. + Mask patterns are applied to QR codes to break up patterns in the data matrix that might confuse scanners. + + + + + A dictionary mapping each mask pattern index to its corresponding function that calculates whether a given pixel should be masked. + + + + + Mask pattern 1: (x + y) % 2 == 0 + Applies a checkerboard mask on the QR code. + + + + + Mask pattern 2: y % 2 == 0 + Applies a horizontal striping mask on the QR code. + + + + + Mask pattern 3: x % 3 == 0 + Applies a vertical striping mask on the QR code. + + + + + Mask pattern 4: (x + y) % 3 == 0 + Applies a diagonal striping mask on the QR code. + + + + + Mask pattern 5: ((y / 2) + (x / 3)) % 2 == 0 + Applies a complex pattern mask on the QR code, mixing horizontal and vertical rules. + + + + + Mask pattern 6: ((x * y) % 2 + (x * y) % 3) == 0 + Applies a mask based on the product of x and y coordinates modulo 2 and 3. + + + + + Mask pattern 7: (((x * y) % 2 + (x * y) % 3) % 2) == 0 + Applies a mask based on a more complex function involving the product of x and y coordinates. + + + + + Mask pattern 8: (((x + y) % 2) + ((x * y) % 3) % 2) == 0 + Combines rules of checkers and complex multiplicative masks. + + + + + Calculates a penalty score for a Micro QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Calculates a penalty score for a QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + The score is the sum of four penalty rules applied to the QR code. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Represents a 2D point with integer coordinates. + + + + + Gets the X-coordinate of the point. + + + + + Gets the Y-coordinate of the point. + + + + + Initializes a new instance of the struct with specified X and Y coordinates. + + The X-coordinate of the point. + The Y-coordinate of the point. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + True if the specified has the same X and Y coordinates as the current ; otherwise, false. + + If this method which implements is not implemented, comparisons used by methods such as + fall back to reflection, which causes heap allocations internally during the calls to . + + + + + + + + + + + Represents a polynomial, which is a sum of polynomial terms. + + + + + Initializes a new instance of the struct with a specified number of initial capacity for polynomial terms. + + The initial capacity of the polynomial items list. + + + + Adds a polynomial term to the polynomial. + + + + + Removes the polynomial term at the specified index. + + + + + Gets or sets a polynomial term at the specified index. + + + + + Gets the number of polynomial terms in the polynomial. + + + + + Removes all polynomial terms from the polynomial. + + + + + Clones the polynomial, creating a new instance with the same polynomial terms. + + + + + Sorts the collection of using a custom comparer function. + + + A function that compares two objects and returns an integer indicating their relative order: + less than zero if the first is less than the second, zero if they are equal, or greater than zero if the first is greater than the second. + + + + + Returns a string that represents the polynomial in standard algebraic notation. + Example output: "a^2*x^3 + a^5*x^1 + a^3*x^0", which represents the polynomial 2x³ + 5x + 3. + + + + + + + + Ensures that the polynomial has enough capacity to store the specified number of polynomial terms. + + + + + Rents memory for the polynomial terms from a shared memory pool. + + + + + Returns memory allocated for the polynomial terms back to a shared memory pool. + + + + + Returns an enumerator that iterates through the polynomial terms. + + + + + Value type enumerator for the struct. + + + + + Represents an individual term of a polynomial, consisting of a coefficient and an exponent. + For example, the term 3x² would be represented as a with a coefficient of 3 and an exponent of 2. + + + + + Initializes a new instance of the struct with the specified coefficient and exponent. + + The coefficient of the polynomial term. For example, in the term 3x², the coefficient is 3. + The exponent of the polynomial term. For example, in the term 3x², the exponent is 2. + + + + Gets the coefficient of the polynomial term. + + + + + Gets the exponent of the polynomial term. + + + + + Represents a rectangle defined by its top-left corner's coordinates, width, and height. + + + + + Gets the X-coordinate of the top-left corner of the rectangle. + + + + + Gets the Y-coordinate of the top-left corner of the rectangle. + + + + + Gets the width of the rectangle. + + + + + Gets the height of the rectangle. + + + + + Initializes a new instance of the struct with the specified top-left corner coordinates, width, and height. + + The X-coordinate of the top-left corner of the rectangle. + The Y-coordinate of the top-left corner of the rectangle. + The width of the rectangle. + The height of the rectangle. + + + + Represents version-specific information of a QR code. + + + + + Initializes a new instance of the struct with a specific version number and its details. + + The version number of the QR code. Each version has a different module configuration. + A list of detailed information related to error correction levels and capacity for each encoding mode. + + + + Gets the version number of the QR code. Each version number specifies a different size of the QR matrix. + + + + + Gets a list of details about the QR code version, including the error correction levels and encoding capacities. + + + + + Represents the detailed information about each error correction level and its corresponding capacities in different encoding modes for a specific version of a QR code. + + + + + Initializes a new instance of the struct, detailing the error correction level and the capacity for each encoding mode. + + The error correction level, which determines how much of the code can be restored if the QR code gets damaged. + A dictionary mapping each encoding mode to its capacity for the specific error correction level. + + + + Gets the error correction level of the QR code, influencing how robust the QR code is against errors and damage. + + + + + Gets a dictionary that contains the capacities of different encoding modes under the specified error correction level. + These capacities dictate how many characters can be encoded under each mode. + + + + + Represents a QR code generator that outputs QR codes as SVG images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a scalable QR code as an SVG string. + + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string. + + The pixel size each dark/light module is drawn. + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors, optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors and optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Determines if a module at (x,y) is blocked by the logo area defined by attr. + + + + + Calculates the logo's position and size within the QR code based on the specified percentage size. + + + + + Gets the transparency value (0-255) from a color string. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + The alpha/transparency value from 0 (fully transparent) to 255 (fully opaque). Returns 255 for colors without alpha channel. + + + + Determines if a color string represents a partially transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is transparent; otherwise false. + + + + Determines if a color string represents a fully transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is fully transparent; otherwise false. + + + + Converts a Color to a hex string in #RGB, #RRGGBB or #RRGGBBAA format; or 'transparent' for fully transparent colors. + + The color to convert. + A hex string representation of the color. + + + + Mode of sizing attribute on SVG root node + + + + + Specifies width and height attributes for SVG sizing + + + + + Width and height are not included within the SVG tag; viewBox is scaled to fit the container + + + + + Represents a logo graphic that can be rendered on a SvgQRCode + + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as Bitmap/rasterized graphic + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as SVG/vectorized graphic/string + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + If true, the logo will embedded as native svg instead of embedding it as image-tag + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as PNG + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Returns the raw logo's data + + + + + Defines, if the logo shall be natively embedded. + true=native svg embedding, false=embedding via image-tag + + + + + Returns the media type of the logo + + + + + + Returns the logo as data-uri + + + + + Returns how much of the QR code should be covered by the logo (in percent) + + + + + Returns if the background of the logo should be cleaned (no QR modules will be rendered behind the logo) + + + + + Media types for SvgLogos + + + + + Portable Network Graphics (PNG) image format + + + + + Scalable Vector Graphics (SVG) image format + + + + + Provides static methods for creating SVG QR codes. + + + + + Creates an SVG QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The pixel size each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HEX format (e.g., #000000). + The color of the light modules in HEX format (e.g., #ffffff). + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Specifies that when a method returns System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue, + the parameter will not be null even if the corresponding type allows it. + + + + + Initializes the attribute with the specified return value condition. + + If the method returns this value, the associated parameter will not be null. + + + + Gets the return value condition. If the method returns this value, the associated + parameter will not be null. + + + + diff --git a/packages/QRCoder.1.7.0/lib/netstandard2.1/QRCoder.dll b/packages/QRCoder.1.7.0/lib/netstandard2.1/QRCoder.dll new file mode 100644 index 0000000..744b672 Binary files /dev/null and b/packages/QRCoder.1.7.0/lib/netstandard2.1/QRCoder.dll differ diff --git a/packages/QRCoder.1.7.0/lib/netstandard2.1/QRCoder.xml b/packages/QRCoder.1.7.0/lib/netstandard2.1/QRCoder.xml new file mode 100644 index 0000000..ce2e39a --- /dev/null +++ b/packages/QRCoder.1.7.0/lib/netstandard2.1/QRCoder.xml @@ -0,0 +1,5572 @@ + + + + QRCoder + + + + + Abstract base class for generating QR codes. + Derived classes typically render a QR code into a specific format (png, System.Drawing.Bitmap, PDF, etc). + + + + + Gets or sets the QRCodeData used to generate the QR code. + + + + + Initializes a new instance of the AbstractQRCode class. + + + + + Initializes a new instance of the AbstractQRCode class with the specified QRCodeData. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Sets the QRCodeData object that will be used to generate the QR code. + This method is useful for COM objects connections. + + The QRCodeData object generated by QRCodeGenerator.CreateQrCode(). + + + + Disposes the QRCodeData object. + + + + + Represents an art-style QR code generator that provides functionality to render QR codes with dots as modules. + + + + + Initializes a new instance of the class. + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + generated by the . + + + + Renders an art-style QR code with dots as modules. (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and a background image (With default settings: DarkColor=Black, LightColor=White, Background=Transparent, QuietZone=true) + + A bitmap object that will be used as background picture + QRCode graphic as bitmap + + + + Renders an art-style QR code with dots as modules and various user settings + + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + If the pixelSize is bigger than the pixelsPerModule or may end up filling the Module making a traditional QR code. + + Pixels used per module rendered + Size of the dots + Color of the pixels + + + + + Checks if a given module(-position) is part of the quietzone of a QR code + + X position + Y position + Total number of modules per row + true, if position is part of quiet zone + + + + Checks if a given module(-position) is part of one of the three finder patterns of a QR code + + X position + Y position + Total number of modules per row + Offset in modules (usually depending on drawQuietZones parameter) + true, if position is part of any finder pattern + + + + Resize to a square bitmap, but maintain the aspect ratio by padding transparently. + + + + Resized image as bitmap + + + + Defines how the quiet zones shall be rendered. + + + + + Quiet zones are rendered with dotted modules. + + + + + Quiet zones are rendered with flat, solid modules. + + + + + Defines how the background image (if set) shall be rendered. + + + + + Background image spans the complete graphic. + + + + + Background image is only painted in the data area, excluding the quiet zone. + + + + + Provides static methods for creating art-style QR codes. + + + + + Helper function to create an ArtQRCode graphic with a single function call + + Text/payload to be encoded inside the QR code + Amount of px each dark/light module of the QR code shall take place in the final QR code image + Color of the dark modules + Color of the light modules + Color of the background + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + A bitmap object that will be used as background picture + Value between 0.0 to 1.0 that defines how big the module dots are. The bigger the value, the less round the dots will be. + If true a white border is drawn around the whole QR Code + Style of the quiet zones + Style of the background image (if set). Fill=spanning complete graphic; DataAreaOnly=Don't paint background into quietzone + Optional image that should be used instead of the default finder patterns + QRCode graphic as bitmap + + + + Represents an ASCII-style QR code generator that provides functionality to render QR codes as textual representations. + + + + + Constructor without params to be used in COM Objects connections + + + + + Initializes a new instance of the class with the specified . + + The QR code data generated by the . + + + + Returns a strings that contains the resulting QR code as textual representation. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + End of line separator. (Default: \n) + + + + + Returns an array of strings that contains each line of the resulting QR code as ASCII chars. + + Number of repeated darkColorString/whiteSpaceString per module. + String for use as dark color modules. In case of string make sure whiteSpaceString has the same length. + String for use as white modules (whitespace). In case of string make sure darkColorString has the same length. + Bool that defines if quiet zones around the QR code shall be drawn + + + + + Returns a strings that contains the resulting QR code as minified textual representation. + + Bool that defines if quiet zones around the QR code shall be drawn + If set to true, dark and light colors will be inverted + End of line separator. (Default: \n) + + + + + Provides static methods for generating ASCII-style QR codes. + + + + + Generates an ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Number of repeated characters per module. + String representing dark modules. + String representing light modules. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + ASCII representation of the QR code. + + + + Generates a small ASCII QR code graphic with specified parameters. + + The text to be encoded in the QR code. + Error correction level for the QR code. + Force UTF-8 encoding. + Include UTF-8 byte order mark. + Extended Channel Interpretation mode. + Specific QR code version to use. + End of line separator. + Include quiet zones around the QR code. + Invert dark and light colors. + Minified ASCII representation of the QR code. + + + + Represents a QR code generator that outputs base64-encoded images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a base64-encoded string that contains the resulting QR code as a PNG image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Returns a base64-encoded string that contains the resulting QR code as an image with an embedded icon. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The icon to embed in the center of the QR code. + The size of the icon as a percentage of the QR code. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Converts a bitmap to a base64-encoded string. + + The bitmap to convert. + The type of image (PNG, JPEG, GIF). + Returns the base64-encoded string representation of the bitmap. + + + + Specifies the type of image to generate. + + + + + Graphics Interchange Format (GIF) image format, a bitmap image format with limited color support + + + + + Joint Photographic Experts Group (JPEG) image format, a lossy compressed image format + + + + + Portable Network Graphics (PNG) image format, a lossless raster graphics format + + + + + Provides static methods for creating base64-encoded QR codes. + + + + + Creates a base64-encoded QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + The type of image to generate (PNG, JPEG, GIF). + Returns the QR code graphic as a base64-encoded string. + + + + Represents a QR code generator that outputs QR codes as bitmap byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Returns the QR code graphic as a bitmap byte array. + + + + Returns the QR code graphic as a bitmap byte array. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGB byte array. + The color of the light modules as an RGB byte array. + Returns the QR code graphic as a bitmap byte array. + + + + Converts an integer to a 4 bytes and writes them to a byte array at given position + + The integer to convert. + Index of destinationArray where the converted bytes are written to + Destination byte array that receives the bytes + + + + Provides helper functions for creating bitmap byte array QR codes. + + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a bitmap byte array. + + + + Creates a bitmap byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap byte array. + + + + Exception thrown when the given payload exceeds the maximum size of the QR code standard. + + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Initializes a new instance of the class with a specified error message. + + The error correction level of the QR code. + The encoding mode of the QR code. + The fixed version of the QR code. + The maximum size allowed for the given parameters in bytes. + + + + Helper methods for . + + + + + Copies a specified number of elements from one to another starting at the specified offsets. + + The source from which elements will be copied. + The zero-based index in the source at which copying begins. + The destination to which elements will be copied. + The zero-based index in the destination at which storing begins. + The number of elements to copy. + The index in the destination immediately following the last copied element. + + + + Indicates whether the specified string is null, empty, or consists only of white-space characters. + + + if the is null, empty, or white space; otherwise, . + + + + + Converts a hex color string to a byte array. + + Color in HEX format like #ffffff. + Returns the color as a byte array. + + + + Appends an integer value to the StringBuilder using invariant culture formatting. + + The StringBuilder to append to. + The integer value to append. + + + + Appends a float value to the StringBuilder using invariant culture formatting with G7 precision. + + The StringBuilder to append to. + The float value to append. + + + + Used to represent a string value for a value in an enum + + + + + Holds the alue in an enum + + + + + Init a StringValue Attribute + + + + + + Enumeration extension methods. + + + + + Will get the string value for a given enum's value + + + + + Provides utility methods for generating QR code payloads. + + + Contains classes and methods for generating payloads for QR codes. + + + + + Validates the structure and checksum of an IBAN. + + The IBAN to validate. + True if the IBAN is valid; otherwise, false. + + + + Validates the structure and checksum of a QR IBAN. + + The QR IBAN to validate. + True if the QR IBAN is valid; otherwise, false. + + + + Validates the structure of a BIC. + + The BIC to validate. + True if the BIC is valid; otherwise, false. + + + + Validates the structure of a BIC with optional requirement check. + + The BIC to validate. + Whether the BIC is required. If false, null/empty values are considered valid. + True if the BIC is valid; otherwise, false. + + + + Converts a string to a specified encoding. + + The string to convert. + The encoding to use. + The converted string. + + + + Escapes forbidden characters in a string. + + The input string. + Indicates whether to use a simple escape mode. + The escaped string. + + + + Validates a string using the Mod10 checksum algorithm. + + The string to validate. + True if the string is valid; otherwise, false. + + + + Checks if a string is in hexadecimal format. + + The input string. + True if the string is in hexadecimal format; otherwise, false. + + + + Represents a BezahlCode payload for QR codes. + + + + + Initializes a new instance of the class for contact data. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Reason (Verwendungszweck) + + + + Initializes a new instance of the class for non-SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Initializes a new instance of the class for SEPA payments. + + Type of the bank transfer + Name of the receiver (Empfänger) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + + + + Generic constructor. Please use specific (non-SEPA or SEPA) constructor. + + Type of the bank transfer + Name of the receiver (Empfänger) + Bank account (Kontonummer) + Bank institute (Bankleitzahl) + IBAN + BIC + Amount (Betrag) + Unit of intervall for payment ('M' = monthly, 'W' = weekly) + Intervall for payment. This value is combined with 'periodicTimeunit' + Date of first periodic execution + Date of last periodic execution + Creditor id (Gläubiger ID) + Manadate id (Mandatsreferenz) + Signature date (Erteilungsdatum des Mandats) + Reason (Verwendungszweck) + Transfer Key (Textschlüssel, z.B. Spendenzahlung = 69) + SEPA reference (SEPA-Referenz) + Currency (Währung) + Execution date (Ausführungsdatum) + Only used for internal state handdling + + + + + + + ISO 4217 currency codes + + + + + United Arab Emirates Dirham + + + + + Afghan Afghani + + + + + Albanian Lek + + + + + Armenian Dram + + + + + Netherlands Antillean Guilder + + + + + Angolan Kwanza + + + + + Argentine Peso + + + + + Australian Dollar + + + + + Aruban Florin + + + + + Azerbaijani Manat + + + + + Bosnia and Herzegovina Convertible Mark + + + + + Barbados Dollar + + + + + Bangladeshi Taka + + + + + Bulgarian Lev + + + + + Bahraini Dinar + + + + + Burundian Franc + + + + + Bermudian Dollar + + + + + Brunei Dollar + + + + + Bolivian Boliviano + + + + + Bolivian Mvdol (funds code) + + + + + Brazilian Real + + + + + Bahamian Dollar + + + + + Bhutanese Ngultrum + + + + + Botswana Pula + + + + + Belarusian Ruble + + + + + Belize Dollar + + + + + Canadian Dollar + + + + + Congolese Franc + + + + + WIR Euro (complementary currency) + + + + + Swiss Franc + + + + + WIR Franc (complementary currency) + + + + + Unidad de Fomento (funds code) + + + + + Chilean Peso + + + + + Chinese Yuan + + + + + Colombian Peso + + + + + Unidad de Valor Real (UVR) (funds code) + + + + + Costa Rican Colón + + + + + Cuban Convertible Peso + + + + + Cuban Peso + + + + + Cape Verde Escudo + + + + + Czech Koruna + + + + + Djiboutian Franc + + + + + Danish Krone + + + + + Dominican Peso + + + + + Algerian Dinar + + + + + Egyptian Pound + + + + + Eritrean Nakfa + + + + + Ethiopian Birr + + + + + Euro + + + + + Fiji Dollar + + + + + Falkland Islands Pound + + + + + Pound Sterling + + + + + Georgian Lari + + + + + Ghanaian Cedi + + + + + Gibraltar Pound + + + + + Gambian Dalasi + + + + + Guinean Franc + + + + + Guatemalan Quetzal + + + + + Guyanese Dollar + + + + + Hong Kong Dollar + + + + + Honduran Lempira + + + + + Croatian Kuna + + + + + Haitian Gourde + + + + + Hungarian Forint + + + + + Indonesian Rupiah + + + + + Israeli New Shekel + + + + + Indian Rupee + + + + + Iraqi Dinar + + + + + Iranian Rial + + + + + Icelandic Króna + + + + + Jamaican Dollar + + + + + Jordanian Dinar + + + + + Japanese Yen + + + + + Kenyan Shilling + + + + + Kyrgyzstani Som + + + + + Cambodian Riel + + + + + Comoro Franc + + + + + North Korean Won + + + + + South Korean Won + + + + + Kuwaiti Dinar + + + + + Cayman Islands Dollar + + + + + Kazakhstani Tenge + + + + + Lao Kip + + + + + Lebanese Pound + + + + + Sri Lankan Rupee + + + + + Liberian Dollar + + + + + Lesotho Loti + + + + + Libyan Dinar + + + + + Moroccan Dirham + + + + + Moldovan Leu + + + + + Malagasy Ariary + + + + + Macedonian Denar + + + + + Myanmar Kyat + + + + + Mongolian Tögrög + + + + + Macanese Pataca + + + + + Mauritanian Ouguiya + + + + + Mauritian Rupee + + + + + Maldivian Rufiyaa + + + + + Malawian Kwacha + + + + + Mexican Peso + + + + + Mexican Unidad de Inversión (UDI) (funds code) + + + + + Malaysian Ringgit + + + + + Mozambican Metical + + + + + Namibian Dollar + + + + + Nigerian Naira + + + + + Nicaraguan Córdoba + + + + + Norwegian Krone + + + + + Nepalese Rupee + + + + + New Zealand Dollar + + + + + Omani Rial + + + + + Panamanian Balboa + + + + + Peruvian Sol + + + + + Papua New Guinean Kina + + + + + Philippine Peso + + + + + Pakistani Rupee + + + + + Polish Złoty + + + + + Paraguayan Guaraní + + + + + Qatari Riyal + + + + + Romanian Leu + + + + + Serbian Dinar + + + + + Russian Ruble + + + + + Rwandan Franc + + + + + Saudi Riyal + + + + + Solomon Islands Dollar + + + + + Seychelles Rupee + + + + + Sudanese Pound + + + + + Swedish Krona + + + + + Singapore Dollar + + + + + Saint Helena Pound + + + + + Sierra Leonean Leone + + + + + Somali Shilling + + + + + Surinamese Dollar + + + + + South Sudanese Pound + + + + + São Tomé and Príncipe Dobra + + + + + Salvadoran Colón + + + + + Syrian Pound + + + + + Swazi Lilangeni + + + + + Thai Baht + + + + + Tajikistani Somoni + + + + + Turkmenistan Manat + + + + + Tunisian Dinar + + + + + Tongan Paʻanga + + + + + Turkish Lira + + + + + Trinidad and Tobago Dollar + + + + + New Taiwan Dollar + + + + + Tanzanian Shilling + + + + + Ukrainian Hryvnia + + + + + Ugandan Shilling + + + + + United States Dollar + + + + + United States Dollar (Next day) (funds code) + + + + + Uruguay Peso en Unidades Indexadas (URUIURUI) (funds code) + + + + + Uruguayan Peso + + + + + Uzbekistan Som + + + + + Venezuelan Bolívar + + + + + Vietnamese Đồng + + + + + Vanuatu Vatu + + + + + Samoan Tālā + + + + + CFA Franc BEAC + + + + + Silver (one troy ounce) + + + + + Gold (one troy ounce) + + + + + Bond Markets Unit European Composite Unit (EURCO) + + + + + Bond Markets Unit European Monetary Unit (E.M.U.-6) + + + + + Bond Markets Unit European Unit of Account 9 (E.U.A.-9) + + + + + Bond Markets Unit European Unit of Account 17 (E.U.A.-17) + + + + + East Caribbean Dollar + + + + + Special Drawing Rights + + + + + CFA Franc BCEAO + + + + + Palladium (one troy ounce) + + + + + CFP Franc + + + + + Platinum (one troy ounce) + + + + + SUCRE + + + + + Codes specifically reserved for testing purposes + + + + + ADB Unit of Account + + + + + The code assigned for transactions where no currency is involved + + + + + Yemeni Rial + + + + + South African Rand + + + + + Zambian Kwacha + + + + + Zimbabwean Dollar + + + + + Operation modes of the BezahlCode + + + + + Single payment (Überweisung) + + + + + Single SEPA payment (SEPA-Überweisung) + + + + + Single debit (Lastschrift) + + + + + Single SEPA debit (SEPA-Lastschrift) + + + + + Periodic payment (Dauerauftrag) + + + + + Periodic SEPA payment (SEPA-Dauerauftrag) + + + + + Contact data + + + + + Contact data V2 + + + + + Exception class for BezahlCode errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for Bitcoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin address of the payment receiver. + The amount of Bitcoin to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin Cash payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin Cash payment payload. QR Codes with this payload can open a payment app. + + The Bitcoin Cash address of the payment receiver. + The amount of Bitcoin Cash to transfer. + A reference label. + A reference text or message. + + + + Generates a payload for Bitcoin-like cryptocurrency payment addresses. + + + + + Initializes a new instance of the class. + Generates a Bitcoin-like cryptocurrency payment payload. QR Codes with this payload can open a payment app. + + The type of Bitcoin-like cryptocurrency. + The cryptocurrency address of the payment receiver. + The amount of coins to transfer. + A reference label. + A reference text or message. + + + + Returns a string representation of the Bitcoin-like cryptocurrency address payload. + + A string representation of the cryptocurrency address payload. + + + + Enumerates Bitcoin-like cryptocurrencies. + + + + + Bitcoin. + + + + + Bitcoin Cash. + + + + + Litecoin. + + + + + Generates a bookmark payload. When scanned by a QR code reader, this creates a browser bookmark. + + + + + Initializes a new instance of the class. + + The URL of the bookmark. + The title of the bookmark. + + + + Returns a string representation of the bookmark payload. + + A string representation of the bookmark payload in the MEBKM format. + + + + Generates a calendar entry/event payload. + + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time (including UTC offset) of the event. + End time (including UTC offset) of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Initializes a new instance of the class. + + Subject/title of the calendar event. + Description of the event. + Location (latitude:longitude or address) of the event. + Start time of the event. + End time of the event. + Indicates if it is a full day event. + Type of encoding (universal or iCal). + + + + Returns a string representation of the calendar event payload. + + A string representation of the calendar event in the VEVENT format. + + + + Specifies the encoding type for the calendar event. + + + + + iCalendar complete encoding. + + + + + Universal encoding. + + + + + Generates a vCard or meCard contact dataset. + + + + + Initializes a new instance of the class. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + + + + Initializes a new instance of the class with address type support. + + Payload output type. + The first name. + The last name. + The display name. + Normal phone number. + Mobile phone. + Office phone number. + E-Mail address. + Birthday. + Website / Homepage. + Street. + House number. + City. + State or Region. + Zip code. + Country. + The address order format to use. + Memo text / notes. + Organization/Company. + Organization/Company Title. + The address type (Home, Work, HomePreferred, or WorkPreferred). + + + + Returns a string representation of the contact data payload. + + A string representation of the contact data in the specified format. + + + + Gets the address type string for vCard 2.1 format. + + + + + Gets the address type string for vCard 3.0 format. + + + + + Gets the address type string for vCard 4.0 format. + + + + + Defines the type of address (home or work). + + + + + Home address. + + + + + Work address. + + + + + Home address marked as preferred (default for backwards compatibility). + + + + + Work address marked as preferred. + + + + + Possible output types. Either vCard 2.1, vCard 3.0, vCard 4.0 or MeCard. + + + + + MeCard output type. + + + + + vCard 2.1 output type. + + + + + vCard 3.0 output type. + + + + + vCard 4.0 output type. + + + + + Define the address format. + Default: European format, ([Street] [House Number] and [Postal Code] [City]) + Reversed: North American and others format ([House Number] [Street] and [City] [Postal Code]) + + + + + Default address order format (European format). + + + + + Reversed address order format (North American and others format). + + + + + Generates a geo location payload. Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + + + + Initializes a new instance of the class. + Supports raw location (GEO encoding) or Google Maps link (GoogleMaps encoding). + + Latitude with . as splitter. + Longitude with . as splitter. + Encoding type - GEO or GoogleMaps. + + + + Returns a string representation of the geolocation payload. + + A string representation of the geolocation payload in the specified encoding format. + + + + Defines the encoding types for geolocation payloads. + + + + + GEO encoding type. + + + + + Google Maps encoding type. + + + + + Generates the payload for a Girocode (QR-Code with credit transfer information). + + + + + Gets the ECC level required for Girocode, which is always set to M. + + + + + Initializes a new instance of the class, which contains a payload for a Girocode (QR-Code with credit transfer information). + + Account number of the Beneficiary. Only IBAN is allowed. + BIC of the Beneficiary Bank. + Name of the Beneficiary. + Amount of the Credit Transfer in Euro. (Amount must be more than 0.01 and less than 999999999.99) + Remittance Information (Purpose-/reference text). (optional) + Type of remittance information. Either structured (e.g. ISO 11649 RF Creditor Reference) and max. 35 chars or unstructured and max. 140 chars. + Purpose of the Credit Transfer (optional) + Beneficiary to originator information. (optional) + Girocode version. Either 001 or 002. Default: 001. + Encoding of the Girocode payload. Default: ISO-8859-1 + Thrown when the input values are not valid according to the Girocode specification. + + + + Returns the Girocode payload as a string. + + The Girocode payload as a string. + + + + Defines the Girocode version. + + + + + Girocode version 1. + + + + + Girocode version 2. + + + + + Defines the type of remittance information. + + + + + Structured remittance information. + + + + + Unstructured remittance information. + + + + + Defines the encoding types for Girocode payloads. + + + + + UTF-8 encoding. + + + + + ISO-8859-1 encoding. + + + + + ISO-8859-2 encoding. + + + + + ISO-8859-4 encoding. + + + + + ISO-8859-5 encoding. + + + + + ISO-8859-7 encoding. + + + + + ISO-8859-10 encoding. + + + + + ISO-8859-15 encoding. + + + + + Represents errors that occur during Girocode generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a payload for Litecoin payment addresses. + + + + + Initializes a new instance of the class. + Generates a Litecoin payment payload. QR Codes with this payload can open a payment app. + + The Litecoin address of the payment receiver. + The amount of Litecoin to transfer. + A reference label. + A reference text or message. + + + + Generates an email payload that can be used to create a QR code for sending an email. + + + + + Creates an email payload with subject and message/text. + + Receiver's email address. + Subject line of the email. + Message content of the email. + Payload encoding type. Choose dependent on your QR Code scanner app. + + + + Returns the email payload as a string. + + The email payload as a string. + + + + Defines the encoding types for the email payload. + + + + + Uses the "mailto:" URI scheme. + + + + + Uses the "MATMSG:" format. + + + + + Uses the "SMTP:" format. + + + + + Generates a MMS (Multimedia Messaging Service) payload for QR codes. + + + + + Creates a MMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates a MMS payload with text (subject). + + Receiver phone number. + Text of the MMS. + Encoding type. + + + + Returns the MMS payload as a string. + + The MMS payload as a string. + + + + Defines the encoding types for the MMS payload. + + + + + Uses the "mms:" URI scheme. + + + + + Uses the "mmsto:" URI scheme. + + + + + Generates a Monero transaction payload for QR codes. + + + + + Creates a Monero transaction payload. + + Receiver's Monero address. + Amount to transfer. + Payment ID. + Recipient's name. + Reference text / payment description. + Thrown when the address is null or empty, or when the txAmount is less than or equal to 0. + + + + Returns the Monero transaction payload as a URI string. + + The Monero transaction payload as a URI string. + + + + Exception class for Monero transaction errors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a payload for One Time Password (OTP) used in applications like Google Authenticator. + + + + + The type of OTP (TOTP or HOTP). + + + + + The secret key used for OTP generation. + + + + + The hashing algorithm used for OTP (SHA1, SHA256, SHA512). + + + + + Obsolete. Use instead. + + + + + The issuer of the OTP (usually the service or company name). + + + + + The label for the OTP (usually the user's email or username). + + + + + The number of digits in the OTP (default is 6). + + + + + The counter value for HOTP (only used if Type is HOTP). + + + + + The period in seconds for TOTP (default is 30). + + + + + Enum for OTP types. + + + + + Time-based One-Time Password (TOTP) + + + + + HMAC-based One-Time Password (HOTP) + + + + + Enum for hashing algorithms used in OTP. + + + + + SHA-1 hashing algorithm + + + + + SHA-256 hashing algorithm + + + + + SHA-512 hashing algorithm + + + + + Obsolete. Use instead. + + + + + SHA-1 hashing algorithm (Obsolete) + + + + + SHA-256 hashing algorithm (Obsolete) + + + + + SHA-512 hashing algorithm (Obsolete) + + + + + Returns the OTP payload as a string. + + The OTP payload as a string. + + + + Returns the HOTP payload as a string. + + The HOTP payload as a string. + + + + Returns the TOTP payload as a string. + + The TOTP payload as a string. + + + + Processes the common fields for both TOTP and HOTP. + + StringBuilder to append the common fields. + + + + Represents the base class for all QR code payloads. + + + + + Gets the version of the QR code payload. + + + + + Gets the error correction level of the QR code payload. + + + + + Gets the ECI mode of the QR code payload. + + + + + Returns a string representation of the QR code payload. + + A string representation of the QR code payload. + + + + Generates a phone call payload. + + + + + Initializes a new instance of the class. + + Phone number of the receiver. + + + + Returns the phone call payload as a string. + + The phone call payload as a string. + + + + Generates a payload for a Russian payment order. + + + + + Initializes a new instance of the class. + + Name of the payee (Наименование получателя платежа) + Beneficiary account number (Номер счета получателя платежа) + Name of the beneficiary's bank (Наименование банка получателя платежа) + BIC (БИК) + Box number / account payee's bank (Номер кор./сч. банка получателя платежа) + An (optional) object of additional fields + Type of encoding (default UTF-8) + + + + Returns the payload as a string. + + ⚠ Attention: If CharacterSets was set to windows-1251 or koi8-r you should use ToBytes() instead of ToString() and pass the bytes to CreateQrCode()! + The payload as a string. + + + + Returns the payload as a byte array. + + Should be used if CharacterSets equals windows-1251 or koi8-r. + The payload as a byte array. + + + + Determines a valid separator + + + + + + Takes all optional fields that are not null and returns their string represantion + + A List of strings + + + + Takes all mandatory fields that are not null and returns their string represantion + + A List of strings + + + + Validates a string against a given Regex pattern. Returns input if it matches the Regex expression (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + A regex pattern to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Validates a string against one or more given Regex patterns. Returns input if it matches all regex expressions (=valid) or throws Exception in case there's a mismatch + + String to be validated + Name/descriptor of the string to be validated + An array of regex patterns to be used for validation + An optional error text. If null, a standard error text is generated + Input value (in case it is valid) + + + + Represents optional fields for the RussiaPaymentOrder. + + + + + Payment amount, in kopecks (FTI’s Amount.) + Сумма платежа, в копейках + + + + + Payment name (purpose) + Наименование платежа (назначение) + + + + + Payee's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН получателя платежа + + + + + Payer's INN (Resident Tax Identification Number; Text, up to 12 characters.) + ИНН плательщика + + + + + Status compiler payment document + Статус составителя платежного документа + + + + + KPP of the payee (Tax Registration Code; Text, up to 9 characters.) + КПП получателя платежа + + + + + CBC + КБК + + + + + All-Russian classifier territories of municipal formations + Общероссийский классификатор территорий муниципальных образований + + + + + Basis of tax payment + Основание налогового платежа + + + + + Taxable period + Налоговый период + + + + + Document number + Номер документа + + + + + Document date + Дата документа + + + + + Payment type + Тип платежа + + + + + Payer's surname + Фамилия плательщика + + + + + Payer's name + Имя плательщика + + + + + Payer's patronymic + Отчество плательщика + + + + + Payer's address + Адрес плательщика + + + + + Personal account of a budget recipient + Лицевой счет бюджетного получателя + + + + + Payment document index + Индекс платежного документа + + + + + Personal account number in the personalized accounting system in the Pension Fund of the Russian Federation - SNILS + № лицевого счета в системе персонифицированного учета в ПФР - СНИЛС + + + + + Number of contract + Номер договора + + + + + Personal account number of the payer in the organization (in the accounting system of the PU) + Номер лицевого счета плательщика в организации (в системе учета ПУ) + + + + + Apartment number + Номер квартиры + + + + + Phone number + Номер телефона + + + + + DUL payer type + Вид ДУЛ плательщика + + + + + DUL number of the payer + Номер ДУЛ плательщика + + + + + FULL NAME. child / student + Ф.И.О. ребенка/учащегося + + + + + Date of birth + Дата рождения + + + + + Due date / Invoice date + Срок платежа/дата выставления счета + + + + + Payment period + Период оплаты + + + + + Payment type + Вид платежа + + + + + Service code / meter name + Код услуги/название прибора учета + + + + + Metering device number + Номер прибора учета + + + + + Meter reading + Показание прибора учета + + + + + Notification, accrual, account number + Номер извещения, начисления, счета + + + + + Date of notification / accrual / invoice / resolution (for traffic police) + Дата извещения/начисления/счета/постановления (для ГИБДД) + + + + + Institution number (educational, medical) + Номер учреждения (образовательного, медицинского) + + + + + Kindergarten / school class number + Номер группы детсада/класса школы + + + + + Full name of the teacher, specialist providing the service + ФИО преподавателя, специалиста, оказывающего услугу + + + + + Insurance / additional service amount / Penalty amount (in kopecks) + Сумма страховки/дополнительной услуги/Сумма пени (в копейках) + + + + + Resolution number (for traffic police) + Номер постановления (для ГИБДД) + + + + + Enforcement Proceedings Number + Номер исполнительного производства + + + + + Type of payment code (for example, for payments to Rosreestr) + Код вида платежа (например, для платежей в адрес Росреестра) + + + + + Unique accrual identifier + Уникальный идентификатор начисления + + + + + The technical code recommended by the service provider. Maybe used by the receiving organization to call the appropriate processing IT system. + Технический код, рекомендуемый для заполнения поставщиком услуг. Может использоваться принимающей организацией для вызова соответствующей обрабатывающей ИТ-системы. + + + + + (List of values of the technical code of the payment) + Перечень значений технического кода платежа + + + + + Mobile and landline telephone services + Мобильная связь и стационарный телефон + + + + + Utility services (Housing and Communal Services) + Коммунальные услуги (ЖКХ) + + + + + Traffic police, taxes, duties, and budget payments + ГИБДД, налоги, пошлины, бюджетные платежи + + + + + Security services + Охранные услуги + + + + + Services provided by the Federal Migration Service + Услуги, оказываемые УФМС + + + + + Pension Fund of the Russian Federation + Пенсионный фонд России (ПФР) + + + + + Loan repayment + Погашение кредитов + + + + + Educational institutions + Образовательные учреждения + + + + + Internet and TV services + Интернет и телевидение + + + + + Electronic money + Электронные деньги + + + + + Recreation and travel + Отдых и путешествия + + + + + Investments and insurance + Инвестиции и страхование + + + + + Sports and health + Спорт и здоровье + + + + + Charitable and public organizations + Благотворительные и общественные организации + + + + + Other services + Прочие услуги + + + + + Specifies character sets for encoding the RussiaPaymentOrder payload. + + + + + Windows-1251 encoding. + + + + + UTF-8 encoding. + + + + + KOI8-R encoding. + + + + + Represents errors that occur during the generation of a RussiaPaymentOrder payload. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + Generates a ShadowSocks proxy config payload. + + + + + Generates a ShadowSocks proxy config payload. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Optional tag line + + + + Generates a ShadowSocks proxy config payload with plugin options. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Plugin name + Plugin option + Optional tag line + + + + Generates a ShadowSocks proxy config payload with additional parameters. + + Hostname of the ShadowSocks proxy + Port of the ShadowSocks proxy + Password of the SS proxy + Encryption type + Additional parameters + Optional tag line + + + + Converts the ShadowSocks config payload to a string. + + A string representation of the ShadowSocks config payload. + + + + Specifies the encryption methods used by ShadowSocks. + + + + + ChaCha20-IETF with Poly1305 AEAD encryption method + + + + + AES-128 Galois/Counter Mode (GCM) encryption method + + + + + AES-192 Galois/Counter Mode (GCM) encryption method + + + + + AES-256 Galois/Counter Mode (GCM) encryption method + + + + + Extended ChaCha20-IETF with Poly1305 AEAD encryption method (non-standard) + + + + + AES-128 Cipher Feedback (CFB) stream cipher + + + + + AES-192 Cipher Feedback (CFB) stream cipher + + + + + AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Counter (CTR) stream cipher + + + + + AES-192 Counter (CTR) stream cipher + + + + + AES-256 Counter (CTR) stream cipher + + + + + Camellia-128 Cipher Feedback (CFB) stream cipher + + + + + Camellia-192 Cipher Feedback (CFB) stream cipher + + + + + Camellia-256 Cipher Feedback (CFB) stream cipher + + + + + ChaCha20-IETF stream cipher + + + + + Alias for AES-256 Cipher Feedback (CFB) stream cipher + + + + + AES-128 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-192 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-256 Output Feedback (OFB) stream cipher (non-standard) + + + + + AES-128 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-192 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-256 Cipher Feedback 1-bit (CFB1) stream cipher + + + + + AES-128 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-192 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + AES-256 Cipher Feedback 8-bit (CFB8) stream cipher + + + + + ChaCha20 stream cipher (deprecated) + + + + + Blowfish Cipher Feedback (CFB) stream cipher (deprecated) + + + + + RC4-MD5 stream cipher (deprecated) + + + + + Salsa20 stream cipher (deprecated) + + + + + DES Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + IDEA Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + RC2 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + CAST5 Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Salsa20 Counter (CTR) stream cipher (not standard, not in active use) + + + + + RC4 stream cipher (not standard, not in active use) + + + + + SEED Cipher Feedback (CFB) stream cipher (not standard, not in active use) + + + + + Table-based encryption method (not standard, not in active use) + + + + + Represents errors that occur during the generation of a ShadowSocksConfig payload. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 message that describes the error. + The exception that is the cause of the current exception. + + + + Generates a Skype call payload + + + + + Initializes a new instance of the class. + + Skype username which will be called + + + + Converts the Skype call payload to a string. + + A string representation of the Skype call payload. + + + + Generates a Slovenian UPN QR payment payload. + + + + + Gets the version of the QR code, which is 15 for Slovenian UPN QR. + + + + + Gets the error correction level of the QR code, which is M for Slovenian UPN QR. + + + + + Gets the ECI mode of the QR code, which is Iso8859_2 for Slovenian UPN QR. + + + + + Limits the length of a string to a specified maximum length. + + The string to limit. + The maximum length of the string. + The limited string. + + + + Initializes a new instance of the class. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Initializes a new instance of the class with a deadline. + + The name of the payer. + The address of the payer. + The place of the payer. + The name of the recipient. + The address of the recipient. + The place of the recipient. + The IBAN of the recipient. + The description of the payment. + The amount of the payment. + The deadline for the payment. + The SI model of the recipient. + The SI reference of the recipient. + The code of the payment. + + + + Formats the amount as a string with leading zeros. + + The amount to format. + The formatted amount string. + + + + Calculates the checksum of the payment data. + + The checksum of the payment data. + + + + Returns the Slovenian UPN QR payment data as a string. + + The Slovenian UPN QR payment data as a string. + + + + Generates an SMS payload. + + + + + Creates an SMS payload without text. + + Receiver phone number. + Encoding type. + + + + Creates an SMS payload with text (subject). + + Receiver phone number. + Text of the SMS. + Encoding type. + + + + Returns the SMS payload as a string. + + The SMS payload as a string. + + + + Specifies the encoding type for the SMS payload. + + + + + Standard SMS encoding. + + + + + SMSTO encoding. + + + + + SMS encoding for iOS. + + + + + Generates the payload for a SwissQrCode. + + + + + + + + + + + Generates the payload for a SwissQrCode v2.0. (Don't forget to use ECC-Level=M, EncodingMode=UTF-8 and to set the Swiss flag icon to the final QR code.) + + IBAN object + Currency (either EUR or CHF) + Creditor (payee) information + Reference information + Additional information for the QR code + Debitor (payer) information + Amount + Requested date of debitor's payment + Ultimate creditor information (use only in consultation with your bank - for future use only!) + Optional command for alternative processing mode - line 1 + Optional command for alternative processing mode - line 2 + + + + Represents additional information for the SwissQrCode. + + + + + Creates an additional information object. Both parameters are optional and must be shorter than 141 chars in combination. + + Unstructured text message + Bill information + + + + Gets the unstructured message. + + + + + Gets the bill information. + + + + + Gets the trailer. + + + + + Represents exceptions specific to SwissQrCode additional information. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents reference information for the SwissQrCode. + + + + + Creates a reference object which must be passed to the SwissQrCode instance + + Type of the reference (QRR, SCOR or NON) + Reference text + Type of the reference text (QR-reference or Creditor Reference) + + + + Gets the reference type. + + + + + Gets the reference text. + + + + + Reference type. When using a QR-IBAN you have to use either "QRR" or "SCOR". + + + + + QR Reference + + + + + Creditor Reference + + + + + No Reference + + + + + Represents the text type for the reference. + + + + + QR Reference Text + + + + + Creditor Reference ISO 11649 + + + + + Represents exceptions specific to SwissQrCode references. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents an IBAN with type information. + + + + + IBAN object with type information + + IBAN + Type of IBAN (normal or QR-IBAN) + + + + Gets a value indicating whether this is a QR-IBAN. + + + + + Converts the IBAN object to its string representation. + + A string representation of the IBAN. + + + + Represents the type of IBAN. + + + + + Regular IBAN + + + + + QR-IBAN + + + + + Represents exceptions specific to SwissQrCode IBANs. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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. + + + + Represents contact information. + + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in structured mode (S). + + Last name or company (optional first name) + Zip-/Postcode + City name + Two-letter country code as defined in ISO 3166-1 + Streetname without house number + House number + + + + Contact type. Can be used for payee, ultimate payee, etc. with address in combined mode (K). + + Last name or company (optional first name) + Two-letter country code as defined in ISO 3166-1 + Adress line 1 + Adress line 2 + + + + Creates a contact with structured address. + + + + + Creates a contact with combined address. + + + + + Returns a string that represents the contact information in the format required for Swiss QR codes. + + A string representing the contact information. + + + + Defines the type of address. + + + + + Structured Address + + + + + Combined Address + + + + + Represents errors that occur during the creation of a Swiss QR code contact. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Returns a string that represents the entire Swiss QR code payload. + + A string representing the Swiss QR code payload. + + + + ISO 4217 currency codes. + + + + + Swiss Franc + + + + + Euro + + + + + Represents errors that occur during Swiss QR Code generation. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The message that describes the error. + + + + 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 a null reference if no inner exception is specified. + + + + Generates a URL payload for QR codes. + + + + + Initializes a new instance of the class. + + The target URL. If the protocol is not specified, the http protocol will be added. + + + + Returns the URL payload as a string. + + The URL payload as a string, ensuring it starts with "http://" if no protocol is specified. + + + + Generates a WhatsApp message payload for QR codes. + + + + + Initializes a new instance of the class with a receiver number and message. + + + Receiver phone number in full international format. + Omit any zeroes, brackets, or dashes. Use format: 1XXXXXXXXXX. Don't use: +001-(XXX)XXXXXXX. + + The message to be sent. + + + + Initializes a new instance of the class with a message only. + When scanned, the user is asked to choose a contact to receive the message. + + The message to be sent. + + + + Returns the WhatsApp message payload as a string. + + The WhatsApp message URL as a string. + + + + Generates a WiFi payload. Scanned by a QR Code scanner app, the device will connect to the WiFi. + + + + + Initializes a new instance of the class. + + SSID of the WiFi network + Password of the WiFi network + Authentication mode (WEP, WPA, WPA2) + Set flag if the WiFi network hides its SSID + Set flag if ssid/password is delivered as HEX string. Note: May not be supported on iOS devices. + + + + Returns the WiFi payload as a string. + + + + + Specifies the authentication mode for the WiFi network. + + + + + WEP authentication mode + + + + + WPA authentication mode + + + + + No password authentication mode + + + + + WPA2 authentication mode + + + + + Represents a QR code generator that outputs QR codes as PDF byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a PDF document with a black and white QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF document with specified colors and DPI. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The DPI (dots per inch) of the PDF document. + The JPEG quality parameter (obsolete, no longer used). + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF path with rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + PDF path commands as a string. + + + + Converts RGB byte array to PDF color space values (0.0 to 1.0). + + RGB color as byte array. + PDF color string (three decimal values). + + + + Converts an integer to a string using invariant culture for consistent PDF formatting. + + The integer value to convert. + String representation of the integer. + + + + Converts a float to a string using invariant culture for consistent PDF formatting. + + The float value to convert. + String representation of the float. + + + + Provides static methods for creating PDF byte array QR codes. + + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Returns the QR code graphic as a PDF byte array. + + + + Creates a PDF byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a PDF byte array. + + + + Represents a QR code generator that outputs QR codes as PNG byte arrays. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PNG of the QR code, using 1-bit grayscale. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Colors may contain transparency. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a 2-color PNG of the QR code, using 1-bit indexed color. Accepts 3-byte RGB colors for normal images and 4-byte RGBA-colors for transparent images. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a bitmap where each pixel is represented by a single bit, dark = 0 and light = 1. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the bitmap as a byte array. + + + + Writes the chunks that make up a PNG file. + + + See https://www.w3.org/TR/2003/REC-PNG-20031110 and https://www.ietf.org/rfc/rfc1950.txt. + + + + + Writes the IHDR chunk. This must be the first chunk in the file. + + + + + Writes the PLTE chunk, and also the tRNS chunk if necessary. Must come before the IDAT chunk. + + + + + Writes the IDAT chunk with the actual picture. + + + + + Writes the IEND chunk. This must be the last chunk in the file. + + + + + Provides static methods for creating PNG byte array QR codes. + + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules as an RGBA byte array. + The color of the light modules as an RGBA byte array. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Creates a PNG byte array QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The level of error correction data. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a PNG byte array. + + + + Represents a QR code generator that outputs QR codes as PostScript code. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a black and white PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Creates a colored PostScript code representation of the QR code. + + The dimensions of the viewbox for the QR code. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Cleans double values for international use/formats. + + The input double value. + Returns the cleaned string representation of the double value, with a maximum of 7 significant digits. + + + + Provides static methods for creating PostScript QR codes. + + + + + Creates a PostScript QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of points each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Indicates if the output should be in EPS format. + Returns the QR code graphic as a PostScript string. + + + + Represents a QR code generator that outputs QR codes as bitmap images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Creates a black and white bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HTML hex format. + The color of the light modules in HTML hex format. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Creates a colored bitmap image of the QR code with an optional icon in the center. + + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + The background color of the icon. + Returns the QR code graphic as a bitmap. + + + + Creates a GraphicsPath containing rectangles for all dark modules in the QR code. + Uses Run-Length Encoding (RLE) to combine adjoining dark modules in each row into single rectangles. + + The number of pixels per module. + The offset to apply for quiet zones. + Whether quiet zones are being drawn. + A GraphicsPath containing all dark module rectangles. + + + + Creates a rounded rectangle path for drawing. + + The rectangle for which to create the rounded path. + The radius of the corners. + Returns the rounded rectangle path. + + + + Provides static methods for creating bitmap QR codes. + + + + + Creates a bitmap QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The number of pixels each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules. + The color of the light modules. + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + An optional icon to be placed in the center of the QR code. + The size of the icon as a percentage of the QR code size. + The width of the border around the icon. + Indicates if quiet zones around the QR code should be drawn. + Returns the QR code graphic as a bitmap. + + + + Represents the data structure of a QR code. + + + + + Gets or sets the module matrix of the QR code. + + + + + Initializes a new instance of the class with the specified version. + + The version of the QR code. + + + + Initializes a new instance of the class with the specified version and padding option. + + The version of the QR code. + Indicates whether padding should be added to the QR code. + + + + Initializes a new instance of the class with raw data from a specified path and compression mode. + + The path to the raw data file. + The compression mode used for the raw data. + + + + Initializes a new instance of the class with raw data and compression mode. + + The raw data of the QR code. + The compression mode used for the raw data. + + + + Gets the raw data of the QR code with the specified compression mode. + + The compression mode used for the raw data. + Returns the raw data of the QR code as a byte array. + + + + Saves the raw data of the QR code to a specified file with the specified compression mode. + + The path to the file where the raw data will be saved. + The compression mode used for the raw data. + + + + Gets the version of the QR code. + + + + + Gets the number of modules per side from the specified version. + + The version of the QR code (1 to 40, or -1 to -4 for Micro QR codes). + Returns the number of modules per side. + + + + Releases all resources used by the . + + + + + Specifies the compression mode used for the raw data. + + + + + No compression. + + + + + Deflate compression. + + + + + GZip compression. + + + + + Provides functionality to generate QR code data that can be used to create QR code images. + + + + + Initializes the QR code generator + + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A payload object, generated by the PayloadGenerator-class + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Shall the generator be forced to work in UTF-8 mode? + Should the byte-order-mark be used? + Which ECI mode shall be used? + Set fixed QR code target version. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the Micro QR code data which then can be used in one of the rendering classes to generate a graphical representation. + + The payload which shall be encoded in the QR code + The level of error correction data + Set fixed Micro QR code target version; must be -1 to -4 representing M1 to M4, or 0 for default. + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Calculates the QR code data which than can be used in one of the rendering classes to generate a graphical representation. + + A byte array which shall be encoded/stored in the QR code + The level of error correction data + Thrown when the payload is too big to be encoded in a QR code. + Returns the raw QR code data which can be used for rendering. + + + + Validates the specified error correction level. + Returns the provided level if it is valid, or the level M if the provided level is Default. + Throws an exception if an invalid level is provided. + + + + + Generates a QR code data structure using the provided BitArray, error correction level, and version. + The BitArray provided is assumed to already include the count, encoding mode, and/or ECI mode information. + + The BitArray containing the binary-encoded data to be included in the QR code. It should already contain the count, encoding mode, and/or ECI mode information. + The desired error correction level for the QR code. This impacts how much data can be recovered if damaged. + The version of the QR code, determining the size and complexity of the QR code data matrix. + A QRCodeData structure containing the full QR code matrix, which can be used for rendering or analysis. + + + + Generates a BitArray containing the format string for a QR code based on the error correction level and mask pattern version. + The format string includes the error correction level, mask pattern version, and error correction coding. + + The to write to, or null to create a new one. + The version number of the QR Code (1-40, or -1 to -4 for Micro QR codes). + The error correction level to be encoded in the format string. + The mask pattern version to be encoded in the format string. + A BitArray containing the 15-bit format string used in QR code generation. + + + + Encodes the version information of a QR code into a BitArray using error correction coding similar to format information encoding. + This method is used for QR codes version 7 and above. + + A to write the version string to. + The version number of the QR code (7-40). + A BitArray containing the encoded version information, which includes error correction bits. + + + + Calculates the Error Correction Codewords (ECC) for a segment of data using the provided ECC information. + This method applies polynomial division, using the message polynomial and a generator polynomial, + to compute the remainder which forms the ECC codewords. + + + + + Converts all polynomial item coefficients from their alpha exponent notation to decimal representation in place. + This conversion facilitates operations that require polynomial coefficients in their integer forms. + + + + + Determines the most efficient encoding mode for the given plain text based on its character content + and a flag indicating whether to force UTF-8 encoding. + + + + + Checks if a character falls within a specified range. + + + + + Converts a segment of a BitArray representing QR code data into a polynomial, + padding the final byte if necessary (for Micro QR variants like M1 or M3). + + The full bit array representing encoded QR code data. + Starting position in the bit array. + Total number of bits to convert into codewords. + A polynomial representing the message codewords. + + + + Calculates the generator polynomial used for creating error correction codewords. + + The number of error correction codewords to generate. + A polynomial that can be used to generate ECC codewords. + + + + Converts a segment of a BitArray into its decimal (integer) equivalent. + + The integer value that represents the specified binary data. + + + + Converts a decimal number to binary and stores the result in a BitArray starting from a specific index. + + The decimal number to convert to binary. + The number of bits to use for the binary representation (ensuring fixed-width like 8, 16, 32 bits). + The BitArray where the binary bits will be stored. + The starting index in the BitArray where the bits will be stored. + The next index in the BitArray after the last bit placed. + + + + Determines the number of bits used to indicate the count of characters in a segment, depending on the QR code version and the encoding mode. + + The version of the QR code, which influences the number of bits due to increasing data capacity. + The encoding mode (e.g., Numeric, Alphanumeric, Byte) used for the data segment. + The number of bits needed to represent the character count in the specified encoding mode and version. + + + + Calculates the data length based on the encoding mode, text content, and whether UTF-8 is forced. + + The encoding mode used for the QR code data. + The plain text input to be encoded. + A BitArray representing the binary data of the encoded text. + Flag to determine if UTF-8 encoding should be enforced. + The length of data in units appropriate to the encoding (bytes or characters). + + + + Checks if the given string can be accurately represented and retrieved in ISO-8859-1 encoding. + + + + + Converts plain text to a binary format suitable for QR code generation, based on the specified encoding mode. + + The text to be encoded. + The encoding mode. + The ECI mode specifying the character encoding to use. + Flag indicating whether to prepend a UTF-8 Byte Order Mark. + Flag indicating whether UTF-8 encoding is forced. + A BitArray containing the binary representation of the encoded data. + + + + Converts numeric plain text into a binary format specifically optimized for QR codes. + Numeric compression groups up to 3 digits into 10 bits, less for remaining digits if they do not complete a group of three. + + The numeric text to be encoded, which should only contain digit characters. + A BitArray representing the binary data of the encoded numeric text. + + + + Converts plain text into a binary format using byte mode encoding, which supports various character encodings through ECI (Extended Channel Interpretations). + + The text to be encoded. + The ECI mode that specifies the character encoding to use. + Specifies whether to include a Byte Order Mark (BOM) for UTF-8 encoding. + Forces UTF-8 encoding regardless of the text content's compatibility with ISO-8859-1. + A BitArray representing the binary data of the encoded text. + + The returned text is always encoded as ISO-8859-1 unless either the text contains a non-ISO-8859-1 character or + UTF-8 encoding is forced. This does not meet the QR Code standard, which requires the use of ECI to specify the encoding + when not ISO-8859-1. + + + + + Converts an array of bytes into a BitArray, considering the proper bit order within each byte. + Unlike the constructor of BitArray, this function preserves the MSB-to-LSB order within each byte. + + The byte array to convert into a BitArray. + The number of leading zeros to prepend to the resulting BitArray. + A BitArray representing the bits of the input byteArray, with optional leading zeros. + + + + Performs a bitwise XOR operation between two polynomials, commonly used in QR code error correction coding. + + The resultant polynomial after performing the XOR operation. + + + + Multiplies a generator polynomial by a leading term polynomial, reducing the result by a specified lower exponent, + used in constructing QR code error correction codewords. + + + + + Multiplies two polynomials, treating coefficients as exponents of a primitive element (alpha), which is common in error correction algorithms such as Reed-Solomon. + + The first polynomial to multiply. + The second polynomial to multiply. + A new polynomial which is the result of the multiplication of the two input polynomials. + + + + + + + Represents the alignment pattern used in QR codes, which helps ensure the code remains readable even if it is somewhat distorted. + Each QR code version has its own specific alignment pattern locations which this struct encapsulates. + + + + + The version of the QR code. Higher versions have more complex and numerous alignment patterns. + + + + + A list of points where alignment patterns are located within the QR code matrix. + Each point represents the center of an alignment pattern. + + + + + This class contains the alignment patterns used in QR codes. + + + + + A lookup table mapping QR code versions to their corresponding alignment patterns. + + + + + Retrieves the alignment pattern for a specific QR code version. + + + + + Creates a lookup table mapping QR code versions to their corresponding alignment patterns. + Alignment patterns are used in QR codes to help scanners accurately read the code at high speeds and when partially obscured. + This table provides the necessary patterns based on the QR code version which dictates the size and complexity of the QR code. + + A dictionary where keys are QR code version numbers and values are AlignmentPattern structures detailing the positions of alignment patterns for each version. + + + + Encodes alphanumeric characters (0–9, A–Z (uppercase), space, $, %, *, +, -, period, /, colon) into a binary format suitable for QR codes. + + + + + A dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + + + + Creates a dictionary mapping alphanumeric characters to their respective positions used in QR code encoding. + This includes digits 0-9, uppercase letters A-Z, and some special characters. + + A dictionary mapping each supported alphanumeric character to its corresponding value. + + + + Checks if a character is present in the alphanumeric encoding table. + + + + + Converts alphanumeric plain text into a binary format optimized for QR codes. + Alphanumeric encoding packs characters into 11-bit groups for each pair of characters, + and 6 bits for a single remaining character if the total count is odd. + + The alphanumeric text to be encoded, which should only contain characters valid in QR alphanumeric mode. + A BitArray representing the binary data of the encoded alphanumeric text. + + + + Provides QR code capacity and error correction data for each version and encoding mode. + Used to determine how much data can be stored in a QR code and which version is required. + + + + + A list containing detailed capacity information for each version of QR codes. + The index in the capacity table corresponds to one less than the version number. + + + + + A table containing the error correction capacities and data codeword information for different combinations of QR code versions and error correction levels. + + + + + Retrieves the error correction information for a specific QR code version and error correction level. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + The desired error correction level (L, M, Q, or H). Do not supply . + + An object containing the total number of data codewords, ECC per block, + block group details, and other parameters required for encoding error correction data. + + + + + Retrieves the capacity information for a specific QR code version. + The returned structure contains detailed data capacity values for each error correction level (L, M, Q, H) + and encoding mode (Numeric, Alphanumeric, Byte, Kanji), indicating the maximum number of characters + that can be stored in a QR code of the specified version under each configuration. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + A object containing data capacity details for all error correction levels + and encoding modes for the specified version. + + + + + Retrieves the number of remainder bits required for a specific QR code version. + Remainder bits are added to the final bit stream to ensure proper alignment with byte boundaries, + as required by the QR code specification. + + The version of the QR code (1 to 40, or -1 to -4 for M1 to M4). + + The number of remainder bits (0 to 7) that must be appended to the encoded bit stream. + + + + + Determines the minimum QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Low, Medium, Quartile, High). + The minimum version of the QR code that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Determines the minimum Micro QR code version required to encode a given amount of data with a specific encoding mode and error correction level. + If no suitable version is found, it throws an exception indicating that the data length exceeds the maximum capacity for the given settings. + + The length of the data to be encoded. + The encoding mode (e.g., Numeric, Alphanumeric, Byte). + The error correction level (e.g., Default, Low, Medium, Quartile, High). + The minimum version of the QR code (-1 to -4) that can accommodate the given data and settings. + + Thrown when the data length exceeds the maximum capacity for the specified encoding mode and error correction level. + + + + + Generates a table containing the error correction capacities and data codeword information for different QR code versions and error correction levels. + This table is essential for determining how much data can be encoded in a QR code of a specific version and ECC level, + as well as how robust the QR code will be against distortions or obstructions. + + A list of ECCInfo structures, each representing the ECC data and capacities for different combinations of QR code versions and ECC levels. + + + + Generates a list containing detailed capacity information for various versions of QR codes. + This table includes capacities for different encoding modes (numeric, alphanumeric, byte, etc.) under each error correction level. + The capacity table is crucial for QR code generation, as it determines how much data each QR code version can store depending on the encoding mode and error correction level used. + The index in the capacity table corresponds to one less than the version number. + + + + + + + + Represents a block of codewords in a QR code. QR codes are divided into several blocks for error correction purposes. + Each block contains a series of data codewords followed by error correction codewords. + + + + + Initializes a new instance of the CodewordBlock struct with specified arrays of code words and error correction (ECC) words. + + The offset of the data codewords within the main BitArray. Data codewords carry the actual information. + The length in bits of the data codewords within the main BitArray. + The array of error correction codewords for this block. These codewords help recover the data if the QR code is damaged. + + + + Gets the offset of the data codewords in the BitArray. + + + + + Gets the length of the data codewords in the BitArray. + + + + + Gets the error correction codewords associated with this block. + + + + + Represents the error correction coding (ECC) information for a specific version and error correction level of a QR code. + + + + + Initializes a new instance of the ECCInfo struct with specified properties. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The number of error correction codewords per block. + The number of blocks in group 1. + The number of codewords in each block of group 1. + The number of blocks in group 2, if any. + The number of codewords in each block of group 2, if any. + + + + Initializes a new instance of the ECCInfo struct with specified properties for Micro QR codes. + + The version number of the QR code. + The error correction level used in the QR code. + The total number of data codewords for this version and error correction level. + The total number of data bits for this version and error correction level. + The number of error correction codewords per block. + + + + Gets the version number of the QR code. + + + + + Gets the error correction level of the QR code. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the total number of data codewords for this version and error correction level. + + + + + Gets the number of error correction codewords per block. + + + + + Gets the number of blocks in group 1. + + + + + Gets the number of codewords in each block of group 1. + + + + + Gets the number of blocks in group 2, if any. + + + + + Gets the number of codewords in each block of group 2, if any. + + + + + Defines the levels of error correction available in QR codes. + Each level specifies the proportion of data that can be recovered if the QR code is partially obscured or damaged. + + + + + Default error correction level, which will select Level M (Medium) unless otherwise specified by the payload. + Level M allows approximately 15% of data to be recovered, offering a balance between data capacity and error recovery. + + + + + Level L: Low error correction (approximately 7% of data can be recovered). + This level allows the highest data density. + + + + + Level M: Medium error correction (approximately 15% of data can be recovered). + Offers a balance between data capacity and error recovery. + + + + + Level Q: Quartile error correction (approximately 25% of data can be recovered). + More robust error correction at the cost of reduced data capacity. + + + + + Level H: High error correction (approximately 30% of data can be recovered). + Provides the highest level of error recovery, ideal for environments with high risk of data loss. + + + + + Enumerates the Extended Channel Interpretation (ECI) modes used in QR codes to handle different character encoding standards. + ECI mode allows QR codes to efficiently encode data using character sets other than the default ISO-8859-1. + + + + + Default encoding mode (typically ISO-8859-1). Used when no ECI mode is explicitly specified. + This mode is assumed in basic QR codes where no extended character sets are needed. + + + + + Specifies the use of the ISO-8859-1 character set, covering most Western European languages. + This mode explicitly sets the encoding to ISO-8859-1, which includes characters used in languages such as English, French, German, and Spanish. + + + + + Specifies the use of the ISO-8859-2 character set, which is primarily used for Central and Eastern European languages. + This includes characters used in languages such as Polish, Czech, Slovak, Hungarian, and Romanian. + + + + + Specifies the use of UTF-8 encoding. + UTF-8 can encode any Unicode character and is useful for QR codes that need to support multi-language content. + + + + + Specifies the encoding modes for the characters in a QR code. + + + + + Numeric encoding mode, which is used to encode numeric data (digits 0-9). + Three characters are encoded into 10 bits. + + + + + Alphanumeric encoding mode, which is used to encode alphanumeric characters (0-9, A-Z, space, and some punctuation). + Two characters are encoded into 11 bits. + + + + + Byte encoding mode, primarily using the ISO-8859-1 character set. Each character is encoded into 8 bits. + When combined with ECI, it can be adapted to use other character sets. + + + + + Kanji encoding mode, which is used to encode characters from the Shift JIS character set, primarily for Japanese Kanji and Kana characters. + One character is encoded into 13 bits. This mode is not currently supported by QRCoder. + + + + + Extended Channel Interpretation (ECI) mode, which specifies a character set via an 8-bit number followed by one of the other encoding modes. + This allows adapting the byte encoding to accommodate various global text encodings. + + + + + Represents a Galois field of 256 elements (GF(256)) used in finite field arithmetic, + typically for error correction algorithms such as Reed-Solomon. + + Provides mappings between exponential and integer representations of field elements + using a primitive element (α). The field is constructed with respect to a generator + polynomial and used for efficient encoding and decoding operations. + + + + + + Retrieves the integer value from the Galois field that corresponds to a given exponent. + This is used in Reed-Solomon and other error correction calculations involving Galois fields. + + + + + Retrieves the exponent from the Galois field that corresponds to a given integer value. + Throws an exception if the integer value is zero, as zero does not have a logarithmic representation in the field. + + + + + Normalizes a Galois field exponent to ensure it remains within the bounds of the field's size. + This is particularly necessary when performing multiplications in the field which can result in exponents exceeding the field's maximum. + + + + + Struct that represents blocked modules using rectangles. + + + + + Initializes a new instance of the struct with a specified size. + + The size of the blocked modules matrix. + + + + Adds a blocked module at the specified coordinates. + + The x-coordinate of the module. + The y-coordinate of the module. + + + + Adds a blocked module defined by the specified rectangle. + + The rectangle that defines the blocked module. + + + + Checks if the specified coordinates are blocked. + + The x-coordinate to check. + The y-coordinate to check. + true if the coordinates are blocked; otherwise, false. + + + + Checks if the specified rectangle is blocked. + + The rectangle to check. + true if the rectangle is blocked; otherwise, false. + + + + Places the version information on the QR code matrix for versions 7 and higher. Version information + is encoded into two small rectangular areas near the bottom left and top right corners outside the timing patterns. + + The QR code data structure to modify. + The bit array containing the version information. + Indicates whether an offset should be applied to the version information placement. + + + + Places the format information on the QR code, encoding the error correction level and mask pattern used. + + The QR code data structure to modify. + The bit array containing the format information. + Specifies whether an offset should be applied. + + + + Applies the most effective mask pattern to the QR code based on minimizing the penalty score, + which evaluates how well the pattern will work for QR scanners. + + The QR code data structure where the mask will be applied. + The version of the QR code, which determines the size and complexity. + List of rectangles representing areas that must not be overwritten. + The error correction level of the QR code, which affects format string values. + The index of the selected mask pattern. + + + + Places data bits into the QR code's module matrix following a specific pattern that navigates around blocked modules. + + The QR code data structure where the data bits are to be placed. + The data bits to be placed within the QR code matrix. + A list of rectangles representing areas within the QR code matrix that should not be modified because they contain other necessary information like format and version info. + + + + Reserves separator areas around the positioning patterns of a QR code to ensure that these crucial areas remain unmodified during data placement. + + The version of the QR code, which determines the number of finder patterns. + The size of the QR code matrix. + A list of rectangles representing areas that must not be overwritten. + + + + Reserves areas for version information on QR codes that are version 7 or higher. Also reserves space for format information. + + The size of the QR code matrix. + The version number of the QR code, which determines the placement of version information. + A list of rectangles representing areas that must not be overwritten. + + + + Places a dark module on the QR code matrix as per QR code specification, which requires a dark module at a specific position for all QR codes. + + The QR code data structure where the dark module is to be placed. + The version number of the QR code, which determines the specific location of the dark module. + A list of rectangles representing areas that must not be overwritten, updated to include the dark module. + + + + Places finder patterns on the QR code. Finder patterns are critical for QR code scanners to correctly orient and recognize the QR code. + + The QR code data structure where the finder patterns will be placed. + A list of rectangles representing areas that must not be overwritten. This is updated with the areas occupied by the finder patterns. + + + + Places alignment patterns on the QR code matrix. Alignment patterns help ensure the scanner can correctly interpret the QR code at various scales and orientations. + + The QR code data structure where the alignment patterns will be placed. + A list of points representing the centers of where alignment patterns should be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by alignment patterns. + + + + Places timing patterns in the QR code. Timing patterns are alternating dark and light modules that help scanners determine the coordinates of modules within the QR code. + + The QR code data structure where the timing patterns will be placed. + A list of rectangles representing areas that must not be overwritten. Updated with the areas occupied by timing patterns. + + + + Provides static methods and properties to handle mask patterns used in QR code generation. + Mask patterns are applied to QR codes to break up patterns in the data matrix that might confuse scanners. + + + + + A dictionary mapping each mask pattern index to its corresponding function that calculates whether a given pixel should be masked. + + + + + Mask pattern 1: (x + y) % 2 == 0 + Applies a checkerboard mask on the QR code. + + + + + Mask pattern 2: y % 2 == 0 + Applies a horizontal striping mask on the QR code. + + + + + Mask pattern 3: x % 3 == 0 + Applies a vertical striping mask on the QR code. + + + + + Mask pattern 4: (x + y) % 3 == 0 + Applies a diagonal striping mask on the QR code. + + + + + Mask pattern 5: ((y / 2) + (x / 3)) % 2 == 0 + Applies a complex pattern mask on the QR code, mixing horizontal and vertical rules. + + + + + Mask pattern 6: ((x * y) % 2 + (x * y) % 3) == 0 + Applies a mask based on the product of x and y coordinates modulo 2 and 3. + + + + + Mask pattern 7: (((x * y) % 2 + (x * y) % 3) % 2) == 0 + Applies a mask based on a more complex function involving the product of x and y coordinates. + + + + + Mask pattern 8: (((x + y) % 2) + ((x * y) % 3) % 2) == 0 + Combines rules of checkers and complex multiplicative masks. + + + + + Calculates a penalty score for a Micro QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Calculates a penalty score for a QR code to evaluate the effectiveness of a mask pattern. + A lower score indicates a QR code that is easier for decoders to read accurately. + The score is the sum of four penalty rules applied to the QR code. + + The QR code data structure to be evaluated. + The total penalty score of the QR code. + + + + Represents a 2D point with integer coordinates. + + + + + Gets the X-coordinate of the point. + + + + + Gets the Y-coordinate of the point. + + + + + Initializes a new instance of the struct with specified X and Y coordinates. + + The X-coordinate of the point. + The Y-coordinate of the point. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + True if the specified has the same X and Y coordinates as the current ; otherwise, false. + + If this method which implements is not implemented, comparisons used by methods such as + fall back to reflection, which causes heap allocations internally during the calls to . + + + + + + + + + + + Represents a polynomial, which is a sum of polynomial terms. + + + + + Initializes a new instance of the struct with a specified number of initial capacity for polynomial terms. + + The initial capacity of the polynomial items list. + + + + Adds a polynomial term to the polynomial. + + + + + Removes the polynomial term at the specified index. + + + + + Gets or sets a polynomial term at the specified index. + + + + + Gets the number of polynomial terms in the polynomial. + + + + + Removes all polynomial terms from the polynomial. + + + + + Clones the polynomial, creating a new instance with the same polynomial terms. + + + + + Sorts the collection of using a custom comparer function. + + + A function that compares two objects and returns an integer indicating their relative order: + less than zero if the first is less than the second, zero if they are equal, or greater than zero if the first is greater than the second. + + + + + Returns a string that represents the polynomial in standard algebraic notation. + Example output: "a^2*x^3 + a^5*x^1 + a^3*x^0", which represents the polynomial 2x³ + 5x + 3. + + + + + + + + Ensures that the polynomial has enough capacity to store the specified number of polynomial terms. + + + + + Rents memory for the polynomial terms from the shared memory pool. + + + + + Returns memory allocated for the polynomial terms back to the shared memory pool. + + + + + Returns an enumerator that iterates through the polynomial terms. + + + + + Value type enumerator for the struct. + + + + + Represents an individual term of a polynomial, consisting of a coefficient and an exponent. + For example, the term 3x² would be represented as a with a coefficient of 3 and an exponent of 2. + + + + + Initializes a new instance of the struct with the specified coefficient and exponent. + + The coefficient of the polynomial term. For example, in the term 3x², the coefficient is 3. + The exponent of the polynomial term. For example, in the term 3x², the exponent is 2. + + + + Gets the coefficient of the polynomial term. + + + + + Gets the exponent of the polynomial term. + + + + + Represents a rectangle defined by its top-left corner's coordinates, width, and height. + + + + + Gets the X-coordinate of the top-left corner of the rectangle. + + + + + Gets the Y-coordinate of the top-left corner of the rectangle. + + + + + Gets the width of the rectangle. + + + + + Gets the height of the rectangle. + + + + + Initializes a new instance of the struct with the specified top-left corner coordinates, width, and height. + + The X-coordinate of the top-left corner of the rectangle. + The Y-coordinate of the top-left corner of the rectangle. + The width of the rectangle. + The height of the rectangle. + + + + Represents version-specific information of a QR code. + + + + + Initializes a new instance of the struct with a specific version number and its details. + + The version number of the QR code. Each version has a different module configuration. + A list of detailed information related to error correction levels and capacity for each encoding mode. + + + + Gets the version number of the QR code. Each version number specifies a different size of the QR matrix. + + + + + Gets a list of details about the QR code version, including the error correction levels and encoding capacities. + + + + + Represents the detailed information about each error correction level and its corresponding capacities in different encoding modes for a specific version of a QR code. + + + + + Initializes a new instance of the struct, detailing the error correction level and the capacity for each encoding mode. + + The error correction level, which determines how much of the code can be restored if the QR code gets damaged. + A dictionary mapping each encoding mode to its capacity for the specific error correction level. + + + + Gets the error correction level of the QR code, influencing how robust the QR code is against errors and damage. + + + + + Gets a dictionary that contains the capacities of different encoding modes under the specified error correction level. + These capacities dictate how many characters can be encoded under each mode. + + + + + Represents a QR code generator that outputs QR codes as SVG images. + + + + + Initializes a new instance of the class. + Constructor without parameters to be used in COM objects connections. + + + + + Initializes a new instance of the class with the specified . + + generated by the QRCodeGenerator. + + + + Returns a scalable QR code as an SVG string. + + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string. + + The pixel size each dark/light module is drawn. + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors, optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The pixel size each dark/light module is drawn; applicable only when is . + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors and optional quiet zones and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark modules. + The color of the light modules. + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Returns a QR code as an SVG string with custom colors (in HEX syntax), optional quiet zones, and an optional logo. + + The width and height for the SVG when is ; unused otherwise. + The color of the dark/black modules in HEX format (e.g., #000000). + The color of the light/white modules in HEX format (e.g., #ffffff). + If true, a white border is drawn around the entire QR code. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + + Determines if a module at (x,y) is blocked by the logo area defined by attr. + + + + + Calculates the logo's position and size within the QR code based on the specified percentage size. + + + + + Gets the transparency value (0-255) from a color string. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + The alpha/transparency value from 0 (fully transparent) to 255 (fully opaque). Returns 255 for colors without alpha channel. + + + + Determines if a color string represents a partially transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is transparent; otherwise false. + + + + Determines if a color string represents a fully transparent color. + + The color string in hex format (e.g., #RRGGBB, #RRGGBBAA) or the literal "transparent". + True if the color is fully transparent; otherwise false. + + + + Converts a Color to a hex string in #RGB, #RRGGBB or #RRGGBBAA format; or 'transparent' for fully transparent colors. + + The color to convert. + A hex string representation of the color. + + + + Mode of sizing attribute on SVG root node + + + + + Specifies width and height attributes for SVG sizing + + + + + Width and height are not included within the SVG tag; viewBox is scaled to fit the container + + + + + Represents a logo graphic that can be rendered on a SvgQRCode + + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as Bitmap/rasterized graphic + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as SVG/vectorized graphic/string + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + If true, the logo will embedded as native svg instead of embedding it as image-tag + + + + Create a logo object to be used in SvgQRCode renderer + + Logo to be rendered as PNG + Degree of percentage coverage of the QR code by the logo + If true, the background behind the logo will be cleaned + + + + Returns the raw logo's data + + + + + Defines, if the logo shall be natively embedded. + true=native svg embedding, false=embedding via image-tag + + + + + Returns the media type of the logo + + + + + + Returns the logo as data-uri + + + + + Returns how much of the QR code should be covered by the logo (in percent) + + + + + Returns if the background of the logo should be cleaned (no QR modules will be rendered behind the logo) + + + + + Media types for SvgLogos + + + + + Portable Network Graphics (PNG) image format + + + + + Scalable Vector Graphics (SVG) image format + + + + + Provides static methods for creating SVG QR codes. + + + + + Creates an SVG QR code with a single function call. + + The text or payload to be encoded inside the QR code. + The pixel size each dark/light module of the QR code will occupy in the final QR code image. + The color of the dark modules in HEX format (e.g., #000000). + The color of the light modules in HEX format (e.g., #ffffff). + The level of error correction data. + Specifies whether the generator should be forced to work in UTF-8 mode. + Specifies whether the byte-order-mark should be used. + Specifies which ECI mode should be used. + Sets the fixed QR code target version. + Indicates if quiet zones around the QR code should be drawn. + Defines whether width/height or viewBox should be used for size definition. + An optional logo to be rendered on the code (either Bitmap or SVG). + Returns the QR code graphic as an SVG string. + + + diff --git a/packages/QRCoder.1.7.0/nuget-icon.png b/packages/QRCoder.1.7.0/nuget-icon.png new file mode 100644 index 0000000..118fe3a Binary files /dev/null and b/packages/QRCoder.1.7.0/nuget-icon.png differ