# HG changeset patch # User IBBoard # Date 1303736330 0 # Node ID 137ec6d452809e24ce351551166d2be89f5656c2 # Parent eaa7b639d3904b5b364b500a029542ea26e0ffb0 Re #33: Centralised requirement handling * Use central requirement handler to check each selection diff -r eaa7b639d390 -r 137ec6d45280 FrmNewUnit.cs --- a/FrmNewUnit.cs Sun Apr 03 14:50:34 2011 +0000 +++ b/FrmNewUnit.cs Mon Apr 25 12:58:50 2011 +0000 @@ -10,7 +10,8 @@ using IBBoard.Lang; using IBBoard.Windows.Forms; using IBBoard.WarFoundry.API; -using IBBoard.WarFoundry.API.Objects; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.WarFoundry.API.Objects.Requirement; using IBBoard.Windows.Forms.I18N; namespace IBBoard.WarFoundry @@ -30,7 +31,6 @@ private System.Windows.Forms.ImageList imageList; private System.Windows.Forms.Label lblNewUnitWarning; private System.Windows.Forms.Label lblWarningIcon; - private bool[] allowed; public FrmNewUnit(Race race, Category cat, Army army) { @@ -38,12 +38,10 @@ ControlTranslator.TranslateControl(this, cat.Name); units = race.GetUnitTypes(cat); - allowed = new bool[units.Length]; this.army = army; for (int i = 0; i private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmNewUnit)); - this.lstUnits = new System.Windows.Forms.ListBox(); - this.bttnCancel = new IBBoard.Windows.Forms.IBBButton(); - this.lblUnitList = new IBBoard.Windows.Forms.IBBLabel(); - this.bttnSelectUnit = new IBBoard.Windows.Forms.IBBButton(); - this.lblNewUnitWarning = new System.Windows.Forms.Label(); - this.imageList = new System.Windows.Forms.ImageList(this.components); - this.lblWarningIcon = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // lstUnits - // - this.lstUnits.Location = new System.Drawing.Point(88, 8); - this.lstUnits.Name = "lstUnits"; - this.lstUnits.Size = new System.Drawing.Size(272, 121); - this.lstUnits.TabIndex = 7; - this.lstUnits.SelectedIndexChanged += new System.EventHandler(this.lstUnits_SelectedIndexChanged); - this.lstUnits.DoubleClick += new System.EventHandler(this.lstUnits_DoubleClick); - this.lstUnits.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lstUnits_MouseDown); - // - // bttnCancel - // - this.bttnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.bttnCancel.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.bttnCancel.Location = new System.Drawing.Point(8, 168); - this.bttnCancel.Name = "bttnCancel"; - this.bttnCancel.Size = new System.Drawing.Size(80, 24); - this.bttnCancel.TabIndex = 6; - this.bttnCancel.Text = "Cancel"; - this.bttnCancel.Click += new System.EventHandler(this.bttnCancel_Click); - // - // lblUnitList - // - this.lblUnitList.Location = new System.Drawing.Point(0, 8); - this.lblUnitList.Name = "lblUnitList"; - this.lblUnitList.Size = new System.Drawing.Size(88, 80); - this.lblUnitList.TabIndex = 5; - this.lblUnitList.Text = "unit list"; - this.lblUnitList.TextAlign = System.Drawing.ContentAlignment.TopRight; - // - // bttnSelectUnit - // - this.bttnSelectUnit.Enabled = false; - this.bttnSelectUnit.FlatStyle = System.Windows.Forms.FlatStyle.System; - this.bttnSelectUnit.Location = new System.Drawing.Point(256, 168); - this.bttnSelectUnit.Name = "bttnSelectUnit"; - this.bttnSelectUnit.Size = new System.Drawing.Size(104, 24); - this.bttnSelectUnit.TabIndex = 4; - this.bttnSelectUnit.Text = "create unit"; - this.bttnSelectUnit.Click += new System.EventHandler(this.bttnSelectUnit_Click); - // - // lblNewUnitWarning - // - this.lblNewUnitWarning.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lblNewUnitWarning.ImageList = this.imageList; - this.lblNewUnitWarning.Location = new System.Drawing.Point(48, 136); - this.lblNewUnitWarning.Name = "lblNewUnitWarning"; - this.lblNewUnitWarning.Size = new System.Drawing.Size(312, 32); - this.lblNewUnitWarning.TabIndex = 9; - this.lblNewUnitWarning.Text = "label1"; - this.lblNewUnitWarning.TextAlign = System.Drawing.ContentAlignment.TopRight; - this.lblNewUnitWarning.Visible = false; - // - // imageList - // - this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); - this.imageList.TransparentColor = System.Drawing.Color.Transparent; - this.imageList.Images.SetKeyName(0, ""); - // - // lblWarningIcon - // - this.lblWarningIcon.Image = ((System.Drawing.Image)(resources.GetObject("lblWarningIcon.Image"))); - this.lblWarningIcon.Location = new System.Drawing.Point(8, 136); - this.lblWarningIcon.Name = "lblWarningIcon"; - this.lblWarningIcon.Size = new System.Drawing.Size(40, 32); - this.lblWarningIcon.TabIndex = 10; - this.lblWarningIcon.Visible = false; - // - // FrmNewUnit - // - this.AcceptButton = this.bttnSelectUnit; - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.CancelButton = this.bttnCancel; - this.ClientSize = new System.Drawing.Size(370, 196); - this.Controls.Add(this.lblWarningIcon); - this.Controls.Add(this.lblNewUnitWarning); - this.Controls.Add(this.bttnCancel); - this.Controls.Add(this.lblUnitList); - this.Controls.Add(this.bttnSelectUnit); - this.Controls.Add(this.lstUnits); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "FrmNewUnit"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "FrmNewUni"; - this.ResumeLayout(false); + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmNewUnit)); + this.lstUnits = new System.Windows.Forms.ListBox(); + this.bttnCancel = new IBBoard.Windows.Forms.IBBButton(); + this.lblUnitList = new IBBoard.Windows.Forms.IBBLabel(); + this.bttnSelectUnit = new IBBoard.Windows.Forms.IBBButton(); + this.lblNewUnitWarning = new System.Windows.Forms.Label(); + this.imageList = new System.Windows.Forms.ImageList(this.components); + this.lblWarningIcon = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // lstUnits + // + this.lstUnits.Location = new System.Drawing.Point(88, 8); + this.lstUnits.Name = "lstUnits"; + this.lstUnits.Size = new System.Drawing.Size(272, 121); + this.lstUnits.TabIndex = 7; + this.lstUnits.SelectedIndexChanged += new System.EventHandler(this.lstUnits_SelectedIndexChanged); + this.lstUnits.DoubleClick += new System.EventHandler(this.lstUnits_DoubleClick); + this.lstUnits.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lstUnits_MouseDown); + // + // bttnCancel + // + this.bttnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.bttnCancel.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.bttnCancel.Location = new System.Drawing.Point(8, 168); + this.bttnCancel.Name = "bttnCancel"; + this.bttnCancel.Size = new System.Drawing.Size(80, 24); + this.bttnCancel.TabIndex = 6; + this.bttnCancel.Text = "Cancel"; + this.bttnCancel.Click += new System.EventHandler(this.bttnCancel_Click); + // + // lblUnitList + // + this.lblUnitList.Location = new System.Drawing.Point(0, 8); + this.lblUnitList.Name = "lblUnitList"; + this.lblUnitList.Size = new System.Drawing.Size(88, 80); + this.lblUnitList.TabIndex = 5; + this.lblUnitList.Text = "unit list"; + this.lblUnitList.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // bttnSelectUnit + // + this.bttnSelectUnit.Enabled = false; + this.bttnSelectUnit.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.bttnSelectUnit.Location = new System.Drawing.Point(256, 168); + this.bttnSelectUnit.Name = "bttnSelectUnit"; + this.bttnSelectUnit.Size = new System.Drawing.Size(104, 24); + this.bttnSelectUnit.TabIndex = 4; + this.bttnSelectUnit.Text = "create unit"; + this.bttnSelectUnit.Click += new System.EventHandler(this.bttnSelectUnit_Click); + // + // lblNewUnitWarning + // + this.lblNewUnitWarning.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lblNewUnitWarning.ImageList = this.imageList; + this.lblNewUnitWarning.Location = new System.Drawing.Point(48, 136); + this.lblNewUnitWarning.Name = "lblNewUnitWarning"; + this.lblNewUnitWarning.Size = new System.Drawing.Size(312, 32); + this.lblNewUnitWarning.TabIndex = 9; + this.lblNewUnitWarning.Text = "One or more unit requirements are not satisfied."; + this.lblNewUnitWarning.TextAlign = System.Drawing.ContentAlignment.TopRight; + this.lblNewUnitWarning.Visible = false; + // + // imageList + // + this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); + this.imageList.TransparentColor = System.Drawing.Color.Transparent; + this.imageList.Images.SetKeyName(0, ""); + // + // lblWarningIcon + // + this.lblWarningIcon.Image = ((System.Drawing.Image)(resources.GetObject("lblWarningIcon.Image"))); + this.lblWarningIcon.Location = new System.Drawing.Point(8, 136); + this.lblWarningIcon.Name = "lblWarningIcon"; + this.lblWarningIcon.Size = new System.Drawing.Size(40, 32); + this.lblWarningIcon.TabIndex = 10; + this.lblWarningIcon.Visible = false; + // + // FrmNewUnit + // + this.AcceptButton = this.bttnSelectUnit; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.bttnCancel; + this.ClientSize = new System.Drawing.Size(370, 196); + this.Controls.Add(this.lblWarningIcon); + this.Controls.Add(this.lblNewUnitWarning); + this.Controls.Add(this.bttnCancel); + this.Controls.Add(this.lblUnitList); + this.Controls.Add(this.bttnSelectUnit); + this.Controls.Add(this.lstUnits); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FrmNewUnit"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "FrmNewUni"; + this.ResumeLayout(false); } #endregion @@ -201,7 +199,7 @@ if (lstUnits.SelectedIndex>-1) { bttnSelectUnit.Enabled = true; - lblNewUnitWarning.Visible = !allowed[lstUnits.SelectedIndex]; + lblNewUnitWarning.Visible = !Validates.AsOkay(RequirementHandler.AllowsAdding(SelectedUnit, army)); lblWarningIcon.Visible = lblNewUnitWarning.Visible; if (lblNewUnitWarning.Visible) diff -r eaa7b639d390 -r 137ec6d45280 FrmNewUnit.resx --- a/FrmNewUnit.resx Sun Apr 03 14:50:34 2011 +0000 +++ b/FrmNewUnit.resx Mon Apr 25 12:58:50 2011 +0000 @@ -126,54 +126,54 @@ LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC4 DAAAAk1TRnQBSQFMAwEBAAEEAQABBAEAASABAAEgAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABgAMA - ASADAAEBAQABIAYAAUD/AP8AJAADAQH/AwEB/wMBAf8DAQH/AwEB/wMBAf8DAQH/AwEB/wMBAf8DAQH/ - AwEB/wMBAf8DAQH/AwEB/wMBAf8DAQH/AwEB/wMBAf8DAQH/AwEB/wMBAf8DAQH/AwEB//8AnQADAQH/ - AwEB/wIBASkB/wIBASwB/wIBASoB/wIBASoB/wIBASoB/wIBASoB/wIBASoB/wIBASoB/wIBASoB/wIB - ASoB/wIBASoB/wIBASoB/wIBASoB/wIBASoB/wIBASoB/wIBASoB/wIBASoB/wIBASoB/wIBASoB/wIB - ASoB/wIBASoB/wIBASwB/wIBASwB/wIBASkB/wMBAf//AJEAAwEB/wIBAWsB/wIBAZ0B/wIBAZ8B/wIB - AZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIB - AZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIBAZ8B/wIB - AZ8B/wIBAZ8B/wIBAZ8B/wIBAZ0B/wIBAXEB//8AjQADAQH/AgEBnAH/AjwBxAH/AnEB4AH/AnYB4gH/ - AnUB4gH/AnIB4QH/AnAB4QH/Am0B4AH/AmoB3wH/AmcB3wH/AmUB3gH/AmIB3gH/Al8B3QH/Al0B3AH/ - AloB3AH/AlcB2wH/AlQB2wH/AlIB2gH/Ak8B2gH/AkwB2QH/AkkB2AH/AkYB2AH/AkQB1wH/AkEB1wH/ - Aj8B1gH/AjcB1AH/AhwBvAH/AgEBngH//wCRAAIBAaAB/wJ6Ad0B/wIVAdAB/wIBAcwB/wIBAcwB/wIB - AcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIB - AcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIBAcwB/wIL - Ac4B/wI5Ac8B/wIBAZ8B//8AkQACAQGhAf8CVwHHAf8COwHYAf8CAQHMAf8CowHbAf8C0gHgAf8C0gHg + ASADAAEBAQABIAYAAUD/AP8AJAADAgH/AwIB/wMCAf8DAgH/AwIB/wMCAf8DAgH/AwIB/wMCAf8DAgH/ + AwIB/wMCAf8DAgH/AwIB/wMCAf8DAgH/AwIB/wMCAf8DAgH/AwIB/wMCAf8DAgH/AwIB//8AnQADAgH/ + AwIB/wICASoB/wICAS0B/wICASsB/wICASsB/wICASsB/wICASsB/wICASsB/wICASsB/wICASsB/wIC + ASsB/wICASsB/wICASsB/wICASsB/wICASsB/wICASsB/wICASsB/wICASsB/wICASsB/wICASsB/wIC + ASsB/wICASsB/wICAS0B/wICAS0B/wICASoB/wMCAf//AJEAAwIB/wICAWwB/wICAZ0B/wICAZ8B/wIC + AZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wIC + AZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wICAZ8B/wIC + AZ8B/wICAZ8B/wICAZ8B/wICAZ0B/wICAXIB//8AjQADAgH/AgIBnAH/Aj0BxAH/AnIB4AH/AncB4gH/ + AnYB4gH/AnMB4QH/AnEB4QH/Am4B4AH/AmsB3wH/AmgB3wH/AmYB3gH/AmMB3gH/AmAB3QH/Al4B3AH/ + AlsB3AH/AlgB2wH/AlUB2wH/AlMB2gH/AlAB2gH/Ak0B2QH/AkoB2AH/AkcB2AH/AkUB1wH/AkIB1wH/ + AkAB1gH/AjgB1AH/Ah0BvAH/AgIBngH//wCRAAICAaAB/wJ7Ad0B/wIWAdAB/wICAcwB/wICAcwB/wIC + AcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wIC + AcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wICAcwB/wIM + Ac4B/wI6Ac8B/wICAZ8B//8AkQACAgGhAf8CWAHHAf8CPAHYAf8CAgHMAf8CowHbAf8C0gHgAf8C0gHg Af8C0wHhAf8C1AHiAf8C1AHiAf8C1QHjAf8C1gHkAf8C1wHlAf8C2AHmAf8C2AHmAf8C2QHnAf8C2QHn - Af8C2gHoAf8C2gHoAf8C2wHpAf8C3AHqAf8C3QHrAf8C3gHsAf8CwQHnAf8CAQHMAf8CHAHRAf8CKgG/ - Af8CAQGiAf//AJEAAgEBngH/AhcBpwH/AnYB3QH/AgkBzgH/AlEB0wH/A+AB/wPhAf8D4QH/A+IB/wPj - Af8D4wH/A+QB/wPlAf8D5gH/A+YB/wPnAf8D6AH/A+kB/wPqAf8D6gH/A+sB/wPsAf8D7QH/AmoB2wH/ - AgQBzQH/AjwB0wH/Ag0BpQH/AgEBoAH//wCVAAIBAaEB/wJTAcQB/wJFAdoB/wIDAcwB/wKzAdsB/wPg - Af8D4QH/A+EB/wPiAf8D4wH/A+MB/wPkAf8DPQH/AzgB/wPmAf8D5wH/A+gB/wPpAf8D6gH/A+oB/wPr - Af8CzQHnAf8CCAHNAf8CJQHTAf8CLQG7Af8CAQGgAf//AJkAAgEBngH/AhABpgH/AnoB3AH/Ag8BzwH/ - AjwB0QH/A98B/wPgAf8D4AH/A+EB/wPiAf8D4gH/A+MB/wM4Af8DNgH/A+YB/wPmAf8D5wH/A+gB/wPp - Af8D6gH/A+oB/wJTAdcB/wIJAc4B/wJEAdIB/wIJAaIB/wIBAaAB//8AnQACAQGgAf8CRwG9Af8CUgHc - Af8CAQHMAf8CogHaAf8D3wH/A+AB/wPgAf8D4QH/A+IB/wPiAf8D1wH/A9cB/wPlAf8D5gH/A+YB/wPn - Af8D6AH/A+kB/wK6AeMB/wICAcwB/wIwAdUB/wIqAbcB/wIBAaAB//8AoQACAQGiAf8CCQGiAf8CegHa - Af8CGAHRAf8CKwHQAf8C3QHfAf8D3wH/A+AB/wPgAf8D4QH/A+IB/wMmAf8DJgH/A+QB/wPlAf8D5QH/ - A+YB/wPnAf8D6AH/AjwB0wH/Ag8BzwH/AkoB0QH/AgYBogH/AgEBoQH//wClAAIBAZ8B/wI8AbgB/wJf - Ad4B/wIBAcwB/wKNAdcB/wPfAf8D3wH/A+AB/wPgAf8D4QH/AxwB/wMcAf8D4wH/A+QB/wPlAf8D5QH/ - A+YB/wKkAd8B/wIBAcwB/wI9AdcB/wIlAbEB/wIBAaEB//8ArQACBAGiAf8CdAHXAf8CIwHTAf8CHAHO - Af8C1wHdAf8D3wH/A98B/wPgAf8D4AH/Aw4B/wMOAf8D4gH/A+MB/wPkAf8D5QH/AuIB5AH/AikB0QH/ - AhkB0QH/AkwBzgH/AgMBogH/AgEBpAH//wCtAAIBAaAB/wIwAbEB/wJrAd8B/wICAcwB/wJ6AdUB/wPe - Af8D3gH/A98B/wPgAf8DBAH/AwQB/wPhAf8D4gH/A+MB/wPkAf8CjAHaAf8CAgHMAf8CTAHaAf8CHwGs - Af8CAQGfAf//ALUAAgIBoQH/Am0B0wH/AjAB1QH/AhEBzgH/As4B3AH/A94B/wPeAf8D1wH/AwEB/wMB - Af8D2QH/A+EB/wPiAf8C2gHiAf8CGgHPAf8CJQHTAf8CSgHLAf8CAQGhAf//ALkAAgEBoAH/AiMBrAH/ - AnYB4AH/AgUBzQH/AmcB1AH/A90B/wPeAf8DzAH/AwEB/wMBAf8DzgH/A+EB/wPhAf8CdwHYAf8CBQHN - Af8CWAHbAf8CFwGoAf8CAQGfAf//AL0AAgEBoAH/AmMBzAH/AjwB2AH/AggBzQH/AsMB2wH/A90B/wPB - Af8DAQH/AwEB/wPDAf8D4AH/As4B3wH/Ag0BzQH/AjIB1gH/AkYBxwH/AgEBogH//wDBAAIBAZwB/wIY - AakB/wJ9AeAB/wIJAc4B/wJTAdIB/wPdAf8D2gH/A88B/wPPAf8D3AH/A98B/wJiAdUB/wIKAc4B/wJj - AdsB/wIQAaUB/wIBAZ4B//8AxQACAQGgAf8CVwHGAf8CSQHaAf8CAwHMAf8CtAHZAf8D3QH/A90B/wPe - Af8D3gH/AsAB3AH/AgUBzAH/AkEB2QH/Aj8BwQH/AgEBoQH//wDJAAIBAZ4B/wIQAaYB/wKBAeAB/wIQ - Ac8B/wJAAdEB/wPcAf8D3QH/A90B/wPeAf8CSwHSAf8CEgHPAf8CaQHbAf8CCgGiAf8CAQGfAf//AM0A - AgEBnwH/AkwBwAH/AlYB3AH/AgEBzAH/AqIB1wH/A9wB/wPcAf8CrQHZAf8CAgHMAf8CUQHcAf8COAG8 - Af8CAQGgAf//ANEAAgEBpQH/AgkBowH/AoEB3gH/AhoB0QH/Ai0BzwH/AtoB2wH/A9wB/wI2AdAB/wId - AdIB/wJrAdkB/wIFAaIB/wIBAZ4B//8A1QACAQGgAf8CQAG6Af8CZAHfAf8CAQHMAf8CjwHWAf8CmAHW - Af8CAgHMAf8CYgHfAf8CLwG2Af8CAQGgAf//AN0AAgQBoQH/AnsB2gH/AiUB0wH/AhYBzgH/AhgBzQH/ - AisB1AH/AmkB1wH/AgIBoAH/AgEBnwH//wDdAAIBAZ4B/wIzAbQB/wJyAeEB/wICAcwB/wIEAc0B/wJy - AeEB/wIlAa8B/wIBAZ4B//8A5QACAgGhAf8CbwHVAf8CQwHZAf8CRwHaAf8CYAHSAf8CAQGhAf//AOkA - AgEBoAH/AhQBpwH/Am4B2gH/AmsB2gH/AhABpwH/AgEBnwH//wDtAAIBAZ0B/wIBAaEB/wIBAaAB/wIB + Af8C2gHoAf8C2gHoAf8C2wHpAf8C3AHqAf8C3QHrAf8C3gHsAf8CwQHnAf8CAgHMAf8CHQHRAf8CKwG/ + Af8CAgGiAf//AJEAAgIBngH/AhgBpwH/AncB3QH/AgoBzgH/AlIB0wH/A+AB/wPhAf8D4QH/A+IB/wPj + Af8D4wH/A+QB/wPlAf8D5gH/A+YB/wPnAf8D6AH/A+kB/wPqAf8D6gH/A+sB/wPsAf8D7QH/AmsB2wH/ + AgUBzQH/Aj0B0wH/Ag4BpQH/AgIBoAH//wCVAAICAaEB/wJUAcQB/wJGAdoB/wIEAcwB/wKzAdsB/wPg + Af8D4QH/A+EB/wPiAf8D4wH/A+MB/wPkAf8DPgH/AzkB/wPmAf8D5wH/A+gB/wPpAf8D6gH/A+oB/wPr + Af8CzQHnAf8CCQHNAf8CJgHTAf8CLgG7Af8CAgGgAf//AJkAAgIBngH/AhEBpgH/AnsB3AH/AhABzwH/ + Aj0B0QH/A98B/wPgAf8D4AH/A+EB/wPiAf8D4gH/A+MB/wM5Af8DNwH/A+YB/wPmAf8D5wH/A+gB/wPp + Af8D6gH/A+oB/wJUAdcB/wIKAc4B/wJFAdIB/wIKAaIB/wICAaAB//8AnQACAgGgAf8CSAG9Af8CUwHc + Af8CAgHMAf8CogHaAf8D3wH/A+AB/wPgAf8D4QH/A+IB/wPiAf8D1wH/A9cB/wPlAf8D5gH/A+YB/wPn + Af8D6AH/A+kB/wK6AeMB/wIDAcwB/wIxAdUB/wIrAbcB/wICAaAB//8AoQACAgGiAf8CCgGiAf8CewHa + Af8CGQHRAf8CLAHQAf8C3QHfAf8D3wH/A+AB/wPgAf8D4QH/A+IB/wMnAf8DJwH/A+QB/wPlAf8D5QH/ + A+YB/wPnAf8D6AH/Aj0B0wH/AhABzwH/AksB0QH/AgcBogH/AgIBoQH//wClAAICAZ8B/wI9AbgB/wJg + Ad4B/wICAcwB/wKNAdcB/wPfAf8D3wH/A+AB/wPgAf8D4QH/Ax0B/wMdAf8D4wH/A+QB/wPlAf8D5QH/ + A+YB/wKkAd8B/wICAcwB/wI+AdcB/wImAbEB/wICAaEB//8ArQACBQGiAf8CdQHXAf8CJAHTAf8CHQHO + Af8C1wHdAf8D3wH/A98B/wPgAf8D4AH/Aw8B/wMPAf8D4gH/A+MB/wPkAf8D5QH/AuIB5AH/AioB0QH/ + AhoB0QH/Ak0BzgH/AgQBogH/AgIBpAH//wCtAAICAaAB/wIxAbEB/wJsAd8B/wIDAcwB/wJ7AdUB/wPe + Af8D3gH/A98B/wPgAf8DBQH/AwUB/wPhAf8D4gH/A+MB/wPkAf8CjAHaAf8CAwHMAf8CTQHaAf8CIAGs + Af8CAgGfAf//ALUAAgMBoQH/Am4B0wH/AjEB1QH/AhIBzgH/As4B3AH/A94B/wPeAf8D1wH/AwIB/wMC + Af8D2QH/A+EB/wPiAf8C2gHiAf8CGwHPAf8CJgHTAf8CSwHLAf8CAgGhAf//ALkAAgIBoAH/AiQBrAH/ + AncB4AH/AgYBzQH/AmgB1AH/A90B/wPeAf8DzAH/AwIB/wMCAf8DzgH/A+EB/wPhAf8CeAHYAf8CBgHN + Af8CWQHbAf8CGAGoAf8CAgGfAf//AL0AAgIBoAH/AmQBzAH/Aj0B2AH/AgkBzQH/AsMB2wH/A90B/wPB + Af8DAgH/AwIB/wPDAf8D4AH/As4B3wH/Ag4BzQH/AjMB1gH/AkcBxwH/AgIBogH//wDBAAICAZwB/wIZ + AakB/wJ+AeAB/wIKAc4B/wJUAdIB/wPdAf8D2gH/A88B/wPPAf8D3AH/A98B/wJjAdUB/wILAc4B/wJk + AdsB/wIRAaUB/wICAZ4B//8AxQACAgGgAf8CWAHGAf8CSgHaAf8CBAHMAf8CtAHZAf8D3QH/A90B/wPe + Af8D3gH/AsAB3AH/AgYBzAH/AkIB2QH/AkABwQH/AgIBoQH//wDJAAICAZ4B/wIRAaYB/wKBAeAB/wIR + Ac8B/wJBAdEB/wPcAf8D3QH/A90B/wPeAf8CTAHSAf8CEwHPAf8CagHbAf8CCwGiAf8CAgGfAf//AM0A + AgIBnwH/Ak0BwAH/AlcB3AH/AgIBzAH/AqIB1wH/A9wB/wPcAf8CrQHZAf8CAwHMAf8CUgHcAf8COQG8 + Af8CAgGgAf//ANEAAgIBpQH/AgoBowH/AoEB3gH/AhsB0QH/Ai4BzwH/AtoB2wH/A9wB/wI3AdAB/wIe + AdIB/wJsAdkB/wIGAaIB/wICAZ4B//8A1QACAgGgAf8CQQG6Af8CZQHfAf8CAgHMAf8CjwHWAf8CmAHW + Af8CAwHMAf8CYwHfAf8CMAG2Af8CAgGgAf//AN0AAgUBoQH/AnwB2gH/AiYB0wH/AhcBzgH/AhkBzQH/ + AiwB1AH/AmoB1wH/AgMBoAH/AgIBnwH//wDdAAICAZ4B/wI0AbQB/wJzAeEB/wIDAcwB/wIFAc0B/wJz + AeEB/wImAa8B/wICAZ4B//8A5QACAwGhAf8CcAHVAf8CRAHZAf8CSAHaAf8CYQHSAf8CAgGhAf//AOkA + AgIBoAH/AhUBpwH/Am8B2gH/AmwB2gH/AhEBpwH/AgIBnwH//wDtAAICAZ0B/wICAaEB/wICAaAB/wIC AaAB//8A/wD/AP8A/wD/AP8AvwABQgFNAT4HAAE+AwABKAMAAYADAAEgAwABAQEAAQEGAAECFgAD/wEA BP8MAAHwAgABHwwAAcACAAEHDAABgAIAAQMMAAGAAgABAwwAAcACAAEDDAABwAIAAQMMAAHAAgABAwwA AeACAAEHDAAB4AIAAQcMAAHwAgABDwwAAfACAAEPDAAB+AIAAR8MAAH8AgABHwwAAfwCAAE/DAAB/gIA