diff --git a/qtcnet-client/Controls/MainTabControl.Designer.cs b/qtcnet-client/Controls/MainTabControl.Designer.cs index ea99ee5..2b361ad 100644 --- a/qtcnet-client/Controls/MainTabControl.Designer.cs +++ b/qtcnet-client/Controls/MainTabControl.Designer.cs @@ -42,7 +42,7 @@ lvUserList = new ListView(); ilStatusIcons = new ImageList(components); tpGames = new TabPage(); - lvGameList = new ListView(); + lvGames = new ListView(); ilGameIcons = new ImageList(components); tpStore = new TabPage(); lvStoreItems = new ListView(); @@ -169,7 +169,7 @@ // tpGames // tpGames.BorderStyle = BorderStyle.Fixed3D; - tpGames.Controls.Add(lvGameList); + tpGames.Controls.Add(lvGames); tpGames.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 0); tpGames.ImageKey = "Games"; tpGames.Location = new Point(4, 24); @@ -180,23 +180,27 @@ tpGames.Text = "Games"; tpGames.UseVisualStyleBackColor = true; // - // lvGameList + // lvGames // - lvGameList.BorderStyle = BorderStyle.None; - lvGameList.Dock = DockStyle.Fill; - lvGameList.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point, 0); + lvGames.BorderStyle = BorderStyle.None; + lvGames.Dock = DockStyle.Fill; + lvGames.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point, 0); + listViewItem1.Tag = "StockMarketGame"; listViewItem1.ToolTipText = "Stock Market"; + listViewItem2.Tag = "GuessTheNumberGame"; listViewItem2.ToolTipText = "Guess The Number"; + listViewItem3.Tag = "TicTacToeGame"; listViewItem3.ToolTipText = "Tic-Tac-Toe (Multiplayer)"; - lvGameList.Items.AddRange(new ListViewItem[] { listViewItem1, listViewItem2, listViewItem3 }); - lvGameList.LargeImageList = ilGameIcons; - lvGameList.Location = new Point(3, 3); - lvGameList.MultiSelect = false; - lvGameList.Name = "lvGameList"; - lvGameList.Size = new Size(362, 539); - lvGameList.SmallImageList = ilGameIcons; - lvGameList.TabIndex = 0; - lvGameList.UseCompatibleStateImageBehavior = false; + lvGames.Items.AddRange(new ListViewItem[] { listViewItem1, listViewItem2, listViewItem3 }); + lvGames.LargeImageList = ilGameIcons; + lvGames.Location = new Point(3, 3); + lvGames.MultiSelect = false; + lvGames.Name = "lvGames"; + lvGames.Size = new Size(362, 539); + lvGames.SmallImageList = ilGameIcons; + lvGames.TabIndex = 0; + lvGames.UseCompatibleStateImageBehavior = false; + lvGames.DoubleClick += lvGames_DoubleClick; // // ilGameIcons // @@ -278,7 +282,7 @@ private TabPage tpUsers; private ListView lvUserList; private TabPage tpGames; - private ListView lvGameList; + private ListView lvGames; private ImageList ilTabIcons; private ImageList ilStatusIcons; private TableLayoutPanel tlpContactsList; diff --git a/qtcnet-client/Controls/MainTabControl.cs b/qtcnet-client/Controls/MainTabControl.cs index 6d58c96..f7fe2cb 100644 --- a/qtcnet-client/Controls/MainTabControl.cs +++ b/qtcnet-client/Controls/MainTabControl.cs @@ -1,5 +1,6 @@ using Krypton.Toolkit; using qtcnet_client.Factories; +using qtcnet_client.Forms.Games; using QtCNETAPI.Schema; using System; using System.Collections.Generic; @@ -17,11 +18,14 @@ namespace qtcnet_client.Controls public ListViewItem? SelectedUser { get; set; } [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public ListViewItem? SelectedStoreItem { get; set; } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] + public ListViewItem? SelectedGameItem { get; set; } public event EventHandler? OnContactControlDoubleClicked; public event EventHandler? OnUserItemDoubleClicked; public event EventHandler? OnRoomControlDoubleClicked; public event EventHandler? OnStoreItemDoubleClicked; + public event EventHandler? OnGameItemDoubleClicked; private ImageFactory _imgFactory; public MainTabControl(ImageFactory imageFactory) @@ -193,15 +197,28 @@ namespace qtcnet_client.Controls private void lvStoreItems_DoubleClick(object sender, EventArgs e) { - if(lvStoreItems.SelectedItems.Count > 0) + if (lvStoreItems.SelectedItems.Count > 0) { ListViewItem? lvi = lvStoreItems.SelectedItems[0]; - if(lvi != null) + if (lvi != null) { SelectedStoreItem = lvi; OnStoreItemDoubleClicked?.Invoke(this, EventArgs.Empty); } } } + + private void lvGames_DoubleClick(object sender, EventArgs e) + { + if (lvGames.SelectedItems.Count > 0) + { + ListViewItem? lvi = lvGames.SelectedItems[0]; + if (lvi != null) + { + SelectedGameItem = lvi; + OnGameItemDoubleClicked?.Invoke(this, EventArgs.Empty); + } + } + } } } diff --git a/qtcnet-client/Controls/MainTabControl.resx b/qtcnet-client/Controls/MainTabControl.resx index fc76d99..0bda274 100644 --- a/qtcnet-client/Controls/MainTabControl.resx +++ b/qtcnet-client/Controls/MainTabControl.resx @@ -124,91 +124,91 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu - SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAuBMAAAJNU0Z0AUkBTAIBAQQC - AAEBAQABAQEQAQABEAEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAUADAAEgAwABAQEAASAGAAEg/wD/ - AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wAuAAMGAQcDNAFUA1EBogNeAdIDWgHpA2AB6ANdAdED - UAGfAzEBTQMFAQYYAAMGAQcDNAFUA1EBogNeAdIDWgHpA2AB6ANdAdEDUAGfAzEBTQMFAQYYAAMGAQcD - NAFUA1EBogNeAdIDWgHpA2AB6ANdAdEDUAGfAzEBTQMFAQYYAAMGAQcDNAFUA1EBogNeAdIDWgHpA2AB - 6ANdAdEDUAGfAzEBTQMFAQYUAAMgAS0DVAGrA1sB5ANaAfUDJAH7A0QB/gNEAf4DJAH7A1MB9ANiAeED - UQGhAx4BKhAAAyABLQNUAasDWwHkAVcBWgFXAfUBIQFeASEB+wEgAWABIAH+ASABYAEgAf4BIQFeASEB - +wNTAfQDYgHhA1EBoQMeASoQAAMgAS0DVAGrA1sB5AFXAloB9QEhAl4B+wEgAmAB/gEgAmAB/gEhAl4B - +wNTAfQDYgHhA1EBoQMeASoQAAMgAS0DVAGrA1sB5AJXAVoB9QIhAV4B+wIgAWAB/gIgAWAB/gIhAV4B - +wNTAfQDYgHhA1EBoQMeASoMAAMbASUDWAG9A1oB8gNIAf4DMAH/AzkB/wM8Af8DNgH/AyoB/wMkAf8D - QAH9A14B8ANWAbIDGgEjCAADGwElA1gBvQNaAfIBIAFoASAB/gEAAVcBAAH/AQABZwEAAf8BAAFsAQAB - /wEAAWEBAAH/AQABTAEAAf8BAAFAAQAB/wNAAf0DXgHwA1YBsgEZARoBGQEjCAADGwElA1gBvQNaAfIB - IAJoAf4BAAJXAf8BAAJnAf8BAAJsAf8BAAJhAf8BAAJMAf8BAAJAAf8DQAH9A14B8ANWAbIBGQIaASMI - AAMbASUDWAG9A1oB8gIgAWgB/gIAAVcB/wIAAWcB/wIAAWwB/wIAAWEB/wIAAUwB/wIAAUAB/wNAAf0D - XgHwA1YBsgIZARoBIwQAAwMBBANSAaUDYAHzA0kB/wNVAf8DZQH/A3EB/wN1Af8DcQH/A2QB/wNMAf8D - MQH/A0QB/gNiAe4DUAGaAwMBBAMDAQQBUgFTAVIBpQFgAW8BYAHzAQABggEAAf8BAAGZAQAB/wEAAbYB - AAH/AQABzAEAAf8BAAHTAQAB/wEAAcsBAAH/AQABswEAAf8BAAGIAQAB/wEAAVcBAAH/ASABYAEgAf4D - YgHuA1ABmgMDAQQDAwEEAVICUwGlAWACbwHzAQACggH/AQACmQH/AQACtgH/AQACzAH/AQAC0wH/AQAC - ywH/AQACswH/AQACiAH/AQACVwH/ASACYAH+A2IB7gNQAZoDAwEEAwMBBAJSAVMBpQJgAW8B8wIAAYIB - /wIAAZkB/wIAAbYB/wIAAcwB/wIAAdMB/wIAAcsB/wIAAbMB/wIAAYgB/wIAAVcB/wIgAWAB/gNiAe4D - UAGaAwMBBAMtAUQDYAHoA4AB/gNuAf8DewH/A4UB/wOKAf8DjAH/A4oB/wOFAf8DdgH/A1cB/wMyAf8D - QAH9A14B3QMqAT8DLQFEAWABaQFgAegBIAGAASAB/gEAAcYBAAH/AQAB3AEAAf8BAAHuAQAB/wEAAfgB - AAH/AQAB+wEAAf8BAAH5AQAB/wEAAe8BAAH/AQAB1AEAAf8BAAGcAQAB/wEAAVoBAAH/A0AB/QNeAd0D - KgE/Ay0BRAFgAmkB6AEgAoAB/gEAAsYB/wEAAtwB/wEAAu4B/wEAAvgB/wEAAvsB/wEAAvkB/wEAAu8B - /wEAAtQB/wEAApwB/wEAAloB/wNAAf0DXgHdAyoBPwMtAUQCYAFpAegCIAGAAf4CAAHGAf8CAAHcAf8C - AAHuAf8CAAH4Af8CAAH7Af8CAAH5Af8CAAHvAf8CAAHUAf8CAAGcAf8CAAFaAf8DQAH9A14B3QMqAT8D - TgGVA3cB+AN/Af8DhQH/A4oB/wONAf8DjgH/A44B/wOOAf8DjQH/A4kB/wN3Af8DTQH/AyUB/wNaAfID - SgGLA04BlQFLAXwBSwH4AQAB5QEAAf8BAAHvAQAB/wEAAfgBAAH/AQAB/QEAAf8BAAH/AQAB/wEAAf8B - AAH/AQAB/wEAAf8BAAH+AQAB/wEAAfYBAAH/AQAB1QEAAf8BAAGLAQAB/wEAAUEBAAH/A1oB8gNKAYsD - TgGVAUsCfAH4AQAC5QH/AQAC7wH/AQAC+AH/AQAC/QH/AQAD/wEAA/8BAAP/AQAC/gH/AQAC9gH/AQAC - 1QH/AQACiwH/AQACQQH/A1oB8gNKAYsDTgGVAksBfAH4AgAB5QH/AgAB7wH/AgAB+AH/AgAB/QH/AgAC - /wIAAv8CAAL/AgAB/gH/AgAB9gH/AgAB1QH/AgABiwH/AgABQQH/A1oB8gNKAYsDXwHTA34B/AOTAf8D - jgH/A40B/wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wOFAf8DZwH/AzQB/wNBAfkDWgHEAVsBXwFbAdMB - KwGbASsB/AEOAfsBDgH/AQMB/QEDAf8BAAH+AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8B - AAH/AQAB/wEAAf8BAAH9AQAB/wEAAe8BAAH/AQABuQEAAf8BAAFdAQAB/wNBAfkDWgHEAVsCXwHTASsC - mwH8AQ4C+wH/AQMC/QH/AQAC/gH/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAL9Af8BAALvAf8BAAK5Af8B - AAJdAf8DQQH5A1oBxAJbAV8B0wIrAZsB/AIOAfsB/wIDAf0B/wIAAf4B/wIAAv8CAAL/AgAC/wIAAv8C - AAL/AgAB/QH/AgAB7wH/AgABuQH/AgABXQH/A0EB+QNaAcQDbgH1A4AB/gOfAf8DkwH/A48B/wOOAf8D - jgH/A44B/wOOAf8DjgH/A44B/wOLAf8DdwH/A0gB/wNAAf0DYgHhAVoBbgFaAfUBRAG/AUQB/gEnAf8B - JwH/AQsB/wELAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8B - AAH/AQAB/wEAAfkBAAH/AQAB1gEAAf8BAAGBAQAB/wNAAf0DYgHhAVoCbgH1AUQCvwH+AScD/wELA/8B - AQP/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAP/AQAC+QH/AQAC1gH/AQACgQH/A0AB/QNiAeECWgFuAfUC - RAG/Af4CJwL/AgsC/wIBAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAH5Af8CAAHWAf8CAAGBAf8D - QAH9A2IB4QNjAfYDgAH+A6sB/wOZAf8DkAH/A44B/wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wN/Af8D - VQH/A0AB/QNeAeIBSAFyAUgB9gFnAb8BZwH+AUIB/wFCAf8BGQH/ARkB/wEEAf8BBAH/AQAB/wEAAf8B - AAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/QEAAf8BAAHkAQAB/wEAAZgB - AAH/A0AB/QNeAeIBSAJyAfYBZwK/Af4BQgP/ARkD/wEEA/8BAAP/AQAD/wEAA/8BAAP/AQAD/wEAA/8B - AAL9Af8BAALkAf8BAAKYAf8DQAH9A14B4gJIAXIB9gJnAb8B/gJCAv8CGQL/AgQC/wIAAv8CAAL/AgAC - /wIAAv8CAAL/AgAC/wIAAf0B/wIAAeQB/wIAAZgB/wNAAf0DXgHiA2EB1gN+AfwDuAH/A6MB/wOTAf8D - jgH/A44B/wOOAf8DjgH/A44B/wOOAf8DjQH/A4IB/wNcAf8DTQH6A1oBxwFcAWEBXAHWAWQBoQFkAfwB - XwH/AV8B/wEvAf8BLwH/AQwB/wEMAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8B - AAH/AQAB/wEAAf8BAAH+AQAB/wEAAeoBAAH/AQABpQEAAf8BNAFNATQB+gNaAccBXAJhAdYBZAKhAfwB - XwP/AS8D/wEMA/8BAQP/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAL+Af8BAALqAf8BAAKlAf8BNAJNAfoD - WgHHAlwBYQHWAmQBoQH8Al8C/wIvAv8CDAL/AgEC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAB/gH/AgAB - 6gH/AgABpQH/AjQBTQH6A1oBxwNQAZoDgAH5A8UB/wOyAf8DnAH/A5EB/wOOAf8DjgH/A44B/wOOAf8D - jwH/A44B/wODAf8DYAH/A1oB8gNMAZADUAGaAWoBiQFqAfkBfAH/AXwB/wFRAf8BUQH/AR8B/wEfAf8B - BwH/AQcB/wEBAf8BAQH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQIB/wECAf8BAgH+AQIB/wEAAesB - AAH/AQABrQEAAf8BWgFrAVoB8gNMAZADUAGaAWoCiQH5AXwD/wFRA/8BHwP/AQcD/wEBA/8BAAP/AQAD - /wEAA/8BAgP/AQIC/gH/AQAC6wH/AQACrQH/AVoCawHyA0wBkANQAZoCagGJAfkCfAL/AlEC/wIfAv8C - BwL/AgEC/wIAAv8CAAL/AgAC/wICAv8CAgH+Af8CAAHrAf8CAAGtAf8CWgFrAfIDTAGQAy8BSQNsAesD - kAH+A8YB/wOuAf8DnAH/A5MB/wOQAf8DjwH/A5AB/wOTAf8DkwH/A4UB/wNGAf0DYAHgAy0BRQMvAUkD - bAHrAYABvwGAAf4BfwH/AX8B/wFJAf8BSQH/AR8B/wEfAf8BDAH/AQwB/wEFAf8BBQH/AQMB/wEDAf8B - BQH/AQUB/wEKAf8BCgH/AQoB/gEKAf8BAQHtAQEB/wFAAbYBQAH9AWABZgFgAeADLQFFAy8BSQNsAesB - gAK/Af4BfwP/AUkD/wEfA/8BDAP/AQUD/wEDA/8BBQP/AQoD/wEKAv4B/wEBAu0B/wFAArYB/QFgAmYB - 4AMtAUUDLwFJA2wB6wKAAb8B/gJ/Av8CSQL/Ah8C/wIMAv8CBQL/AgMC/wIFAv8CCgL/AgoB/gH/AgEB - 7QH/AkABtgH9AmABZgHgAy0BRQMDAQQDVgGuA24B9QPZAf8DywH/A7cB/wOnAf8DnQH/A5oB/wOcAf8D - nwH/A5sB/wOJAf8DaAHwA1IBowMDAQQDAwEEA1YBrgNuAfUBqAH/AagB/wGJAf8BiQH/AVwB/wFcAf8B - NwH/ATcB/wEiAf8BIgH/ARsB/wEbAf8BHwH/AR8B/wEmAf8BJgH/AR0B/wEdAf8BBQHzAQUB/wFeAWgB - XgHwA1IBowMDAQQDAwEEA1YBrgNuAfUBqAP/AYkD/wFcA/8BNwP/ASID/wEbA/8BHwP/ASYD/wEdA/8B - BQLzAf8BXgJoAfADUgGjAwMBBAMDAQQDVgGuA24B9QKoAv8CiQL/AlwC/wI3Av8CIgL/AhsC/wIfAv8C - JgL/Ah0C/wIFAfMB/wJeAWgB8ANSAaMDAwEEBAADHAEnA10BxwNtAfYDnwH+A9cB/wPMAf8DwgH/A7sB - /wO3Af8DsQH/A4AB/gNoAfQDWQG8AxsBJggAAxwBJwNdAccBYwFyAWMB9gGAAb8BgAH+AaUB/wGlAf8B - iwH/AYsB/wF0Af8BdAH/AWYB/wFmAf8BXAH/AVwB/wFOAf8BTgH/AVABvwFQAf4BUwFrAVMB9AFXAVkB - VwG8AxsBJggAAxwBJwNdAccBYwJyAfYBgAK/Af4BpQP/AYsD/wF0A/8BZgP/AVwD/wFOA/8BUAK/Af4B - UwJrAfQBVwJZAbwDGwEmCAADHAEnA10BxwJjAXIB9gKAAb8B/gKlAv8CiwL/AnQC/wJmAv8CXAL/Ak4C - /wJQAb8B/gJTAWsB9AJXAVkBvAMbASYMAAMhATADWQG2A2IB7gN9AfoDvgH9A9QB/wPMAf8DvgH9A3kB - +QNsAesDVQGsAx8BLBAAAyEBMANZAbYDYgHuAX0BigF9AfoBrgG+Aa4B/QGfAf8BnwH/AYwB/wGMAf8B - VgG+AVYB/QFoAYkBaAH5AWEBbAFhAesDVQGsAx8BLBAAAyEBMANZAbYDYgHuAX0CigH6Aa4CvgH9AZ8D - /wGMA/8BVgK+Af0BaAKJAfkBYQJsAesDVQGsAx8BLBAAAyEBMANZAbYDYgHuAn0BigH6Aq4BvgH9Ap8C - /wKMAv8CVgG+Af0CaAGJAfkCYQFsAesDVQGsAx8BLBQAAwYBBwM2AVgDVQGsA2YB5QOIAfwDiwH7A2UB - 4gNTAacDMwFRAwYBBxgAAwYBBwM2AVgDVQGsA2YB5QF+AaEBfgH8AV8BlgFfAfsDZQHiA1MBpwMzAVED - BgEHGAADBgEHAzYBWANVAawDZgHlAX4CoQH8AV8ClgH7A2UB4gNTAacDMwFRAwYBBxgAAwYBBwM2AVgD - VQGsA2YB5QJ+AaEB/AJfAZYB+wNlAeIDUwGnAzMBUQMGAQcMAAFCAU0BPgcAAT4DAAEoAwABQAMAASAD - AAEBAQABAQYAAQEWAAP/gQAB4AEHAeABBwHgAQcB4AEHAcABAwHAAQMBwAEDAcABAwGAAQEBgAEBAYAB - AQGAAQFQAAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeABBws= + SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAshMAAAJNU0Z0AUkBTAIBAQQB + AAEYAQEBGAEBARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASD/ + AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AC4AAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B + 0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYB + BwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekD + YAHoA10B0QNQAZ8DMQFNAwUBBhQAAyABLQNUAasDWwHkA1oB9QMkAfsDRwH+A0cB/gMkAfsDUwH0A2IB + 4QNRAaEDHgEqEAADIAEtA1QBqwNbAeQDWgH1ASEBXgEhAfsBIwFjASMB/gEjAWMBIwH+ASEBXgEhAfsD + UwH0A2IB4QNRAaEDHgEqEAADIAEtA1QBqwNbAeQDWgH1ASECXgH7ASMCYwH+ASMCYwH+ASECXgH7A1MB + 9ANiAeEDUQGhAx4BKhAAAyABLQNUAasDWwHkA1oB9QIhAV4B+wIjAWMB/gIjAWMB/gIhAV4B+wNTAfQD + YgHhA1EBoQMeASoMAAMbASUDWAG9A1oB8gNLAf4DMAH/AzkB/wM8Af8DNgH/AyoB/wMkAf8DQAH9A14B + 8ANWAbIDGgEjCAADGwElA1gBvQNaAfIBIwFrASMB/gEAAVcBAAH/AQABZwEAAf8BAAFsAQAB/wEAAWEB + AAH/AQABTAEAAf8BAAFAAQAB/wNAAf0DXgHwA1YBsgEZARoBGQEjCAADGwElA1gBvQNaAfIBIwJrAf4B + AAJXAf8BAAJnAf8BAAJsAf8BAAJhAf8BAAJMAf8BAAJAAf8DQAH9A14B8ANWAbIBGQIaASMIAAMbASUD + WAG9A1oB8gIjAWsB/gIAAVcB/wIAAWcB/wIAAWwB/wIAAWEB/wIAAUwB/wIAAUAB/wNAAf0DXgHwA1YB + sgIZARoBIwQAAwMBBANSAaUDYAHzA0kB/wNVAf8DZQH/A3EB/wN1Af8DcQH/A2QB/wNMAf8DMQH/A0cB + /gNiAe4DUAGaAwMBBAMDAQQBUgFTAVIBpQFgAW8BYAHzAQABggEAAf8BAAGZAQAB/wEAAbYBAAH/AQAB + zAEAAf8BAAHTAQAB/wEAAcsBAAH/AQABswEAAf8BAAGIAQAB/wEAAVcBAAH/ASMBYwEjAf4DYgHuA1AB + mgMDAQQDAwEEAVICUwGlAWACbwHzAQACggH/AQACmQH/AQACtgH/AQACzAH/AQAC0wH/AQACywH/AQAC + swH/AQACiAH/AQACVwH/ASMCYwH+A2IB7gNQAZoDAwEEAwMBBAJSAVMBpQJgAW8B8wIAAYIB/wIAAZkB + /wIAAbYB/wIAAcwB/wIAAdMB/wIAAcsB/wIAAbMB/wIAAYgB/wIAAVcB/wIjAWMB/gNiAe4DUAGaAwMB + BAMtAUQDYAHoA4AB/gNuAf8DewH/A4UB/wOKAf8DjAH/A4oB/wOFAf8DdgH/A1cB/wMyAf8DQAH9A14B + 3QMqAT8DLQFEAWABaQFgAegBIwGAASMB/gEAAcYBAAH/AQAB3AEAAf8BAAHuAQAB/wEAAfgBAAH/AQAB + +wEAAf8BAAH5AQAB/wEAAe8BAAH/AQAB1AEAAf8BAAGcAQAB/wEAAVoBAAH/A0AB/QNeAd0DKgE/Ay0B + RAFgAmkB6AEjAoAB/gEAAsYB/wEAAtwB/wEAAu4B/wEAAvgB/wEAAvsB/wEAAvkB/wEAAu8B/wEAAtQB + /wEAApwB/wEAAloB/wNAAf0DXgHdAyoBPwMtAUQCYAFpAegCIwGAAf4CAAHGAf8CAAHcAf8CAAHuAf8C + AAH4Af8CAAH7Af8CAAH5Af8CAAHvAf8CAAHUAf8CAAGcAf8CAAFaAf8DQAH9A14B3QMqAT8DTgGVA3cB + +AN/Af8DhQH/A4oB/wONAf8DjgH/A44B/wOOAf8DjQH/A4kB/wN3Af8DTQH/AyUB/wNaAfIDSgGLA04B + lQFRAXwBUQH4AQAB5QEAAf8BAAHvAQAB/wEAAfgBAAH/AQAB/QEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB + /wEAAf8BAAH+AQAB/wEAAfYBAAH/AQAB1QEAAf8BAAGLAQAB/wEAAUEBAAH/A1oB8gNKAYsDTgGVAVEC + fAH4AQAC5QH/AQAC7wH/AQAC+AH/AQAC/QH/AQAD/wEAA/8BAAP/AQAC/gH/AQAC9gH/AQAC1QH/AQAC + iwH/AQACQQH/A1oB8gNKAYsDTgGVAlEBfAH4AgAB5QH/AgAB7wH/AgAB+AH/AgAB/QH/AgAC/wIAAv8C + AAL/AgAB/gH/AgAB9gH/AgAB1QH/AgABiwH/AgABQQH/A1oB8gNKAYsDXwHTA34B/AOTAf8DjgH/A40B + /wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wOFAf8DZwH/AzQB/wNBAfkDWgHEAVsBXwFbAdMBKwGSASsB + /AEOAfsBDgH/AQMB/QEDAf8BAAH+AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB + /wEAAf8BAAH9AQAB/wEAAe8BAAH/AQABuQEAAf8BAAFdAQAB/wNBAfkDWgHEAVsCXwHTASsCkgH8AQ4C + +wH/AQMC/QH/AQAC/gH/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAL9Af8BAALvAf8BAAK5Af8BAAJdAf8D + QQH5A1oBxAJbAV8B0wIrAZIB/AIOAfsB/wIDAf0B/wIAAf4B/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAB + /QH/AgAB7wH/AgABuQH/AgABXQH/A0EB+QNaAcQDbgH1A4AB/gOfAf8DkwH/A48B/wOOAf8DjgH/A44B + /wOOAf8DjgH/A44B/wOLAf8DdwH/A0gB/wNAAf0DYgHhAVoBbgFaAfUBRwG5AUcB/gEnAf8BJwH/AQsB + /wELAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB + /wEAAfkBAAH/AQAB1gEAAf8BAAGBAQAB/wNAAf0DYgHhAVoCbgH1AUcCuQH+AScD/wELA/8BAQP/AQAD + /wEAA/8BAAP/AQAD/wEAA/8BAAP/AQAC+QH/AQAC1gH/AQACgQH/A0AB/QNiAeECWgFuAfUCRwG5Af4C + JwL/AgsC/wIBAv8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAH5Af8CAAHWAf8CAAGBAf8DQAH9A2IB + 4QNjAfYDgAH+A6sB/wOZAf8DkAH/A44B/wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wN/Af8DVQH/A0AB + /QNeAeIBSAFtAUgB9gFqAbkBagH+AUIB/wFCAf8BGQH/ARkB/wEEAf8BBAH/AQAB/wEAAf8BAAH/AQAB + /wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/QEAAf8BAAHkAQAB/wEAAZgBAAH/A0AB + /QNeAeIBSAJtAfYBagK5Af4BQgP/ARkD/wEEA/8BAAP/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAL9Af8B + AALkAf8BAAKYAf8DQAH9A14B4gJIAW0B9gJqAbkB/gJCAv8CGQL/AgQC/wIAAv8CAAL/AgAC/wIAAv8C + AAL/AgAC/wIAAf0B/wIAAeQB/wIAAZgB/wNAAf0DXgHiA2EB1gN+AfwDuAH/A6MB/wOTAf8DjgH/A44B + /wOOAf8DjgH/A44B/wOOAf8DjQH/A4IB/wNcAf8DTQH6A1oBxwFcAWEBXAHWAWQBmAFkAfwBXwH/AV8B + /wEvAf8BLwH/AQwB/wEMAf8BAQH/AQEB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB + /wEAAf8BAAH+AQAB/wEAAeoBAAH/AQABpQEAAf8BOgFNAToB+gNaAccBXAJhAdYBZAKYAfwBXwP/AS8D + /wEMA/8BAQP/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAL+Af8BAALqAf8BAAKlAf8BOgJNAfoDWgHHAlwB + YQHWAmQBmAH8Al8C/wIvAv8CDAL/AgEC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAB/gH/AgAB6gH/AgAB + pQH/AjoBTQH6A1oBxwNQAZoDewH5A8UB/wOyAf8DnAH/A5EB/wOOAf8DjgH/A44B/wOOAf8DjwH/A44B + /wODAf8DYAH/A1oB8gNMAZADUAGaAWoBhgFqAfkBfAH/AXwB/wFRAf8BUQH/AR8B/wEfAf8BBwH/AQcB + /wEBAf8BAQH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQIB/wECAf8BAgH+AQIB/wEAAesBAAH/AQAB + rQEAAf8BWgFrAVoB8gNMAZADUAGaAWoChgH5AXwD/wFRA/8BHwP/AQcD/wEBA/8BAAP/AQAD/wEAA/8B + AgP/AQIC/gH/AQAC6wH/AQACrQH/AVoCawHyA0wBkANQAZoCagGGAfkCfAL/AlEC/wIfAv8CBwL/AgEC + /wIAAv8CAAL/AgAC/wICAv8CAgH+Af8CAAHrAf8CAAGtAf8CWgFrAfIDTAGQAy8BSQNsAesDigH+A8YB + /wOuAf8DnAH/A5MB/wOQAf8DjwH/A5AB/wOTAf8DkwH/A4UB/wNDAf0DYAHgAy0BRQMvAUkDbAHrAYAB + uQGAAf4BfwH/AX8B/wFJAf8BSQH/AR8B/wEfAf8BDAH/AQwB/wEFAf8BBQH/AQMB/wEDAf8BBQH/AQUB + /wEKAf8BCgH/AQoB/gEKAf8BAQHtAQEB/wFAAbYBQAH9AWABZgFgAeADLQFFAy8BSQNsAesBgAK5Af4B + fwP/AUkD/wEfA/8BDAP/AQUD/wEDA/8BBQP/AQoD/wEKAv4B/wEBAu0B/wFAArYB/QFgAmYB4AMtAUUD + LwFJA2wB6wKAAbkB/gJ/Av8CSQL/Ah8C/wIMAv8CBQL/AgMC/wIFAv8CCgL/AgoB/gH/AgEB7QH/AkAB + tgH9AmABZgHgAy0BRQMDAQQDVgGuA24B9QPZAf8DywH/A7cB/wOnAf8DnQH/A5oB/wOcAf8DnwH/A5sB + /wOJAf8DaAHwA1IBowMDAQQDAwEEA1YBrgNuAfUBqAH/AagB/wGJAf8BiQH/AVwB/wFcAf8BNwH/ATcB + /wEiAf8BIgH/ARsB/wEbAf8BHwH/AR8B/wEmAf8BJgH/AR0B/wEdAf8BBQHzAQUB/wFeAWgBXgHwA1IB + owMDAQQDAwEEA1YBrgNuAfUBqAP/AYkD/wFcA/8BNwP/ASID/wEbA/8BHwP/ASYD/wEdA/8BBQLzAf8B + XgJoAfADUgGjAwMBBAMDAQQDVgGuA24B9QKoAv8CiQL/AlwC/wI3Av8CIgL/AhsC/wIfAv8CJgL/Ah0C + /wIFAfMB/wJeAWgB8ANSAaMDAwEEBAADHAEnA10BxwNnAfYDmQH+A9cB/wPMAf8DwgH/A7sB/wO3Af8D + sQH/A4AB/gNoAfQDWQG8AxsBJggAAxwBJwNdAccBYwFtAWMB9gGAAbkBgAH+AaUB/wGlAf8BiwH/AYsB + /wF0Af8BdAH/AWYB/wFmAf8BXAH/AVwB/wFOAf8BTgH/AVMBuQFTAf4BUwFoAVMB9AFXAVkBVwG8AxsB + JggAAxwBJwNdAccBYwJtAfYBgAK5Af4BpQP/AYsD/wF0A/8BZgP/AVwD/wFOA/8BUwK5Af4BUwJoAfQB + VwJZAbwDGwEmCAADHAEnA10BxwJjAW0B9gKAAbkB/gKlAv8CiwL/AnQC/wJmAv8CXAL/Ak4C/wJTAbkB + /gJTAWgB9AJXAVkBvAMbASYMAAMhATADWQG2A2IB7gN9AfoDvgH9A9QB/wPMAf8DvgH9A3MB+QNsAesD + VQGsAx8BLBAAAyEBMANZAbYDYgHuAX0BgQF9AfoBrgG+Aa4B/QGfAf8BnwH/AYwB/wGMAf8BUwG+AVMB + /QFoAYYBaAH5AWEBbAFhAesDVQGsAx8BLBAAAyEBMANZAbYDYgHuAX0CgQH6Aa4CvgH9AZ8D/wGMA/8B + UwK+Af0BaAKGAfkBYQJsAesDVQGsAx8BLBAAAyEBMANZAbYDYgHuAn0BgQH6Aq4BvgH9Ap8C/wKMAv8C + UwG+Af0CaAGGAfkCYQFsAesDVQGsAx8BLBQAAwYBBwM2AVgDVQGsA2YB5QN/AfwDiAH7A2UB4gNTAacD + MwFRAwYBBxgAAwYBBwM2AVgDVQGsA2YB5QF+AZgBfgH8AV8BkwFfAfsDZQHiA1MBpwMzAVEDBgEHGAAD + BgEHAzYBWANVAawDZgHlAX4CmAH8AV8CkwH7A2UB4gNTAacDMwFRAwYBBxgAAwYBBwM2AVgDVQGsA2YB + 5QJ+AZgB/AJfAZMB+wNlAeIDUwGnAzMBUQMGAQcMAAFCAU0BPgcAAT4DAAEoAwABQAMAASADAAEBAQAB + AQYAAQEWAAP/gQAB4AEHAeABBwHgAQcB4AEHAcABAwHAAQMBwAEDAcABAwGAAQEBgAEBAYABAQGAAQFQ + AAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeABBws= @@ -218,169 +218,168 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu - SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAziUAAAJNU0Z0AUkBTAIBAQMB - AAFwAQABcAEAASABAAEgAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABgAMAASADAAEBAQABIAYAAUB6 + SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAlCUAAAJNU0Z0AUkBTAIBAQMB + AAGIAQABiAEAASABAAEgAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABgAMAASADAAEBAQABIAYAAUB6 AANcAecBCAEKAQAB/wMqAUAMAAMqAUADNgFXAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwD PwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAI7AToBYgMzAVEDGAEhVAADUwGiA1sBwCAAA1QB pgNZAbzwAAMhATADRgGAFAABFQEfAQQB/wENARUBAAH/AQgBCgEAAf8BCAEKAQAB/wwAA0QBegNTAacC YQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8C - YQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYAFdAc4DWQG7AlABTwGbAyoBQFQAA18B0ANmAe4g + YQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYQFdAc8CYAFdAc4DWQG7AlABTwGbAyoBQFQAA18B0ANjAe4g AANhAdQDYwHp5AADWgG/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB AAH/AQgBCgEAAf8DWgG/A1oBvwFDAXQBBwH/AUcBdwEMAf8BJQFHAQAB/wEOARkBAAH/DAACSwFKAYoC - WgFYAb0BbwFnAVYB6gFvAWcBVgHqAW8BZwFWAeoBbwFnAVYB6gFvAWcBVgHqAW8BZwFWAeoBbwFnAVYB - 6gFvAWcBVgHqAW8BZwFWAeoBbwFnAVYB6gFvAWcBVgHqAW8BZwFWAeoBbwFnAVYB6gFvAWcBVgHqAW8B - ZwFWAeoBbQFjAVkB6QJfAVsB0wNVAa8DLgFIVAADXwHQA2YB7iAAA2EB1ANjAengAAEIAQoBAAH/ARAB + WgFYAb0BaAFnAVwB6gFoAWcBXAHqAWgBZwFcAeoBaAFnAVwB6gFoAWcBXAHqAWgBZwFcAeoBaAFnAVwB + 6gFoAWcBXAHqAWgBZwFcAeoBaAFnAVwB6gFoAWcBXAHqAWgBZwFcAeoBaAFnAVwB6gFoAWcBXAHqAWgB + ZwFcAeoBagFjAVoB6QJfAVsB0wNVAa8DLgFIVAADXwHQA2MB7iAAA2EB1ANjAengAAEIAQoBAAH/ARAB HgEAAf8BIQFBAQAB/wEnAUsBAAH/ASYBSgEAAf8BIQFBAQAB/wEQAR4BAAH/AQgBCgEAAf8BCAEKAQAB /wEIAQoBAAH/ASkBTgEAAf8BWgGWARAB/wFaAZwBEAH/AXMBtgEmAf8BGAEuAQAB/wwAA0kBhgJaAVgB - twFnAWUBXQHjAWcBZQFdAeMBZwFlAV0B4wFnAWUBXQHjAWwBagFcAeYBdwFqAVYB7QGPAWgBQwH0AcgB - dwEcAfwB/wF4AQAC/wF4AQAB/wGTAW4BQAH1AWwBagFcAeYBZwFlAV0B4wFnAWUBXQHjAWcBZQFdAeMB - ZwFlAV4B4gJeAVsBzQJVAVMBqgIuAS0BRlQAA18B0ANmAe4gAANhAdQDYwHp3AABCAEKAQAB/wE9AXEB - AgH/AUwBhgEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AUwBfwEPAf8B - OwFnAQgB/wEhATQBCAH/AVMBjgELAf8BWgGcARAB/wFyAbMBJwH/AVMBgQEbAf8QAAMrAUEDNgFZAkAB - PwFuAkABPwFuAkABPwFuAkABPwFuA0QBewJRAVABnwJdAVsBxQF5AWQBVQHuAf8BeAEAAv8BeAEAAf8C - XwFdAckDRQF8AkABPwFuAkABPwFuAkABPwFuAz8BbQM7AWMDMwFSAxkBIlQAA18B0ANmAe4gAANhAdQD - YwHp2AABFQEpAQAB/wFKAYQBBAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB - /wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVYBkAEMAf8BWgGaARAB/wFaAZwBEAH/AXIB - qQEwAf8BCAEKAQAB/wEIAQoBAAH/DAADDAEQAxEBFgMVARwDFQEcAxUBHAMVARwDIQEwAj4BPQFpAlMB - UgGlAW0BZgFfAeUB/wF4AQAC/wF4AQAB/wJVAVMBqgMiATEDFQEcAxUBHAMVARwDFAEbAxMBGQMQARUD - BwEJVAADXwHQA2YB7iAAA2EB1ANjAenUAAEWAScBAgH/AUkBgAEHAf8BUgGMAQgB/wFSAYwBCAH/AVIB - jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAELAf8BUgGMARAB/wFSAYwBEAH/AVgBkgEQAf8BWgGUARAB - /wFaAZsBEAH/AVoBnAEQAf8BXAGeARIB/wE7AW0BAwH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/CAAD - BQQGBAgBCgMIAQoDCAEKAwgBCgMXAR8COQE4AV0DUQGeAWcBZQFdAeMB/wF4AQAC/wF4AQAB/wNSAaMD - GAEhAwgBCgMIAQoDCAEKAwgBCgMHAQkDBgEHAwIBA1QAA18B0ANmAe4gAANhAdQDYwHp0AADXQHfAUcB - gAEDAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB - /wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoB - nAEQAf8BWgGYARAB/wEWASoBAAH/AQgBCgEAAf8BCAEKAQAB/xwAAxIBFwM1AVYDUAGaAWcBYgFgAeEB - /wF4AQAC/wF4AQAB/wJRAVABnwMSARhwAANfAdADZgHuIAADYQHUA2MB6dAAASwBUAEAAf8BSgGMAQAB - /wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQ4B/wFVAZIBEAH/AVoB - nAEQAf8BWgGcARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB - /wFaAZQBGAH/AVgBkgEWAf8BEAEeAQAB/wEIAQoBAAH/HAADEgEXAzUBVgNQAZoBZwFiAWAB4QH/AXgB - AAL/AXgBAAH/AlEBUAGfAxIBGHAAA18B0ANmAe4gAANhAdQDYwHp1AADSwGPATMBXgEAAf8BUgGMAQgB - /wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wF/AcABMwH/AV8BngEXAf8BIAE/AQAB/wEIAQoBAAH/AVIB - jAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZUBFwH/AVoBlAEYAf8BWgGUARgB - /wFaAZQBGAH/AQgBCgEAAf8BCAEKAQAB/xgAAxIBFwM1AVYDUAGaAWcBYgFgAeEB/wF4AQAC/wF4AQAB - /wJRAVABnwMSARgUAAQBAwMBBAMGBAcBCQMHAQkDBAEFBAIEARQAAxEBFgMhAS8DIQEvAyEBLwMhAS8D - IQEvAyEBLwMhAS8DIQEvAyEBLwNhAdkDcAHxAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8D - YgHcA2oB7QMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMNARG4AAFCAXsBAAH/AVIB - jAEIAf8BewHGASkB/wMzAVAEAAMMARABOQFrAQAB/wFaAZwBEAH/AVoBnAEQAf8BXQGXARMB/wFWAZQB - DAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/AWMBnAEYAf8BYwGlARcB/wEpAVABAAH/AQgBCgEAAf8Y - AAMSARcDNQFWA1ABmgFnAWIBYAHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYFAAEAgMJAQwDDwEUAxMB - GgMSARgDCgENAwQBBQQBFAADaQHoA38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B - /wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B - /wN/Af8DfwH/A38B/wN/Af8DfwH/A2EBz7wAAQgBCgEAAf8MAAETASMBAAH/AVoBlAEQAf8BWgGcARAB - /wGUAdYBSgH/AQ0BEQECAf8BMQFaAQAB/wFaAZQBEgH/AVoBlAEYAf8BWgGUARgB/wFjAZwBGAH/AWMB - pQEXAf8BawGlASEB/wEQAR4BAAH/GAADEgEXAzUBVgNQAZoBZwFiAWAB4QH/AXgBAAL/AXgBAAH/AlEB - UAGfAxIBGBQAAwUBBgMdASkDMAFKAjsBPAFlAjsBPAFkAygBPAIVARYBHQMGAQgUAAM8AWQDTAGPA0wB - jwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DZwHqA3wB+ANMAY8DTAGPA0wBjwNMAY8DTAGPA0wB - jwNMAY8DTAGPA2gB7ANuAfUDTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DNQFWqAAD - XQHfAQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AzMBUAM6AWAB - SwGFAQcB/wFaAZQBEAH/AVoBnAEQAf8BOQFrAQAB/wMJAQwBEAEeAQAB/wFUAY4BEgH/AVoBlAEYAf8B - YwGcARgB/wFjAZwBGAH/AWMBpQEXAf8BcwG0ASkB/wEQAR4BAAH/GAADEgEXAzUBVgNQAZoBZwFiAWAB - 4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwkBDAMzAVACTAFNAZECXQFfAckCWwFdAcoDRAF6AykB - PQMMARA8AANfAdADZgHuIAADYQHUA2MB6cwAAQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8B - CAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/ATMBXwECAf8BWgGUARAB/wFaAZwB - EAH/Aa0B5wFjAf8BEAEeAQAB/wEIAQoBAAH/ARQBJgEAAf8BVAGOARIB/wFiAZsBGAH/AWMBnAEYAf8B - YwGlARcB/wFjAaUBFwH/AWMBnAEhAf8BGAEuAQAB/xgAAxIBFwM1AVYDUAGaAWcBYgFgAeEB/wF4AQAC - /wF4AQAB/wJRAVABnwMSARgUAAMJAQsDLgFHA0gBhAJZAVwBwwJcAV8BywNJAYUDLgFHAw8BEzwAA18B - 0ANmAe4gAANhAdQDYwHpyAABCAEKAQAB/wErAVIBAAH/AUEBcgEFAf8BSgGEAQYB/wFKAYQBBgH/AUoB - hAEGAf8BQgFzAQYB/wEpAVABAAH/ARABHgEAAf8BHwE6AQAB/wFVAY8BCwH/AVoBlQEQAf8BWgGcARAB - /wHWAf8BjAH/ARABHgEAAf8BGAEuAQAB/wFCAXgBAwH/AVoBlAEYAf8BYgGbARgB/wFjAZwBGAH/AWMB - pQEXAf8BYwGlARcB/wFzAbQBKQH/ARABHgEAAf8YAAMSARcDNQFWA1ABmgFnAWIBYAHhAf8BeAEAAv8B - eAEAAf8CUQFQAZ8DEgEYFAADBgEIAyQBNAM8AWYDUwGnA1gBuAJHAUgBgwMxAU0DDwEUPAADXwHQA2YB - 7iAAA2EB1ANjAenEAAEoAU0BAAH/AU4BiAEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB - /wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZwBEAH/AWMB - pQEXAf8BQgF7AQAB/wFKAYQBBgH/AVIBjAEIAf8BWgGYARQB/wFaAZQBGAH/AWMBnAEYAf8BYwGlARcB - /wFjAaUBFwH/AWMBpQEXAf8BlAHJAU0B/wQAAxABFQMaASQDIQEvAxEBFgQCBAEDEgEXAzUBVgNQAZoB - ZwFiAWAB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwMBBAMTARkDJQE2AjsBPAFkAkEBQgFyAzMB - UQMhAS8DCQEMPAADXwHQA2YB7iAAA2EB1ANjAenAAAEpAU4BAgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB - CAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVIBjAEQAf8B - WgGUARAB/wFaAZUBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB/wFaAZQB - GAH/AWMBnAEYAf8BYwGcARgB/wFjAaUBFwH/AWMBpQEXAf8BYwGlARcB/wFlAaABIQH/BAADHgErAjEB - MAFMAzsBYwMiATEDBwEJAwQBBQMSARgDNgFXA1ABmgFnAWIBYAHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8D - EgEYHAADBwEJAxwBJwMjATICGQEaASMDDwEUAwQBBTwAA18B0ANmAe4gAANhAdQDYwHpvAADRgGAAU4B - iAEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB - /wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlwEQAf8BWgGcARAB/wFaAZwBEAH/AVoB - nAEQAf8BWgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BYwGcARgB/wFjAaEBGAH/AWMBpQEXAf8BYwGlARcB - /wF4AboBLAH/AQgBCgEAAf8EAAMkATQDRQF8AloBWAG3A04BlAM/AW0DKAE7Ax8BLAM5AV4DUAGaAWcB - YgFgAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgcAAMSARcDPAFmA0oBiQNAAW8DLgFHAw4BEjwAA18B - 0ANmAe4gAANhAdQDYwHpvAABNQFeAQcB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB - jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGUARAB - /wFaAZsBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlgEWAf8BWgGUARgB/wFdAZcBGAH/AWMB - nAEYAf8BYwGlARcB/wFjAaUBFwH/AXABswEgAf8BKwFQAQQB/wgAAycBOgJTAVEBogHEAV8BIQH7AW4B - ZQFcAecCXAFaAcQCQwFCAXUDMQFNAkABPwFuAlEBUAGfAWcBZQFdAeMB/wF4AQAC/wF4AQAB/wJRAVAB - nwMSARgcAAMZASIDTgGVAlsBXgHNAlYBVwGyA0QBegMdASkDBgEIBAIEATAAA18B0ANmAe4gAANhAdQD - YwHpvAABSgGEAQYB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BZwGpARcB - /wFSAYwBCAH/AUoBhAEGAf8BSgGEAQYB/wFSAYwBEAH/AVoBlAEQAf8BWgGXARAB/wFaAZwBEAH/AVoB - nAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWgGUARgB/wFfAZgBGAH/AWMBngEYAf8BYwGlARcB - /wFrAakBHQH/ASkBUAEAAf8MAAMiATEDTgGYAYwBbwFKAfMBfAFoAU8B8AFsAWoBXAHmAloBVwHCAlUB - UwGqA1MBpwJZAVcBvAF1AWwBWgHrAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADFAEbAkMBRAF3AlYB - WQG2AlsBXgHNAlYBWAGzAz8BbAMmATgDDAEPAwIBAwgAAwIBAwMNAREDDQERAw0BEQMNAREDDQERAw0B - EQMNAREDDQERAw0BEQNfAdMDZwHvAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0BEQMNAREDYgHXA2cB - 6gMNAREDDQERAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0BEQMEAQWUAAFKAYQBBgH/AVIBjAEIAf8B - UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BaQGkAR4B/wEsAVABAwH/AQgBCgEAAf8BNwFhAQcB/wFSAYwB - DgH/AVIBjAEQAf8BfwHBATIB/wFbAV4BWwHTA1oBvwEvAVkBAAH/AUQBegEFAf8BUAGKAQgB/wFaAZwB - DgH/AVoBnAEQAf8BWgGcARAB/wFPAYYBEAH/AUQBdAEMAf8DWgG/EAACGgEZASMDRAF7Al0BWwHKAmMB - XwHaAW4BaQFZAegBewFnAVAB7wF1AWYBWgHsAmEBXAHWAWABXwFbAdgBjwFoAUMB9AH/AXgBAAL/AXgB - AAH/AlEBUAGfAxIBGBwAAw8BEwM0AVMDTQGSAl0BYQHPAl0BYQHUAlIBVAGoAkEBQgFyAyYBOAMUARsD - BgEIAwIBAwNaAcIDfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D + twJlAWAB4wJlAWAB4wJlAWAB4wJlAWAB4wJqAWEB5gFxAWoBXAHtAYUBaAFKAfQBwgF3ASIB/AH/AXgB + AAL/AXgBAAH/AYcBbgFEAfUCagFhAeYCZQFgAeMCZQFgAeMCZQFgAeMCZQFeAeICXgFbAc0CVQFTAaoC + LgEtAUZUAANfAdADYwHuIAADYQHUA2MB6dwAAQgBCgEAAf8BPQFxAQIB/wFMAYYBBwH/AVIBjAEIAf8B + UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFMAX8BDwH/ATsBZwEIAf8BIQE0AQgB/wFTAY4B + CwH/AVoBnAEQAf8BcgGzAScB/wFTAYEBGwH/EAADKwFBAzYBWQJAAT8BbgJAAT8BbgJAAT8BbgJAAT8B + bgNEAXsCUQFQAZ8CXQFbAcUBcQFiAVgB7gH/AXgBAAL/AXgBAAH/Al8BXQHJA0UBfAJAAT8BbgJAAT8B + bgJAAT8BbgM/AW0DOwFjAzMBUgMZASJUAANfAdADYwHuIAADYQHUA2MB6dgAARUBKQEAAf8BSgGEAQQB + /wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVIB + jAEQAf8BWgGUARAB/wFWAZABDAH/AVoBmgEQAf8BWgGcARAB/wFyAakBMAH/AQgBCgEAAf8BCAEKAQAB + /wwAAwwBEAMRARYDFQEcAxUBHAMVARwDFQEcAyEBMAI+AT0BaQJTAVIBpQFpAWYBXwHlAf8BeAEAAv8B + eAEAAf8CVQFTAaoDIgExAxUBHAMVARwDFQEcAxQBGwMTARkDEAEVAwcBCVQAA18B0ANjAe4gAANhAdQD + YwHp1AABFgEnAQIB/wFJAYABBwH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB + /wFSAYwBCwH/AVIBjAEQAf8BUgGMARAB/wFYAZIBEAH/AVoBlAEQAf8BWgGbARAB/wFaAZwBEAH/AVwB + ngESAf8BOwFtAQMB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wgAAwUEBgQIAQoDCAEKAwgBCgMIAQoD + FwEfAjkBOAFdA1EBngJlAWAB4wH/AXgBAAL/AXgBAAH/A1IBowMYASEDCAEKAwgBCgMIAQoDCAEKAwcB + CQMGAQcDAgEDVAADXwHQA2MB7iAAA2EB1ANjAenQAANdAd8BRwGAAQMB/wFSAYwBCAH/AVIBjAEIAf8B + UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFaAZQB + EAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZgBEAH/ARYBKgEAAf8B + CAEKAQAB/wEIAQoBAAH/HAADEgEXAzUBVgNQAZoBZAJiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARhw + AANfAdADYwHuIAADYQHUA2MB6dAAASwBUAEAAf8BSgGMAQAB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB + /wFSAYwBCAH/AVIBjAEIAf8BUgGMAQ4B/wFVAZIBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBEAH/AVoB + nAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AVgBkgEWAf8BEAEeAQAB + /wEIAQoBAAH/HAADEgEXAzUBVgNQAZoBZAJiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARhwAANfAdAD + YwHuIAADYQHUA2MB6dQAA0sBjwEzAV4BAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8B + fwHAATMB/wFfAZ4BFwH/ASABPwEAAf8BCAEKAQAB/wFSAYwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwB + EAH/AVoBnAEQAf8BWgGVARcB/wFaAZQBGAH/AVoBlAEYAf8BWgGUARgB/wEIAQoBAAH/AQgBCgEAAf8Y + AAMSARcDNQFWA1ABmgFkAmIB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQABAEDAwEEAwYEBwEJAwcB + CQMEAQUEAgQBFAADEQEWAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvA2EB2QNwAfED + IQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwNiAdwDagHtAyEBLwMhAS8DIQEvAyEBLwMhAS8D + IQEvAyEBLwMhAS8DIQEvAw0BEbgAAUIBewEAAf8BUgGMAQgB/wF7AcYBKQH/AzMBUAQAAwwBEAE5AWsB + AAH/AVoBnAEQAf8BWgGcARAB/wFdAZcBEwH/AVYBlAEMAf8BWgGcARAB/wFaAZQBGAH/AVoBlAEYAf8B + YwGcARgB/wFjAaUBFwH/ASkBUAEAAf8BCAEKAQAB/xgAAxIBFwM1AVYDUAGaAWQCYgHhAf8BeAEAAv8B + eAEAAf8CUQFQAZ8DEgEYFAAEAgMJAQwDDwEUAxMBGgMSARgDCgENAwQBBQQBFAADaQHoA38B/wN/Af8D fwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D - fwH/A38B/wN/Af8DYgHclAABSgGMAQAB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AWcB - nQEnAf8BCAEKAQAB/wEKAQ8BAAH/AUIBdwEDAf8BUgGMARAB/wFaAZwBEAH/ASUBQQEFAf8EAAM6AWAB - CAEKAQAB/wEIAQoBAAH/BAADRgGAA0YBgANGAYAcAAMKAQ0DIgExAzQBVANEAXgCUQFQAZ8CYQFdAc8B - dwFqAVYB7QF1AWYBWgHsAXwBaAFPAfABxAFfASEB+wH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBwAAwYB - CAMYASEDMQFNAkwBTQGRAlgBWgG9Al0BYQHRAlkBXAHDAlEBUwGiAz0BZwIZARoBIwMMAQ8DQAFvA1UB - rQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA2gB8AN9AfoDVQGtA1UBrQNVAa0DVQGtA1UB - rQNVAa0DVQGtA1UBrQNwAfEDfAH4A1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA0cB - gZQAATsBbQECAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFTAY4BEAH/AQ8BGwEAAf8B - IwFDAQAB/wFSAYwBEAH/AVIBjAEQAf8BewG9ATAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB - AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/KAADAwEEAwkBCwMiATEDOAFbAk8BTgGXAl8BXAHIAW0B - ZgFfAeUBpgFvAToB9wHVAWoBHAH9Af8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAAEAQMCAQMDFQEcAzUB - VgJLAUwBjwJcAV8ByAJdAWMB3wJdAWcB4wJSAVMBpQM0AVMDHAEnKAADXwHQA2YB7iAAA2EB1ANjAem8 - AAEIAQoBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFOAYIBDwH/AUoB - hAEGAf8BUgGMARAB/wFjAaUBFwH/AQgBCgEAAf8BCAEKAQAB/wETASMBAAH/AUIBcwEGAf8BIAE/AQAB - /wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8gAAQBAwMBBAMMARADGAEgAykB - PQM+AWoCVwFWAbUBbQFmAV8B5QGmAW8BOgH3Af8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYIAAEAQMHAQkD - FAEbAyoBQANDAXYDVQGvAlkBbQHpAlsBXwHQAlABUQGfAzMBUSgAA18B0ANmAe4gAANhAdQDYwHpwAAB - QgFzAQYB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwB - EAH/AUoBhAEGAf8BEAEeAQAB/wExAVoBAAH/AU0BhAENAf8BWgGcARAB/wFaAZwBEAH/AVIBjAEIAf8B - EAEeAQAB/wEIAQoBAAH/AQgBCgEAAf8DRgGALAADAgEDAwsBDgMgAS4DQwF2AlcBVQGxAWcBZgFgAeAB - lwFjATcB9gGyAWoBKgH5AlEBUAGcAxIBFwwABAEDDAEQAxcBHwMdASgDHQEoAwwBDwgAAw8BFAImAScB - OQJHAUgBgwJgAWcB4QJcAW4B5wNeAdICPwFAAW4oAANfAdADZgHuIAADYQHUA2MB6cQAAUkBiQEAAf8B - UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFSAYwB - EAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AUIBcwEGAf8B - CgEOAQAB/zAABAEDAwEEAwwBDwMeASoDOgFhAlkBVwG5AWgBYwFbAeQBeQFkAVUB7gJPAU4BlwMSARcM - AAMCAQMDIQEvAzYBWQJCAUMBdQJBAUIBcwMeASsIAAMEAQUDDAEPAzgBXAJdAWABzgJaAXUB7AJQAXsB - 7wNGAX8oAANfAdADZgHuIAADYQHUA2MB6cgAAToBawEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B - UgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGUARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwB - EAH/AVoBlAEYAf8BWgGUARgB/wFjAaUBFwH/ARkBLAEDAf84AAMCAQMDCAEKAyABLQJBAUABcQJNAUwB - kQNQAZoCOwE6AWIDDAEPDAADAwEEAysBQQNEAXoDUwGnA1UBrQM3AVoDGAEgAwkBCwMGAQcDDQERAzkB - XwJdAWEB0QJQAXsB7wJKAYwB8wJGAUcBgSgAA18B0ANmAe4gAANhAdQDYwHpzAABLAFVAQAB/wFSAYwB - CAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGUARAB/wFaAZwBEAH/AVoBnAEQAf8B - WgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWgGUARgB/wEhAUEBAAH/QAAEAgMHAQkDEAQVARwCFgEVAR0D - DwETAwIBAwwAAwMBBAMwA0sBTAGPAlsBXQHKAlsBZAHeA04BlAM0AVMDFQEcAw0BEQMeASsCQwFEAXcC - XQFjAd8CUQGFAfECWQFtAekDRAF7KAADXwHQA2YB7iAAA2EB1ANjAenIAAESASIBAAH/AUwBhgEGAf8B - UgGMAQgB/wFaAZwBEAH/AVABigEIAf8BUgGMARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwB - EAH/AVoBnAEQAf8BWgGcAREB/wFpAasBHwH/AQgBCgEAAf9sAAMCAQMDIQEvAzoBYQNVAa0CXwFjAdoD - WgG/AlABUQGfA0QBegJBAUIBcgNJAYUCVgFXAbICVgF3Ae0CYAFkAdsCVQFXAbEDOAFbKAADXwHQA2YB - 7iAAA2EB1ANjAenIAAEQAR4BAAH/AUgBfQEHAf8BWQGTARMB/wFVAYgBGAH/CAABIQFBAQAB/wFCAXsB - AAH/AVIBjAEIAf8BVQGRAQgB/wE5AWYBBAH/AVMBVQFQAe94AAMGAQgDFwEfA0QBewJZAVwBxgJbAWgB - 5AJDAY8B9AJVAXkB7gJVAXkB7gJRAYUB8QI3AZcB9gIcAcgB/AJZAVwBvgM+AWsDJAE0KAADXwHQA2YB - 7iAAA2EB1ANjAenQAAEeAToBAAH/nAAEAgMJAQwDKgM/AUABbgNOAZYCVgFYAbMCWQFcAcECWgFdAccC - WgFdAccCVwFZAbkCUQFSAaQCQAFBAXEDJQE2AxMBGSgAA18B0ANmAe4gAANhAdQDYwHp/wB5AAQBAwsB - DgMmATgDOQFeA0YBfQJKAUsBiwNKAYkDPgFrAyoBPwMXAR8DAgEDLAADUwGiA1oBvyAAA1QBpgNZAbuo - AAFCAU0BPgcAAT4DAAEoAwABgAMAASADAAEBAQABAQYAAQIWAAP/AQAD/wHHAgABBwL/Ac8B8wH/BAAC - /wHPAYcCAAEHAv8BzwHzAf8EAAH/Af4BAAEHAgABBwL/Ac8B8wH/BAAB/wH8AQABBwIAAQcC/wHPAfMB - /wQAAf8B+AEAAQ8CAAEHAv8BzwHzAf8EAAH/AfABAAEHAgABBwL/Ac8B8wH/BAAB/wHgAQABAwIAAQcC - /wHPAfMB/wQAAf8BwAEAAQEB/AEDA/8BzwHzAf8EAAH/AcABAAEBAfwBAwP/Ac8B8wH/BAAB/wHgAgAB - /AEDAeABHwgAAf8B/AEgAQAB/AEDAeABHwgAAf8B/gHgAQAB/AEDAeABHwgAAf8BwAIAAfwBAwHgAR8B - /wHPAfMB/wQAAf8BgAIAAfwBAwHgAR8B/wHPAfMB/wQAAf8DAAH8AQMB4AEfAf8BzwHzAf8EAAH+AgAB - AQEAAQMB4AEfAf8BzwHzAf8EAAH8AgABAQEAAQMB+AEfAf8BzwHzAf8EAAH4AgABAQEAAQMB+AEfAf8B - zwHzAf8EAAH4AgABAwEAAQMB+AEDAf8BzwHzAf8EAAH4AgABBwEAAQMB+AEDCAAB+AIAAQ8BAAEDAfgJ - AAH4AQABRAF/AQABAwH4CQAB+AEAAQEB/wGAAQMB+AEAAf8BzwHzAf8EAAH4AgABfwGAAQMB/AEAAf8B - zwHzAf8EAAH8AgABfwHwAQMBgQGAAf8BzwHzAf8EAAH+AgAB/wHwAQMBgQGAAf8BzwHzAf8EAAH/AgAB - /wH8AQMBgAEAAf8BzwHzAf8EAAH/AYABAQH/Af4BAwGAAQAB/wHPAfMB/wQAAf8BAAEDA/8BgAEAAf8B - zwHzAf8EAAH/AQwBDwP/AcABAAH/Ac8B8wH/BAAB/wHfBP8BwAEAAf8BzwHzAf8EAAb/AfABAQH/Ac8B - 8wH/BAAL + fwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A2EBz7wAAQgB + CgEAAf8MAAETASMBAAH/AVoBlAEQAf8BWgGcARAB/wGUAdYBSgH/AQ0BEQECAf8BMQFaAQAB/wFaAZQB + EgH/AVoBlAEYAf8BWgGUARgB/wFjAZwBGAH/AWMBpQEXAf8BawGlASEB/wEQAR4BAAH/GAADEgEXAzUB + VgNQAZoBZAJiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgUAAMFAQYDHQEpAzABSgI7ATwBZQI7ATwB + ZAMoATwCFQEWAR0DBgEIFAADPAFkA0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA2cB + 6gN8AfgDTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNlAewDbgH1A0wBjwNMAY8DTAGPA0wB + jwNMAY8DTAGPA0wBjwNMAY8DTAGPAzUBVqgAA10B3wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB + AAH/AQgBCgEAAf8BCAEKAQAB/wMzAVADOgFgAUsBhQEHAf8BWgGUARAB/wFaAZwBEAH/ATkBawEAAf8D + CQEMARABHgEAAf8BVAGOARIB/wFaAZQBGAH/AWMBnAEYAf8BYwGcARgB/wFjAaUBFwH/AXMBtAEpAf8B + EAEeAQAB/xgAAxIBFwM1AVYDUAGaAWQCYgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYFAADCQEMAzMB + UAJMAU0BkQJdAV8ByQJbAV0BygNEAXoDKQE9AwwBEDwAA18B0ANjAe4gAANhAdQDYwHpzAABCAEKAQAB + /wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgB + CgEAAf8BMwFfAQIB/wFaAZQBEAH/AVoBnAEQAf8BrQHnAWMB/wEQAR4BAAH/AQgBCgEAAf8BFAEmAQAB + /wFUAY4BEgH/AWIBmwEYAf8BYwGcARgB/wFjAaUBFwH/AWMBpQEXAf8BYwGcASEB/wEYAS4BAAH/GAAD + EgEXAzUBVgNQAZoBZAJiAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgUAAMJAQsDLgFHA0gBhAJZAVwB + wwJcAV8BywNJAYUDLgFHAw8BEzwAA18B0ANjAe4gAANhAdQDYwHpyAABCAEKAQAB/wErAVIBAAH/AUEB + cgEFAf8BSgGEAQYB/wFKAYQBBgH/AUoBhAEGAf8BQgFzAQYB/wEpAVABAAH/ARABHgEAAf8BHwE6AQAB + /wFVAY8BCwH/AVoBlQEQAf8BWgGcARAB/wHWAf8BjAH/ARABHgEAAf8BGAEuAQAB/wFCAXgBAwH/AVoB + lAEYAf8BYgGbARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFzAbQBKQH/ARABHgEAAf8YAAMSARcD + NQFWA1ABmgFkAmIB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQAAwYBCAMkATQDPAFmA1MBpwNYAbgC + RwFIAYMDMQFNAw8BFDwAA18B0ANjAe4gAANhAdQDYwHpxAABKAFNAQAB/wFOAYgBBwH/AVIBjAEIAf8B + UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB/wFSAYwB + EAH/AVoBlAEQAf8BWgGcARAB/wFjAaUBFwH/AUIBewEAAf8BSgGEAQYB/wFSAYwBCAH/AVoBmAEUAf8B + WgGUARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFjAaUBFwH/AZQByQFNAf8EAAMQARUDGgEkAyEB + LwMRARYEAgQBAxIBFwM1AVYDUAGaAWQCYgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYFAADAwEEAxMB + GQMlATYCOwE8AWQCQQFCAXIDMwFRAyEBLwMJAQw8AANfAdADYwHuIAADYQHUA2MB6cAAASkBTgECAf8B + UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB + EAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlQEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8B + WgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BYwGcARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFjAaUB + FwH/AWUBoAEhAf8EAAMeASsCMQEwAUwDOwFjAyIBMQMHAQkDBAEFAxIBGAM2AVcDUAGaAWQCYgHhAf8B + eAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADBwEJAxwBJwMjATICGQEaASMDDwEUAwQBBTwAA18B0ANjAe4g + AANhAdQDYwHpvAADRgGAAU4BiAEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB + CAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlwEQAf8B + WgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BYwGcARgB/wFjAaEB + GAH/AWMBpQEXAf8BYwGlARcB/wF4AboBLAH/AQgBCgEAAf8EAAMkATQDRQF8AloBWAG3A04BlAM/AW0D + KAE7Ax8BLAM5AV4DUAGaAWQCYgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADEgEXAzwBZgNKAYkD + QAFvAy4BRwMOARI8AANfAdADYwHuIAADYQHUA2MB6bwAATUBXgEHAf8BUgGMAQgB/wFSAYwBCAH/AVIB + jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB + /wFaAZQBEAH/AVoBlAEQAf8BWgGbARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZYBFgH/AVoB + lAEYAf8BXQGXARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB/wFwAbMBIAH/ASsBUAEEAf8IAAMnAToC + UwFRAaIBugFfASEB+wFrAWUBXAHnAlwBWgHEAkMBQgF1AzEBTQJAAT8BbgJRAVABnwJlAWAB4wH/AXgB + AAL/AXgBAAH/AlEBUAGfAxIBGBwAAxkBIgNOAZUCWwFeAc0CVgFXAbIDRAF6Ax0BKQMGAQgEAgQBMAAD + XwHQA2MB7iAAA2EB1ANjAem8AAFKAYQBBgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B + UgGMAQgB/wFnAakBFwH/AVIBjAEIAf8BSgGEAQYB/wFKAYQBBgH/AVIBjAEQAf8BWgGUARAB/wFaAZcB + EAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/AV8BmAEYAf8B + YwGeARgB/wFjAaUBFwH/AWsBqQEdAf8BKQFQAQAB/wwAAyIBMQNOAZgBggFvAU8B8wF1AWgBUgHwAmoB + YQHmAloBVwHCAlUBUwGqA1MBpwJZAVcBvAFvAWwBYAHrAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAAD + FAEbAkMBRAF3AlYBWQG2AlsBXgHNAlYBWAGzAz8BbAMmATgDDAEPAwIBAwgAAwIBAwMNAREDDQERAw0B + EQMNAREDDQERAw0BEQMNAREDDQERAw0BEQNfAdMDZwHvAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0B + EQMNAREDYgHXA2cB6gMNAREDDQERAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0BEQMEAQWUAAFKAYQB + BgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BaQGkAR4B/wEsAVABAwH/AQgBCgEAAf8B + NwFhAQcB/wFSAYwBDgH/AVIBjAEQAf8BfwHBATIB/wFbAV4BWwHTA1oBvwEvAVkBAAH/AUQBegEFAf8B + UAGKAQgB/wFaAZwBDgH/AVoBnAEQAf8BWgGcARAB/wFPAYYBEAH/AUQBdAEMAf8DWgG/EAACGgEZASMD + RAF7Al0BWwHKAmMBXwHaAmkBXwHoAXMBZwFWAe8BcAFlAV0B7AJhAVwB1gJfAVsB2AGFAWgBSgH0Af8B + eAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADDwETAzQBUwNNAZICXQFhAc8CXQFhAdQCUgFUAagCQQFCAXID + JgE4AxQBGwMGAQgDAgEDA1oBwgN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D + fwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D + fwH/A38B/wN/Af8DfwH/A38B/wNiAdyUAAFKAYwBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB + jAEIAf8BZwGdAScB/wEIAQoBAAH/AQoBDwEAAf8BQgF3AQMB/wFSAYwBEAH/AVoBnAEQAf8BJQFBAQUB + /wQAAzoBYAEIAQoBAAH/AQgBCgEAAf8EAANGAYADRgGAA0YBgBwAAwoBDQMiATEDNAFUA0QBeAJRAVAB + nwJhAV0BzwFxAWoBXAHtAXABZQFdAewBdQFoAVIB8AG6AV8BIQH7Af8BeAEAAv8BeAEAAf8CUQFQAZ8D + EgEYHAADBgEIAxgBIQMxAU0CTAFNAZECWAFaAb0CXQFhAdECWQFcAcMCUQFTAaIDPQFnAhkBGgEjAwwB + DwNAAW8DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DaAHwA30B+gNVAa0DVQGtA1UB + rQNVAa0DVQGtA1UBrQNVAa0DVQGtA3AB8QN8AfgDVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UB + rQNVAa0DRwGBlAABOwFtAQIB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVMBjgEQAf8B + DwEbAQAB/wEjAUMBAAH/AVIBjAEQAf8BUgGMARAB/wF7Ab0BMAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB + AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8oAAMDAQQDCQELAyIBMQM4AVsCTwFOAZcC + XwFcAcgBaQFmAV8B5QGdAW8BQAH3AcwBZwEiAf0B/wF4AQAC/wF4AQAB/wJRAVABnwMSARgcAAQBAwIB + AwMVARwDNQFWAksBTAGPAlwBXwHIAl0BYwHfAmABZQHjAlIBUwGlAzQBUwMcAScoAANfAdADYwHuIAAD + YQHUA2MB6bwAAQgBCgEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AU4B + ggEPAf8BSgGEAQYB/wFSAYwBEAH/AWMBpQEXAf8BCAEKAQAB/wEIAQoBAAH/ARMBIwEAAf8BQgFzAQYB + /wEgAT8BAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/yAABAEDAwEEAwwB + EAMYASADKQE9Az4BagJXAVYBtQFpAWYBXwHlAZ0BbwFAAfcB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgg + AAQBAwcBCQMUARsDKgFAA0MBdgNVAa8CWgFqAekCWwFfAdACUAFRAZ8DMwFRKAADXwHQA2MB7iAAA2EB + 1ANjAenAAAFCAXMBBgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB + EAH/AVIBjAEQAf8BSgGEAQYB/wEQAR4BAAH/ATEBWgEAAf8BTQGEAQ0B/wFaAZwBEAH/AVoBnAEQAf8B + UgGMAQgB/wEQAR4BAAH/AQgBCgEAAf8BCAEKAQAB/wNGAYAsAAMCAQMDCwEOAyABLgNDAXYCVwFVAbEC + ZgFgAeABjgFjAT8B9gGpAWoBMgH5AlEBUAGcAxIBFwwABAEDDAEQAxcBHwMdASgDHQEoAwwBDwgAAw8B + FAImAScBOQJHAUgBgwJiAWQB4QJcAWsB5wNeAdICPwFAAW4oAANfAdADYwHuIAADYQHUA2MB6cQAAUkB + iQEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB + /wFSAYwBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AUIB + cwEGAf8BCgEOAQAB/zAABAEDAwEEAwwBDwMeASoDOgFhAlkBVwG5AmMBWwHkAXEBYgFYAe4CTwFOAZcD + EgEXDAADAgEDAyEBLwM2AVkCQgFDAXUCQQFCAXMDHgErCAADBAEFAwwBDwM4AVwCXQFgAc4CXQFwAewC + VgFzAe8DRgF/KAADXwHQA2MB7iAAA2EB1ANjAenIAAE6AWsBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB + CAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8B + WgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BYwGlARcB/wEZASwBAwH/OAADAgEDAwgBCgMgAS0CQQFAAXEC + TQFMAZEDUAGaAjsBOgFiAwwBDwwAAwMBBAMrAUEDRAF6A1MBpwNVAa0DNwFaAxgBIAMJAQsDBgEHAw0B + EQM5AV8CXQFhAdECVgFzAe8CTwGCAfMCRgFHAYEoAANfAdADYwHuIAADYQHUA2MB6cwAASwBVQEAAf8B + UgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwB + EAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BIQFBAQAB/0AABAIDBwEJAxAEFQEcAhYB + FQEdAw8BEwMCAQMMAAMDAQQDMANLAUwBjwJbAV0BygJbAWEB3gNOAZQDNAFTAxUBHAMNAREDHgErAkMB + RAF3Al0BYwHfAlYBfgHxAloBagHpA0QBeygAA18B0ANjAe4gAANhAdQDYwHpyAABEgEiAQAB/wFMAYYB + BgH/AVIBjAEIAf8BWgGcARAB/wFQAYoBCAH/AVIBjAEQAf8BWgGUARAB/wFaAZwBEAH/AVoBnAEQAf8B + WgGcARAB/wFaAZwBEAH/AVoBnAERAf8BaQGrAR8B/wEIAQoBAAH/bAADAgEDAyEBLwM6AWEDVQGtAl8B + YwHaA1oBvwJQAVEBnwNEAXoCQQFCAXIDSQGFAlYBVwGyAlwBcQHtAmABZAHbAlUBVwGxAzgBWygAA18B + 0ANjAe4gAANhAdQDYwHpyAABEAEeAQAB/wFIAX0BBwH/AVkBkwETAf8BVQGIARgB/wgAASEBQQEAAf8B + QgF7AQAB/wFSAYwBCAH/AVUBkQEIAf8BOQFmAQQB/wJZAVYB73gAAwYBCAMXAR8DRAF7AlkBXAHGAlsB + YwHkAkoBhQH0AlgBcQHuAlgBcQHuAlYBfgHxAj8BjgH2AiIBwgH8AlkBXAG+Az4BawMkATQoAANfAdAD + YwHuIAADYQHUA2MB6dAAAR4BOgEAAf+cAAQCAwkBDAMqAz8BQAFuA04BlgJWAVgBswJZAVwBwQJaAV0B + xwJaAV0BxwJXAVkBuQJRAVIBpAJAAUEBcQMlATYDEwEZKAADXwHQA2MB7iAAA2EB1ANjAen/AHkABAED + CwEOAyYBOAM5AV4DRgF9AkoBSwGLA0oBiQM+AWsDKgE/AxcBHwMCAQMsAANTAaIDWgG/IAADVAGmA1kB + u6gAAUIBTQE+BwABPgMAASgDAAGAAwABIAMAAQEBAAEBBgABAhYAA/8BAAP/AccCAAEHAv8BzwHzAf8E + AAL/Ac8BhwIAAQcC/wHPAfMB/wQAAf8B/gEAAQcCAAEHAv8BzwHzAf8EAAH/AfwBAAEHAgABBwL/Ac8B + 8wH/BAAB/wH4AQABDwIAAQcC/wHPAfMB/wQAAf8B8AEAAQcCAAEHAv8BzwHzAf8EAAH/AeABAAEDAgAB + BwL/Ac8B8wH/BAAB/wHAAQABAQH8AQMD/wHPAfMB/wQAAf8BwAEAAQEB/AEDA/8BzwHzAf8EAAH/AeAC + AAH8AQMB4AEfCAAB/wH8ASABAAH8AQMB4AEfCAAB/wH+AeABAAH8AQMB4AEfCAAB/wHAAgAB/AEDAeAB + HwH/Ac8B8wH/BAAB/wGAAgAB/AEDAeABHwH/Ac8B8wH/BAAB/wMAAfwBAwHgAR8B/wHPAfMB/wQAAf4C + AAEBAQABAwHgAR8B/wHPAfMB/wQAAfwCAAEBAQABAwH4AR8B/wHPAfMB/wQAAfgCAAEBAQABAwH4AR8B + /wHPAfMB/wQAAfgCAAEDAQABAwH4AQMB/wHPAfMB/wQAAfgCAAEHAQABAwH4AQMIAAH4AgABDwEAAQMB + +AkAAfgBAAFEAX8BAAEDAfgJAAH4AQABAQH/AYABAwH4AQAB/wHPAfMB/wQAAfgCAAF/AYABAwH8AQAB + /wHPAfMB/wQAAfwCAAF/AfABAwGBAYAB/wHPAfMB/wQAAf4CAAH/AfABAwGBAYAB/wHPAfMB/wQAAf8C + AAH/AfwBAwGAAQAB/wHPAfMB/wQAAf8BgAEBAf8B/gEDAYABAAH/Ac8B8wH/BAAB/wEAAQMD/wGAAQAB + /wHPAfMB/wQAAf8BDAEPA/8BwAEAAf8BzwHzAf8EAAH/Ad8E/wHAAQAB/wHPAfMB/wQABv8B8AEBAf8B + zwHzAf8EAAs= @@ -390,217 +389,211 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu - SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAODEAAAJNU0Z0AUkBTAMBAQAB - EAEAARABAAEyAQABMgEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAcgDAAEyAwABAQEAASAFAAFAAZz/ + SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAxi8AAAJNU0Z0AUkBTAMBAQAB + KAEAASgBAAEyAQABMgEABP8BIQEACP8BQgFNATYHAAE2AwABKAMAAcgDAAEyAwABAQEAASAFAAFAAZz/ AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wDmAAQBAwMBBAMHAQkDCgENAw4BEgMQARUDEgEXAxIBGAMSARcD - EAEVAw4BEgMKAQ0DBgEIAwMBBAQB/wD/AOYAAwUBBgMNAREDGgEkAyYBOAEyATEBMAFMAToBOAE2AVoB - PgE8ATkBYgFAAT4BOwFmAT4BPAE5AWIBOQE4ATYBWQExATABLwFKAyUBNgMZASIDDAEPAwQBBf8A/wDa - AAMHAQkDEwEZASQCIwMzATIBTwFEAUIBPQFsAVMBTQFDAYQBYQFWAUUBmAFtAV4BRAGoAXYBZAFCAbIB - ewFnAUEBtwF9AWcBQAG6AXsBZwFBAbcBdQFjAUMBsQFsAV0BRAGnAV8BVQFEAZYBUQFLAUIBggFBAUAB - PAFoATIBMQEwAUwCIgEhATADEQEWAwYBB/8A/wDCAAQBAwMBBAMJAQsDGgEkAi8BLgFIAU0BSAFBAXsB - bQFfAUMBqQGXAXMBNAHRAbQBgAEeAekBygGEAQ4B9gHVAYwBBAH9AdsBjAEAAf8B2wGMAQAB/wHbAYwB - AAH/AdsBjAEAAf8B1wGJAQIB/gHVAYsBBAH9AckBhQERAfQBtAF/ASEB5gGSAXEBNwHNAWkBXAFEAaQB - SQFGAT8BdQEtAiwBQwMYASEDCAEKAwMBBP8A/wC6AAMEAQUDFQEcAi8BLgFHAVIBTQFDAYMBeQFlAUEB - tgGdAXQBMAHXAbMBfwEgAecBxAGFARMB8gHRAYoBCgH5AdUBjAEEAf0B2wGMAQAB/wHbAYwBAAH/AdsB - jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B1wGJAQIB/gHSAYYBBAH8Ac4BhgEMAfgBxQGFARQB - 8QGzAX8BJAHlAZsBdQEzAdQBcwFiAUIBsAFNAUkBQQF8AisBKgFAAxIBGAMCAQP/AP8ArgADAgEDAwcB - CQMgAS4BPAE6ATgBXgFhAVYBRAGZAY4BbgE6AckBvAGBARwB7AHVAYoBBgH7AdsBjAEAAf8B2wGMAQAB + EAEVAw4BEgMKAQ0DBgEIAwMBBAQB/wD/AOYAAwUBBgMNAREDGgEkAyYBOAIxATABTAM3AVoCOwE6AWID + PAFmAjsBOgFiAzYBWQMwAUoDJQE2AxkBIgMMAQ8DBAEF/wD/ANoAAwcBCQMTARkDIwEzAzIBTwM/AWwD + SAGEAU8CTgGYAVYBVQFSAagBWwFZAVQBsgFdAVsBVgG3AV0BWgFVAboBXQFbAVYBtwFaAVgBVQGxAVYB + VAFSAacDTgGWA0cBggM9AWgCMQEwAUwDIQEwAxEBFgMGAQf/AP8AwgAEAQMDAQQDCQELAxoBJAMuAUgD + RAF7AVYBVQFSAakBbwFkAVEB0QGSAXMBOgHpAbMBewEcAfYBzAGMAQoB/QHbAYwBAAH/AdsBjAEAAf8B + 2wGMAQAB/wHbAYwBAAH/AdEBgwEFAf4BzAGLAQoB/QGwAXsBIwH0AY4BcwFBAeYBawFhAVMBzQFUAVIB + UQGkAkMBQgF1AywBQwMYASEDCAEKAwMBBP8A/wC6AAMEAQUDFQEcAy4BRwJIAUcBgwFcAVkBVAG2AXQB + ZwFOAdcBkAFzAT8B5wGrAXsBKQHyAb8BhwEYAfkBzAGMAQoB/QHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHRAYMBBQH+AcwBfgEKAfwBvwF+ARoB+AGpAX4BKwHxAY4B + cwFBAeUBdAFmAVEB1AFYAVcBVAGwA0UBfAMqAUADEgEYAwIBA/8A/wCuAAMCAQMDBwEJAyABLgM5AV4C + TwFOAZkBaQFiAVQByQGdAXYBNwHsAcwBhwEPAfsB2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHXAYkBAgH+AdMBhwEIAfoBtAF+AR8B - 6AGIAWwBOwHEAVwBVAFEAZMBOAE3ATUBVwMdASkDBgEIBAL/AP8ApgADCAEKAhYBFQEdAUUBQgE9AW4B - eQFlAUEBtgHGAYUBEwHzAdIBhgEEAfwB2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB - AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B - 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHVAYoB - BgH7AcEBhAEUAfABcgFhAUMBrQFAAT4BOgFlAxIBGAMGAQj/AP8AngAEAQMGAQgDJAE0AUoBRgE/AXYB - fQFmAUABuQGzAX0BIQHmAdUBigEGAfsB1wGIAQIB/gHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB - AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B - 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB - AAH/AdcBiAECAf4B0wGGAQgB+gGrAXoBJgHiAXcBZAFCAbMBRAFCAT0BbQMgAS4DBQEGBAH/AP8AkgAE - AQMGAQgDHQEpAUQBQgE9AWwBhAFqAT0BwAG2AYABHgHpAdcBiQECAf4B2wGMAQAB/wHbAYwBAAH/AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdEBgwEFAf4BxgF+ARQB+gGQAXIBOgHoAWUBXwFVAcQDTQGTAzYB + VwMdASkDBgEIBAL/AP8ApgADCAEKAhYBFQEdAkABPwFuAVwBWQFUAbYBrQF/ASYB8wHMAX4BCgH8AdsB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdcBiAECAf4BswF9ASEB - 5gF7AWcBQQG3AT8BPQE6AWQCGgEZASMDBQEG/wD/AJIABAIDDwETAT8BPQE6AWQBdgFkAUIBsgHRAYoB - CgH5AdUBjAEEAf0B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BzAGHAQ8B+wGkAXkBKwHwAVgBVwFTAa0CPAE7AWUD + EgEYAwYBCP8A/wCeAAQBAwYBCAMkATQDQwF2AV4BWwFVAbkBjgFyAUEB5gHMAYcBDwH7AdEBggEFAf4B 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B - 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHSAYYBBAH8AcsBhAEOAfYBbQFeAUQBqAE5ATgB - NgFZAwwBEAQB/wD/AI4AAxIBFwIsASsBQgFoAVsBRAGiAaQBeAEsAdwB1wGJAQIB/gHbAYwBAAH/AdsB + 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHRAYIBBQH+AcYBfgEUAfoBhgFtAUMB4gFbAVgB + VAGzAz8BbQMgAS4DBQEGBAH/AP8AkgAEAQMGAQgDHQEpAz8BbAFiAV0BVQHAAZMBcwE6AekB0QGDAQUB + /gHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB - /wHbAYwBAAH/AdsBjAEAAf8B1wGJAQIB/gHVAYwBBAH9AZ4BdgEwAdYBYQFWAUQBmQInASYBOQMPARP/ - AP8AhgAEAQMCAQMDJAE0AUsBSAFBAXkBmAFyATMB0gHOAYYBDAH4AdsBjAEAAf8B2wGMAQAB/wHbAYwB - AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B + jAEAAf8B0QGCAQUB/gGOAXIBQQHmAV0BWwFWAbcCPAE7AWQCGgEZASMDBQEG/wD/AJIABAIDDwETAjwB + OwFkAVsBWQFUAbIBvwGHARgB+QHMAYwBCgH9AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B - 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHJAYcBDwH1AZABcAE3AcsBRAFCAT0BbAMgAS0E - Av8A/wCCAAMCAQMDCQEMATsBOQE3AVwBfQFmAUACuQGBAR0B6wHXAYgBAgH+AdsBjAEAAf8B2wGMAQAB - /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB - /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHWAYwBBAH9AbMBfwEgAecBcgFhAUMB - rQE1ATQBMwFSAwYBBwQC/wD/AH4AAwgBCgMeASoBUgFNAUMBgwGoAXoBJwHfAcsBhAEOAfYB2wGMAQAB - /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB/wHbAYsBAAH/AdsB - jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB - /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - iwEAAf8B2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB - /wHJAYUBEQH0AZ4BdAEwAdcBSwFIAUEBeQMYASEDBgEI/wD/AH4AAw8BEwEzATIBMQFOAW0BXgFEAagB - 0QGKAQoB+QHWAYwBBAH9AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEBAf8B2wGNAQIB/wHcAY0B - BAH/AdwBjgEFAf8B3AGNAQQB/wHbAY0BAgH/AdsBjAEBAf8B2wGNAQIB/wHbAY0BAgH/AdsBjAEBAf8B - 2wGMAQAB/wHbAYwBAQH/AdsBjQECAf8B2wGNAQMB/wHbAY0BAwH/AdsBjAEBAf8B2wGMAQAB/wHbAYwB - AAH/AdsBjAEAAf8B2wGMAQIB/wHcAY0BBAH/AdwBjQEFAf8B3AGNAQQB/wHbAY0BAgH/AdsBjAEBAf8B - 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B0gGHAQQB/AHJAYcBDwH1AWQBWQFFAZ4CLAErAUIDDAEQ/wD/ - AHoABAEDFgEeAUsBSAFAAXgBiAFsATsBxAHXAYgBAgH+AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - iwEAAf8B2wGNAQMB/wHcAZABCQH/Ad4BlQEVAf8B3wGYARoB/wHeAZYBFgH/Ad0BkQEMAf8B2wGNAQQB - /wHcAY8BCAH/AdwBjwEIAf8B3AGOAQUB/wHbAYwBAgH/AdwBjQEEAf8B3QGRAQoB/wHdAZQBEQH/Ad0B - kwEQAf8B2wGNAQQB/wHbAYwBAQH/AdsBjAEAAf8B2wGMAQEB/wHcAY8BCAH/Ad4BlAESAf8B3wGXARoB - /wHeAZYBFgH/Ad0BkQEMAf8B3AGNAQQB/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHXAYkBAgH+AdUB - jAEEAf0BfgFoAT4BvAFDAUEBPAFrAxMBGv8A/wB6AAMFAQYDIAEtAWIBWAFFAZoBoAF1ASwB2QHbAYwB - AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAQH/Ad0BkgEQAf8B4QGfASwB/wHmAbIBVQH/AekBuwFoAf8B - 6wG/AXEB/wHqAbwBbAH/AecBsgFWAf8B5AGrAUUB/wHlAa8BTQH/AeMBpwE8Af8B4AGaASAB/wHdAZIB - DgH/AeABmwEiAf8B5gGxAVIB/wHnAbUBWgH/AeUBrAFHAf8B3QGUAREB/wHcAY4BBQH/AdwBkAEJAf8B - 4AGcASUB/wHlAawBSAH/AekBugFnAf8B6gG+AXAB/wHqAbwBagH/AegBtQFbAf8B4gGiATMB/wHeAZUB - FQH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BmAFyATMB0gFaAVIBRAGOAxwBJwMDAQT/ - AP8AdgADCwEOAioBKQE+AXwBZgFAArgBfwEdAeoB2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGNAQQB - /wHhAZ8BLAH/AekBuQFmAf8B8wHbAbEB/wH2AeQBwwH/AfcB5wHMAf8B9wHnAcwB/wH0AdwBswH/AfEB - 0wGeAf8B8gHWAaUB/wHsAcMBewH/AeQBpwE+Af8B3wGaAR8B/wHlAa0BSgH/AfMB2gGuAf8B8wHaAa8B - /wHtAccBgwH/Ad8BmgEfAf8B3QGRAQwB/wHeAZcBGwH/AecBtQFcAf8B8AHPAZcB/wH2AeQBxwH/AfYB - 5gHJAf8B9gHkAcUB/wH1Ad8BuQH/AesBwAF0Af8B4wGlATkB/wHcAY4BBgH/AdsBjAEBAf8B2wGMAQAB - /wHbAYwBAAH/Aa4BfgElAeMBcQFgAUQBrAMlATYDBwEJ/wD/AHYAAxIBGAE0ATMBMgFQAY4BbgE6AckB - xAGFARMB8gHbAYwBAAH/AdsBjAEAAf8B3AGOAQQB/wHdAZMBEAH/AeoBvAFqAf8B8QHTAZ8B/wHzAdoB - rwH/Ae4ByAGGAf8B7AHCAXkB/wHxAdQBoAH/AfcB5QHGAf8B+QHtAdgB/wH0Ad4BtwH/AeoBvQFtAf8B - 3wGZAR4B/wHgAZwBJQH/AekBuQFkAf8B+AHpAc8B/wHvAc0BkQH/AeYBsAFQAf8B3QGSAQ4B/wHfAZcB - GgH/AeUBqwFHAf8B8gHWAaUB/wHyAdcBpwH/Ae4BygGLAf8B6gG9AW0B/wHrAcIBeQH/AfAB0gGdAf8B - 8gHWAaYB/wHsAcQBfQH/Ad8BmgEgAf8B3AGQAQoB/wHbAYsBAAH/AdsBjAEAAf8BvwGCARkB7QGCAWoB - PgG/Ai4BLQFGAw4BEv8A/wB2AAMYASABPAE7ATgBXwGbAXUBMwHUAc4BhgEMAfgB2wGMAQAB/wHbAYwB - AAH/Ad0BkQELAf8B4AGcASMB/wHvAc0BkQH/AfMB3AGyAf8B7QHHAYUB/wHmAbABUQH/AeUBrQFLAf8B - 7wHMAZAB/wH2AeUBxgH/AfoB8QHhAf8B9AHfAboB/wHpAbkBZQH/Ad0BkQEMAf8B4AGdAScB/wHrAb4B - cAH/AfoB7wHcAf8B7AHCAXkB/wHhAaABLwH/AdsBjQEFAf8B4QGfASwB/wHqAbsBagH/AfYB4gG/Af8B - 8AHPAZYB/wHlAa0BTAH/AeEBoAEtAf8B4wGmATsB/wHoAbcBYwH/Ae8BzQGTAf8B7QHFAYAB/wHhAZ4B - KgH/Ad0BkgEPAf8B2wGLAQAB/wHbAYwBAAH/AckBhQERAfQBkAFwATYBzAE2ATUBMwFTAxMBGf8A/wB2 - AAMdASgBQwFBATwBawGmAXgBKgHdAdIBhgEEAfwB2wGMAQAB/wHbAYsBAAH/Ad4BlAEUAf8B4wGlATkB - /wHyAdYBpgH/AfIB1wGnAf8B4wGmATwB/wHgAZsBIwH/AeMBpQE5Af8B8AHOAZUB/wH0Ad4BuAH/AfUB - 4wHEAf8B8wHbAbIB/wHoAbcBYAH/AdwBjgEEAf8B4AGdAScB/wHqAb4BcAH/AfkB7AHYAf8B6QG5AWcB - /wHeAZcBHAH/AdoBiwEDAf8B5AGoAUMB/wHtAcgBhgH/AfQB3gG2Af8B6gG7AWsB/wHcAY8BCwH/AdsB - iwEDAf8B3AGNAQYB/wHdAZMBEgH/AeUBrAFJAf8B5gGwAVEB/wHgAZ0BKAH/Ad0BkgEPAf8B2wGLAQAB - /wHbAYwBAAH/AdEBiQEKAfkBnQF1ATAB1QE8ATsBOAFfAxgBIP8A/wB2AAMfASwBRgFDAT4BcAGoAXoB - JwHfAdUBjAEEAf0B2wGMAQAB/wHbAYsBAAH/Ad4BlQEXAf8B5AGoAT8B/wHyAdcBpwH/AfEB1QGkAf8B - 4gGiATMB/wHeAZYBFwH/Ad4BlgEYAf8B5AGoAT8B/wHqAb4BcAH/AfAB0QGcAf8B8wHaAbAB/wHpAbkB - ZwH/AdwBjwEGAf8B4AGdAScB/wHqAb4BcAH/AfkB7AHYAf8B6QG5AWcB/wHeAZcBHAH/AdoBiwEDAf8B - 5AGrAUgB/wHuAcoBiwH/AfMB2gGvAf8B6AG4AWMB/wHbAY4BBgH/AdsBjAECAf8B2wGMAQIB/wHcAY4B - BwH/Ad4BlwEaAf8B3wGYAR0B/wHdAZIBDgH/AdwBjgEFAf8B2wGMAQAB/wHbAYwBAAH/AdMBhgEIAfoB - oAF3AS8B2AE/AT0BOgFkAhoBGQEj/wD/AHYAAyABLQFIAUQBPwFyAaoBewEoAeAB1QGMAQQB/QHbAYwB - AAH/AdsBigEAAf8B3gGWARgB/wHkAaoBQgH/AfIB1wGoAf8B8QHUAaEB/wHhAaABLgH/Ad0BkwEQAf8B - 2wGNAQMB/wHcAZABCgH/AeQBqwFGAf8B7QHHAYYB/wHzAdkBrgH/AeoBuwFqAf8B3AGPAQgB/wHhAZ8B - LAH/AesBwAF0Af8B+QHtAdoB/wHqAbwBbAH/Ad8BmgEhAf8B2wGLAQQB/wHlAawBSgH/Ae4BywGOAf8B - 8gHZAasB/wHnAbYBXwH/AdsBjQEEAf8B2wGMAQEB/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB/wHbAYsB - AAH/AdsBiwEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B1AGKAQYB+wGgAXgBLAHZAUABPgE6AWUD - GgEk/wD/AHYAAh8BHgErAUUBQwE+AW8BpwF5ASoB3gHSAYYBBAH8AdsBjAEAAf8B2wGKAQAB/wHeAZYB - GAH/AeQBqgFCAf8B8gHXAagB/wHxAdQBoQH/AeEBoAEuAf8B3QGSARAB/wHbAYsBAAH/AdoBiwEBAf8B - 4wGoAUAB/wHtAccBhQH/AfMB2QGuAf8B6gG7AWsB/wHdAZABCgH/AeIBowE0Af8B7AHEAX0B/wH6Ae8B - 3gH/AewBwQF3Af8B4QGfAS0B/wHcAY0BBQH/AeUBrQFKAf8B7gHLAY4B/wHyAdkBqwH/AecBtwFfAf8B - 2wGOAQQB/wHbAYwBAQH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBiwEAAf8B2wGMAQAB/wHbAYwB - AAH/AdsBjAEAAf8B2wGMAQAB/wHSAYYBCAH6AZ8BdwEvAdgBPgE8ATkBYgMZASL/AP8AdgADGwElAUAB - PgE6AWUBoAF1ASwB2QHTAYYBCAH6AdsBjAEAAf8B2wGKAQAB/wHeAZUBGAH/AeQBqQFBAf8B8gHXAagB - /wHxAdQBogH/AeEBoQEvAf8B3QGSARAB/wHbAYsBAAH/AdoBigEAAf8B4wGnAUEB/wHtAccBhgH/AfMB - 2QGtAf8B6gG8AWsB/wHdAZQBEQH/AecBswFZAf8B8gHVAaMB/wH8AfcB7gH/AfIB1wGpAf8B6AG3AWAB - /wHdAZQBEwH/AeYBrgFNAf8B7gHKAY0B/wHzAdkBrAH/AegBtwFgAf8B2wGOAQQB/wHbAYwBAQH/AdsB - jAEAAf8B2wGMAQIB/wHcAY8BCQH/AdwBkAEKAf8B3AGOAQYB/wHbAY0BAgH/AdsBjAEAAf8B2wGMAQAB - /wHLAYoBDgH3AZcBcwE0AdEBOQE4ATYBWQIWARUBHf8A/wB2AAIWARUBHQE5ATgBNgFZAZUBcQE0AdAB - ygGEAQ4B9gHbAYwBAAH/AdsBiwEAAf8B3gGUARUB/wHjAacBPAH/AfIB1gGmAf8B8gHWAaUB/wHjAaYB - OwH/Ad4BlQEVAf8B2wGLAQEB/wHbAYwBAwH/AeQBqwFJAf8B7gHLAY8B/wHyAdgBqQH/AekBugFnAf8B - 3QGVARMB/wHpAboBaAH/AfQB3AGzAf8B/QH7AfYB/wH1AeEBvgH/AesBwAF2Af8B3gGXARkB/wHlAa0B - SgH/Ae4ByAGHAf8B9AHbAbIB/wHpAboBaAH/Ad0BkQELAf8B2wGNAQMB/wHcAY4BBQH/Ad0BkgEPAf8B - 4QGeASoB/wHhAZ8BLAH/Ad0BlAEUAf8B3AGPAQcB/wHbAYwBAAH/AdsBjAEAAf8BxAGFARMB8gGLAW0B - OQHHATMBMgExAU4DEQEW/wD/AHYAAw8BEwIvAS4BSAGGAWsBPAHCAb0BggEWAe8B2wGMAQAB/wHbAYsB - AAH/Ad0BkgEPAf8B4QGgAS0B/wHxAdMBoAH/AfMB2wGwAf8B5wG2AV4B/wHgAZwBJAH/AdsBjQEDAf8B - 3AGRAQsB/wHoAbcBXwH/AfIB2AGpAf8B8QHUAaAB/wHnAbMBWQH/AdwBjwEJAf8B5AGpAUAB/wHuAcoB - iwH/AfsB8wHkAf8B7gHJAYkB/wHjAagBPgH/AdwBjwEJAf8B4wGlATgB/wHsAcIBeQH/AfYB4gHBAf8B - 7QHFAX8B/wHgAZoBIAH/AdwBjwEJAf8B3gGVARQB/wHiAaUBNwH/AewBxQGAAf8B7AHEAX8B/wHiAaIB - MgH/Ad0BkwESAf8B2wGLAQAB/wHbAYwBAAH/AbgBfwEdAeoBfAFmAUABuAMqAT8DCwEO/wD/AHYAAwgB - CgImASUBNwFvAV8BQwGqAasBegEmAeIB2wGMAQAB/wHbAYwBAAH/AdwBjwEHAf8B3gGXARkB/wHsAcMB - fAH/AfIB1wGoAf8B8QHTAZ8B/wHqAb8BcQH/AecBswFWAf8B6AG4AWIB/wHvAc8BlgH/AfQB3QG1Af8B - 7AHDAXsB/wHjAaYBOwH/AdsBjQEFAf8B4QGfASoB/wHqAbwBawH/AfYB4wHCAf8B6QG5AWUB/wHgAZsB - IwH/AdwBjAEEAf8B4AGaASEB/wHnAbMBVwH/AfMB2wGxAf8B8gHVAaIB/wHrAcABdQH/AecBtAFaAf8B - 6QG5AWYB/wHuAckBiQH/AfEB1AGhAf8B7AHFAYAB/wHgAZwBJgH/Ad0BkQENAf8B2wGMAQAB/wHbAYwB - AAH/AaMBeAEsAdsBZAFZAUUBngMhAS8DBgEH/wD/AHYAAwIBAwEcAhsBJgFYAVEBRAGMAZcBcwE0AdEB - 2wGMAQAB/wHbAYwBAAH/AdsBjAEBAf8B3AGPAQYB/wHlAa4BTAH/Ae4BywGOAf8B9wHmAcsB/wH0Ad4B - twH/AfIB2QGrAf8B9AHdAbYB/wH1AeABvAH/AfIB2AGpAf8B5QGuAUwB/wHeAZcBGwH/AdsBjAEDAf8B - 3wGXARoB/wHlAa0BSwH/Ae4BzAGQAf8B5AGqAUQB/wHeAZMBEgH/AdsBiwECAf8B3AGQAQsB/wHiAaEB - MAH/Ae4BygGLAf8B9AHcAbIB/wH2AeIBwAH/AfMB2AGrAf8B9AHcAbIB/wH3AeUBxwH/AfEB0wGeAf8B - 6AG3AWAB/wHdAZIBDgH/AdsBjQEEAf8B2wGMAQAB/wHYAYkBAgH+AY4BbgE6AckBTwFLAUIBfwMYASAE - Af8A/wB2AAQBAxMBGQFAAT4BOgFlAXwBZgFAAbgB1wGIAQIB/gHbAYwBAAH/AdsBjAEAAf8B2wGNAQIB - /wHeAZcBGQH/AeMBpwE9Af8B6gG9AW8B/wHtAccBhAH/Ae4BzAGPAf8B7gHKAYsB/wHqAb0BbgH/AeUB - rQFJAf8B3wGYARsB/wHcAY8BBwH/AdsBjAEBAf8B3AGQAQgB/wHeAZYBFwH/AeEBoAEtAf8B3gGVARUB - /wHcAY4BBgH/AdsBjAEBAf8B2wGNAQMB/wHdAZMBEQH/AeIBpAE1Af8B6AG2AV8B/wHtAccBhAH/Ae4B - ywGNAf8B7gHJAYgB/wHsAcEBdwH/AeUBrAFIAf8B4AGaASIB/wHbAY0BBAH/AdsBjAEBAf8B1wGIAQIB - /gHSAYYBBAH8AXMBYQFDAa8BOAE3ATUBVwMQARX/AP8AfgADCwEOAykBPQFgAVYBRQGXAb0BggEXAe4B - 0wGHAQgB+gHbAYwBAAH/AdsBjAEAAf8B2wGNAQQB/wHdAZQBEwH/AeEBnwEuAf8B5AGqAUQB/wHmAa8B - TwH/AeUBrAFKAf8B4gGhATEB/wHeAZYBFgH/AdwBjgEFAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEBAf8B - 2wGNAQIB/wHcAY4BBQH/AdsBjQECAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGNAQMB/wHdAZEB - DQH/AeABnAEmAf8B4wGpAUIB/wHmAa8BTgH/AeUBrAFIAf8B4gGjATUB/wHeAZYBGAH/AdwBjgEGAf8B - 2wGMAQAB/wHbAYwBAAH/AdEBigEKAfkBtgGAAR4B6QFYAVEBRAGNAyMBMgMJAQz/AP8AfgADBAEFAxIB - FwFGAUMBPgFxAZsBdQEwAdUBxgGFARMB8wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdoB - igEAAf8B2wGLAQAB/wHbAYsBAAH/AdoBigEAAf8B2wGLAQAB/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB - /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - jAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBiwEAAf8B2gGKAQAB/wHbAYsBAAH/AdsBiwEAAf8B2gGKAQAB - /wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AcABhAEUAfABjgFwATkBygFBAT8BOwFnAwwB - EAMDAQT/AP8AfgAEAgMGAQgCLwEuAUgBYgFYAUUBmgGrAXwBJwHhAdYBjAEEAf0B2wGMAQAB/wHbAYwB - AAH/AdsBjAEAAf8B2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B - 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB - AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBjAEAAf8B - 2wGMAQAB/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdIBhgEEAfwBpAF4ASwB3AFYAVEB - RAGNAisBKgFAAwQBBQQB/wD/AIYAAxsBJQE8ATsBOAFfAYIBagE/Ab4BvwGCARkB7QHbAYwBAAH/AdsB + 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BzAF+AQoB/AG0AXsB + HAH2AVYBVQFSAagDNgFZAwwBEAQB/wD/AI4AAxIBFwMrAUICUwFRAaIBfQFrAUsB3AHRAYMBBQH+AdsB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB - /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BtgGAAR4B6QF5AWUBQQG2ATYB - NQEzAVQDFwEf/wD/AI4AAwcBCQMbASUBVgFQAUQBiQGVAXIBNgHPAdsBjAEAAf8B2wGMAQAB/wHbAYwB + /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHRAYMBBQH+AcwBjAEKAf0BdgFnAU4B1gJPAU4BmQInASYB + OQMPARP/AP8AhgAEAQMCAQMDJAE0A0QBeQFxAWUBUQHSAb8BfgEaAfgB2wGMAQAB/wHbAYwBAAH/AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AbIBgQEeAfUBawFiAVMBywM/AWwDIAEtBAL/ + AP8AggADAgEDAwkBDAM4AVwBXgFbAVUBuQGYAXcBOgHrAdEBggEFAf4B2wGMAQAB/wHbAYwBAAH/AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/Ac0BjAEKAf0BkAFzAT8B5wFYAVcBUwGtAzMB + UgMGAQcEAv8A/wB+AAMIAQoDHgEqAkgBRwGDAYABawFFAd8BtAF7ARwB9gHbAYwBAAH/AdsBjAEAAf8B + 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBiwEAAf8B2wGMAQAB/wHbAYwB AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B + 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB/wHbAYsB + AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AbABewEjAfQB + dAFnAU4B1wNEAXkDGAEhAwYBCP8A/wB+AAMPARMDMQFOAVYBVQFSAagBvwGHARgB+QHNAYwBCgH9AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEBAf8B2wGNAQIB/wHcAY0BBAH/AdwBjgEFAf8B3AGNAQQB + /wHbAY0BAgH/AdsBjAEBAf8B2wGNAQIB/wHbAY0BAgH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAQH/AdsB + jQECAf8B2wGNAQMB/wHbAY0BAwH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQIB + /wHcAY0BBAH/AdwBjQEFAf8B3AGNAQQB/wHbAY0BAgH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAAH/AdsB + jAEAAf8BzAF+AQoB/AGyAYEBHgH1AlEBTwGeAysBQgMMARD/AP8AegAEAQMWAR4DRAF4AWUBXwFVAcQB + 0QGCAQUB/gHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBjQEDAf8B3AGQAQkB/wHeAZUB + FQH/Ad8BmAEaAf8B3gGWARYB/wHdAZEBDAH/AdsBjQEEAf8B3AGPAQgB/wHcAY8BCAH/AdwBjgEFAf8B + 2wGMAQIB/wHcAY0BBAH/Ad0BkQEKAf8B3QGUAREB/wHdAZMBEAH/AdsBjQEEAf8B2wGMAQEB/wHbAYwB + AAH/AdsBjAEBAf8B3AGPAQgB/wHeAZQBEgH/Ad8BlwEaAf8B3gGWARYB/wHdAZEBDAH/AdwBjQEEAf8B + 2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B0QGDAQUB/gHMAYwBCgH9AV8BWwFVAbwDPgFrAxMBGv8A/wB6 + AAMFAQYDIAEtAVECUAGaAXgBZgFMAdkB2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQEB/wHdAZIB + EAH/AeEBnwEsAf8B5gGyAVUB/wHpAbsBaAH/AesBvwFxAf8B6gG8AWwB/wHnAbIBVgH/AeQBqwFFAf8B + 5QGvAU0B/wHjAacBPAH/AeABmgEgAf8B3QGSAQ4B/wHgAZsBIgH/AeYBsQFSAf8B5wG1AVoB/wHlAawB + RwH/Ad0BlAERAf8B3AGOAQUB/wHcAZABCQH/AeABnAElAf8B5QGsAUgB/wHpAboBZwH/AeoBvgFwAf8B + 6gG8AWoB/wHoAbUBWwH/AeIBogEzAf8B3gGVARUB/wHbAYwBAQH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB + AAH/AXEBZQFRAdIDTAGOAxwBJwMDAQT/AP8AdgADCwEOAykBPgFdAVoBVAG4AZYBcwE6AeoB2wGMAQAB + /wHbAYwBAAH/AdsBjAEAAf8B2wGNAQQB/wHhAZ8BLAH/AekBuQFmAf8B8wHbAbEB/wH2AeQBwwH/AfcB + 5wHMAf8B9wHnAcwB/wH0AdwBswH/AfEB0wGeAf8B8gHWAaUB/wHsAcMBewH/AeQBpwE+Af8B3wGaAR8B + /wHlAa0BSgH/AfMB2gGuAf8B8wHaAa8B/wHtAccBgwH/Ad8BmgEfAf8B3QGRAQwB/wHeAZcBGwH/AecB + tQFcAf8B8AHPAZcB/wH2AeQBxwH/AfYB5gHJAf8B9gHkAcUB/wH1Ad8BuQH/AesBwAF0Af8B4wGlATkB + /wHcAY4BBgH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAAH/AYgBbgFEAeMBWAFWAVQBrAMlATYDBwEJ/wD/ + AHYAAxIBGAMzAVABaQFiAVQByQGrAXsBKQHyAdsBjAEAAf8B2wGMAQAB/wHcAY4BBAH/Ad0BkwEQAf8B + 6gG8AWoB/wHxAdMBnwH/AfMB2gGvAf8B7gHIAYYB/wHsAcIBeQH/AfEB1AGgAf8B9wHlAcYB/wH5Ae0B + 2AH/AfQB3gG3Af8B6gG9AW0B/wHfAZkBHgH/AeABnAElAf8B6QG5AWQB/wH4AekBzwH/Ae8BzQGRAf8B + 5gGwAVAB/wHdAZIBDgH/Ad8BlwEaAf8B5QGrAUcB/wHyAdYBpQH/AfIB1wGnAf8B7gHKAYsB/wHqAb0B + bQH/AesBwgF5Af8B8AHSAZ0B/wHyAdYBpgH/AewBxAF9Af8B3wGaASAB/wHcAZABCgH/AdsBiwEAAf8B + 2wGMAQAB/wGdAXYBNAHtAWEBXAFVAb8CLgEtAUYDDgES/wD/AHYAAxgBIAM5AV8BdAFmAVEB1AG/AX4B + GgH4AdsBjAEAAf8B2wGMAQAB/wHdAZEBCwH/AeABnAEjAf8B7wHNAZEB/wHzAdwBsgH/Ae0BxwGFAf8B + 5gGwAVEB/wHlAa0BSwH/Ae8BzAGQAf8B9gHlAcYB/wH6AfEB4QH/AfQB3wG6Af8B6QG5AWUB/wHdAZEB + DAH/AeABnQEnAf8B6wG+AXAB/wH6Ae8B3AH/AewBwgF5Af8B4QGgAS8B/wHbAY0BBQH/AeEBnwEsAf8B + 6gG7AWoB/wH2AeIBvwH/AfABzwGWAf8B5QGtAUwB/wHhAaABLQH/AeMBpgE7Af8B6AG3AWMB/wHvAc0B + kwH/Ae0BxQGAAf8B4QGeASoB/wHdAZIBDwH/AdsBiwEAAf8B2wGMAQAB/wGwAXsBIwH0AWoBYwFTAcwD + NAFTAxMBGf8A/wB2AAMdASgDPgFrAX0BagFJAd0BzAF+AQoB/AHbAYwBAAH/AdsBiwEAAf8B3gGUARQB + /wHjAaUBOQH/AfIB1gGmAf8B8gHXAacB/wHjAaYBPAH/AeABmwEjAf8B4wGlATkB/wHwAc4BlQH/AfQB + 3gG4Af8B9QHjAcQB/wHzAdsBsgH/AegBtwFgAf8B3AGOAQQB/wHgAZ0BJwH/AeoBvgFwAf8B+QHsAdgB + /wHpAbkBZwH/Ad4BlwEcAf8B2gGLAQMB/wHkAagBQwH/Ae0ByAGGAf8B9AHeAbYB/wHqAbsBawH/AdwB + jwELAf8B2wGLAQMB/wHcAY0BBgH/Ad0BkwESAf8B5QGsAUkB/wHmAbABUQH/AeABnQEoAf8B3QGSAQ8B + /wHbAYsBAAH/AdsBjAEAAf8BvwGGARgB+QF0AWgBUAHVAzkBXwMYASD/AP8AdgADHwEsAkEBQAFwAYAB + awFFAd8BzAGMAQoB/QHbAYwBAAH/AdsBiwEAAf8B3gGVARcB/wHkAagBPwH/AfIB1wGnAf8B8QHVAaQB + /wHiAaIBMwH/Ad4BlgEXAf8B3gGWARgB/wHkAagBPwH/AeoBvgFwAf8B8AHRAZwB/wHzAdoBsAH/AekB + uQFnAf8B3AGPAQYB/wHgAZ0BJwH/AeoBvgFwAf8B+QHsAdgB/wHpAbkBZwH/Ad4BlwEcAf8B2gGLAQMB + /wHkAasBSAH/Ae4BygGLAf8B8wHaAa8B/wHoAbgBYwH/AdsBjgEGAf8B2wGMAQIB/wHbAYwBAgH/AdwB + jgEHAf8B3gGXARoB/wHfAZgBHQH/Ad0BkgEOAf8B3AGOAQUB/wHbAYwBAAH/AdsBjAEAAf8BxgF+ARQB + +gF3AWgBTQHYAjwBOwFkAhoBGQEj/wD/AHYAAyABLQJCAUEBcgGEAW0BRwHgAcwBjAEKAf0B2wGMAQAB + /wHbAYoBAAH/Ad4BlgEYAf8B5AGqAUIB/wHyAdcBqAH/AfEB1AGhAf8B4QGgAS4B/wHdAZMBEAH/AdsB + jQEDAf8B3AGQAQoB/wHkAasBRgH/Ae0BxwGGAf8B8wHZAa4B/wHqAbsBagH/AdwBjwEIAf8B4QGfASwB + /wHrAcABdAH/AfkB7QHaAf8B6gG8AWwB/wHfAZoBIQH/AdsBiwEEAf8B5QGsAUoB/wHuAcsBjgH/AfIB + 2QGrAf8B5wG2AV8B/wHbAY0BBAH/AdsBjAEBAf8B2wGMAQAB/wHbAYwBAAH/AdsBiwEAAf8B2wGLAQAB + /wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AcsBhwEPAfsBeAFmAUwB2QI8ATsBZQMaAST/ + AP8AdgADHgErA0ABbwF/AWoBSQHeAcwBfgEKAfwB2wGMAQAB/wHbAYoBAAH/Ad4BlgEYAf8B5AGqAUIB + /wHyAdcBqAH/AfEB1AGhAf8B4QGgAS4B/wHdAZIBEAH/AdsBiwEAAf8B2gGLAQEB/wHjAagBQAH/Ae0B + xwGFAf8B8wHZAa4B/wHqAbsBawH/Ad0BkAEKAf8B4gGjATQB/wHsAcQBfQH/AfoB7wHeAf8B7AHBAXcB + /wHhAZ8BLQH/AdwBjQEFAf8B5QGtAUoB/wHuAcsBjgH/AfIB2QGrAf8B5wG3AV8B/wHbAY4BBAH/AdsB + jAEBAf8B2wGMAQAB/wHbAYwBAAH/AdsBiwEAAf8B2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAAH/AcUBfgEUAfoBdwFoAU0B2AI7AToBYgMZASL/AP8AdgADGwElAjwBOwFlAXgBZgFMAdkB + xgF+ARQB+gHbAYwBAAH/AdsBigEAAf8B3gGVARgB/wHkAakBQQH/AfIB1wGoAf8B8QHUAaIB/wHhAaEB + LwH/Ad0BkgEQAf8B2wGLAQAB/wHaAYoBAAH/AeMBpwFBAf8B7QHHAYYB/wHzAdkBrQH/AeoBvAFrAf8B + 3QGUAREB/wHnAbMBWQH/AfIB1QGjAf8B/AH3Ae4B/wHyAdcBqQH/AegBtwFgAf8B3QGUARMB/wHmAa4B + TQH/Ae4BygGNAf8B8wHZAawB/wHoAbcBYAH/AdsBjgEEAf8B2wGMAQEB/wHbAYwBAAH/AdsBjAECAf8B + 3AGPAQkB/wHcAZABCgH/AdwBjgEGAf8B2wGNAQIB/wHbAYwBAAH/AdsBjAEAAf8BvAGHARwB9wFvAWQB + UQHRAzYBWQIWARUBHf8A/wB2AAIWARUBHQM2AVkBbgFjAVIB0AGzAXsBHAH2AdsBjAEAAf8B2wGLAQAB + /wHeAZQBFQH/AeMBpwE8Af8B8gHWAaYB/wHyAdYBpQH/AeMBpgE7Af8B3gGVARUB/wHbAYsBAQH/AdsB + jAEDAf8B5AGrAUkB/wHuAcsBjwH/AfIB2AGpAf8B6QG6AWcB/wHdAZUBEwH/AekBugFoAf8B9AHcAbMB + /wH9AfsB9gH/AfUB4QG+Af8B6wHAAXYB/wHeAZcBGQH/AeUBrQFKAf8B7gHIAYcB/wH0AdsBsgH/AekB + ugFoAf8B3QGRAQsB/wHbAY0BAwH/AdwBjgEFAf8B3QGSAQ8B/wHhAZ4BKgH/AeEBnwEsAf8B3QGUARQB + /wHcAY8BBwH/AdsBjAEAAf8B2wGMAQAB/wGrAXsBKQHyAWUBXwFUAccDMQFOAxEBFv8A/wB2AAMPARMD + LgFIAWEBXQFVAcIBnwF3AS8B7wHbAYwBAAH/AdsBiwEAAf8B3QGSAQ8B/wHhAaABLQH/AfEB0wGgAf8B + 8wHbAbAB/wHnAbYBXgH/AeABnAEkAf8B2wGNAQMB/wHcAZEBCwH/AegBtwFfAf8B8gHYAakB/wHxAdQB + oAH/AecBswFZAf8B3AGPAQkB/wHkAakBQAH/Ae4BygGLAf8B+wHzAeQB/wHuAckBiQH/AeMBqAE+Af8B + 3AGPAQkB/wHjAaUBOAH/AewBwgF5Af8B9gHiAcEB/wHtAcUBfwH/AeABmgEgAf8B3AGPAQkB/wHeAZUB + FAH/AeIBpQE3Af8B7AHFAYAB/wHsAcQBfwH/AeIBogEyAf8B3QGTARIB/wHbAYsBAAH/AdsBjAEAAf8B + lgFzAToB6gFdAVoBVAG4AyoBPwMLAQ7/AP8AdgADCAEKAyUBNwFWAVUBUwGqAYYBbQFDAeIB2wGMAQAB + /wHbAYwBAAH/AdwBjwEHAf8B3gGXARkB/wHsAcMBfAH/AfIB1wGoAf8B8QHTAZ8B/wHqAb8BcQH/AecB + swFWAf8B6AG4AWIB/wHvAc8BlgH/AfQB3QG1Af8B7AHDAXsB/wHjAaYBOwH/AdsBjQEFAf8B4QGfASoB + /wHqAbwBawH/AfYB4wHCAf8B6QG5AWUB/wHgAZsBIwH/AdwBjAEEAf8B4AGaASEB/wHnAbMBVwH/AfMB + 2wGxAf8B8gHVAaIB/wHrAcABdQH/AecBtAFaAf8B6QG5AWYB/wHuAckBiQH/AfEB1AGhAf8B7AHFAYAB + /wHgAZwBJgH/Ad0BkQENAf8B2wGMAQAB/wHbAYwBAAH/AXsBagFMAdsCUQFPAZ4DIQEvAwYBB/8A/wB2 + AAMCAQMDGwEmA0sBjAFvAWQBUQHRAdsBjAEAAf8B2wGMAQAB/wHbAYwBAQH/AdwBjwEGAf8B5QGuAUwB + /wHuAcsBjgH/AfcB5gHLAf8B9AHeAbcB/wHyAdkBqwH/AfQB3QG2Af8B9QHgAbwB/wHyAdgBqQH/AeUB + rgFMAf8B3gGXARsB/wHbAYwBAwH/Ad8BlwEaAf8B5QGtAUsB/wHuAcwBkAH/AeQBqgFEAf8B3gGTARIB + /wHbAYsBAgH/AdwBkAELAf8B4gGhATAB/wHuAcoBiwH/AfQB3AGyAf8B9gHiAcAB/wHzAdgBqwH/AfQB + 3AGyAf8B9wHlAccB/wHxAdMBngH/AegBtwFgAf8B3QGSAQ4B/wHbAY0BBAH/AdsBjAEAAf8B0gGDAQUB + /gFpAWIBVAHJA0YBfwMYASAEAf8A/wB2AAQBAxMBGQI8ATsBZQFdAVoBVAG4AdEBggEFAf4B2wGMAQAB + /wHbAYwBAAH/AdsBjQECAf8B3gGXARkB/wHjAacBPQH/AeoBvQFvAf8B7QHHAYQB/wHuAcwBjwH/Ae4B + ygGLAf8B6gG9AW4B/wHlAa0BSQH/Ad8BmAEbAf8B3AGPAQcB/wHbAYwBAQH/AdwBkAEIAf8B3gGWARcB + /wHhAaABLQH/Ad4BlQEVAf8B3AGOAQYB/wHbAYwBAQH/AdsBjQEDAf8B3QGTAREB/wHiAaQBNQH/AegB + tgFfAf8B7QHHAYQB/wHuAcsBjQH/Ae4ByQGIAf8B7AHBAXcB/wHlAawBSAH/AeABmgEiAf8B2wGNAQQB + /wHbAYwBAQH/AdEBggEFAf4BzAF+AQoB/AFZAVYBVAGvAzYBVwMQARX/AP8AfgADCwEOAykBPQJPAU4B + lwGcAXcBMQHuAcYBfgEUAfoB2wGMAQAB/wHbAYwBAAH/AdsBjQEEAf8B3QGUARMB/wHhAZ8BLgH/AeQB + qgFEAf8B5gGvAU8B/wHlAawBSgH/AeIBoQExAf8B3gGWARYB/wHcAY4BBQH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAQH/AdsBjQECAf8B3AGOAQUB/wHbAY0BAgH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB + jQEDAf8B3QGRAQ0B/wHgAZwBJgH/AeMBqQFCAf8B5gGvAU4B/wHlAawBSAH/AeIBowE1Af8B3gGWARgB + /wHcAY4BBgH/AdsBjAEAAf8B2wGMAQAB/wG/AYcBGAH5AZMBcwE6AekDSwGNAyMBMgMJAQz/AP8AfgAD + BAEFAxIBFwJBAUABcQF0AWgBUAHVAa0BfwEmAfMB2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB + /wHaAYoBAAH/AdsBiwEAAf8B2wGLAQAB/wHaAYoBAAH/AdsBiwEAAf8B2wGLAQAB/wHbAYwBAAH/AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAAH/AdsBjAEAAf8B2wGLAQAB/wHbAYsBAAH/AdoBigEAAf8B2wGLAQAB/wHbAYsBAAH/AdoB + igEAAf8B2wGLAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wGjAXkBKwHwAWkBYQFUAcoDPQFnAwwB + EAMDAQT/AP8AfgAEAgMGAQgDLgFIAVECUAGaAYQBbgFHAeEBzQGMAQoB/QHbAYwBAAH/AdsBjAEAAf8B + 2wGMAQAB/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYsBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB + AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B + 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBiwEAAf8B2wGMAQAB/wHbAYwB + AAH/AdsBiwEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BzAF+AQoB/AF9AWsBSwHcA0sBjQMqAUAD + BAEFBAH/AP8AhgADGwElAzkBXwFgAV0BVQG+AZ0BdgE0Ae0B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B - 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wGLAW0BOQHHAU8BSgFCAX4DFgEeAwUBBv8A/wCO - AAMCAQMDDAEQAi4BLQFGAVoBUgFEAY4BpwF5ASoB3gHJAYUBEQH0AdsBjAEAAf8B2wGMAQAB/wHbAYwB - AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB - AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B - xAGFARMB8gGgAXcBLwHYAVQBTgFDAYYCKgEpAT4DCgENBAL/AP8AkgADAgEDAxABFQE1ATQBMwFRAWkB - XAFEAaQBnQF0ATAB1wHIAYYBDwH1AdcBiQECAf4B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB - /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB - /wHbAYwBAAH/AdsBjAEAAf8B1wGIAQIB/gHFAYQBEwHzAZcBcwE0AdEBYgFYAUUBmgIwAS8BSQMNARED - AgED/wD/AJYABAEDAgEDAxQBGwEtAiwBQwFjAVgBRQGbAaABdQEsAdkB1QGMAQQB/QHbAYwBAAH/AdsB + AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AZMBcwE6AekBXAFZAVQBtgM0AVQDFwEf/wD/AI4AAwcB + CQMbASUDSgGJAW8BZQFTAc8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHSAYYBBAH8AZgBcgEzAdIBXAFUAUUB - kgMoATsDEgEXAwIBA/8A/wCiAAMGAQgDEgEYAjMBMgFPAVYBUAFEAYkBiAFsATsBxAGxAX8BJAHlAdEB - igEKAfkB1wGJAQIB/gHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAAH/AWUBXwFUAccDRgF+AxYBHgMFAQb/AP8AjgADAgEDAwwBEAIuAS0BRgNMAY4BfwFqAUkB + 3gGwAXsBIwH0AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB - jAEAAf8B2wGMAQAB/wHXAYgBAgH+Ac4BhgEMAfgBqwF8AScB4QGCAWoBPwG+AVABSwFCAYECLwEuAUgD - DwEUAwYBB/8A/wCqAAQBAwwBEAMmATgBTAFIAUEBegF3AWQBQgGzAaQBeAEsAdwBvQGCARcB7gHLAYkB - DgH3AdIBhgEEAfwB1wGIAQIB/gHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B - 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHXAYgBAgH+AdIBhgEEAfwBygGEAQ4B9gG+AYIB - GQHtAaABeAEsAdkBcgFhAUMBrQFGAUMBPgFxAyMBMgMKAQ0EAf8A/wCyAAMDAQQDDAEPAxgBIQEyATEB - MAFMAU0BSQFBAXwBdQFjAUMBsQGbAXUBMAHVAcABhAEUAfAB1AGJAQYB+wHbAYwBAAH/AdsBjAEAAf8B - 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B1wGJAQIB/gHSAYYB - CAH6Ab0BggEWAe8BmAFyATMB0gFxAWABRAGsAUoBRgE/AXYCLwEuAUcDFgEeAwoBDQMCAQP/AP8AugAE - AQMCAQMDEwEZAiUBJAE1AToBOQE3AVsBTwFKAUIBfgFkAVgBRQGcAXcBZAFCAbMBiAFsATsBxAGVAXEB - NAHQAZ4BdAEwAdcBowF4ASwB2wGnAXkBKgHeAaMBeAEsAdsBngF2ATAB1gGVAXIBNgHPAYUBawE8AcIB - dQFjAUMBsQFiAVgBRQGaAUwBSAFBAXoBOAE3ATUBVwMiATEDEQEWBAIEAf8A/wDKAAQCAwUBBgMTARkD - IwEyAjUBMwFTAUUBQwE+AW8BVQFOAUMBiAFgAVYBRQGXAWcBWwFFAaABawFdAUMBpQFnAVoBRQGgAV8B - VQFEAZYBVAFOAUMBhgFEAUIBPQFsAjMBMgFPAyEBLwMRARYDAwEEBAH/AP8A2gAEAgMGAQgDDAEPAxME - GQEiAx4BKgMhAS8BJAIjATMDJQE2ASQCIwEzAyABLgMdASkDGAEhAxIBGAMLAQ4DBgEHBAH/AP8A9gAE - AQcCAQMEAgQB/wD/AP8A/wD/ANUAAUIBTQE+BwABPgMAASgDAAHIAwABMgMAAQEBAAEBBQABeAEFFgAD - /wEABv8BwBUABv8BwBUABv8BwBUABv8BwBUAAv8BwAEAAX8B/wHAFQAC/wHAAQABfwH/AcAVAAH/Af4C - AAEPAf8BwBUAAf8B8AIAAQMB/wHAFQAB/wHwAgABAQH/AcAVAAH/AcADAAF/AcAVAAH/AcADAAF/AcAV - AAH/BAABHwHAFQAB/gQAAR8BwBUAAf4EAAEPAcAVAAH+BAABDwHAFQAB+AQAAQcBwBUAAfgEAAEDAcAV - AAH4BAABAwHAFQAB+AQAAQMBwBUAAfAEAAEDAcAVAAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAV + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8BqwF7ASkB8gF3AWgBTQHYA0kBhgMpAT4DCgENBAL/ + AP8AkgADAgEDAxABFQMzAVEBVAFSAVEBpAF0AWcBTgHXAbIBgAEeAfUB0QGDAQUB/gHbAYwBAAH/AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHRAYIBBQH+Aa0BfgEmAfMBbwFkAVEB + 0QFRAlABmgMvAUkDDQERAwIBA/8A/wCWAAQBAwIBAwMUARsDLAFDAVEBUAFPAZsBeAFmAUwB2QHMAYwB + CgH9AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B + 2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB + AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AcwBfgEKAfwB + cQFlAVEB0gNNAZIDKAE7AxIBFwMCAQP/AP8AogADBgEIAxIBGAMyAU8DSgGJAWUBXwFVAcQBjQFzAUEB + 5QG/AYcBGAH5AdEBgwEFAf4B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsB + jAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB + /wHbAYwBAAH/AdsBjAEAAf8B0QGCAQUB/gG/AX4BGgH4AYQBbgFHAeEBYAFdAVUBvgJHAUYBgQMuAUgD + DwEUAwYBB/8A/wCqAAQBAwwBEAMmATgDRAF6AVsBWAFUAbMBfQFrAUsB3AGcAXcBMQHuAbwBhgEcAfcB + zAF+AQoB/AHRAYIBBQH+AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB + AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdEBggEFAf4BzAF+AQoB/AGzAXsBHAH2AZ0BdgE0Ae0B + eAFmAUwB2QFYAVcBUwGtAkEBQAFxAyMBMgMKAQ0EAf8A/wCyAAMDAQQDDAEPAxgBIQIxATABTANFAXwB + WgFYAVUBsQF0AWgBUAHVAaMBeQErAfABywGGAQ8B+wHbAYwBAAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwB + AAH/AdsBjAEAAf8B2wGMAQAB/wHbAYwBAAH/AdsBjAEAAf8B0QGDAQUB/gHFAX4BFAH6AZ8BdwEvAe8B + cQFlAVEB0gFYAVYBVAGsA0MBdgMuAUcDFgEeAwoBDQMCAQP/AP8AugAEAQMCAQMDEwEZAyQBNQM4AVsD + RgF+AlEBUAGcAVsBWAFUAbMBZQFfAVUBxAFuAWMBUgHQAXQBZwFOAdcBewFqAUwB2wF/AWoBSQHeAXsB + agFMAdsBdgFnAU4B1gFvAWUBUwHPAWEBXQFVAcIBWgFYAVUBsQFRAlABmgNEAXoDNgFXAyIBMQMRARYE + AgQB/wD/AMoABAIDBQEGAxMBGQMjATIDNAFTA0ABbwNJAYgCTwFOAZcBUwFSAVEBoAFUAVMBUgGlAVMB + UgFRAaADTgGWA0kBhgM/AWwDMgFPAyEBLwMRARYDAwEEBAH/AP8A2gAEAgMGAQgDDAEPAxMEGQEiAx4B + KgMhAS8DIwEzAyUBNgMjATMDIAEuAx0BKQMYASEDEgEYAwsBDgMGAQcEAf8A/wD2AAQBBwIBAwQCBAH/ + AP8A/wD/AP8A1QABQgFNAT4HAAE+AwABKAMAAcgDAAEyAwABAQEAAQEFAAF4AQUWAAP/AQAG/wHAFQAG + /wHAFQAG/wHAFQAG/wHAFQAC/wHAAQABfwH/AcAVAAL/AcABAAF/Af8BwBUAAf8B/gIAAQ8B/wHAFQAB + /wHwAgABAwH/AcAVAAH/AfACAAEBAf8BwBUAAf8BwAMAAX8BwBUAAf8BwAMAAX8BwBUAAf8EAAEfAcAV + AAH+BAABHwHAFQAB/gQAAQ8BwBUAAf4EAAEPAcAVAAH4BAABBwHAFQAB+AQAAQMBwBUAAfgEAAEDAcAV + AAH4BAABAwHAFQAB8AQAAQMBwBUAAfAEAAEBAcAVAAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAV AAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAVAAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAV - AAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAVAAHwBAABAQHAFQAB8AQAAQMBwBUAAfgEAAEDAcAV - AAH4BAABAwHAFQAB+AQAAQMBwBUAAf4EAAEPAcAVAAH+BAABDwHAFQAB/gQAAQ8BwBUAAf8EAAEfAcAV - AAH/BAABPwHAFQAB/wHAAwABfwHAFQAB/wHgAwAB/wHAFQAB/wHwAgABAQH/AcAVAAH/AfgCAAEDAf8B - wBUAAv8CAAEfAf8BwBUAAv8BgAEAAT8B/wHAFQAC/wH+AQ8C/wHAFQAG/wHAFQAL + AAHwBAABAQHAFQAB8AQAAQEBwBUAAfAEAAEBAcAVAAHwBAABAwHAFQAB+AQAAQMBwBUAAfgEAAEDAcAV + AAH4BAABAwHAFQAB/gQAAQ8BwBUAAf4EAAEPAcAVAAH+BAABDwHAFQAB/wQAAR8BwBUAAf8EAAE/AcAV + AAH/AcADAAF/AcAVAAH/AeADAAH/AcAVAAH/AfACAAEBAf8BwBUAAf8B+AIAAQMB/wHAFQAC/wIAAR8B + /wHAFQAC/wGAAQABPwH/AcAVAAL/Af4BDwL/AcAVAAb/AcAVAAs= @@ -610,8 +603,8 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu - SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA5hgAAAJNU0Z0AUkBTAIBAQUB - AAEIAQEBCAEBARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASAa + SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA5BgAAAJNU0Z0AUkBTAIBAQUB + AAEgAQEBIAEBARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASAa AAM3AVoDWAG4A2MB3wJjAV0B3wFiAl0B3wNdAd8DXQHfAWECXQHfA2MB3wNjAd8DVQGsAzABS8wAAzsB YgNdAcUDaAH0AZ8BZQExAf8BlwFTARcB/wGWAUsBCQH/AZMBRgEBAf8BjAFDAQMB/wF9AUABCwH/AWsB QAEaAf8BbgFQATYB/wNoAfADWgG3AzQBVMQAAzUBVQNdAccCbgFaAfUBuAFlARsB/wG5AVgBAgH/AckB @@ -632,10 +625,10 @@ /wFjAWEBXQHfwAAB/wHMAZ8C/wGsAWMC/wGTATMC/wGBAREC/wF5AQIC/wGCARYC/wGaAUsC/wGuAXgC /wGlAVcC/wGBARcC/wF5AQQC/wF4AQAC/wF4AQAB/wHwAXEBAAH/AdUBcQEXAf8CYwFdAd/AAAH/AekB 1QL/AbwBgQL/AaQBVAL/AY4BKgL/AX8BDQL/AXkBAgL/AXsBCQL/AYIBHQL/AXgBAAL/AXgBAAL/AXgB - AQL/AXoBBAL/AXoBAwH/AfMBdAEDAf8B4gGEATIB/wNjAd/AAANeAdIBiAGBAXEB+QH/AbsBfQL/AaMB + AQL/AXoBBAL/AXoBAwH/AfMBdAEDAf8B4gGEATIB/wNjAd/AAANeAdIBhQF9AWsB+QH/AbsBfQL/AaMB UgL/AZABLAL/AYIBEwL/AX0BCAL/AXoBBAL/AXkBAgL/AXoBBAL/AX0BCQL/AYABDwL/AX8BDQH/AfgB hgEgAf8DaAH0A1gBuMAAAzwBZgNjAdUDfAH4Af8BvgGFAv8BqgFfAv8BmQE+Av8BjQEnAv8BhgEaAv8B - gwEVAv8BhQEZAv8BigEiAv8BjQEoAv8BkwEzAf8CbgFoAfUDXQHFAzYBWcQAA0IBcgNjAdUBiAGDAXsB + gwEVAv8BhQEZAv8BigEiAv8BjQEoAv8BkwEzAf8CbgFoAfUDXQHFAzYBWcQAA0IBcgNjAdUBhQGAAXUB +QH/AckBmQL/AbwBfwL/Aa4BZgL/AaQBUwL/AZ8BSgL/AZ8BSwL/AaMBUQL/AacBWAH/A3wB+ANdAccD OwFizAADPAFlA14B0gH/Ae8B4AL/AdwBvAL/Ac0BnwL/AcEBigL/AbsBfwL/Ab8BhgL/Ac0BoQL/AekB 1gH/A1wBxAM1AVXIAANnAe8CZwFZAe8BZwFdAVkB7wFnAVsBWQHvAWcBWwFZAe8BZwJZAe8BZwFkAVkB @@ -661,8 +654,8 @@ 8wFzAQAB/wH6AXYBAAH/Af4BeAEAAv8BewEIAv8BiAEnAv8BogFTAf8B/gGBARcB/wH8AXgBBAH/AewB bwEAAf8BwQFbAQAB/wGGAUEBAwH/AXgBVgE2Af8DYwHfBP8BrAGWAWAB/wGDAYIBfwH/AYUBggF9Af8B swGTAUQB/wHPAZQBAAH/Ad4BzAGfAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOoAf8I - AAMaASQDUgGgAmMBSAH2AaIBcwEAAf8BrgF8AQAB/wGwAX0BAAH/AagBeAEAAf8BlQFqAQAB/wGAAXUB - IQH+AVwCWQHGA1cBtQMWAR4IAAMCAQMDGgEjAzgBXANUAagDYgHXA3AB8QOAAf4DgQH/A4EB/wOBAf8D + AAMaASQDUgGgAmMBSAH2AaIBcwEAAf8BrgF8AQAB/wGwAX0BAAH/AagBeAEAAf8BlQFqAQAB/wGAAXgB + JAH+AVwCWQHGA1cBtQMWAR4IAAMCAQMDGgEjAzgBXANUAagDYgHXA3AB8QOAAf4DgQH/A4EB/wOBAf8D gQH9A2gB8ANhAdQDUwGlAzYBWQMYASAB/wGyAW8B/wH9AYABEQH/AfwBdwEBAf8B/QF3AQAC/wF4AQAC /wF/AQ8C/wGSATsC/wGzAYMC/wHqAeAC/wGQAT0C/wF7AQoB/wH8AXcBAAH/AeUBbAEAAf8BsQFUAQAB /wGEAUsBGgH/A2MB3wT/AdkBqgE3Af8BvgGYATgB/wHAAZgBNgH/AdwBogEUAf8BzwGUAQAB/wHeAcwB @@ -688,7 +681,7 @@ wAL/AeoB4AL/AZ0BVwL/AX4BEQL/AXgBAAL/AXgBAAH/AfABcQEAAf8BywFkAQkB/wFjAWEBXQHfBP8B hgGDAX4B/wOBAf8DgQH/AYYBgwF7Af8BzwGUAQAB/wHeAcwBnwH/A4EB/wOBAf8DgQH/A4EB/wOBAf8D gQH/A4EB/wOBAf8DkwH/A2IB7gHvAbQBIQH/AfcB3AGXCf8DkQH/A4gB/wOHAf8DhwH/A4EB/wNXAf8D - 5gH/A6MB/wG2AZEBNgH/AXUBagFBAfkEAANXAbIDZQHnA4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB + 5gH/A6MB/wG2AZEBNgH/AW8BagFBAfkEAANXAbIDZQHnA4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB /wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wNVAa8B/wHMAZ8C/wGsAWMC/wGTATMC/wGBAREC/wF5AQIC /wGCARYC/wGaAUsC/wGuAXgC/wGlAVcC/wGBARcC/wF5AQQC/wF4AQAC/wF4AQAB/wHwAXEBAAH/AdUB cQEXAf8CYwFdAd8E/wGLAYYBeQH/A4EB/wOBAf8BjgGGAXEB/wHPAZQBAAH/Ad4BzAGfAf8DoQH/A6EB @@ -699,7 +692,7 @@ pwGUAWcB/wGDAYIBfwH/AYUBgwF+Af8BsAGUAU4B/wHTAZcBAgH/AeABzgGfAf8D5wH/A+cB/wPnAf8D 5wH/A+cB/wPnAf8D5wH/A+cB/wPAAf8DBwEJA2IB7gHxAbwBOwH/AfoB6gHCAf8D3AH/A3cB/wNoAf8D aAH/A2gB/wMyCf8B8gHdAakB/wHqAakBCAH/Az4BagQAA2QB2wNoAfQDgQH/A4EB/wOBAf8DgQH/A4EB - /wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A1UBrwNeAdIBiAGBAXEB+QH/AbsBfQL/AaMB + /wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A1UBrwNeAdIBhQF9AWsB+QH/AbsBfQL/AaMB UgL/AZABLAL/AYIBEwL/AX0BCAL/AXoBBAL/AXkBAgL/AXoBBAL/AX0BCQL/AYABDwL/AX8BDQH/AfgB hgEgAf8DaAH0A1gBuAT/AdcBsQFSAf8BmgGPAXQB/wGgAZIBbQH/AeABrwE3Af8B5wGpARAB/wHrAdUB oAH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DkwH/BAADMwFRA2gB8AHzAcYBWAH/AfoB @@ -707,17 +700,16 @@ gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wN9AfoDVQGqAzwBZgNjAdUDfAH4Af8BvgGFAv8B qgFfAv8BmQE+Av8BjQEnAv8BhgEaAv8BgwEVAv8BhQEZAv8BigEiAv8BjQEoAv8BkwEzAf8CbgFoAfUD XQHFAzYBWQT/AfQBzQFsAf8B9AHLAWYB/wH0AcsBZQH/AfQBywFlAf8B8QHBAUkB/wH5AeMBrAH/A4kB - /wOJAf8DiQH/A4kB/wOJAf8DiQH/A4kB/wOJAf8DmgH/CAADIgExA18ByQGDAX0BZwH6AfMBygFlAf8B - +QHhAaYB/wH7Ae0BzAH/AfsB7AHIAf8B+AHdAZsB/wGwAYIBcgH+AmUBXgHiAz0BaAQBCAADBgEIAzEB - TANQAZsDZQHsA30B+gOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DfQH6A2oB7QNQAZsDLwFJBAAD - QgFyA2MB1QGIAYMBewH5Af8ByQGZAv8BvAF/Av8BrgFmAv8BpAFTAv8BnwFKAv8BnwFLAv8BowFRAv8B - pwFYAf8DfAH4A10BxwM7AWIEAED/EAADDwETA0cBggNkAdsBmAF+AW8B/ANnAeoDVAGoAygBOxwAAwUB - BgMSARcDOgFgA1EBnwNfAdMDZwHvA2MB9gNiAe4DXgHSA1EBngM5AV8DEQEWAwUBBgwAAzwBZQNeAdIB - /wHvAeAC/wHcAbwC/wHNAZ8C/wHBAYoC/wG7AX8C/wG/AYYC/wHNAaEC/wHpAdYB/wNcAcQDNQFVCAAB - QgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/wEAAcABAwYAAYABAWYAAYABAQYAAcAB - AwgAAf8B/AIAAcABAwIAAf8B/AIAAYABAQIAAf8B+QYAAf8B+QYAAfABEwYAAcABAwYAAYABAQL/BAAB - gAEBAcABAQUAAQEBgAYAAQEHAAEBBwABAQcAAQEGAAGAAQEGAAHAAQMCAAGAAQECAAHwAR8BwAEBAcAB - Aws= + /wOJAf8DiQH/A4kB/wOJAf8DiQH/A4kB/wOJAf8DmgH/CAADIgExA18ByQJ9AWcB+gHzAcoBZQH/AfkB + 4QGmAf8B+wHtAcwB/wH7AewByAH/AfgB3QGbAf8BqgGAAXUB/gJlAV4B4gM9AWgEAQgAAwYBCAMxAUwD + UAGbA2UB7AN9AfoDgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A30B+gNqAe0DUAGbAy8BSQQAA0IB + cgNjAdUBhQGAAXUB+QH/AckBmQL/AbwBfwL/Aa4BZgL/AaQBUwL/AZ8BSgL/AZ8BSwL/AaMBUQL/AacB + WAH/A3wB+ANdAccDOwFiBABA/xAAAw8BEwNHAYIDZAHbAY8BfgFvAfwDZwHqA1QBqAMoATscAAMFAQYD + EgEXAzoBYANRAZ8DXwHTA2cB7wNjAfYDYgHuA14B0gNRAZ4DOQFfAxEBFgMFAQYMAAM8AWUDXgHSAf8B + 7wHgAv8B3AG8Av8BzQGfAv8BwQGKAv8BuwF/Av8BvwGGAv8BzQGhAv8B6QHWAf8DXAHEAzUBVQgAAUIB + TQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYAA/8BAAHAAQMGAAGAAQFmAAGAAQEGAAHAAQMI + AAH/AfwCAAHAAQMCAAH/AfwCAAGAAQECAAH/AfkGAAH/AfkGAAHwARMGAAHAAQMGAAGAAQEC/wQAAYAB + AQHAAQEFAAEBAYAGAAEBBwABAQcAAQEHAAEBBgABgAEBBgABwAEDAgABgAEBAgAB8AEfAcABAQHAAQML \ No newline at end of file diff --git a/qtcnet-client/Forms/Games/GuessTheNumber.Designer.cs b/qtcnet-client/Forms/Games/GuessTheNumber.Designer.cs new file mode 100644 index 0000000..31a6fca --- /dev/null +++ b/qtcnet-client/Forms/Games/GuessTheNumber.Designer.cs @@ -0,0 +1,135 @@ +namespace qtcnet_client.Forms.Games +{ + partial class GuessTheNumber + { + /// + /// 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() + { + lblHeader = new Label(); + nudNumberGuess = new NumericUpDown(); + btnGuess = new Button(); + lblPrizeInfo = new Label(); + lblResult = new Label(); + btnClaimPrize = new Button(); + ((System.ComponentModel.ISupportInitialize)nudNumberGuess).BeginInit(); + SuspendLayout(); + // + // lblHeader + // + lblHeader.Font = new Font("Segoe UI", 15F, FontStyle.Bold); + lblHeader.Location = new Point(12, 9); + lblHeader.Name = "lblHeader"; + lblHeader.Size = new Size(486, 62); + lblHeader.TabIndex = 0; + lblHeader.Text = "Please Wait, Getting Number..."; + lblHeader.TextAlign = ContentAlignment.MiddleCenter; + // + // nudNumberGuess + // + nudNumberGuess.Location = new Point(190, 127); + nudNumberGuess.Maximum = new decimal(new int[] { 500, 0, 0, 0 }); + nudNumberGuess.Name = "nudNumberGuess"; + nudNumberGuess.Size = new Size(120, 23); + nudNumberGuess.TabIndex = 1; + // + // btnGuess + // + btnGuess.ForeColor = Color.Black; + btnGuess.Location = new Point(225, 156); + btnGuess.Name = "btnGuess"; + btnGuess.Size = new Size(46, 23); + btnGuess.TabIndex = 2; + btnGuess.Text = "Guess"; + btnGuess.UseVisualStyleBackColor = true; + btnGuess.Click += btnGuess_Click; + // + // lblPrizeInfo + // + lblPrizeInfo.Font = new Font("Segoe UI", 9F, FontStyle.Bold); + lblPrizeInfo.ForeColor = Color.Black; + lblPrizeInfo.Location = new Point(142, 180); + lblPrizeInfo.Name = "lblPrizeInfo"; + lblPrizeInfo.Size = new Size(212, 63); + lblPrizeInfo.TabIndex = 3; + lblPrizeInfo.Text = "Prize Possibilities:\r\nGuess Is Higher By 10 - Jackpot Spin\r\nGuess Is Lower By 10 - 200 Q's\r\nGuess Is Equal - Jackpot"; + lblPrizeInfo.TextAlign = ContentAlignment.TopCenter; + // + // lblResult + // + lblResult.Font = new Font("Segoe UI", 9F, FontStyle.Bold); + lblResult.Location = new Point(12, 81); + lblResult.Name = "lblResult"; + lblResult.Size = new Size(477, 15); + lblResult.TabIndex = 4; + lblResult.Text = "lblResult"; + lblResult.TextAlign = ContentAlignment.MiddleCenter; + lblResult.Visible = false; + // + // btnClaimPrize + // + btnClaimPrize.ForeColor = Color.Black; + btnClaimPrize.Location = new Point(200, 100); + btnClaimPrize.Name = "btnClaimPrize"; + btnClaimPrize.Size = new Size(99, 23); + btnClaimPrize.TabIndex = 5; + btnClaimPrize.Text = "PRIZE_CLAIM"; + btnClaimPrize.UseVisualStyleBackColor = true; + btnClaimPrize.Visible = false; + // + // GuessTheNumber + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + BackColor = Color.DodgerBlue; + ClientSize = new Size(511, 253); + Controls.Add(btnClaimPrize); + Controls.Add(lblResult); + Controls.Add(lblPrizeInfo); + Controls.Add(btnGuess); + Controls.Add(nudNumberGuess); + Controls.Add(lblHeader); + ForeColor = Color.White; + FormBorderStyle = FormBorderStyle.FixedDialog; + MaximizeBox = false; + MinimizeBox = false; + Name = "GuessTheNumber"; + StartPosition = FormStartPosition.CenterScreen; + Text = "QtC.NET qGame - Guess The Number"; + Load += GuessTheNumber_Load; + ((System.ComponentModel.ISupportInitialize)nudNumberGuess).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Label lblHeader; + private NumericUpDown nudNumberGuess; + private Button btnGuess; + private Label lblPrizeInfo; + private Label lblResult; + private Button btnClaimPrize; + } +} \ No newline at end of file diff --git a/qtcnet-client/Forms/Games/GuessTheNumber.cs b/qtcnet-client/Forms/Games/GuessTheNumber.cs new file mode 100644 index 0000000..6c82262 --- /dev/null +++ b/qtcnet-client/Forms/Games/GuessTheNumber.cs @@ -0,0 +1,132 @@ +using qtcnet_client.Services; +using QtCNETAPI.Services.ApiService; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace qtcnet_client.Forms.Games +{ + public partial class GuessTheNumber : Form + { + private IApiService _apiService; + private AudioService _audioService; + private int _number; + private int _guesses; + public GuessTheNumber(IApiService apiService, AudioService audioService) + { + _apiService = apiService; + _audioService = audioService; + InitializeComponent(); + } + + private async void GuessTheNumber_Load(object sender, EventArgs e) => await InitializeGTNGame(); + + private async void btnGuess_Click(object sender, EventArgs e) + { + if(nudNumberGuess.Value > 0) + { + btnGuess.Enabled = false; + + int guess = int.Parse(nudNumberGuess.Value.ToString()); + var result = await _apiService.GuessRandomNumber(_number, guess); + + if(result != null && result.Success) + { + switch(result.Data) + { + case QtCNETAPI.Enums.NumberGuessResult.Higher: + lblResult.Text = "Your Guess Was Higher By 10! You've Earned A Jackpot Spin!"; + btnClaimPrize.Text = "Spin"; + btnClaimPrize.Click += BtnClaimPrize_Click_JackpotSpin; + + lblResult.Visible = true; + btnClaimPrize.Visible = true; + break; + case QtCNETAPI.Enums.NumberGuessResult.Lower: + lblResult.Text = "Your Guess Was Lower By 10! You've Earned 200 Q's!"; + btnClaimPrize.Text = "Claim"; + btnClaimPrize.Click += BtnClaimPrize_Click_QClaim; + + lblResult.Visible = true; + btnClaimPrize.Visible = true; + break; + case QtCNETAPI.Enums.NumberGuessResult.Correct: + lblResult.Text = "Your Correct! You've Earned The Jackpot!"; + btnClaimPrize.Text = "Claim"; + btnClaimPrize.Click += BtnClaimPrize_Click_QClaimJackpot; + + lblResult.Visible = true; + btnClaimPrize.Visible = true; + break; + case QtCNETAPI.Enums.NumberGuessResult.Incorrect: + if (_guesses >= 2) + { + lblResult.Text = "Unfortunately you've used up all your guesses for this round."; + lblResult.Visible = true; + btnGuess.Visible = false; + break; + } + else _guesses++; + + lblResult.Text = $"Incorrect. You Get Three Chances. You Guessed {_guesses} Time(s)"; + lblResult.Visible = true; + btnGuess.Enabled = true; + break; + } + } + } + } + + private void BtnClaimPrize_Click_QClaimJackpot(object? sender, EventArgs e) + { + throw new NotImplementedException("need to figure out how to do this, sorry :)"); + } + + private async void BtnClaimPrize_Click_QClaim(object? sender, EventArgs e) + { + var result = await _apiService.AddCurrencyToCurrentUser(200, false); + if (result != null && result.Success) Close(); + else + { + MessageBox.Show("We Weren't Able To Claim Your Prize. You Can Try Again.", "Uh Oh...", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private async void BtnClaimPrize_Click_JackpotSpin(object? sender, EventArgs e) + { + Random rnd = new(); + JackpotSpinForm tokenJackpotSpinner = new(_audioService) + { + CurrencyWon = rnd.Next(0, 200) + }; + var formResult = tokenJackpotSpinner.ShowDialog(); + if (formResult == DialogResult.OK) + { + var result = await _apiService.AddCurrencyToCurrentUser(tokenJackpotSpinner.CurrencyWon, false); + if (result != null && result.Success) Close(); + else + { + MessageBox.Show("We Weren't Able To Claim Your Prize. You Can Try Again.", "Uh Oh...", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private async Task InitializeGTNGame() + { + var result = await _apiService.GetRandomNumber(); + + if (result != null && result.Success) + { + _number = result.Data; + lblHeader.Text = "I've picked a number between 1 and 500.\nWhat Is It?"; + } + } + } +} diff --git a/qtcnet-client/Forms/Games/GuessTheNumber.resx b/qtcnet-client/Forms/Games/GuessTheNumber.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/qtcnet-client/Forms/Games/GuessTheNumber.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/qtcnet-client/Forms/Games/StockMarketGame.Designer.cs b/qtcnet-client/Forms/Games/StockMarketGame.Designer.cs new file mode 100644 index 0000000..80e53a7 --- /dev/null +++ b/qtcnet-client/Forms/Games/StockMarketGame.Designer.cs @@ -0,0 +1,206 @@ +namespace qtcnet_client.Forms.Games +{ + partial class StockMarketGame + { + /// + /// 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() + { + pStockManagement = new Panel(); + nudStockBuySellAmount = new NumericUpDown(); + btnSell = new Button(); + btnBuy = new Button(); + lblStockCount = new Label(); + pMarketStatus = new Panel(); + lblCurrentStockPrice = new Label(); + lblMarketStatus = new Label(); + pbDollarSignRight = new PictureBox(); + pbDollarSignLeft = new PictureBox(); + btnRefresh = new Button(); + pStockManagement.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)nudStockBuySellAmount).BeginInit(); + pMarketStatus.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)pbDollarSignRight).BeginInit(); + ((System.ComponentModel.ISupportInitialize)pbDollarSignLeft).BeginInit(); + SuspendLayout(); + // + // pStockManagement + // + pStockManagement.Controls.Add(nudStockBuySellAmount); + pStockManagement.Controls.Add(btnSell); + pStockManagement.Controls.Add(btnBuy); + pStockManagement.Controls.Add(lblStockCount); + pStockManagement.Location = new Point(230, 138); + pStockManagement.Name = "pStockManagement"; + pStockManagement.Size = new Size(135, 81); + pStockManagement.TabIndex = 3; + // + // nudStockBuySellAmount + // + nudStockBuySellAmount.Enabled = false; + nudStockBuySellAmount.Location = new Point(48, 7); + nudStockBuySellAmount.Name = "nudStockBuySellAmount"; + nudStockBuySellAmount.Size = new Size(42, 23); + nudStockBuySellAmount.TabIndex = 9; + // + // btnSell + // + btnSell.Enabled = false; + btnSell.ForeColor = Color.Black; + btnSell.Location = new Point(88, 52); + btnSell.Name = "btnSell"; + btnSell.Size = new Size(39, 23); + btnSell.TabIndex = 8; + btnSell.Text = "Sell"; + btnSell.UseVisualStyleBackColor = true; + btnSell.Click += btnSell_Click; + // + // btnBuy + // + btnBuy.Enabled = false; + btnBuy.ForeColor = Color.Black; + btnBuy.Location = new Point(9, 52); + btnBuy.Name = "btnBuy"; + btnBuy.Size = new Size(39, 23); + btnBuy.TabIndex = 7; + btnBuy.Text = "Buy"; + btnBuy.UseVisualStyleBackColor = true; + btnBuy.Click += btnBuy_Click; + // + // lblStockCount + // + lblStockCount.Font = new Font("Segoe UI", 7F, FontStyle.Bold); + lblStockCount.ImageAlign = ContentAlignment.MiddleRight; + lblStockCount.Location = new Point(11, 34); + lblStockCount.Name = "lblStockCount"; + lblStockCount.Size = new Size(115, 12); + lblStockCount.TabIndex = 6; + lblStockCount.Text = "Your Stock Count - 999"; + lblStockCount.TextAlign = ContentAlignment.MiddleCenter; + // + // pMarketStatus + // + pMarketStatus.Controls.Add(lblCurrentStockPrice); + pMarketStatus.Controls.Add(lblMarketStatus); + pMarketStatus.Controls.Add(pbDollarSignRight); + pMarketStatus.Controls.Add(pbDollarSignLeft); + pMarketStatus.Location = new Point(3, 7); + pMarketStatus.Name = "pMarketStatus"; + pMarketStatus.Size = new Size(586, 100); + pMarketStatus.TabIndex = 4; + // + // lblCurrentStockPrice + // + lblCurrentStockPrice.Font = new Font("Segoe UI", 9F, FontStyle.Bold); + lblCurrentStockPrice.ForeColor = Color.Black; + lblCurrentStockPrice.Location = new Point(194, 73); + lblCurrentStockPrice.Name = "lblCurrentStockPrice"; + lblCurrentStockPrice.Size = new Size(199, 15); + lblCurrentStockPrice.TabIndex = 5; + lblCurrentStockPrice.Text = "Current Price Per Stock Is 999 Q's"; + lblCurrentStockPrice.TextAlign = ContentAlignment.MiddleCenter; + // + // lblMarketStatus + // + lblMarketStatus.Font = new Font("Segoe UI", 35F, FontStyle.Bold | FontStyle.Italic); + lblMarketStatus.Location = new Point(90, 4); + lblMarketStatus.Name = "lblMarketStatus"; + lblMarketStatus.Size = new Size(408, 62); + lblMarketStatus.TabIndex = 5; + lblMarketStatus.Text = "MARKET_STATUS"; + lblMarketStatus.TextAlign = ContentAlignment.MiddleCenter; + // + // pbDollarSignRight + // + pbDollarSignRight.Image = Properties.Resources.dollar_money; + pbDollarSignRight.Location = new Point(500, 3); + pbDollarSignRight.Name = "pbDollarSignRight"; + pbDollarSignRight.Size = new Size(83, 94); + pbDollarSignRight.SizeMode = PictureBoxSizeMode.Zoom; + pbDollarSignRight.TabIndex = 4; + pbDollarSignRight.TabStop = false; + // + // pbDollarSignLeft + // + pbDollarSignLeft.Image = Properties.Resources.dollar_money; + pbDollarSignLeft.Location = new Point(3, 3); + pbDollarSignLeft.Name = "pbDollarSignLeft"; + pbDollarSignLeft.Size = new Size(83, 94); + pbDollarSignLeft.SizeMode = PictureBoxSizeMode.Zoom; + pbDollarSignLeft.TabIndex = 3; + pbDollarSignLeft.TabStop = false; + // + // btnRefresh + // + btnRefresh.Enabled = false; + btnRefresh.ForeColor = Color.Black; + btnRefresh.Location = new Point(270, 113); + btnRefresh.Name = "btnRefresh"; + btnRefresh.Size = new Size(56, 23); + btnRefresh.TabIndex = 10; + btnRefresh.Text = "Refresh"; + btnRefresh.UseVisualStyleBackColor = true; + btnRefresh.Click += btnRefresh_Click; + // + // StockMarketGame + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + BackColor = Color.DodgerBlue; + ClientSize = new Size(595, 227); + Controls.Add(btnRefresh); + Controls.Add(pMarketStatus); + Controls.Add(pStockManagement); + ForeColor = Color.White; + FormBorderStyle = FormBorderStyle.FixedDialog; + MaximizeBox = false; + MinimizeBox = false; + Name = "StockMarketGame"; + StartPosition = FormStartPosition.CenterScreen; + Text = "QtC.NET qGame - Stock Market"; + Load += StockMarketGame_Load; + pStockManagement.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)nudStockBuySellAmount).EndInit(); + pMarketStatus.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)pbDollarSignRight).EndInit(); + ((System.ComponentModel.ISupportInitialize)pbDollarSignLeft).EndInit(); + ResumeLayout(false); + } + + #endregion + + private Panel pStockManagement; + private Button btnSell; + private Button btnBuy; + private Label lblStockCount; + private Panel pMarketStatus; + private Label lblCurrentStockPrice; + private Label lblMarketStatus; + private PictureBox pbDollarSignRight; + private PictureBox pbDollarSignLeft; + private Button btnRefresh; + private NumericUpDown nudStockBuySellAmount; + } +} \ No newline at end of file diff --git a/qtcnet-client/Forms/Games/StockMarketGame.cs b/qtcnet-client/Forms/Games/StockMarketGame.cs new file mode 100644 index 0000000..cd52d75 --- /dev/null +++ b/qtcnet-client/Forms/Games/StockMarketGame.cs @@ -0,0 +1,151 @@ +using QtCNETAPI.Services.ApiService; +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 qtcnet_client.Forms.Games +{ + public partial class StockMarketGame : Form + { + private IApiService _apiService; + private int StockPrice = 0; + public StockMarketGame(IApiService apiService) + { + _apiService = apiService; + InitializeComponent(); + } + + private async void StockMarketGame_Load(object sender, EventArgs e) => await InitializeStockMarketGame(); + private async void btnRefresh_Click(object sender, EventArgs e) => await InitializeStockMarketGame(); + + private async void btnBuy_Click(object sender, EventArgs e) + { + if (nudStockBuySellAmount.Value > 0) + { + nudStockBuySellAmount.Enabled = false; + btnBuy.Enabled = false; + btnSell.Enabled = false; + btnRefresh.Enabled = false; + + // buy stock + var amountToBuy = int.Parse(nudStockBuySellAmount.Value.ToString()); + var result = await _apiService.BuyStock(amountToBuy); + + if (result != null && result.Success && result.Data != null) + { + lblStockCount.Text = $"Your Stock Count - {result.Data.StockAmount}"; + + _apiService.CurrentUser?.StockAmount = result.Data.StockAmount; + _apiService.CurrentUser?.CurrencyAmount = result.Data.CurrencyAmount; + + nudStockBuySellAmount.Enabled = true; + nudStockBuySellAmount.Value = 0; + btnBuy.Enabled = true; + btnSell.Enabled = true; + btnRefresh.Enabled = true; + } + else + { + MessageBox.Show("Buy Failed. Either You Don't Have Enough Q's Or A Server Side Error Occured.", "Oops.", MessageBoxButtons.OK, MessageBoxIcon.Error); + nudStockBuySellAmount.Enabled = true; + nudStockBuySellAmount.Value = 0; + btnBuy.Enabled = true; + btnSell.Enabled = true; + btnRefresh.Enabled = true; + } + } + } + + private async void btnSell_Click(object sender, EventArgs e) + { + if(nudStockBuySellAmount.Value > 0) + { + nudStockBuySellAmount.Enabled = false; + btnBuy.Enabled = false; + btnSell.Enabled = false; + btnRefresh.Enabled = false; + + // sell stock + var amountToSell = int.Parse(nudStockBuySellAmount.Value.ToString()); + var result = await _apiService.SellStock(amountToSell); + + if (result != null && result.Success && result.Data != null) + { + lblStockCount.Text = $"Your Stock Count - {result.Data.StockAmount}"; + + _apiService.CurrentUser?.StockAmount = result.Data.StockAmount; + _apiService.CurrentUser?.CurrencyAmount = result.Data.CurrencyAmount; + + nudStockBuySellAmount.Enabled = true; + nudStockBuySellAmount.Value = 0; + btnBuy.Enabled = true; + btnSell.Enabled = true; + btnRefresh.Enabled = true; + } else + { + MessageBox.Show("Sell Failed. Either You Don't Have Enough Stock Or A Server Side Error Occured.", "Oops.", MessageBoxButtons.OK, MessageBoxIcon.Error); + nudStockBuySellAmount.Enabled = true; + nudStockBuySellAmount.Value = 0; + btnBuy.Enabled = true; + btnSell.Enabled = true; + btnRefresh.Enabled = true; + } + } + } + + private async Task InitializeStockMarketGame() + { + var currentStockPriceResult = await _apiService.GetCurrentStockPrice(); + + if (currentStockPriceResult != null && currentStockPriceResult.Success) + { + lblCurrentStockPrice.Text = $"Current Price Per Stock Is {currentStockPriceResult.Data} Q's"; + lblStockCount.Text = $"Your Stock Count - {_apiService.CurrentUser?.StockAmount}"; + + switch (currentStockPriceResult.Data) + { + case < 49: + lblMarketStatus.Text = "not good cheif :("; + lblMarketStatus.ForeColor = Color.Red; + break; + case < 99: + lblMarketStatus.Text = "its aight :/"; + lblMarketStatus.ForeColor = Color.DarkGreen; + break; + case < 149: + lblMarketStatus.Text = "its good :)"; + lblMarketStatus.ForeColor = Color.Green; + break; + case < 199: + lblMarketStatus.Text = "very good :D"; + lblMarketStatus.ForeColor = Color.Blue; + break; + case > 200: + lblMarketStatus.Text = "$ AWESOME $"; + lblMarketStatus.ForeColor = Color.LightGreen; + break; + default: + lblMarketStatus.Text = "Cannot Determine"; + lblMarketStatus.ForeColor = Color.White; + break; + } + + nudStockBuySellAmount.Enabled = true; + btnBuy.Enabled = true; + btnSell.Enabled = true; + btnRefresh.Enabled = true; + } + else + { + MessageBox.Show("The Stock Market Endpoint Could Not Be Reached. Please Check Your Internet Connection", "Uh Oh.", MessageBoxButtons.OK, MessageBoxIcon.Error); + Close(); + } + } + } +} diff --git a/qtcnet-client/Forms/Games/StockMarketGame.resx b/qtcnet-client/Forms/Games/StockMarketGame.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/qtcnet-client/Forms/Games/StockMarketGame.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/qtcnet-client/Forms/Games/TicTacToeGame.Designer.cs b/qtcnet-client/Forms/Games/TicTacToeGame.Designer.cs new file mode 100644 index 0000000..78f38eb --- /dev/null +++ b/qtcnet-client/Forms/Games/TicTacToeGame.Designer.cs @@ -0,0 +1,457 @@ +namespace qtcnet_client.Forms.Games +{ + partial class TicTacToeGame + { + /// + /// 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() + { + pBoard = new Panel(); + btnSquare9 = new Button(); + btnSquare1 = new Button(); + btnSquare7 = new Button(); + btnSquare8 = new Button(); + btnSquare6 = new Button(); + btnSquare4 = new Button(); + btnSquare5 = new Button(); + btnSquare3 = new Button(); + btnSquare2 = new Button(); + pbBoard = new PictureBox(); + pSymbolSelection = new Panel(); + btnOSelect = new Button(); + btnXSelect = new Button(); + label1 = new Label(); + pLoading = new Panel(); + btnPlayAgain = new Button(); + lblPlayAgain = new Label(); + lblLoadStatus = new Label(); + lblPlayerOne = new Label(); + lblP1Username = new Label(); + lblP2Username = new Label(); + lblPlayerTwo = new Label(); + lvUserlist = new ListView(); + rtxtChatbox = new RichTextBox(); + btnSend = new Button(); + rtxtChat = new RichTextBox(); + lblJackpotWon = new Label(); + pBoard.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)pbBoard).BeginInit(); + pSymbolSelection.SuspendLayout(); + pLoading.SuspendLayout(); + SuspendLayout(); + // + // pBoard + // + pBoard.Controls.Add(btnSquare9); + pBoard.Controls.Add(btnSquare1); + pBoard.Controls.Add(btnSquare7); + pBoard.Controls.Add(btnSquare8); + pBoard.Controls.Add(btnSquare6); + pBoard.Controls.Add(btnSquare4); + pBoard.Controls.Add(btnSquare5); + pBoard.Controls.Add(btnSquare3); + pBoard.Controls.Add(btnSquare2); + pBoard.Controls.Add(pbBoard); + pBoard.Enabled = false; + pBoard.Location = new Point(30, 18); + pBoard.Name = "pBoard"; + pBoard.Size = new Size(541, 474); + pBoard.TabIndex = 0; + // + // btnSquare9 + // + btnSquare9.BackgroundImageLayout = ImageLayout.Stretch; + btnSquare9.FlatAppearance.BorderSize = 0; + btnSquare9.FlatStyle = FlatStyle.Flat; + btnSquare9.Location = new Point(374, 341); + btnSquare9.Name = "btnSquare9"; + btnSquare9.Size = new Size(99, 90); + btnSquare9.TabIndex = 11; + btnSquare9.UseVisualStyleBackColor = true; + btnSquare9.Click += btnSquareX_Click; + // + // btnSquare1 + // + btnSquare1.BackgroundImageLayout = ImageLayout.Stretch; + btnSquare1.FlatAppearance.BorderSize = 0; + btnSquare1.FlatStyle = FlatStyle.Flat; + btnSquare1.Location = new Point(79, 49); + btnSquare1.Name = "btnSquare1"; + btnSquare1.Size = new Size(99, 90); + btnSquare1.TabIndex = 4; + btnSquare1.UseVisualStyleBackColor = true; + btnSquare1.Click += btnSquareX_Click; + // + // btnSquare7 + // + btnSquare7.BackgroundImageLayout = ImageLayout.Stretch; + btnSquare7.FlatAppearance.BorderSize = 0; + btnSquare7.FlatStyle = FlatStyle.Flat; + btnSquare7.Location = new Point(79, 341); + btnSquare7.Name = "btnSquare7"; + btnSquare7.Size = new Size(99, 90); + btnSquare7.TabIndex = 10; + btnSquare7.UseVisualStyleBackColor = true; + btnSquare7.Click += btnSquareX_Click; + // + // btnSquare8 + // + btnSquare8.BackgroundImageLayout = ImageLayout.Stretch; + btnSquare8.FlatAppearance.BorderSize = 0; + btnSquare8.FlatStyle = FlatStyle.Flat; + btnSquare8.Location = new Point(229, 341); + btnSquare8.Name = "btnSquare8"; + btnSquare8.Size = new Size(99, 90); + btnSquare8.TabIndex = 9; + btnSquare8.UseVisualStyleBackColor = true; + btnSquare8.Click += btnSquareX_Click; + // + // btnSquare6 + // + btnSquare6.BackgroundImageLayout = ImageLayout.Stretch; + btnSquare6.FlatAppearance.BorderSize = 0; + btnSquare6.FlatStyle = FlatStyle.Flat; + btnSquare6.Location = new Point(374, 195); + btnSquare6.Name = "btnSquare6"; + btnSquare6.Size = new Size(99, 90); + btnSquare6.TabIndex = 8; + btnSquare6.UseVisualStyleBackColor = true; + btnSquare6.Click += btnSquareX_Click; + // + // btnSquare4 + // + btnSquare4.BackgroundImageLayout = ImageLayout.Stretch; + btnSquare4.FlatAppearance.BorderSize = 0; + btnSquare4.FlatStyle = FlatStyle.Flat; + btnSquare4.Location = new Point(79, 195); + btnSquare4.Name = "btnSquare4"; + btnSquare4.Size = new Size(99, 90); + btnSquare4.TabIndex = 7; + btnSquare4.UseVisualStyleBackColor = true; + btnSquare4.Click += btnSquareX_Click; + // + // btnSquare5 + // + btnSquare5.BackgroundImageLayout = ImageLayout.Stretch; + btnSquare5.FlatAppearance.BorderSize = 0; + btnSquare5.FlatStyle = FlatStyle.Flat; + btnSquare5.Location = new Point(229, 195); + btnSquare5.Name = "btnSquare5"; + btnSquare5.Size = new Size(99, 90); + btnSquare5.TabIndex = 6; + btnSquare5.UseVisualStyleBackColor = true; + btnSquare5.Click += btnSquareX_Click; + // + // btnSquare3 + // + btnSquare3.BackgroundImageLayout = ImageLayout.Stretch; + btnSquare3.FlatAppearance.BorderSize = 0; + btnSquare3.FlatStyle = FlatStyle.Flat; + btnSquare3.Location = new Point(374, 49); + btnSquare3.Name = "btnSquare3"; + btnSquare3.Size = new Size(99, 90); + btnSquare3.TabIndex = 5; + btnSquare3.UseVisualStyleBackColor = true; + btnSquare3.Click += btnSquareX_Click; + // + // btnSquare2 + // + btnSquare2.BackgroundImageLayout = ImageLayout.Stretch; + btnSquare2.FlatAppearance.BorderSize = 0; + btnSquare2.FlatStyle = FlatStyle.Flat; + btnSquare2.Location = new Point(229, 49); + btnSquare2.Name = "btnSquare2"; + btnSquare2.Size = new Size(99, 90); + btnSquare2.TabIndex = 3; + btnSquare2.UseVisualStyleBackColor = true; + btnSquare2.Click += btnSquareX_Click; + // + // pbBoard + // + pbBoard.Image = Properties.Resources.Tic_tac_toe; + pbBoard.Location = new Point(27, 15); + pbBoard.Name = "pbBoard"; + pbBoard.Size = new Size(501, 444); + pbBoard.SizeMode = PictureBoxSizeMode.Zoom; + pbBoard.TabIndex = 0; + pbBoard.TabStop = false; + // + // pSymbolSelection + // + pSymbolSelection.BorderStyle = BorderStyle.FixedSingle; + pSymbolSelection.Controls.Add(btnOSelect); + pSymbolSelection.Controls.Add(btnXSelect); + pSymbolSelection.Controls.Add(label1); + pSymbolSelection.Location = new Point(161, 109); + pSymbolSelection.Name = "pSymbolSelection"; + pSymbolSelection.Size = new Size(275, 255); + pSymbolSelection.TabIndex = 3; + pSymbolSelection.Visible = false; + // + // btnOSelect + // + btnOSelect.BackgroundImage = Properties.Resources.O; + btnOSelect.BackgroundImageLayout = ImageLayout.Stretch; + btnOSelect.FlatAppearance.BorderSize = 0; + btnOSelect.FlatStyle = FlatStyle.Flat; + btnOSelect.Location = new Point(157, 104); + btnOSelect.Name = "btnOSelect"; + btnOSelect.Size = new Size(91, 89); + btnOSelect.TabIndex = 2; + btnOSelect.UseVisualStyleBackColor = true; + btnOSelect.Click += btnOSelect_Click; + // + // btnXSelect + // + btnXSelect.BackgroundImage = Properties.Resources.X; + btnXSelect.BackgroundImageLayout = ImageLayout.Stretch; + btnXSelect.FlatAppearance.BorderSize = 0; + btnXSelect.FlatStyle = FlatStyle.Flat; + btnXSelect.Location = new Point(34, 103); + btnXSelect.Name = "btnXSelect"; + btnXSelect.Size = new Size(91, 89); + btnXSelect.TabIndex = 1; + btnXSelect.UseVisualStyleBackColor = true; + btnXSelect.Click += btnXSelect_Click; + // + // label1 + // + label1.Font = new Font("Segoe UI", 15F, FontStyle.Bold, GraphicsUnit.Point, 0); + label1.ForeColor = Color.White; + label1.Location = new Point(11, 14); + label1.Name = "label1"; + label1.Size = new Size(250, 49); + label1.TabIndex = 0; + label1.Text = "Please Select Symbol"; + label1.TextAlign = ContentAlignment.MiddleCenter; + // + // pLoading + // + pLoading.BorderStyle = BorderStyle.FixedSingle; + pLoading.Controls.Add(btnPlayAgain); + pLoading.Controls.Add(lblPlayAgain); + pLoading.Controls.Add(lblLoadStatus); + pLoading.Location = new Point(161, 109); + pLoading.Name = "pLoading"; + pLoading.Size = new Size(275, 255); + pLoading.TabIndex = 2; + pLoading.Visible = false; + // + // btnPlayAgain + // + btnPlayAgain.Location = new Point(97, 223); + btnPlayAgain.Name = "btnPlayAgain"; + btnPlayAgain.Size = new Size(75, 23); + btnPlayAgain.TabIndex = 2; + btnPlayAgain.Text = "Play Again"; + btnPlayAgain.UseVisualStyleBackColor = true; + btnPlayAgain.Visible = false; + btnPlayAgain.Click += btnPlayAgain_Click; + // + // lblPlayAgain + // + lblPlayAgain.ForeColor = Color.White; + lblPlayAgain.Location = new Point(28, 134); + lblPlayAgain.Name = "lblPlayAgain"; + lblPlayAgain.Size = new Size(218, 86); + lblPlayAgain.TabIndex = 1; + lblPlayAgain.Text = "If you wish to play with a different user, you can close\r\nthis window and match up again. Otherwise click\r\n\"Play Again\""; + lblPlayAgain.TextAlign = ContentAlignment.MiddleCenter; + lblPlayAgain.Visible = false; + // + // lblLoadStatus + // + lblLoadStatus.Font = new Font("Segoe UI", 21.75F, FontStyle.Bold, GraphicsUnit.Point, 0); + lblLoadStatus.ForeColor = Color.White; + lblLoadStatus.Location = new Point(11, 4); + lblLoadStatus.Name = "lblLoadStatus"; + lblLoadStatus.Size = new Size(250, 130); + lblLoadStatus.TabIndex = 0; + lblLoadStatus.Text = "Text"; + lblLoadStatus.TextAlign = ContentAlignment.MiddleCenter; + // + // lblPlayerOne + // + lblPlayerOne.Font = new Font("Segoe UI", 12F, FontStyle.Bold | FontStyle.Italic); + lblPlayerOne.ForeColor = Color.White; + lblPlayerOne.Location = new Point(30, 501); + lblPlayerOne.Name = "lblPlayerOne"; + lblPlayerOne.Size = new Size(29, 23); + lblPlayerOne.TabIndex = 2; + lblPlayerOne.Text = "P1"; + // + // lblP1Username + // + lblP1Username.AutoSize = true; + lblP1Username.Font = new Font("Segoe UI", 15F, FontStyle.Bold | FontStyle.Italic); + lblP1Username.ForeColor = Color.White; + lblP1Username.Location = new Point(26, 519); + lblP1Username.Name = "lblP1Username"; + lblP1Username.Size = new Size(105, 28); + lblP1Username.TabIndex = 3; + lblP1Username.Text = "Username"; + // + // lblP2Username + // + lblP2Username.AutoSize = true; + lblP2Username.Font = new Font("Segoe UI", 15F, FontStyle.Bold | FontStyle.Italic); + lblP2Username.ForeColor = Color.White; + lblP2Username.Location = new Point(466, 519); + lblP2Username.Name = "lblP2Username"; + lblP2Username.Size = new Size(105, 28); + lblP2Username.TabIndex = 5; + lblP2Username.Text = "Username"; + lblP2Username.TextAlign = ContentAlignment.MiddleRight; + // + // lblPlayerTwo + // + lblPlayerTwo.Font = new Font("Segoe UI", 12F, FontStyle.Bold | FontStyle.Italic); + lblPlayerTwo.ForeColor = Color.White; + lblPlayerTwo.Location = new Point(540, 501); + lblPlayerTwo.Name = "lblPlayerTwo"; + lblPlayerTwo.Size = new Size(29, 23); + lblPlayerTwo.TabIndex = 4; + lblPlayerTwo.Text = "P2"; + // + // lvUserlist + // + lvUserlist.Alignment = ListViewAlignment.Left; + lvUserlist.Location = new Point(577, 48); + lvUserlist.MultiSelect = false; + lvUserlist.Name = "lvUserlist"; + lvUserlist.Size = new Size(309, 211); + lvUserlist.TabIndex = 6; + lvUserlist.UseCompatibleStateImageBehavior = false; + lvUserlist.View = View.SmallIcon; + // + // rtxtChatbox + // + rtxtChatbox.Location = new Point(577, 497); + rtxtChatbox.Name = "rtxtChatbox"; + rtxtChatbox.Size = new Size(230, 49); + rtxtChatbox.TabIndex = 8; + rtxtChatbox.Text = ""; + rtxtChatbox.KeyDown += rtxtChatbox_KeyDown; + // + // btnSend + // + btnSend.BackgroundImage = Properties.Resources.SendIcon; + btnSend.BackgroundImageLayout = ImageLayout.Zoom; + btnSend.FlatAppearance.BorderSize = 0; + btnSend.FlatStyle = FlatStyle.Flat; + btnSend.Location = new Point(811, 497); + btnSend.Name = "btnSend"; + btnSend.Size = new Size(75, 50); + btnSend.TabIndex = 9; + btnSend.UseVisualStyleBackColor = true; + btnSend.Click += btnSend_Click; + // + // rtxtChat + // + rtxtChat.Font = new Font("Segoe UI", 10F); + rtxtChat.HideSelection = false; + rtxtChat.Location = new Point(577, 265); + rtxtChat.Name = "rtxtChat"; + rtxtChat.ReadOnly = true; + rtxtChat.Size = new Size(309, 227); + rtxtChat.TabIndex = 10; + rtxtChat.Text = ""; + // + // lblJackpotWon + // + lblJackpotWon.AutoSize = true; + lblJackpotWon.Font = new Font("Segoe UI", 12F, FontStyle.Bold | FontStyle.Italic); + lblJackpotWon.ForeColor = Color.Blue; + lblJackpotWon.Location = new Point(744, 18); + lblJackpotWon.Name = "lblJackpotWon"; + lblJackpotWon.Size = new Size(142, 21); + lblJackpotWon.TabIndex = 11; + lblJackpotWon.Text = "3 Wins = Jackpot!"; + // + // TicTacToeGame + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + BackColor = Color.DodgerBlue; + ClientSize = new Size(898, 558); + Controls.Add(lblJackpotWon); + Controls.Add(rtxtChat); + Controls.Add(btnSend); + Controls.Add(rtxtChatbox); + Controls.Add(lvUserlist); + Controls.Add(lblP2Username); + Controls.Add(lblPlayerTwo); + Controls.Add(lblP1Username); + Controls.Add(lblPlayerOne); + Controls.Add(pLoading); + Controls.Add(pSymbolSelection); + Controls.Add(pBoard); + FormBorderStyle = FormBorderStyle.FixedDialog; + MaximizeBox = false; + Name = "TicTacToeGame"; + StartPosition = FormStartPosition.CenterScreen; + Text = "QtC.NET qGame - qTic-Tac-Toe"; + FormClosed += TicTacToeGame_FormClosed; + Load += Main_Load; + pBoard.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)pbBoard).EndInit(); + pSymbolSelection.ResumeLayout(false); + pLoading.ResumeLayout(false); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Panel pBoard; + private PictureBox pbBoard; + private Button btnSquare9; + private Button btnSquare7; + private Button btnSquare8; + private Button btnSquare6; + private Button btnSquare4; + private Button btnSquare5; + private Button btnSquare3; + private Button btnSquare1; + private Button btnSquare2; + private Panel pLoading; + private Label lblLoadStatus; + private Label lblPlayerOne; + private Label lblP1Username; + private Label lblP2Username; + private Label lblPlayerTwo; + private Panel pSymbolSelection; + private Button btnOSelect; + private Button btnXSelect; + private Label label1; + private ListView lvUserlist; + private RichTextBox rtxtChatbox; + private Button btnSend; + private Label lblPlayAgain; + private Button btnPlayAgain; + private RichTextBox rtxtChat; + private Label lblJackpotWon; + } +} diff --git a/qtcnet-client/Forms/Games/TicTacToeGame.cs b/qtcnet-client/Forms/Games/TicTacToeGame.cs new file mode 100644 index 0000000..8f92b00 --- /dev/null +++ b/qtcnet-client/Forms/Games/TicTacToeGame.cs @@ -0,0 +1,523 @@ +using Microsoft.AspNetCore.SignalR.Client; +using qtcnet_client.Forms; +using qtcnet_client.Services; +using QtCNETAPI.Enums; +using QtCNETAPI.Models; +using QtCNETAPI.Schema; +using QtCNETAPI.Services.ApiService; +using System.Threading.Tasks; +using qtcnet_client.Model; + +namespace qtcnet_client.Forms.Games +{ + public partial class TicTacToeGame : Form + { + private HubConnection? GameHubConnection { get; set; } + private GameRoom? CurrentRoom { get; set; } + + private IApiService _apiService; + private ClientConfig _config; + private AudioService _audioService = new(); + + private int WinCount { get; set; } + private bool JackpotWon { get; set; } = false; + public TicTacToeGame(IApiService apiService, ClientConfig config) + { + _apiService = apiService; + _config = config; + + InitializeComponent(); + } + + private async void Main_Load(object sender, EventArgs e) + { + // first, connect to the game hub + GameHubConnection = new HubConnectionBuilder() + .WithUrl($"{_config.ServerBaseUri}/tttgame", options => + { + options.AccessTokenProvider = () => Task.FromResult(_apiService.SessionToken)!; + }) + .WithAutomaticReconnect() + .Build(); + + pLoading.Visible = true; + lblLoadStatus.Text = "Connecting\nTo\nHub..."; + + GameHubConnection.On("WaitingForPlayer", (room) => + { + CurrentRoom = room; + + BeginInvoke(delegate () + { + if (room.Player1 != null) + { + lblP1Username.Text = room.Player1.Username; + lvUserlist.Items.Add(room.Player1.Id, room.Player1.Username, room.Player1.Status); + } + + lblLoadStatus.Text = "Waiting\nFor\nPlayer..."; + }); + }); + + GameHubConnection.On("GameStart", (room) => + { + CurrentRoom = room; + + BeginInvoke(delegate () + { + pLoading.Visible = false; + pSymbolSelection.Visible = false; + }); + }); + + GameHubConnection.On("GameEnd", (room, usernameDisconnected) => + { + CurrentRoom = room; + + BeginInvoke(delegate () + { + if (room.Player1 == null) lblP1Username.Text = "Username"; + if (room.Player2 == null) lblP2Username.Text = "Username"; + + ToggleBoardControl(false); + + switch (room.Status) + { + case GameStatus.P1Win: + { + if (_apiService.CurrentUser?.Id == room.Player1?.Id) + { + lblLoadStatus.Text = "You Won!"; + WinCount++; + + if (WinCount >= 3) + { + JackpotWon = true; + lblJackpotWon.Text = "You Won A Spin!"; + } + } + else lblLoadStatus.Text = "You Lost!"; + lblPlayAgain.Visible = true; + btnPlayAgain.Visible = true; + break; + } + case GameStatus.P2Win: + { + if (_apiService.CurrentUser?.Id == room.Player2?.Id) + { + lblLoadStatus.Text = "You Won!"; + WinCount++; + + if (WinCount >= 3) + { + JackpotWon = true; + lblJackpotWon.Text = "You Won A Spin!"; + } + } + else lblLoadStatus.Text = "You Lost!"; + lblPlayAgain.Visible = true; + btnPlayAgain.Visible = true; + break; + } + case GameStatus.PlayerDisconnected: + { + if (!string.IsNullOrEmpty(usernameDisconnected)) + lblLoadStatus.Text = $"Game Ended.\nUser {usernameDisconnected}\nDisconnected."; + lblPlayAgain.Visible = false; + btnPlayAgain.Visible = false; + break; + } + case GameStatus.NoWin: + lblLoadStatus.Text = "It's a draw!"; + lblPlayAgain.Visible = true; + btnPlayAgain.Visible = true; + break; + } + + pLoading.Visible = true; + }); + }); + + GameHubConnection.On("RestartGame", (room) => + { + CurrentRoom = room; + + BeginInvoke(delegate () + { + if (pLoading.Visible) pLoading.Visible = false; + }); + ClearBoard(); + ToggleBoardControl(true); + + BeginInvoke(delegate () + { + List