Reimplement Contact Actions, Profile Editing, and Profile Image Changing.

This commit is contained in:
Alan Moon 2025-12-09 16:23:42 -08:00
parent 066686205c
commit 85e2c3eb70
17 changed files with 910 additions and 345 deletions

View File

@ -11,6 +11,6 @@
public virtual User? Owner { get; } public virtual User? Owner { get; }
public virtual User? User { get; } public virtual User? User { get; }
public enum ContactStatus { AwaitingApprovalFromOther = 0, AwaitingApprovalFromSelf = 1, Accepted = 2 } public enum ContactStatus { AwaitingApprovalFromOther = 0, AwaitingApprovalFromSelf = 1, Accepted = 2, NoRelation = 3 }
} }
} }

View File

@ -33,5 +33,12 @@ namespace qtcnet_client.Controls
} }
private void pbCurrentProfilePic_Click(object sender, EventArgs e) => OnProfileImageClicked?.Invoke(this, EventArgs.Empty); private void pbCurrentProfilePic_Click(object sender, EventArgs e) => OnProfileImageClicked?.Invoke(this, EventArgs.Empty);
public void RefreshInfo()
{
lblUsername.Text = $"Welcome, {Username}!";
lblCurrencyAmount.Text = CurrencyCount.ToString();
pbCurrentProfilePic.Image = ProfileImage;
}
} }
} }

View File

@ -154,6 +154,7 @@
lvUserList.TabIndex = 0; lvUserList.TabIndex = 0;
lvUserList.UseCompatibleStateImageBehavior = false; lvUserList.UseCompatibleStateImageBehavior = false;
lvUserList.View = View.SmallIcon; lvUserList.View = View.SmallIcon;
lvUserList.MouseDoubleClick += lvUserList_MouseDoubleClick;
// //
// ilStatusIcons // ilStatusIcons
// //

View File

@ -11,7 +11,11 @@ namespace qtcnet_client.Controls
{ {
public partial class MainTabControl : UserControl public partial class MainTabControl : UserControl
{ {
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public ListViewItem? SelectedUser { get; set; }
public event EventHandler? OnContactControlDoubleClicked; public event EventHandler? OnContactControlDoubleClicked;
public event EventHandler? OnUserItemDoubleClicked;
public event EventHandler? OnRoomControlDoubleClicked; public event EventHandler? OnRoomControlDoubleClicked;
public MainTabControl() public MainTabControl()
@ -21,18 +25,38 @@ namespace qtcnet_client.Controls
public void AddContacts(List<ContactControl> contactControls) public void AddContacts(List<ContactControl> contactControls)
{ {
tlpContactsList.SuspendLayout(); if(tlpContactsList.InvokeRequired)
foreach (ContactControl contactControl in contactControls)
{ {
contactControl.Width = tlpContactsList.ClientSize.Width; tlpContactsList.Invoke(() =>
contactControl.OnContactDoubleClicked += ContactControl_OnContactDoubleClicked; {
tlpContactsList.SuspendLayout();
foreach (ContactControl contactControl in contactControls)
{
contactControl.Width = tlpContactsList.ClientSize.Width;
contactControl.OnContactDoubleClicked += ContactControl_OnContactDoubleClicked;
}
tlpContactsList.Controls.Clear();
tlpContactsList.Controls.AddRange([.. contactControls.DistinctBy(ctrl => ctrl.UserId)]);
tlpContactsList.ResumeLayout(true);
});
} else
{
tlpContactsList.SuspendLayout();
foreach (ContactControl contactControl in contactControls)
{
contactControl.Width = tlpContactsList.ClientSize.Width;
contactControl.OnContactDoubleClicked += ContactControl_OnContactDoubleClicked;
}
tlpContactsList.Controls.Clear();
tlpContactsList.Controls.AddRange([.. contactControls.DistinctBy(ctrl => ctrl.UserId)]);
tlpContactsList.ResumeLayout(true);
} }
tlpContactsList.Controls.Clear();
tlpContactsList.Controls.AddRange([.. contactControls.DistinctBy(ctrl => ctrl.UserId)]);
tlpContactsList.ResumeLayout(true);
} }
private void ContactControl_OnContactDoubleClicked(object? sender, EventArgs e) => OnContactControlDoubleClicked?.Invoke(sender, e); private void ContactControl_OnContactDoubleClicked(object? sender, EventArgs e) => OnContactControlDoubleClicked?.Invoke(sender, e);
@ -57,12 +81,39 @@ namespace qtcnet_client.Controls
public void AddUsers(List<ListViewItem> users) public void AddUsers(List<ListViewItem> users)
{ {
lvUserList.SuspendLayout(); if(lvUserList.InvokeRequired)
{
lvUserList.Invoke(() =>
{
lvUserList.SuspendLayout();
lvUserList.Items.Clear(); lvUserList.Items.Clear();
lvUserList.Items.AddRange([.. users.DistinctBy(lvi => lvi.Tag)]); // Tag = UserId here lvUserList.Items.AddRange([.. users.DistinctBy(lvi => lvi.Tag)]); // Tag = UserId here
lvUserList.ResumeLayout(true); lvUserList.ResumeLayout(true);
});
} else
{
lvUserList.SuspendLayout();
lvUserList.Items.Clear();
lvUserList.Items.AddRange([.. users.DistinctBy(lvi => lvi.Tag)]); // Tag = UserId here
lvUserList.ResumeLayout(true);
}
}
private void lvUserList_MouseDoubleClick(object sender, MouseEventArgs e)
{
if(lvUserList.SelectedItems.Count > 0)
{
ListViewItem? lvi = lvUserList.SelectedItems[0];
if(lvi != null)
{
SelectedUser = lvi;
OnUserItemDoubleClicked?.Invoke(this, EventArgs.Empty);
}
}
} }
} }
} }

View File

@ -125,89 +125,89 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA+hMAAAJNU0Z0AUkBTAIBAQQB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA+hMAAAJNU0Z0AUkBTAIBAQQB
AAHIAQAByAEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASD/ AAHQAQAB0AEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASD/
AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AC4AAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AC4AAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B
0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYB 0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYB
BwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekD BwM0AVQDUQGiA14B0gNaAekDYAHoA10B0QNQAZ8DMQFNAwUBBhgAAwYBBwM0AVQDUQGiA14B0gNaAekD
YAHoA10B0QNQAZ8DMQFNAwUBBhQAAyABLQNUAasDWwHkA1YB9QMkAfsDPQH+Az0B/gMkAfsDUwH0A2IB YAHoA10B0QNQAZ8DMQFNAwUBBhQAAyABLQNUAasDWwHkA1cB9QMkAfsDPgH+Az4B/gMkAfsDUwH0A2IB
4QNRAaEDHgEqEAADIAEtA1QBqwNbAeQBTAFaAUwB9QEhAVkBIQH7ARkBWQEZAf4BGQFZARkB/gEhAVkB 4QNRAaEDHgEqEAADIAEtA1QBqwNbAeQBTQFaAU0B9QEhAVoBIQH7ARoBWgEaAf4BGgFaARoB/gEhAVoB
IQH7A1MB9ANiAeEDUQGhAx4BKhAAAyABLQNUAasDWwHkAUwCWgH1ASECWQH7ARkCWQH+ARkCWQH+ASEC IQH7A1MB9ANiAeEDUQGhAx4BKhAAAyABLQNUAasDWwHkAU0CWgH1ASECWgH7ARoCWgH+ARoCWgH+ASEC
WQH7A1MB9ANiAeEDUQGhAx4BKhAAAyABLQNUAasDWwHkAkwBWgH1AiEBWQH7AhkBWQH+AhkBWQH+AiEB WgH7A1MB9ANiAeEDUQGhAx4BKhAAAyABLQNUAasDWwHkAk0BWgH1AiEBWgH7AhoBWgH+AhoBWgH+AiEB
WQH7A1MB9ANiAeEDUQGhAx4BKgwAAxsBJQNYAb0DWgHyA0EB/gMwAf8DOQH/AzwB/wM2Af8DKgH/AyQB WgH7A1MB9ANiAeEDUQGhAx4BKgwAAxsBJQNYAb0DWgHyA0IB/gMwAf8DOQH/AzwB/wM2Af8DKgH/AyQB
/wNAAf0DXgHwA1YBsgMaASMIAAMbASUDWAG9A1oB8gEZAWEBGQH+AQABVwEAAf8BAAFnAQAB/wEAAWwB /wNAAf0DXgHwA1YBsgMaASMIAAMbASUDWAG9A1oB8gEaAWIBGgH+AQABVwEAAf8BAAFnAQAB/wEAAWwB
AAH/AQABYQEAAf8BAAFMAQAB/wEAAUABAAH/ATIBQAEyAf0BWwFeAVsB8ANWAbIBGQEaARkBIwgAAxsB AAH/AQABYQEAAf8BAAFMAQAB/wEAAUABAAH/ATQBQAE0Af0BXAFeAVwB8ANWAbIBGQEaARkBIwgAAxsB
JQNYAb0DWgHyARkCYQH+AQACVwH/AQACZwH/AQACbAH/AQACYQH/AQACTAH/AQACQAH/ATICQAH9AVsC JQNYAb0DWgHyARoCYgH+AQACVwH/AQACZwH/AQACbAH/AQACYQH/AQACTAH/AQACQAH/ATQCQAH9AVwC
XgHwA1YBsgEZAhoBIwgAAxsBJQNYAb0DWgHyAhkBYQH+AgABVwH/AgABZwH/AgABbAH/AgABYQH/AgAB XgHwA1YBsgEZAhoBIwgAAxsBJQNYAb0DWgHyAhoBYgH+AgABVwH/AgABZwH/AgABbAH/AgABYQH/AgAB
TAH/AgABQAH/AjIBQAH9AlsBXgHwA1YBsgIZARoBIwQAAwMBBANSAaUDYAHzA0kB/wNVAf8DZQH/A3EB TAH/AgABQAH/AjQBQAH9AlwBXgHwA1YBsgIZARoBIwQAAwMBBANSAaUDYAHzA0kB/wNVAf8DZQH/A3EB
/wN1Af8DcQH/A2QB/wNMAf8DMQH/Az0B/gNiAe4DUAGaAwMBBAMDAQQBUgFTAVIBpQFYAW8BWAHzAQAB /wN1Af8DcQH/A2QB/wNMAf8DMQH/Az4B/gNiAe4DUAGaAwMBBAMDAQQBUgFTAVIBpQFaAW8BWgHzAQAB
ggEAAf8BAAGZAQAB/wEAAbYBAAH/AQABzAEAAf8BAAHTAQAB/wEAAcsBAAH/AQABswEAAf8BAAGIAQAB ggEAAf8BAAGZAQAB/wEAAbYBAAH/AQABzAEAAf8BAAHTAQAB/wEAAcsBAAH/AQABswEAAf8BAAGIAQAB
/wEAAVcBAAH/ARkBWQEZAf4BYAFiAWAB7gNQAZoDAwEEAwMBBAFSAlMBpQFYAm8B8wEAAoIB/wEAApkB /wEAAVcBAAH/ARoBWgEaAf4BYQFiAWEB7gNQAZoDAwEEAwMBBAFSAlMBpQFaAm8B8wEAAoIB/wEAApkB
/wEAArYB/wEAAswB/wEAAtMB/wEAAssB/wEAArMB/wEAAogB/wEAAlcB/wEZAlkB/gFgAmIB7gNQAZoD /wEAArYB/wEAAswB/wEAAtMB/wEAAssB/wEAArMB/wEAAogB/wEAAlcB/wEaAloB/gFhAmIB7gNQAZoD
AwEEAwMBBAJSAVMBpQJYAW8B8wIAAYIB/wIAAZkB/wIAAbYB/wIAAcwB/wIAAdMB/wIAAcsB/wIAAbMB AwEEAwMBBAJSAVMBpQJaAW8B8wIAAYIB/wIAAZkB/wIAAbYB/wIAAcwB/wIAAdMB/wIAAcsB/wIAAbMB
/wIAAYgB/wIAAVcB/wIZAVkB/gJgAWIB7gNQAZoDAwEEAy0BRANgAegDfAH+A24B/wN7Af8DhQH/A4oB /wIAAYgB/wIAAVcB/wIaAVoB/gJhAWIB7gNQAZoDAwEEAy0BRANgAegDfQH+A24B/wN7Af8DhQH/A4oB
/wOMAf8DigH/A4UB/wN2Af8DVwH/AzIB/wNAAf0DXgHdAyoBPwMtAUQBYAFpAWAB6AEZAYIBGQH+AQAB /wOMAf8DigH/A4UB/wN2Af8DVwH/AzIB/wNAAf0DXgHdAyoBPwMtAUQBYAFpAWAB6AEaAYABGgH+AQAB
xgEAAf8BAAHcAQAB/wEAAe4BAAH/AQAB+AEAAf8BAAH7AQAB/wEAAfkBAAH/AQAB7wEAAf8BAAHUAQAB xgEAAf8BAAHcAQAB/wEAAe4BAAH/AQAB+AEAAf8BAAH7AQAB/wEAAfkBAAH/AQAB7wEAAf8BAAHUAQAB
/wEAAZwBAAH/AQABWgEAAf8BMgFAATIB/QNeAd0DKgE/Ay0BRAFgAmkB6AEZAoIB/gEAAsYB/wEAAtwB /wEAAZwBAAH/AQABWgEAAf8BNAFAATQB/QNeAd0DKgE/Ay0BRAFgAmkB6AEaAoAB/gEAAsYB/wEAAtwB
/wEAAu4B/wEAAvgB/wEAAvsB/wEAAvkB/wEAAu8B/wEAAtQB/wEAApwB/wEAAloB/wEyAkAB/QNeAd0D /wEAAu4B/wEAAvgB/wEAAvsB/wEAAvkB/wEAAu8B/wEAAtQB/wEAApwB/wEAAloB/wE0AkAB/QNeAd0D
KgE/Ay0BRAJgAWkB6AIZAYIB/gIAAcYB/wIAAdwB/wIAAe4B/wIAAfgB/wIAAfsB/wIAAfkB/wIAAe8B KgE/Ay0BRAJgAWkB6AIaAYAB/gIAAcYB/wIAAdwB/wIAAe4B/wIAAfgB/wIAAfsB/wIAAfkB/wIAAe8B
/wIAAdQB/wIAAZwB/wIAAVoB/wIyAUAB/QNeAd0DKgE/A04BlQN3AfgDfwH/A4UB/wOKAf8DjQH/A44B /wIAAdQB/wIAAZwB/wIAAVoB/wI0AUAB/QNeAd0DKgE/A04BlQN3AfgDfwH/A4UB/wOKAf8DjQH/A44B
/wOOAf8DjgH/A40B/wOJAf8DdwH/A00B/wMlAf8DWgHyA0oBiwNOAZUBQwF+AUMB+AEAAeUBAAH/AQAB /wOOAf8DjgH/A40B/wOJAf8DdwH/A00B/wMlAf8DWgHyA0oBiwNOAZUBRAF9AUQB+AEAAeUBAAH/AQAB
7wEAAf8BAAH4AQAB/wEAAf0BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/gEAAf8BAAH2AQAB 7wEAAf8BAAH4AQAB/wEAAf0BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/gEAAf8BAAH2AQAB
/wEAAdUBAAH/AQABiwEAAf8BAAFBAQAB/wNaAfIDSgGLA04BlQFDAn4B+AEAAuUB/wEAAu8B/wEAAvgB /wEAAdUBAAH/AQABiwEAAf8BAAFBAQAB/wNaAfIDSgGLA04BlQFEAn0B+AEAAuUB/wEAAu8B/wEAAvgB
/wEAAv0B/wEAA/8BAAP/AQAD/wEAAv4B/wEAAvYB/wEAAtUB/wEAAosB/wEAAkEB/wNaAfIDSgGLA04B /wEAAv0B/wEAA/8BAAP/AQAD/wEAAv4B/wEAAvYB/wEAAtUB/wEAAosB/wEAAkEB/wNaAfIDSgGLA04B
lQJDAX4B+AIAAeUB/wIAAe8B/wIAAfgB/wIAAf0B/wIAAv8CAAL/AgAC/wIAAf4B/wIAAfYB/wIAAdUB lQJEAX0B+AIAAeUB/wIAAe8B/wIAAfgB/wIAAf0B/wIAAv8CAAL/AgAC/wIAAf4B/wIAAfYB/wIAAdUB
/wIAAYsB/wIAAUEB/wNaAfIDSgGLA18B0wN+AfwDkwH/A44B/wONAf8DjgH/A44B/wOOAf8DjgH/A44B /wIAAYsB/wIAAUEB/wNaAfIDSgGLA18B0wN+AfwDkwH/A44B/wONAf8DjgH/A44B/wOOAf8DjgH/A44B
/wONAf8DhQH/A2cB/wM0Af8DQQH5A1oBxAFbAV8BWwHTASsBrgErAfwBDgH7AQ4B/wEDAf0BAwH/AQAB /wONAf8DhQH/A2cB/wM0Af8DQQH5A1oBxAFbAV8BWwHTASsBrAErAfwBDgH7AQ4B/wEDAf0BAwH/AQAB
/gEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/QEAAf8BAAHvAQAB /gEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/QEAAf8BAAHvAQAB
/wEAAbkBAAH/AQABXQEAAf8DQQH5A1oBxAFbAl8B0wErAq4B/AEOAvsB/wEDAv0B/wEAAv4B/wEAA/8B /wEAAbkBAAH/AQABXQEAAf8DQQH5A1oBxAFbAl8B0wErAqwB/AEOAvsB/wEDAv0B/wEAAv4B/wEAA/8B
AAP/AQAD/wEAA/8BAAP/AQAC/QH/AQAC7wH/AQACuQH/AQACXQH/A0EB+QNaAcQCWwFfAdMCKwGuAfwC AAP/AQAD/wEAA/8BAAP/AQAC/QH/AQAC7wH/AQACuQH/AQACXQH/A0EB+QNaAcQCWwFfAdMCKwGsAfwC
DgH7Af8CAwH9Af8CAAH+Af8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAf0B/wIAAe8B/wIAAbkB/wIAAV0B DgH7Af8CAwH9Af8CAAH+Af8CAAL/AgAC/wIAAv8CAAL/AgAC/wIAAf0B/wIAAe8B/wIAAbkB/wIAAV0B
/wNBAfkDWgHEA24B9QOAAf4DnwH/A5MB/wOPAf8DjgH/A44B/wOOAf8DjgH/A44B/wOOAf8DiwH/A3cB /wNBAfkDWgHEA24B9QOAAf4DnwH/A5MB/wOPAf8DjgH/A44B/wOOAf8DjgH/A44B/wOOAf8DiwH/A3cB
/wNIAf8DQAH9A2IB4QFVAXMBVQH1AT0BzQE9Af4BJwH/AScB/wELAf8BCwH/AQEB/wEBAf8BAAH/AQAB /wNIAf8DQAH9A2IB4QFWAXEBVgH1AT4BywE+Af4BJwH/AScB/wELAf8BCwH/AQEB/wEBAf8BAAH/AQAB
/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH5AQAB/wEAAdYBAAH/AQAB /wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH5AQAB/wEAAdYBAAH/AQAB
gQEAAf8BMgFAATIB/QNiAeEBVQJzAfUBPQLNAf4BJwP/AQsD/wEBA/8BAAP/AQAD/wEAA/8BAAP/AQAD gQEAAf8BNAFAATQB/QNiAeEBVgJxAfUBPgLLAf4BJwP/AQsD/wEBA/8BAAP/AQAD/wEAA/8BAAP/AQAD
/wEAA/8BAAL5Af8BAALWAf8BAAKBAf8BMgJAAf0DYgHhAlUBcwH1Aj0BzQH+AicC/wILAv8CAQL/AgAC /wEAA/8BAAL5Af8BAALWAf8BAAKBAf8BNAJAAf0DYgHhAlYBcQH1Aj4BywH+AicC/wILAv8CAQL/AgAC
/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAB+QH/AgAB1gH/AgABgQH/AjIBQAH9A2IB4QNrAfYDgAH+A6sB /wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAB+QH/AgAB1gH/AgABgQH/AjQBQAH9A2IB4QNpAfYDgAH+A6sB
/wOZAf8DkAH/A44B/wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wN/Af8DVQH/A0AB/QNeAeIBSAF5AUgB /wOZAf8DkAH/A44B/wOOAf8DjgH/A44B/wOOAf8DjgH/A40B/wN/Af8DVQH/A0AB/QNeAeIBSAF4AUgB
9gFgAc0BYAH+AUIB/wFCAf8BGQH/ARkB/wEEAf8BBAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB 9gFhAcsBYQH+AUIB/wFCAf8BGQH/ARkB/wEEAf8BBAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB
/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/QEAAf8BAAHkAQAB/wEAAZgBAAH/ATIBQAEyAf0DXgHiAUgC /wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/QEAAf8BAAHkAQAB/wEAAZgBAAH/ATQBQAE0Af0DXgHiAUgC
eQH2AWACzQH+AUID/wEZA/8BBAP/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAP/AQAC/QH/AQAC5AH/AQAC eAH2AWECywH+AUID/wEZA/8BBAP/AQAD/wEAA/8BAAP/AQAD/wEAA/8BAAP/AQAC/QH/AQAC5AH/AQAC
mAH/ATICQAH9A14B4gJIAXkB9gJgAc0B/gJCAv8CGQL/AgQC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC mAH/ATQCQAH9A14B4gJIAXgB9gJhAcsB/gJCAv8CGQL/AgQC/wIAAv8CAAL/AgAC/wIAAv8CAAL/AgAC
/wIAAf0B/wIAAeQB/wIAAZgB/wIyAUAB/QNeAeIDYQHWA34B/AO4Af8DowH/A5MB/wOOAf8DjgH/A44B /wIAAf0B/wIAAeQB/wIAAZgB/wI0AUAB/QNeAeIDYQHWA34B/AO4Af8DowH/A5MB/wOOAf8DjgH/A44B
/wOOAf8DjgH/A44B/wONAf8DggH/A1wB/wNNAfoDWgHHAVwBYQFcAdYBZAGyAWQB/AFfAf8BXwH/AS8B /wOOAf8DjgH/A44B/wONAf8DggH/A1wB/wNNAfoDWgHHAVwBYQFcAdYBZAGwAWQB/AFfAf8BXwH/AS8B
/wEvAf8BDAH/AQwB/wEBAf8BAQH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB /wEvAf8BDAH/AQwB/wEBAf8BAQH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAAH/AQAB
/wEAAf4BAAH/AQAB6gEAAf8BAAGlAQAB/wEtAU0BLQH6A1oBxwFcAmEB1gFkArIB/AFfA/8BLwP/AQwD /wEAAf4BAAH/AQAB6gEAAf8BAAGlAQAB/wEuAU0BLgH6A1oBxwFcAmEB1gFkArAB/AFfA/8BLwP/AQwD
/wEBA/8BAAP/AQAD/wEAA/8BAAP/AQAD/wEAAv4B/wEAAuoB/wEAAqUB/wEtAk0B+gNaAccCXAFhAdYC /wEBA/8BAAP/AQAD/wEAA/8BAAP/AQAD/wEAAv4B/wEAAuoB/wEAAqUB/wEuAk0B+gNaAccCXAFhAdYC
ZAGyAfwCXwL/Ai8C/wIMAv8CAQL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAH+Af8CAAHqAf8CAAGlAf8C ZAGwAfwCXwL/Ai8C/wIMAv8CAQL/AgAC/wIAAv8CAAL/AgAC/wIAAv8CAAH+Af8CAAHqAf8CAAGlAf8C
LQFNAfoDWgHHA1ABmgOHAfkDxQH/A7IB/wOcAf8DkQH/A44B/wOOAf8DjgH/A44B/wOPAf8DjgH/A4MB LgFNAfoDWgHHA1ABmgOGAfkDxQH/A7IB/wOcAf8DkQH/A44B/wOOAf8DjgH/A44B/wOPAf8DjgH/A4MB
/wNgAf8DWgHyA0wBkANQAZoBagGQAWoB+QF8Af8BfAH/AVEB/wFRAf8BHwH/AR8B/wEHAf8BBwH/AQEB /wNgAf8DWgHyA0wBkANQAZoBagGPAWoB+QF8Af8BfAH/AVEB/wFRAf8BHwH/AR8B/wEHAf8BBwH/AQEB
/wEBAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAgH/AQIB/wECAf4BAgH/AQAB6wEAAf8BAAGtAQAB /wEBAf8BAAH/AQAB/wEAAf8BAAH/AQAB/wEAAf8BAgH/AQIB/wECAf4BAgH/AQAB6wEAAf8BAAGtAQAB
/wFaAWsBWgHyA0wBkANQAZoBagKQAfkBfAP/AVED/wEfA/8BBwP/AQED/wEAA/8BAAP/AQAD/wECA/8B /wFaAWsBWgHyA0wBkANQAZoBagKPAfkBfAP/AVED/wEfA/8BBwP/AQED/wEAA/8BAAP/AQAD/wECA/8B
AgL+Af8BAALrAf8BAAKtAf8BWgJrAfIDTAGQA1ABmgJqAZAB+QJ8Av8CUQL/Ah8C/wIHAv8CAQL/AgAC AgL+Af8BAALrAf8BAAKtAf8BWgJrAfIDTAGQA1ABmgJqAY8B+QJ8Av8CUQL/Ah8C/wIHAv8CAQL/AgAC
/wIAAv8CAAL/AgIC/wICAf4B/wIAAesB/wIAAa0B/wJaAWsB8gNMAZADLwFJA2wB6wOeAf4DxgH/A64B /wIAAv8CAAL/AgIC/wICAf4B/wIAAesB/wIAAa0B/wJaAWsB8gNMAZADLwFJA2wB6wOcAf4DxgH/A64B
/wOcAf8DkwH/A5AB/wOPAf8DkAH/A5MB/wOTAf8DhQH/A00B/QNgAeADLQFFAy8BSQNsAesBgAHNAYAB /wOcAf8DkwH/A5AB/wOPAf8DkAH/A5MB/wOTAf8DhQH/A0wB/QNgAeADLQFFAy8BSQNsAesBgAHLAYAB
/gF/Af8BfwH/AUkB/wFJAf8BHwH/AR8B/wEMAf8BDAH/AQUB/wEFAf8BAwH/AQMB/wEFAf8BBQH/AQoB /gF/Af8BfwH/AUkB/wFJAf8BHwH/AR8B/wEMAf8BDAH/AQUB/wEFAf8BAwH/AQMB/wEFAf8BBQH/AQoB
/wEKAf8BCgH+AQoB/wEBAe0BAQH/ATIBtgEyAf0BYAFmAWAB4AMtAUUDLwFJA2wB6wGAAs0B/gF/A/8B /wEKAf8BCgH+AQoB/wEBAe0BAQH/ATQBtgE0Af0BYAFmAWAB4AMtAUUDLwFJA2wB6wGAAssB/gF/A/8B
SQP/AR8D/wEMA/8BBQP/AQMD/wEFA/8BCgP/AQoC/gH/AQEC7QH/ATICtgH9AWACZgHgAy0BRQMvAUkD SQP/AR8D/wEMA/8BBQP/AQMD/wEFA/8BCgP/AQoC/gH/AQEC7QH/ATQCtgH9AWACZgHgAy0BRQMvAUkD
bAHrAoABzQH+An8C/wJJAv8CHwL/AgwC/wIFAv8CAwL/AgUC/wIKAv8CCgH+Af8CAQHtAf8CMgG2Af0C bAHrAoABywH+An8C/wJJAv8CHwL/AgwC/wIFAv8CAwL/AgUC/wIKAv8CCgH+Af8CAQHtAf8CNAG2Af0C
YAFmAeADLQFFAwMBBANWAa4DbwH1A9kB/wPLAf8DtwH/A6cB/wOdAf8DmgH/A5wB/wOfAf8DmwH/A4kB YAFmAeADLQFFAwMBBANWAa4DbgH1A9kB/wPLAf8DtwH/A6cB/wOdAf8DmgH/A5wB/wOfAf8DmwH/A4kB
/wNoAfADUgGjAwMBBAMDAQQDVgGuAW4BcwFuAfUBqAH/AagB/wGJAf8BiQH/AVwB/wFcAf8BNwH/ATcB /wNoAfADUgGjAwMBBAMDAQQDVgGuAW4BcQFuAfUBqAH/AagB/wGJAf8BiQH/AVwB/wFcAf8BNwH/ATcB
/wEiAf8BIgH/ARsB/wEbAf8BHwH/AR8B/wEmAf8BJgH/AR0B/wEdAf8BBQHzAQUB/wFbAWgBWwHwA1IB /wEiAf8BIgH/ARsB/wEbAf8BHwH/AR8B/wEmAf8BJgH/AR0B/wEdAf8BBQHzAQUB/wFcAWgBXAHwA1IB
owMDAQQDAwEEA1YBrgFuAnMB9QGoA/8BiQP/AVwD/wE3A/8BIgP/ARsD/wEfA/8BJgP/AR0D/wEFAvMB owMDAQQDAwEEA1YBrgFuAnEB9QGoA/8BiQP/AVwD/wE3A/8BIgP/ARsD/wEfA/8BJgP/AR0D/wEFAvMB
/wFbAmgB8ANSAaMDAwEEAwMBBANWAa4CbgFzAfUCqAL/AokC/wJcAv8CNwL/AiIC/wIbAv8CHwL/AiYC /wFcAmgB8ANSAaMDAwEEAwMBBANWAa4CbgFxAfUCqAL/AokC/wJcAv8CNwL/AiIC/wIbAv8CHwL/AiYC
/wIdAv8CBQHzAf8CWwFoAfADUgGjAwMBBAQAAxwBJwNdAccDdgH2A60B/gPXAf8DzAH/A8IB/wO7Af8D /wIdAv8CBQHzAf8CXAFoAfADUgGjAwMBBAQAAxwBJwNdAccDdQH2A6sB/gPXAf8DzAH/A8IB/wO7Af8D
twH/A7EB/wOAAf4DaAH0A1kBvAMbASYIAAMcAScDXQHHAXEBeQFxAfYBhQHNAYUB/gGlAf8BpQH/AYsB twH/A7EB/wOAAf4DaAH0A1kBvAMbASYIAAMcAScDXQHHAW8BeAFvAfYBgwHLAYMB/gGlAf8BpQH/AYsB
/wGLAf8BdAH/AXQB/wFmAf8BZgH/AVwB/wFcAf8BTgH/AU4B/wFJAc0BSQH+AVMBdgFTAfQBVwFZAVcB /wGLAf8BdAH/AXQB/wFmAf8BZgH/AVwB/wFcAf8BTgH/AU4B/wFKAcsBSgH+AVMBdQFTAfQBVwFZAVcB
vAMbASYIAAMcAScDXQHHAXECeQH2AYUCzQH+AaUD/wGLA/8BdAP/AWYD/wFcA/8BTgP/AUkCzQH+AVMC vAMbASYIAAMcAScDXQHHAW8CeAH2AYMCywH+AaUD/wGLA/8BdAP/AWYD/wFcA/8BTgP/AUoCywH+AVMC
dgH0AVcCWQG8AxsBJggAAxwBJwNdAccCcQF5AfYChQHNAf4CpQL/AosC/wJ0Av8CZgL/AlwC/wJOAv8C dQH0AVcCWQG8AxsBJggAAxwBJwNdAccCbwF4AfYCgwHLAf4CpQL/AosC/wJ0Av8CZgL/AlwC/wJOAv8C
SQHNAf4CUwF2AfQCVwFZAbwDGwEmDAADIQEwA1kBtgNmAe4DkAH6A74B/QPUAf8DzAH/A74B/QODAfkD SgHLAf4CUwF1AfQCVwFZAbwDGwEmDAADIQEwA1kBtgNlAe4DjQH6A74B/QPUAf8DzAH/A74B/QOCAfkD
bAHrA1UBrAMfASwQAAMhATADWQG2AWQBaAFkAe4BfQGdAX0B+gGuAb4BrgH9AZ8B/wGfAf8BjAH/AYwB bAHrA1UBrAMfASwQAAMhATADWQG2AWMBZwFjAe4BfQGbAX0B+gGuAb4BrgH9AZ8B/wGfAf8BjAH/AYwB
/wFdAb4BXQH9AWgBkAFoAfkBYQFsAWEB6wNVAawDHwEsEAADIQEwA1kBtgFkAmgB7gF9Ap0B+gGuAr4B /wFcAb4BXAH9AWgBjwFoAfkBYQFsAWEB6wNVAawDHwEsEAADIQEwA1kBtgFjAmcB7gF9ApsB+gGuAr4B
/QGfA/8BjAP/AV0CvgH9AWgCkAH5AWECbAHrA1UBrAMfASwQAAMhATADWQG2AmQBaAHuAn0BnQH6Aq4B /QGfA/8BjAP/AVwCvgH9AWgCjwH5AWECbAHrA1UBrAMfASwQAAMhATADWQG2AmMBZwHuAn0BmwH6Aq4B
vgH9Ap8C/wKMAv8CXQG+Af0CaAGQAfkCYQFsAesDVQGsAx8BLBQAAwYBBwM2AVgDVQGsA2YB5QOdAfwD vgH9Ap8C/wKMAv8CXAG+Af0CaAGPAfkCYQFsAesDVQGsAx8BLBQAAwYBBwM2AVgDVQGsA2YB5QOaAfwD
kgH7A2UB4gNTAacDMwFRAwYBBxgAAwYBBwM2AVgDVQGsA2YB5QF+AbIBfgH8AWsBnQFrAfsDZQHiA1MB kQH7A2UB4gNTAacDMwFRAwYBBxgAAwYBBwM2AVgDVQGsA2YB5QF+AbABfgH8AWkBnAFpAfsDZQHiA1MB
pwMzAVEDBgEHGAADBgEHAzYBWANVAawDZgHlAX4CsgH8AWsCnQH7A2UB4gNTAacDMwFRAwYBBxgAAwYB pwMzAVEDBgEHGAADBgEHAzYBWANVAawDZgHlAX4CsAH8AWkCnAH7A2UB4gNTAacDMwFRAwYBBxgAAwYB
BwM2AVgDVQGsA2YB5QJ+AbIB/AJrAZ0B+wNlAeIDUwGnAzMBUQMGAQcMAAFCAU0BPgcAAT4DAAEoAwAB BwM2AVgDVQGsA2YB5QJ+AbAB/AJpAZwB+wNlAeIDUwGnAzMBUQMGAQcMAAFCAU0BPgcAAT4DAAEoAwAB
QAMAASADAAEBAQABAQYAAQEWAAP/gQAB4AEHAeABBwHgAQcB4AEHAcABAwHAAQMBwAEDAcABAwGAAQEB QAMAASADAAEBAQABAQYAAQEWAAP/gQAB4AEHAeABBwHgAQcB4AEHAcABAwHAAQMBwAEDAcABAwGAAQEB
gAEBAYABAQGAAQFQAAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeAB gAEBAYABAQGAAQFQAAGAAQEBgAEBAYABAQGAAQEBwAEDAcABAwHAAQMBwAEDAeABBwHgAQcB4AEHAeAB
Bws= Bws=
@ -220,170 +220,170 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAJiYAAAJNU0Z0AUkBTAIBAQMB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAECYAAAJNU0Z0AUkBTAIBAQMB
AAE4AQABOAEAASABAAEgAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABgAMAASADAAEBAQABIAYAAUB6 AAFAAQABQAEAASABAAEgAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABgAMAASADAAEBAQABIAYAAUB6
AAJMAUsB5wEIAQoBAAH/AyoBQAwAAyoBQAM2AVcDPwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8B AAJRAVAB5wEIAQoBAAH/AyoBQAwAAyoBQAM2AVcDPwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8B
bAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAjsBOgFiAzMBUQMYASFUAANTAaIDWwHAIAAD bAM/AWwDPwFsAz8BbAM/AWwDPwFsAz8BbAM/AWwDPwFsAjsBOgFiAzMBUQMYASFUAANTAaIDWwHAIAAD
VAGmA1kBvPAAAyEBMANGAYAUAAEVAR8BBAH/AQ0BFQEAAf8BCAEKAQAB/wEIAQoBAAH/DAADRAF6A1MB VAGmA1kBvPAAAyEBMANGAYAUAAEVAR8BBAH/AQ0BFQEAAf8BCAEKAQAB/wEIAQoBAAH/DAADRAF6A1MB
pwFoAWEBWgHPAWgBYQFaAc8BaAFhAVoBzwFoAWEBWgHPAWgBYQFaAc8BaAFhAVoBzwFoAWEBWgHPAWgB pwFlAWEBWwHPAWUBYQFbAc8BZQFhAVsBzwFlAWEBWwHPAWUBYQFbAc8BZQFhAVsBzwFlAWEBWwHPAWUB
YQFaAc8BaAFhAVoBzwFoAWEBWgHPAWgBYQFaAc8BaAFhAVoBzwFoAWEBWgHPAWgBYQFaAc8BaAFhAVoB YQFbAc8BZQFhAVsBzwFlAWEBWwHPAWUBYQFbAc8BZQFhAVsBzwFlAWEBWwHPAWUBYQFbAc8BZQFhAVsB
zwFnAWABWQHOAVoBWQFYAbsCUAFPAZsDKgFAVAADYQHQA20B7iAAA2IB1ANrAenkAANZAb8BCAEKAQAB zwFjAWABWwHOA1kBuwJQAU8BmwMqAUBUAANfAdADbAHuIAADYQHUA2oB6eQAA1oBvwEIAQoBAAH/AQgB
/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wNZAb8DWQG/AUMB CgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/A1oBvwNaAb8BQwF0AQcB
dAEHAf8BRwF3AQwB/wElAUcBAAH/AQ4BGQEAAf8MAAJLAUoBigFdAVoBWAG9AY8BZwFFAeoBjwFnAUUB /wFHAXcBDAH/ASUBRwEAAf8BDgEZAQAB/wwAAksBSgGKAVwBWgFYAb0BhwFnAUgB6gGHAWcBSAHqAYcB
6gGPAWcBRQHqAY8BZwFFAeoBjwFnAUUB6gGPAWcBRQHqAY8BZwFFAeoBjwFnAUUB6gGPAWcBRQHqAY8B ZwFIAeoBhwFnAUgB6gGHAWcBSAHqAYcBZwFIAeoBhwFnAUgB6gGHAWcBSAHqAYcBZwFIAeoBhwFnAUgB
ZwFFAeoBjwFnAUUB6gGPAWcBRQHqAY8BZwFFAeoBjwFnAUUB6gGPAWcBRQHqAYwBagFFAekBagFfAVgB 6gGHAWcBSAHqAYcBZwFIAeoBhwFnAUgB6gGHAWcBSAHqAYcBZwFIAeoBhQFpAUkB6QFnAV8BWgHTA1UB
0wFWAlUBrwMuAUhUAANhAdADbQHuIAADYgHUA2sB6eAAAQgBCgEAAf8BEAEeAQAB/wEhAUEBAAH/AScB rwMuAUhUAANfAdADbAHuIAADYQHUA2oB6eAAAQgBCgEAAf8BEAEeAQAB/wEhAUEBAAH/AScBSwEAAf8B
SwEAAf8BJgFKAQAB/wEhAUEBAAH/ARABHgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BKQFOAQAB JgFKAQAB/wEhAUEBAAH/ARABHgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BKQFOAQAB/wFaAZYB
/wFaAZYBEAH/AVoBnAEQAf8BcwG2ASYB/wEYAS4BAAH/DAADSQGGAloBWAG3AYEBZQFQAeMBgQFlAVAB EAH/AVoBnAEQAf8BcwG2ASYB/wEYAS4BAAH/DAADSQGGAloBWAG3AXsBZQFTAeMBewFlAVMB4wF7AWUB
4wGBAWUBUAHjAYEBZQFQAeMBiAFqAU4B5gGdAWoBQAHtAbcBbwEsAfQB3AF3AQ4B/AH/AXgBAAL/AXgB UwHjAXsBZQFTAeMBggFqAVEB5gGWAWoBRQHtAa8BbQEwAfQB1wF3ARAB/AH/AXgBAAL/AXgBAAH/AbMB
AAH/AbkBbgEpAfUBiAFqAU4B5gGBAWUBUAHjAYEBZQFQAeMBgQFlAVAB4wGAAWUBTwHiAWQBXgFZAc0C bgEsAfUBggFqAVEB5gF7AWUBUwHjAXsBZQFTAeMBewFlAVMB4wF5AWUBUgHiAWEBXgFbAc0CVQFTAaoC
VQFTAaoCLgEtAUZUAANhAdADbQHuIAADYgHUA2sB6dwAAQgBCgEAAf8BPQFxAQIB/wFMAYYBBwH/AVIB LgEtAUZUAANfAdADbAHuIAADYQHUA2oB6dwAAQgBCgEAAf8BPQFxAQIB/wFMAYYBBwH/AVIBjAEIAf8B
jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFMAX8BDwH/ATsBZwEIAf8BIQE0AQgB UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFMAX8BDwH/ATsBZwEIAf8BIQE0AQgB/wFTAY4B
/wFTAY4BCwH/AVoBnAEQAf8BcgGzAScB/wFTAYEBGwH/EAADKwFBAzYBWQJAAT8BbgJAAT8BbgJAAT8B CwH/AVoBnAEQAf8BcgGzAScB/wFTAYEBGwH/EAADKwFBAzYBWQJAAT8BbgJAAT8BbgJAAT8BbgJAAT8B
bgJAAT8BbgNEAXsCUQFQAZ8BYAFdAVoBxQGcAWsBPQHuAf8BeAEAAv8BeAEAAf8BYwFfAVoByQNFAXwC bgNEAXsCUQFQAZ8CXQFbAcUBlQFqAUIB7gH/AXgBAAL/AXgBAAH/AWABXwFbAckDRQF8AkABPwFuAkAB
QAE/AW4CQAE/AW4CQAE/AW4DPwFtAzsBYwMzAVIDGQEiVAADYQHQA20B7iAAA2IB1ANrAenYAAEVASkB PwFuAkABPwFuAz8BbQM7AWMDMwFSAxkBIlQAA18B0ANsAe4gAANhAdQDagHp2AABFQEpAQAB/wFKAYQB
AAH/AUoBhAEEAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8B BAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8B
UgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BVgGQAQwB/wFaAZoBEAH/AVoBnAEQAf8BcgGpATAB/wEIAQoB UgGMARAB/wFaAZQBEAH/AVYBkAEMAf8BWgGaARAB/wFaAZwBEAH/AXIBqQEwAf8BCAEKAQAB/wEIAQoB
AAH/AQgBCgEAAf8MAAMMARADEQEWAxUBHAMVARwDFQEcAxUBHAMhATACPgE9AWkCUwFSAaUBhwFpAU0B AAH/DAADDAEQAxEBFgMVARwDFQEcAxUBHAMVARwDIQEwAj4BPQFpAlMBUgGlAYABZwFRAeUB/wF4AQAC
5QH/AXgBAAL/AXgBAAH/AlUBUwGqAyIBMQMVARwDFQEcAxUBHAMUARsDEwEZAxABFQMHAQlUAANhAdAD /wF4AQAB/wJVAVMBqgMiATEDFQEcAxUBHAMVARwDFAEbAxMBGQMQARUDBwEJVAADXwHQA2wB7iAAA2EB
bQHuIAADYgHUA2sB6dQAARYBJwECAf8BSQGAAQcB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB 1ANqAenUAAEWAScBAgH/AUkBgAEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB
CAH/AVIBjAEIAf8BUgGMAQsB/wFSAYwBEAH/AVIBjAEQAf8BWAGSARAB/wFaAZQBEAH/AVoBmwEQAf8B CAH/AVIBjAELAf8BUgGMARAB/wFSAYwBEAH/AVgBkgEQAf8BWgGUARAB/wFaAZsBEAH/AVoBnAEQAf8B
WgGcARAB/wFcAZ4BEgH/ATsBbQEDAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8IAAMFBAYECAEKAwgB XAGeARIB/wE7AW0BAwH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/CAADBQQGBAgBCgMIAQoDCAEKAwgB
CgMIAQoDCAEKAxcBHwI5ATgBXQNRAZ4BgQFlAVAB4wH/AXgBAAL/AXgBAAH/A1IBowMYASEDCAEKAwgB CgMXAR8COQE4AV0DUQGeAXsBZQFTAeMB/wF4AQAC/wF4AQAB/wNSAaMDGAEhAwgBCgMIAQoDCAEKAwgB
CgMIAQoDCAEKAwcBCQMGAQcDAgEDVAADYQHQA20B7iAAA2IB1ANrAenQAAFUAVYBUAHfAUcBgAEDAf8B CgMHAQkDBgEHAwIBA1QAA18B0ANsAe4gAANhAdQDagHp0AACVwFUAd8BRwGAAQMB/wFSAYwBCAH/AVIB
UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwB jAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BUgGMARAB
EAH/AVIBjAEQAf8BWgGUARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8B /wFaAZQBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZgBEAH/ARYB
WgGYARAB/wEWASoBAAH/AQgBCgEAAf8BCAEKAQAB/xwAAxIBFwM1AVYDUAGaAXwBZwFTAeEB/wF4AQAC KgEAAf8BCAEKAQAB/wEIAQoBAAH/HAADEgEXAzUBVgNQAZoBdgFmAVYB4QH/AXgBAAL/AXgBAAH/AlEB
/wF4AQAB/wJRAVABnwMSARhwAANhAdADbQHuIAADYgHUA2sB6dAAASwBUAEAAf8BSgGMAQAB/wFSAYwB UAGfAxIBGHAAA18B0ANsAe4gAANhAdQDagHp0AABLAFQAQAB/wFKAYwBAAH/AVIBjAEIAf8BUgGMAQgB
CAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQ4B/wFVAZIBEAH/AVoBnAEQAf8B /wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBDgH/AVUBkgEQAf8BWgGcARAB/wFaAZwBEAH/AVoB
WgGcARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZQB lAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWAGSARYB
GAH/AVgBkgEWAf8BEAEeAQAB/wEIAQoBAAH/HAADEgEXAzUBVgNQAZoBfAFnAVMB4QH/AXgBAAL/AXgB /wEQAR4BAAH/AQgBCgEAAf8cAAMSARcDNQFWA1ABmgF2AWYBVgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8D
AAH/AlEBUAGfAxIBGHAAA2EB0ANtAe4gAANiAdQDawHp1AADSwGPATMBXgEAAf8BUgGMAQgB/wFSAYwB EgEYcAADXwHQA2wB7iAAA2EB1ANqAenUAANLAY8BMwFeAQAB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB
CAH/AVIBjAEIAf8BUgGMARAB/wF/AcABMwH/AV8BngEXAf8BIAE/AQAB/wEIAQoBAAH/AVIBjAEQAf8B /wFSAYwBEAH/AX8BwAEzAf8BXwGeARcB/wEgAT8BAAH/AQgBCgEAAf8BUgGMARAB/wFaAZwBEAH/AVoB
WgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZUBFwH/AVoBlAEYAf8BWgGUARgB/wFaAZQB nAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlQEXAf8BWgGUARgB/wFaAZQBGAH/AVoBlAEYAf8BCAEKAQAB
GAH/AQgBCgEAAf8BCAEKAQAB/xgAAxIBFwM1AVYDUAGaAXwBZwFTAeEB/wF4AQAC/wF4AQAB/wJRAVAB /wEIAQoBAAH/GAADEgEXAzUBVgNQAZoBdgFmAVYB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBQABAED
nwMSARgUAAQBAwMBBAMGBAcBCQMHAQkDBAEFBAIEARQAAxEBFgMhAS8DIQEvAyEBLwMhAS8DIQEvAyEB AwEEAwYEBwEJAwcBCQMEAQUEAgQBFAADEQEWAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8D
LwMhAS8DIQEvAyEBLwNhAdkDcgHxAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8DZgHcA20B IQEvA2EB2QNxAfEDIQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwNkAdwDawHtAyEBLwMhAS8D
7QMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAyEBLwMNARG4AAFCAXsBAAH/AVIBjAEIAf8B IQEvAyEBLwMhAS8DIQEvAyEBLwMhAS8DIQEvAw0BEbgAAUIBewEAAf8BUgGMAQgB/wF7AcYBKQH/AzMB
ewHGASkB/wMzAVAEAAMMARABOQFrAQAB/wFaAZwBEAH/AVoBnAEQAf8BXQGXARMB/wFWAZQBDAH/AVoB UAQAAwwBEAE5AWsBAAH/AVoBnAEQAf8BWgGcARAB/wFdAZcBEwH/AVYBlAEMAf8BWgGcARAB/wFaAZQB
nAEQAf8BWgGUARgB/wFaAZQBGAH/AWMBnAEYAf8BYwGlARcB/wEpAVABAAH/AQgBCgEAAf8YAAMSARcD GAH/AVoBlAEYAf8BYwGcARgB/wFjAaUBFwH/ASkBUAEAAf8BCAEKAQAB/xgAAxIBFwM1AVYDUAGaAXYB
NQFWA1ABmgF8AWcBUwHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYFAAEAgMJAQwDDwEUAxMBGgMSARgD ZgFWAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgUAAQCAwkBDAMPARQDEwEaAxIBGAMKAQ0DBAEFBAEU
CgENAwQBBQQBFAADagHoA38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D AANpAegDfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B
fwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8D
fwH/A38B/wN/Af8DfwH/A2EBz7wAAQgBCgEAAf8MAAETASMBAAH/AVoBlAEQAf8BWgGcARAB/wGUAdYB
SgH/AQ0BEQECAf8BMQFaAQAB/wFaAZQBEgH/AVoBlAEYAf8BWgGUARgB/wFjAZwBGAH/AWMBpQEXAf8B
awGlASEB/wEQAR4BAAH/GAADEgEXAzUBVgNQAZoBfAFnAVMB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIB
GBQAAwUBBgMdASkDMAFKAjsBPAFlAjsBPAFkAygBPAIVARYBHQMGAQgUAAM8AWQDTAGPA0wBjwNMAY8D
TAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DagHqA3wB+ANMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8D
TAGPA28B7ANvAfUDTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DNQFWqAACUgFQAd8B
CAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8DMwFQAzoBYAFLAYUB
BwH/AVoBlAEQAf8BWgGcARAB/wE5AWsBAAH/AwkBDAEQAR4BAAH/AVQBjgESAf8BWgGUARgB/wFjAZwB
GAH/AWMBnAEYAf8BYwGlARcB/wFzAbQBKQH/ARABHgEAAf8YAAMSARcDNQFWA1ABmgF8AWcBUwHhAf8B
eAEAAv8BeAEAAf8CUQFQAZ8DEgEYFAADCQEMAzMBUAJMAU0BkQJaAWMByQJaAWQBygNEAXoDKQE9AwwB
EDwAA2EB0ANtAe4gAANiAdQDawHpzAABCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB
AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BMwFfAQIB/wFaAZQBEAH/AVoBnAEQAf8B
rQHnAWMB/wEQAR4BAAH/AQgBCgEAAf8BFAEmAQAB/wFUAY4BEgH/AWIBmwEYAf8BYwGcARgB/wFjAaUB
FwH/AWMBpQEXAf8BYwGcASEB/wEYAS4BAAH/GAADEgEXAzUBVgNQAZoBfAFnAVMB4QH/AXgBAAL/AXgB
AAH/AlEBUAGfAxIBGBQAAwkBCwMuAUcDSAGEAlkBYAHDAlgBZAHLA0kBhQMuAUcDDwETPAADYQHQA20B
7iAAA2IB1ANrAenIAAEIAQoBAAH/ASsBUgEAAf8BQQFyAQUB/wFKAYQBBgH/AUoBhAEGAf8BSgGEAQYB
/wFCAXMBBgH/ASkBUAEAAf8BEAEeAQAB/wEfAToBAAH/AVUBjwELAf8BWgGVARAB/wFaAZwBEAH/AdYB
/wGMAf8BEAEeAQAB/wEYAS4BAAH/AUIBeAEDAf8BWgGUARgB/wFiAZsBGAH/AWMBnAEYAf8BYwGlARcB
/wFjAaUBFwH/AXMBtAEpAf8BEAEeAQAB/xgAAxIBFwM1AVYDUAGaAXwBZwFTAeEB/wF4AQAC/wF4AQAB
/wJRAVABnwMSARgUAAMGAQgDJAE0AzwBZgNTAacCWAFaAbgCRwFIAYMDMQFNAw8BFDwAA2EB0ANtAe4g
AANiAdQDawHpxAABKAFNAQAB/wFOAYgBBwH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B
UgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGcARAB/wFjAaUB
FwH/AUIBewEAAf8BSgGEAQYB/wFSAYwBCAH/AVoBmAEUAf8BWgGUARgB/wFjAZwBGAH/AWMBpQEXAf8B
YwGlARcB/wFjAaUBFwH/AZQByQFNAf8EAAMQARUDGgEkAyEBLwMRARYEAgQBAxIBFwM1AVYDUAGaAXwB
ZwFTAeEB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgUAAMDAQQDEwEZAyUBNgI7ATwBZAJBAUIBcgMzAVED
IQEvAwkBDDwAA2EB0ANtAe4gAANiAdQDawHpwAABKQFOAQIB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB
/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB/wFSAYwBEAH/AVoB
lAEQAf8BWgGVARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWgGUARgB
/wFjAZwBGAH/AWMBnAEYAf8BYwGlARcB/wFjAaUBFwH/AWMBpQEXAf8BZQGgASEB/wQAAx4BKwIxATAB
TAM7AWMDIgExAwcBCQMEAQUDEgEYAzYBVwNQAZoBfAFnAVMB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIB
GBwAAwcBCQMcAScDIwEyAhkBGgEjAw8BFAMEAQU8AANhAdADbQHuIAADYgHUA2sB6bwAA0YBgAFOAYgB
BwH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B
UgGMARAB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZcBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwB
EAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/AWMBnAEYAf8BYwGhARgB/wFjAaUBFwH/AWMBpQEXAf8B
eAG6ASwB/wEIAQoBAAH/BAADJAE0A0UBfAJaAVgBtwNOAZQDPwFtAygBOwMfASwDOQFeA1ABmgF8AWcB
UwHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADEgEXAzwBZgNKAYkDQAFvAy4BRwMOARI8AANhAdAD
bQHuIAADYgHUA2sB6bwAATUBXgEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB
CAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlAEQAf8B
WgGbARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZYBFgH/AVoBlAEYAf8BXQGXARgB/wFjAZwB
GAH/AWMBpQEXAf8BYwGlARcB/wFwAbMBIAH/ASsBUAEEAf8IAAMnAToCUwFRAaIB2QFqARUB+wGJAWoB
SwHnAV8BXAFaAcQCQwFCAXUDMQFNAkABPwFuAlEBUAGfAYEBZQFQAeMB/wF4AQAC/wF4AQAB/wJRAVAB
nwMSARgcAAMZASIDTgGVAlkBZAHNAlYBVwGyA0QBegMdASkDBgEIBAIEATAAA2EB0ANtAe4gAANiAdQD
awHpvAABSgGEAQYB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BZwGpARcB
/wFSAYwBCAH/AUoBhAEGAf8BSgGEAQYB/wFSAYwBEAH/AVoBlAEQAf8BWgGXARAB/wFaAZwBEAH/AVoB
nAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlAEYAf8BWgGUARgB/wFfAZgBGAH/AWMBngEYAf8BYwGlARcB
/wFrAakBHQH/ASkBUAEAAf8MAAMiATEDTgGYAbEBbwExAfMBpAFqATYB8AGIAWoBTgHmAV4BWgFXAcIC
VQFTAaoDUwGnAlkBVwG8AZcBbAFHAesB/wF4AQAC/wF4AQAB/wJRAVABnwMSARgcAAMUARsCQwFEAXcC
VgFZAbYCWQFkAc0CVgFYAbMDPwFsAyYBOAMMAQ8DAgEDCAADAgEDAw0BEQMNAREDDQERAw0BEQMNARED
DQERAw0BEQMNAREDDQERA18B0wNvAe8DDQERAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0BEQNiAdcD
agHqAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0BEQMNAREDDQERAwQBBZQAAUoBhAEGAf8BUgGMAQgB
/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFpAaQBHgH/ASwBUAEDAf8BCAEKAQAB/wE3AWEBBwH/AVIB
jAEOAf8BUgGMARAB/wF/AcEBMgH/AVsBXgFYAdMCWgFZAb8BLwFZAQAB/wFEAXoBBQH/AVABigEIAf8B
WgGcAQ4B/wFaAZwBEAH/AVoBnAEQAf8BTwGGARAB/wFEAXQBDAH/AVkBWgFZAb8QAAIaARkBIwNEAXsB
ZAFdAVoBygFzAWMBVwHaAY0BaQFHAegBnwFrAToB7wGWAW0BQwHsAW0BYwFXAdYBbQFiAVYB2AG3AW8B
LAH0Af8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADDwETAzQBUwNNAZICWgFoAc8CWQFtAdQCUgFUAagC
QQFCAXIDJgE4AxQBGwMGAQgDAgEDA1sBwgN/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/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B
/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wNmAdyUAAFKAYwBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB /wN/Af8DYQHPvAABCAEKAQAB/wwAARMBIwEAAf8BWgGUARAB/wFaAZwBEAH/AZQB1gFKAf8BDQERAQIB
CAH/AVIBjAEIAf8BZwGdAScB/wEIAQoBAAH/AQoBDwEAAf8BQgF3AQMB/wFSAYwBEAH/AVoBnAEQAf8B /wExAVoBAAH/AVoBlAESAf8BWgGUARgB/wFaAZQBGAH/AWMBnAEYAf8BYwGlARcB/wFrAaUBIQH/ARAB
JQFBAQUB/wQAAzoBYAEIAQoBAAH/AQgBCgEAAf8EAANGAYADRgGAA0YBgBwAAwoBDQMiATEDNAFUA0QB HgEAAf8YAAMSARcDNQFWA1ABmgF2AWYBVgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYFAADBQEGAx0B
eAJRAVABnwFoAWEBWgHPAZ0BagFAAe0BlgFtAUMB7AGkAWoBNgHwAdkBagEVAfsB/wF4AQAC/wF4AQAB KQMwAUoCOwE8AWUCOwE8AWQDKAE8AhUBFgEdAwYBCBQAAzwBZANMAY8DTAGPA0wBjwNMAY8DTAGPA0wB
/wJRAVABnwMSARgcAAMGAQgDGAEhAzEBTQJMAU0BkQJYAV0BvQJZAWcB0QJZAWABwwJRAVMBogM9AWcC jwNMAY8DTAGPA0wBjwNoAeoDfAH4A0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DbgHsA24B
GQEaASMDDAEPA0ABbwNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNsAfADfQH6A1UB 9QNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwNMAY8DTAGPA0wBjwM1AVaoAAJWAVQB3wEIAQoBAAH/AQgB
rQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DcgHxA3wB+ANVAa0DVQGtA1UBrQNVAa0DVQGtA1UB CgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wMzAVADOgFgAUsBhQEHAf8BWgGUARAB
rQNVAa0DVQGtA1UBrQNHAYGUAAE7AW0BAgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B /wFaAZwBEAH/ATkBawEAAf8DCQEMARABHgEAAf8BVAGOARIB/wFaAZQBGAH/AWMBnAEYAf8BYwGcARgB
UwGOARAB/wEPARsBAAH/ASMBQwEAAf8BUgGMARAB/wFSAYwBEAH/AXsBvQEwAf8BCAEKAQAB/wEIAQoB /wFjAaUBFwH/AXMBtAEpAf8BEAEeAQAB/xgAAxIBFwM1AVYDUAGaAXYBZgFWAeEB/wF4AQAC/wF4AQAB
AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/ygAAwMBBAMJAQsDIgExAzgB /wJRAVABnwMSARgUAAMJAQwDMwFQAkwBTQGRAlsBYAHJAlsBYQHKA0QBegMpAT0DDAEQPAADXwHQA2wB
WwJPAU4BlwFkAV8BWwHIAYcBaQFNAeUByAFvASUB9wHqAXEBDgH9Af8BeAEAAv8BeAEAAf8CUQFQAZ8D 7iAAA2EB1ANqAenMAAEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB
EgEYHAAEAQMCAQMDFQEcAzUBVgJLAUwBjwJbAWQByAJQAXcB3wJQAYEB4wJSAVMBpQM0AVMDHAEnKAAD /wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEzAV8BAgH/AVoBlAEQAf8BWgGcARAB/wGtAecBYwH/ARAB
YQHQA20B7iAAA2IB1ANrAem8AAEIAQoBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B HgEAAf8BCAEKAQAB/wEUASYBAAH/AVQBjgESAf8BYgGbARgB/wFjAZwBGAH/AWMBpQEXAf8BYwGlARcB
UgGMAQgB/wFOAYIBDwH/AUoBhAEGAf8BUgGMARAB/wFjAaUBFwH/AQgBCgEAAf8BCAEKAQAB/wETASMB /wFjAZwBIQH/ARgBLgEAAf8YAAMSARcDNQFWA1ABmgF2AWYBVgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8D
AAH/AUIBcwEGAf8BIAE/AQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8g EgEYFAADCQELAy4BRwNIAYQCWQFeAcMCWQFiAcsDSQGFAy4BRwMPARM8AANfAdADbAHuIAADYQHUA2oB
AAQBAwMBBAMMARADGAEgAykBPQM+AWoCVwFWAbUBhwFpAU0B5QHIAW8BJQH3Af8BeAEAAv8BeAEAAf8C 6cgAAQgBCgEAAf8BKwFSAQAB/wFBAXIBBQH/AUoBhAEGAf8BSgGEAQYB/wFKAYQBBgH/AUIBcwEGAf8B
UQFQAZ8DEgEYIAAEAQMHAQkDFAEbAyoBQANDAXYCVQFWAa8CRQGMAekCWAFoAdACUAFRAZ8DMwFRKAAD KQFQAQAB/wEQAR4BAAH/AR8BOgEAAf8BVQGPAQsB/wFaAZUBEAH/AVoBnAEQAf8B1gH/AYwB/wEQAR4B
YQHQA20B7iAAA2IB1ANrAenAAAFCAXMBBgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B AAH/ARgBLgEAAf8BQgF4AQMB/wFaAZQBGAH/AWIBmwEYAf8BYwGcARgB/wFjAaUBFwH/AWMBpQEXAf8B
UgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BSgGEAQYB/wEQAR4BAAH/ATEBWgEAAf8BTQGEAQ0B/wFaAZwB cwG0ASkB/wEQAR4BAAH/GAADEgEXAzUBVgNQAZoBdgFmAVYB4QH/AXgBAAL/AXgBAAH/AlEBUAGfAxIB
EAH/AVoBnAEQAf8BUgGMAQgB/wEQAR4BAAH/AQgBCgEAAf8BCAEKAQAB/wNGAYAsAAMCAQMDCwEOAyAB GBQAAwYBCAMkATQDPAFmA1MBpwJYAVkBuAJHAUgBgwMxAU0DDwEUPAADXwHQA2wB7iAAA2EB1ANqAenE
LgNDAXYBWAFXAVUBsQF9AWYBUgHgAb4BcQElAfYB0wFqARwB+QJRAVABnAMSARcMAAQBAwwBEAMXAR8D AAEoAU0BAAH/AU4BiAEHAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIB
HQEoAx0BKAMMAQ8IAAMPARQCJgEnATkCRwFIAYMCUwF8AeECSwGJAecCWQFpAdICPwFAAW4oAANhAdAD jAEIAf8BUgGMARAB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZwBEAH/AWMBpQEXAf8BQgF7AQAB
bQHuIAADYgHUA2sB6cQAAUkBiQEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB /wFKAYQBBgH/AVIBjAEIAf8BWgGYARQB/wFaAZQBGAH/AWMBnAEYAf8BYwGlARcB/wFjAaUBFwH/AWMB
EAH/AVIBjAEQAf8BUgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8B pQEXAf8BlAHJAU0B/wQAAxABFQMaASQDIQEvAxEBFgQCBAEDEgEXAzUBVgNQAZoBdgFmAVYB4QH/AXgB
WgGcARAB/wFaAZQBGAH/AUIBcwEGAf8BCgEOAQAB/zAABAEDAwEEAwwBDwMeASoDOgFhAVsBWQFXAbkB AAL/AXgBAAH/AlEBUAGfAxIBGBQAAwMBBAMTARkDJQE2AjsBPAFkAkEBQgFyAzMBUQMhAS8DCQEMPAAD
gQFnAUsB5AGcAWsBPQHuAk8BTgGXAxIBFwwAAwIBAwMhAS8DNgFZAkIBQwF1AkEBQgFzAx4BKwgAAwQB XwHQA2wB7iAAA2EB1ANqAenAAAEpAU4BAgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8B
BQMMAQ8DOAFcAlkBZwHOAkMBlgHsAjoBnwHvA0YBfygAA2EB0ANtAe4gAANiAdQDawHpyAABOgFrAQAB UgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZUB
/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB/wFaAZQBEAH/AVoB EAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/AWMBnAEYAf8B
nAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/AWMBpQEXAf8BGQEsAQMB YwGcARgB/wFjAaUBFwH/AWMBpQEXAf8BYwGlARcB/wFlAaABIQH/BAADHgErAjEBMAFMAzsBYwMiATED
/zgAAwIBAwMIAQoDIAEtAkEBQAFxAk0BTAGRA1ABmgI7AToBYgMMAQ8MAAMDAQQDKwFBA0QBegNTAacD BwEJAwQBBQMSARgDNgFXA1ABmgF2AWYBVgHhAf8BeAEAAv8BeAEAAf8CUQFQAZ8DEgEYHAADBwEJAxwB
VQGtAzcBWgMYASADCQELAwYBBwMNAREDOQFfAlkBZwHRAjoBnwHvAjEBsQHzAkYBRwGBKAADYQHQA20B JwMjATICGQEaASMDDwEUAwQBBTwAA18B0ANsAe4gAANhAdQDagHpvAADRgGAAU4BiAEHAf8BUgGMAQgB
7iAAA2IB1ANrAenMAAEsAVUBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIBjAEQAf8BWgGUARAB /wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIB
/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/ASEB jAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlwEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB
QQEAAf9AAAQCAwcBCQMQBBUBHAIWARUBHQMPARMDAgEDDAADAwEEAzADSwFMAY8CWgFkAcoCVAF3Ad4D /wFaAZQBGAH/AVoBlAEYAf8BYwGcARgB/wFjAaEBGAH/AWMBpQEXAf8BYwGlARcB/wF4AboBLAH/AQgB
TgGUAzQBUwMVARwDDQERAx4BKwJDAUQBdwJQAXcB3wI3AasB8QJFAYwB6QNEAXsoAANhAdADbQHuIAAD CgEAAf8EAAMkATQDRQF8AloBWAG3A04BlAM/AW0DKAE7Ax8BLAM5AV4DUAGaAXYBZgFWAeEB/wF4AQAC
YgHUA2sB6cgAARIBIgEAAf8BTAGGAQYB/wFSAYwBCAH/AVoBnAEQAf8BUAGKAQgB/wFSAYwBEAH/AVoB /wF4AQAB/wJRAVABnwMSARgcAAMSARcDPAFmA0oBiQNAAW8DLgFHAw4BEjwAA18B0ANsAe4gAANhAdQD
lAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEQH/AWkBqwEfAf8BCAEKAQAB agHpvAABNQFeAQcB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB
/2wAAwIBAwMhAS8DOgFhA1UBrQJXAXMB2gJZAVwBvwJQAVEBnwNEAXoCQQFCAXIDSQGFAlYBVwGyAkAB /wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVoBlAEQAf8BWgGUARAB/wFaAZsBEAH/AVoB
nQHtAlYBdQHbAlUBWAGxAzgBWygAA2EB0ANtAe4gAANiAdQDawHpyAABEAEeAQAB/wFIAX0BBwH/AVkB nAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBlgEWAf8BWgGUARgB/wFdAZcBGAH/AWMBnAEYAf8BYwGlARcB
kwETAf8BVQGIARgB/wgAASEBQQEAAf8BQgF7AQAB/wFSAYwBCAH/AVUBkQEIAf8BOQFmAQQB/wFAAUUB /wFjAaUBFwH/AXABswEgAf8BKwFQAQQB/wgAAycBOgJTAVEBogHWAWgBGAH7AYIBaAFQAecBXQFcAVoB
OgHveAADBgEIAxcBHwNEAXsCWQFhAcYCSwGBAeQCLAG3AfQCPQGcAe4CPQGcAe4CNwGrAfECJQG+AfYC xAJDAUIBdQMxAU0CQAE/AW4CUQFQAZ8BewFlAVMB4wH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBwAAxkB
DgHcAfwCWQFdAb4DPgFrAyQBNCgAA2EB0ANtAe4gAANiAdQDawHp0AABHgE6AQAB/5wABAIDCQEMAyoD IgNOAZUCWwFhAc0CVgFXAbIDRAF6Ax0BKQMGAQgEAgQBMAADXwHQA2wB7iAAA2EB1ANqAem8AAFKAYQB
PwFAAW4DTgGWAlYBWAGzAlkBXgHBAlkBYAHHAlkBYAHHAlcBWwG5AlEBUgGkAkABQQFxAyUBNgMTARko BgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFnAakBFwH/AVIBjAEIAf8B
AANhAdADbQHuIAADYgHUA2sB6f8AeQAEAQMLAQ4DJgE4AzkBXgNGAX0CSgFLAYsDSgGJAz4BawMqAT8D SgGEAQYB/wFKAYQBBgH/AVIBjAEQAf8BWgGUARAB/wFaAZcBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwB
FwEfAwIBAywAA1MBogNaAb8gAANUAaYDWQG7qAABQgFNAT4HAAE+AwABKAMAAYADAAEgAwABAQEAAQEG EAH/AVoBnAEQAf8BWgGUARgB/wFaAZQBGAH/AV8BmAEYAf8BYwGeARgB/wFjAaUBFwH/AWsBqQEdAf8B
AAECFgAD/wEAA/8BxwIAAQcC/wHPAfMB/wQAAv8BzwGHAgABBwL/Ac8B8wH/BAAB/wH+AQABBwIAAQcC KQFQAQAB/wwAAyIBMQNOAZgBqwFvATYB8wGbAWkBOwHwAYIBagFRAeYBXQFaAVcBwgJVAVMBqgNTAacC
/wHPAfMB/wQAAf8B/AEAAQcCAAEHAv8BzwHzAf8EAAH/AfgBAAEPAgABBwL/Ac8B8wH/BAAB/wHwAQAB WQFXAbwBjwFsAUwB6wH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBwAAxQBGwJDAUQBdwJWAVkBtgJbAWEB
BwIAAQcC/wHPAfMB/wQAAf8B4AEAAQMCAAEHAv8BzwHzAf8EAAH/AcABAAEBAfwBAwP/Ac8B8wH/BAAB zQJWAVgBswM/AWwDJgE4AwwBDwMCAQMIAAMCAQMDDQERAw0BEQMNAREDDQERAw0BEQMNAREDDQERAw0B
/wHAAQABAQH8AQMD/wHPAfMB/wQAAf8B4AIAAfwBAwHgAR8IAAH/AfwBIAEAAfwBAwHgAR8IAAH/Af4B EQMNAREDXwHTA20B7wMNAREDDQERAw0BEQMNAREDDQERAw0BEQMNAREDDQERA2IB1wNoAeoDDQERAw0B
4AEAAfwBAwHgAR8IAAH/AcACAAH8AQMB4AEfAf8BzwHzAf8EAAH/AYACAAH8AQMB4AEfAf8BzwHzAf8E EQMNAREDDQERAw0BEQMNAREDDQERAw0BEQMNAREDBAEFlAABSgGEAQYB/wFSAYwBCAH/AVIBjAEIAf8B
AAH/AwAB/AEDAeABHwH/Ac8B8wH/BAAB/gIAAQEBAAEDAeABHwH/Ac8B8wH/BAAB/AIAAQEBAAEDAfgB UgGMAQgB/wFSAYwBCAH/AWkBpAEeAf8BLAFQAQMB/wEIAQoBAAH/ATcBYQEHAf8BUgGMAQ4B/wFSAYwB
HwH/Ac8B8wH/BAAB+AIAAQEBAAEDAfgBHwH/Ac8B8wH/BAAB+AIAAQMBAAEDAfgBAwH/Ac8B8wH/BAAB EAH/AX8BwQEyAf8BWwFeAVoB0wNaAb8BLwFZAQAB/wFEAXoBBQH/AVABigEIAf8BWgGcAQ4B/wFaAZwB
+AIAAQcBAAEDAfgBAwgAAfgCAAEPAQABAwH4CQAB+AEAAUQBfwEAAQMB+AkAAfgBAAEBAf8BgAEDAfgB EAH/AVoBnAEQAf8BTwGGARAB/wFEAXQBDAH/A1oBvxAAAhoBGQEjA0QBewFhAV0BWwHKAW0BYwFaAdoB
AAH/Ac8B8wH/BAAB+AIAAX8BgAEDAfwBAAH/Ac8B8wH/BAAB/AIAAX8B8AEDAYEBgAH/Ac8B8wH/BAAB hQFpAUwB6AGXAWkBPgHvAY8BbAFHAewBaQFhAVkB1gFoAWEBWQHYAa8BbQEwAfQB/wF4AQAC/wF4AQAB
/gIAAf8B8AEDAYEBgAH/Ac8B8wH/BAAB/wIAAf8B/AEDAYABAAH/Ac8B8wH/BAAB/wGAAQEB/wH+AQMB /wJRAVABnwMSARgcAAMPARMDNAFTA00BkgJbAWUBzwJbAWoB1AJSAVQBqAJBAUIBcgMmATgDFAEbAwYB
gAEAAf8BzwHzAf8EAAH/AQABAwP/AYABAAH/Ac8B8wH/BAAB/wEMAQ8D/wHAAQAB/wHPAfMB/wQAAf8B CAMCAQMDWgHCA38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B
3wT/AcABAAH/Ac8B8wH/BAAG/wHwAQEB/wHPAfMB/wQACw== /wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B/wN/Af8DfwH/A38B
/wN/Af8DfwH/A2QB3JQAAUoBjAEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFnAZ0B
JwH/AQgBCgEAAf8BCgEPAQAB/wFCAXcBAwH/AVIBjAEQAf8BWgGcARAB/wElAUEBBQH/BAADOgFgAQgB
CgEAAf8BCAEKAQAB/wQAA0YBgANGAYADRgGAHAADCgENAyIBMQM0AVQDRAF4AlEBUAGfAWUBYQFbAc8B
lgFqAUUB7QGPAWwBRwHsAZsBaQE7AfAB1gFoARgB+wH/AXgBAAL/AXgBAAH/AlEBUAGfAxIBGBwAAwYB
CAMYASEDMQFNAkwBTQGRAlgBXAG9AlsBZAHRAlkBXgHDAlEBUwGiAz0BZwIZARoBIwMMAQ8DQAFvA1UB
rQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA2sB8AN9AfoDVQGtA1UBrQNVAa0DVQGtA1UB
rQNVAa0DVQGtA1UBrQNxAfEDfAH4A1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA1UBrQNVAa0DVQGtA0cB
gZQAATsBbQECAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFTAY4BEAH/AQ8BGwEAAf8B
IwFDAQAB/wFSAYwBEAH/AVIBjAEQAf8BewG9ATAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoB
AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/KAADAwEEAwkBCwMiATEDOAFbAk8BTgGXAWEBXwFcAcgB
gAFnAVEB5QHDAW8BKgH3AecBcAEQAf0B/wF4AQAC/wF4AQAB/wJRAVABnwMSARgcAAQBAwIBAwMVARwD
NQFWAksBTAGPAlwBYQHIAlQBcQHfAlMBewHjAlIBUwGlAzQBUwMcAScoAANfAdADbAHuIAADYQHUA2oB
6bwAAQgBCgEAAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AU4BggEPAf8B
SgGEAQYB/wFSAYwBEAH/AWMBpQEXAf8BCAEKAQAB/wEIAQoBAAH/ARMBIwEAAf8BQgFzAQYB/wEgAT8B
AAH/AQgBCgEAAf8BCAEKAQAB/wEIAQoBAAH/AQgBCgEAAf8BCAEKAQAB/yAABAEDAwEEAwwBEAMYASAD
KQE9Az4BagJXAVYBtQGAAWcBUQHlAcMBbwEqAfcB/wF4AQAC/wF4AQAB/wJRAVABnwMSARggAAQBAwcB
CQMUARsDKgFAA0MBdgNVAa8CSQGFAekCWwFlAdACUAFRAZ8DMwFRKAADXwHQA2wB7iAAA2EB1ANqAenA
AAFCAXMBBgH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBEAH/AVIB
jAEQAf8BSgGEAQYB/wEQAR4BAAH/ATEBWgEAAf8BTQGEAQ0B/wFaAZwBEAH/AVoBnAEQAf8BUgGMAQgB
/wEQAR4BAAH/AQgBCgEAAf8BCAEKAQAB/wNGAYAsAAMCAQMDCwEOAyABLgNDAXYCVwFVAbEBdwFmAVUB
4AG2AW8BKQH2Ac0BagEeAfkCUQFQAZwDEgEXDAAEAQMMARADFwEfAx0BKAMdASgDDAEPCAADDwEUAiYB
JwE5AkcBSAGDAlYBdgHhAlABggHnAloBZQHSAj8BQAFuKAADXwHQA2wB7iAAA2EB1ANqAenEAAFJAYkB
AAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwBCAH/AVIBjAEIAf8BUgGMARAB/wFSAYwBEAH/AVIBjAEQAf8B
UgGMARAB/wFaAZQBEAH/AVoBnAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8BWgGUARgB/wFCAXMB
BgH/AQoBDgEAAf8wAAQBAwMBBAMMAQ8DHgEqAzoBYQJZAVcBuQF6AWUBTwHkAZUBagFCAe4CTwFOAZcD
EgEXDAADAgEDAyEBLwM2AVkCQgFDAXUCQQFCAXMDHgErCAADBAEFAwwBDwM4AVwCWwFjAc4CRwGPAewC
PgGXAe8DRgF/KAADXwHQA2wB7iAAA2EB1ANqAenIAAE6AWsBAAH/AVIBjAEIAf8BUgGMAQgB/wFSAYwB
CAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwBEAH/AVoBnAEQAf8B
WgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BYwGlARcB/wEZASwBAwH/OAADAgEDAwgBCgMgAS0CQQFAAXEC
TQFMAZEDUAGaAjsBOgFiAwwBDwwAAwMBBAMrAUEDRAF6A1MBpwNVAa0DNwFaAxgBIAMJAQsDBgEHAw0B
EQM5AV8CWwFkAdECPgGXAe8CNgGrAfMCRgFHAYEoAANfAdADbAHuIAADYQHUA2oB6cwAASwBVQEAAf8B
UgGMAQgB/wFSAYwBCAH/AVIBjAEQAf8BUgGMARAB/wFaAZQBEAH/AVoBlAEQAf8BWgGcARAB/wFaAZwB
EAH/AVoBnAEQAf8BWgGcARAB/wFaAZQBGAH/AVoBlAEYAf8BIQFBAQAB/0AABAIDBwEJAxAEFQEcAhYB
FQEdAw8BEwMCAQMMAAMDAQQDMANLAUwBjwJbAWEBygJWAXIB3gNOAZQDNAFTAxUBHAMNAREDHgErAkMB
RAF3AlQBcQHfAjwBpAHxAkkBhQHpA0QBeygAA18B0ANsAe4gAANhAdQDagHpyAABEgEiAQAB/wFMAYYB
BgH/AVIBjAEIAf8BWgGcARAB/wFQAYoBCAH/AVIBjAEQAf8BWgGUARAB/wFaAZwBEAH/AVoBnAEQAf8B
WgGcARAB/wFaAZwBEAH/AVoBnAERAf8BaQGrAR8B/wEIAQoBAAH/bAADAgEDAyEBLwM6AWEDVQGtAloB
bQHaAloBWwG/AlABUQGfA0QBegJBAUIBcgNJAYUCVgFXAbICRQGWAe0CWQFwAdsCVQFXAbEDOAFbKAAD
XwHQA2wB7iAAA2EB1ANqAenIAAEQAR4BAAH/AUgBfQEHAf8BWQGTARMB/wFVAYgBGAH/CAABIQFBAQAB
/wFCAXsBAAH/AVIBjAEIAf8BVQGRAQgB/wE5AWYBBAH/AUQBSQE+Ae94AAMGAQgDFwEfA0QBewJZAV8B
xgJPAXoB5AIwAa8B9AJCAZUB7gJCAZUB7gI8AaQB8QIpAbYB9gIQAdcB/AJZAVwBvgM+AWsDJAE0KAAD
XwHQA2wB7iAAA2EB1ANqAenQAAEeAToBAAH/nAAEAgMJAQwDKgM/AUABbgNOAZYCVgFYAbMCWQFcAcEC
WgFeAccCWgFeAccCVwFZAbkCUQFSAaQCQAFBAXEDJQE2AxMBGSgAA18B0ANsAe4gAANhAdQDagHp/wB5
AAQBAwsBDgMmATgDOQFeA0YBfQJKAUsBiwNKAYkDPgFrAyoBPwMXAR8DAgEDLAADUwGiA1oBvyAAA1QB
pgNZAbuoAAFCAU0BPgcAAT4DAAEoAwABgAMAASADAAEBAQABAQYAAQIWAAP/AQAD/wHHAgABBwL/Ac8B
8wH/BAAC/wHPAYcCAAEHAv8BzwHzAf8EAAH/Af4BAAEHAgABBwL/Ac8B8wH/BAAB/wH8AQABBwIAAQcC
/wHPAfMB/wQAAf8B+AEAAQ8CAAEHAv8BzwHzAf8EAAH/AfABAAEHAgABBwL/Ac8B8wH/BAAB/wHgAQAB
AwIAAQcC/wHPAfMB/wQAAf8BwAEAAQEB/AEDA/8BzwHzAf8EAAH/AcABAAEBAfwBAwP/Ac8B8wH/BAAB
/wHgAgAB/AEDAeABHwgAAf8B/AEgAQAB/AEDAeABHwgAAf8B/gHgAQAB/AEDAeABHwgAAf8BwAIAAfwB
AwHgAR8B/wHPAfMB/wQAAf8BgAIAAfwBAwHgAR8B/wHPAfMB/wQAAf8DAAH8AQMB4AEfAf8BzwHzAf8E
AAH+AgABAQEAAQMB4AEfAf8BzwHzAf8EAAH8AgABAQEAAQMB+AEfAf8BzwHzAf8EAAH4AgABAQEAAQMB
+AEfAf8BzwHzAf8EAAH4AgABAwEAAQMB+AEDAf8BzwHzAf8EAAH4AgABBwEAAQMB+AEDCAAB+AIAAQ8B
AAEDAfgJAAH4AQABRAF/AQABAwH4CQAB+AEAAQEB/wGAAQMB+AEAAf8BzwHzAf8EAAH4AgABfwGAAQMB
/AEAAf8BzwHzAf8EAAH8AgABfwHwAQMBgQGAAf8BzwHzAf8EAAH+AgAB/wHwAQMBgQGAAf8BzwHzAf8E
AAH/AgAB/wH8AQMBgAEAAf8BzwHzAf8EAAH/AYABAQH/Af4BAwGAAQAB/wHPAfMB/wQAAf8BAAEDA/8B
gAEAAf8BzwHzAf8EAAH/AQwBDwP/AcABAAH/Ac8B8wH/BAAB/wHfBP8BwAEAAf8BzwHzAf8EAAb/AfAB
AQH/Ac8B8wH/BAAL
</value> </value>
</data> </data>
<metadata name="ilTabIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ilTabIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
@ -393,13 +393,13 @@
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAChkAAAJNU0Z0AUkBTAIBAQUB SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAABBkAAAJNU0Z0AUkBTAIBAQUB
AAHQAQAB0AEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASAa AAHYAQAB2AEAARABAAEQAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABQAMAASADAAEBAQABIAYAASAa
AAM3AVoDWAG4A2MB3wJjAV0B3wFiAl0B3wNdAd8DXQHfAWECXQHfA2MB3wNjAd8DVQGsAzABS8wAAzsB AAM3AVoDWAG4A2MB3wJjAV0B3wFiAl0B3wNdAd8DXQHfAWECXQHfA2MB3wNjAd8DVQGsAzABS8wAAzsB
YgNdAcUBawJoAfQBnwFlATEB/wGXAVMBFwH/AZYBSwEJAf8BkwFGAQEB/wGMAUMBAwH/AX0BQAELAf8B YgNdAcUBaQJoAfQBnwFlATEB/wGXAVMBFwH/AZYBSwEJAf8BkwFGAQEB/wGMAUMBAwH/AX0BQAELAf8B
awFAARoB/wFuAVABNgH/A2gB8ANaAbcDNAFUxAADNQFVA10BxwJuAVoB9QG4AWUBGwH/AbkBWAECAf8B awFAARoB/wFuAVABNgH/A2gB8ANaAbcDNAFUxAADNQFVA10BxwJuAVoB9QG4AWUBGwH/AbkBWAECAf8B
yQFfAQAB/wHYAWUBAAH/AdwBZwEAAf8B1gFkAQAB/wHDAVwBAAH/AaIBTAEAAf8BfAE7AQMB/wFuAUYB yQFfAQAB/wHYAWUBAAH/AdwBZwEAAf8B1gFkAQAB/wHDAVwBAAH/AaIBTAEAAf8BfAE7AQMB/wFuAUYB
IwH/A2gB8ANaAbcDMAFKwAADXAHEAYQBfAFcAfgB1AFxARgB/wHXAWUBAAH/AeUBbAEAAf8B8gFyAQAB IwH/A2gB8ANaAbcDMAFKwAADXAHEAYEBfAFcAfgB1AFxARgB/wHXAWUBAAH/AeUBbAEAAf8B8gFyAQAB
/wH6AXUBAAH/AfwBdgEAAf8B+gF2AQAB/wHzAXIBAAH/AeIBawEAAf8BvQFZAQAB/wGHAUABAAH/AXEB /wH6AXUBAAH/AfwBdgEAAf8B+gF2AQAB/wHzAXIBAAH/AeIBawEAAf8BvQFZAQAB/wGHAUABAAH/AXEB
SAEjAf8DaAHwA1YBq8AAAf4B3QHBAf8B7QGAASAB/wHtAXEBAgH/AfMBcwEAAf8B+gF2AQAB/wH+AXgB SAEjAf8DaAHwA1YBq8AAAf4B3QHBAf8B7QGAASAB/wHtAXEBAgH/AfMBcwEAAf8B+gF2AQAB/wH+AXgB
AAL/AXsBCAL/AYgBJwL/AaIBUwH/Af4BgQEXAf8B/AF4AQQB/wHsAW8BAAH/AcEBWwEAAf8BhgFBAQMB AAL/AXsBCAL/AYgBJwL/AaIBUwH/Af4BgQEXAf8B/AF4AQQB/wHsAW8BAAH/AcEBWwEAAf8BhgFBAQMB
@ -415,92 +415,92 @@
ZAEJAf8BYwFhAV0B38AAAf8BzAGfAv8BrAFjAv8BkwEzAv8BgQERAv8BeQECAv8BggEWAv8BmgFLAv8B ZAEJAf8BYwFhAV0B38AAAf8BzAGfAv8BrAFjAv8BkwEzAv8BgQERAv8BeQECAv8BggEWAv8BmgFLAv8B
rgF4Av8BpQFXAv8BgQEXAv8BeQEEAv8BeAEAAv8BeAEAAf8B8AFxAQAB/wHVAXEBFwH/AmMBXQHfwAAB rgF4Av8BpQFXAv8BgQEXAv8BeQEEAv8BeAEAAv8BeAEAAf8B8AFxAQAB/wHVAXEBFwH/AmMBXQHfwAAB
/wHpAdUC/wG8AYEC/wGkAVQC/wGOASoC/wF/AQ0C/wF5AQIC/wF7AQkC/wGCAR0C/wF4AQAC/wF4AQAC /wHpAdUC/wG8AYEC/wGkAVQC/wGOASoC/wF/AQ0C/wF5AQIC/wF7AQkC/wGCAR0C/wF4AQAC/wF4AQAC
/wF4AQEC/wF6AQQC/wF6AQMB/wHzAXQBAwH/AeIBhAEyAf8DYwHfwAADXgHSAY8BiAF/AfkB/wG7AX0C /wF4AQEC/wF6AQQC/wF6AQMB/wHzAXQBAwH/AeIBhAEyAf8DYwHfwAADXgHSAY4BhwF9AfkB/wG7AX0C
/wGjAVIC/wGQASwC/wGCARMC/wF9AQgC/wF6AQQC/wF5AQIC/wF6AQQC/wF9AQkC/wGAAQ8C/wF/AQ0B /wGjAVIC/wGQASwC/wGCARMC/wF9AQgC/wF6AQQC/wF5AQIC/wF6AQQC/wF9AQkC/wGAAQ8C/wF/AQ0B
/wH4AYYBIAH/AXQCaAH0A1gBuMAAAzwBZgNjAdUBiwF9AXwB+AH/Ab4BhQL/AaoBXwL/AZkBPgL/AY0B /wH4AYYBIAH/AXMCaAH0A1gBuMAAAzwBZgNjAdUBiAJ8AfgB/wG+AYUC/wGqAV8C/wGZAT4C/wGNAScC
JwL/AYYBGgL/AYMBFQL/AYUBGQL/AYoBIgL/AY0BKAL/AZMBMwH/AXEBbgFoAfUDXQHFAzYBWcQAA0IB /wGGARoC/wGDARUC/wGFARkC/wGKASIC/wGNASgC/wGTATMB/wFwAW4BaAH1A10BxQM2AVnEAANCAXID
cgNjAdUBjwGKAYQB+QH/AckBmQL/AbwBfwL/Aa4BZgL/AaQBUwL/AZ8BSgL/AZ8BSwL/AaMBUQL/AacB YwHVAY4BiQGDAfkB/wHJAZkC/wG8AX8C/wGuAWYC/wGkAVMC/wGfAUoC/wGfAUsC/wGjAVEC/wGnAVgB
WAH/AYsCfAH4A10BxwM7AWLMAAM8AWUDXgHSAf8B7wHgAv8B3AG8Av8BzQGfAv8BwQGKAv8BuwF/Av8B /wGIAnwB+ANdAccDOwFizAADPAFlA14B0gH/Ae8B4AL/AdwBvAL/Ac0BnwL/AcEBigL/AbsBfwL/Ab8B
vwGGAv8BzQGhAv8B6QHWAf8DXAHEAzUBVcgAA2cB7wJnAVkB7wFnAV0BWQHvAWcBWwFZAe8BZwFbAVkB hgL/Ac0BoQL/AekB1gH/A1wBxAM1AVXIAANnAe8CZwFZAe8BZwFdAVkB7wFnAVsBWQHvAWcBWwFZAe8B
7wFnAlkB7wFnAWQBWQHvA2cB7wNnAe8DZwHvA2cB7wNnAe8DZwHvA2cB7wNnAe8DZwHvOAADMwFRA3AB ZwJZAe8BZwFkAVkB7wNnAe8DZwHvA2cB7wNnAe8DZwHvA2cB7wNnAe8DZwHvA2cB7zgAAzMBUQNvAfUD
9QMHAQkDKgE/A0UBfANZAbsDYwHfA2gB9AOAAf4DgQH/A4EB/wOBAf8DgAH+A2gB9ANjAd8DWgG6A0QB BwEJAyoBPwNFAXwDWQG7A2MB3wNoAfQDgAH+A4EB/wOBAf8DgQH/A4AB/gNoAfQDYwHfA1oBugNEAXoD
egMnAToIAAM3AVoDWAG4A2MB3wJjAV0B3wFiAl0B3wNdAd8DXQHfAWECXQHfA2MB3wNjAd8DVQGsAzAB JwE6CAADNwFaA1gBuANjAd8CYwFdAd8BYgJdAd8DXQHfA10B3wFhAl0B3wNjAd8DYwHfA1UBrAMwAUsI
SwgAA/gB/wG5AZUBPAH/AYMBfQFuAf8BhAF9AWwB/wGqAYQBJwH/AawBewEAAf8BzAG8AZQB/wN+Af8D AAP4Af8BuQGVATwB/wGDAX0BbgH/AYQBfQFsAf8BqgGEAScB/wGsAXsBAAH/AcwBvAGUAf8DfgH/A34B
fgH/A34B/wN+Af8DfgH/A34B/wN+Af8DfgH/A44B/zgAAxIBGAM/AW0DQwF1A10BzAN8AfgDgQH/A4EB /wN+Af8DfgH/A34B/wN+Af8DfgH/A34B/wOOAf84AAMSARgDPwFtA0MBdQNdAcwDfAH4A4EB/wOBAf8D
/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wN8AfgDVAGoBAADOwFiA10BxQFrAmgB gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DfAH4A1QBqAQAAzsBYgNdAcUBaQJoAfQB
9AGfAWUBMQH/AZcBUwEXAf8BlgFLAQkB/wGTAUYBAQH/AYwBQwEDAf8BfQFAAQsB/wFrAUABGgH/AW4B nwFlATEB/wGXAVMBFwH/AZYBSwEJAf8BkwFGAQEB/wGMAUMBAwH/AX0BQAELAf8BawFAARoB/wFuAVAB
UAE2Af8DaAHwA1oBtwM0AVQEAAT/AZcBiwFtAf8CgQGAAf8BggGBAYAB/wGYAYgBYAH/AcoBkAEAAf8B NgH/A2gB8ANaAbcDNAFUBAAE/wGXAYsBbQH/AoEBgAH/AYIBgQGAAf8BmAGIAWAB/wHKAZABAAH/Ad0B
3QHMAZ8B/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A5MB/zQAA18B0wM9AWcEAANqAe0D zAGfAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOTAf80AANfAdMDPQFnBAADagHtA30B
fQH6A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wNVAa8D +gOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DVQGvAzUB
NQFVA10BxwJuAVoB9QG4AWUBGwH/AbkBWAECAf8ByQFfAQAB/wHYAWUBAAH/AdwBZwEAAf8B1gFkAQAB VQNdAccCbgFaAfUBuAFlARsB/wG5AVgBAgH/AckBXwEAAf8B2AFlAQAB/wHcAWcBAAH/AdYBZAEAAf8B
/wHDAVwBAAH/AaIBTAEAAf8BfAE7AQMB/wFuAUYBIwH/A2gB8ANaAbcDMAFKBP8BhgGEAX0B/wOBAf8D wwFcAQAB/wGiAUwBAAH/AXwBOwEDAf8BbgFGASMB/wNoAfADWgG3AzABSgT/AYYBhAF9Af8DgQH/A4EB
gQH/AYcBgwF6Af8BzwGUAQAB/wHeAcwBnwH/A+AB/wPgAf8D4AH/A+AB/wPgAf8D4AH/A+AB/wPgAf8D /wGHAYMBegH/Ac8BlAEAAf8B3gHMAZ8B/wPgAf8D4AH/A+AB/wPgAf8D4AH/A+AB/wPgAf8D4AH/A7wB
vAH/NAADWgHCAzQBUwQAA2MB3wNuAfUDgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8D /zQAA1oBwgM0AVMEAANjAd8DbgH1A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB
gQH/A4EB/wOBAf8DgQH/A1UBrwNcAcQBhAF8AVwB+AHUAXEBGAH/AdcBZQEAAf8B5QFsAQAB/wHyAXIB /wOBAf8DgQH/A4EB/wNVAa8DXAHEAYEBfAFcAfgB1AFxARgB/wHXAWUBAAH/AeUBbAEAAf8B8gFyAQAB
AAH/AfoBdQEAAf8B/AF2AQAB/wH6AXYBAAH/AfMBcgEAAf8B4gFrAQAB/wG9AVkBAAH/AYcBQAEAAf8B /wH6AXUBAAH/AfwBdgEAAf8B+gF2AQAB/wHzAXIBAAH/AeIBawEAAf8BvQFZAQAB/wGHAUABAAH/AXEB
cQFIASMB/wNoAfADVgGrBP8BiwGGAXoB/wOBAf8DgQH/AY4BhgFxAf8BzwGUAQAB/wHeAcwBnyH/A8oB SAEjAf8DaAHwA1YBqwT/AYsBhgF6Af8DgQH/A4EB/wGOAYYBcQH/Ac8BlAEAAf8B3gHMAZ8h/wPKAf8Q
/xAAAw0BEQM/AWwDUwGnAVwCWQG+AVgCVgGzAUgCRwGDAyEBMAQAA28B8wM6AWAIAAM2AVgDWwHAA24B AAMNAREDPwFsA1MBpwFcAlkBvgFYAlYBswFIAkcBgwMhATAEAANvAfMDOgFgCAADNgFYA1sBwANuAfUD
9QOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A2gB9ANSAaQB/gHdAcEB gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wNoAfQDUgGkAf4B3QHBAf8B
/wHtAYABIAH/Ae0BcQECAf8B8wFzAQAB/wH6AXYBAAH/Af4BeAEAAv8BewEIAv8BiAEnAv8BogFTAf8B 7QGAASAB/wHtAXEBAgH/AfMBcwEAAf8B+gF2AQAB/wH+AXgBAAL/AXsBCAL/AYgBJwL/AaIBUwH/Af4B
/gGBARcB/wH8AXgBBAH/AewBbwEAAf8BwQFbAQAB/wGGAUEBAwH/AXgBVgE2Af8DYwHfBP8BrAGWAWAB gQEXAf8B/AF4AQQB/wHsAW8BAAH/AcEBWwEAAf8BhgFBAQMB/wF4AVYBNgH/A2MB3wT/AawBlgFgAf8B
/wGDAYIBfwH/AYUBggF9Af8BswGTAUQB/wHPAZQBAAH/Ad4BzAGfAf8DsAH/A7AB/wOwAf8DsAH/A7AB gwGCAX8B/wGFAYIBfQH/AbMBkwFEAf8BzwGUAQAB/wHeAcwBnwH/A7AB/wOwAf8DsAH/A7AB/wOwAf8D
/wOwAf8DsAH/A7AB/wOoAf8IAAMaASQDUgGgAmMBSAH2AaIBcwEAAf8BrgF8AQAB/wGwAX0BAAH/AagB sAH/A7AB/wOwAf8DqAH/CAADGgEkA1IBoAJjAUgB9gGiAXMBAAH/Aa4BfAEAAf8BsAF9AQAB/wGoAXgB
eAEAAf8BlQFqAQAB/wGAAW4BGgH+AVwCWQHGA1cBtQMWAR4IAAMCAQMDGgEjAzgBXANUAagDYgHXA3AB AAH/AZUBagEAAf8BgAFvARsB/gFcAlkBxgNXAbUDFgEeCAADAgEDAxoBIwM4AVwDVAGoA2IB1wNwAfED
8QOAAf4DgQH/A4EB/wOBAf8DgQH9A2gB8ANhAdQDUwGlAzYBWQMYASAB/wGyAW8B/wH9AYABEQH/AfwB gAH+A4EB/wOBAf8DgQH/A4EB/QNoAfADYQHUA1MBpQM2AVkDGAEgAf8BsgFvAf8B/QGAAREB/wH8AXcB
dwEBAf8B/QF3AQAC/wF4AQAC/wF/AQ8C/wGSATsC/wGzAYMC/wHqAeAC/wGQAT0C/wF7AQoB/wH8AXcB AQH/Af0BdwEAAv8BeAEAAv8BfwEPAv8BkgE7Av8BswGDAv8B6gHgAv8BkAE9Av8BewEKAf8B/AF3AQAB
AAH/AeUBbAEAAf8BsQFUAQAB/wGEAUsBGgH/A2MB3wT/AdkBqgE3Af8BvgGYATgB/wHAAZgBNgH/AdwB /wHlAWwBAAH/AbEBVAEAAf8BhAFLARoB/wNjAd8E/wHZAaoBNwH/Ab4BmAE4Af8BwAGYATYB/wHcAaIB
ogEUAf8BzwGUAQAB/wHeAcwBnwH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DkwH/BAAD FAH/Ac8BlAEAAf8B3gHMAZ8B/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A5MB/wQAAyAB
IAEtAmMBWgHpAb8BiAEAAf8BzQGVAQoB/wGwAYgBJwH/AXMBZAE/Af8BTQFLAUcB/wFOAUsBQgH/AWYB LQJjAVoB6QG/AYgBAAH/Ac0BlQEKAf8BsAGIAScB/wFzAWQBPwH/AU0BSwFHAf8BTgFLAUIB/wFmAVcB
VwExAf8BmgF0ARcB/wGkAXYBAwH/AXABTwEAAf8DQwF2BAFEAAH/AZoBQgL/AYMBFQH/Af4BegEEAv8B MQH/AZoBdAEXAf8BpAF2AQMB/wFwAU8BAAH/A0MBdgQBRAAB/wGaAUIC/wGDARUB/wH+AXoBBAL/AXgB
eAEAAv8BeAEAAv8BlQE/Av8BygGuAv8B2gHGAv8B7QHlAv8BlgFJAv8BfAENAf8B/gF4AQAB/wH0AXMB AAL/AXgBAAL/AZUBPwL/AcoBrgL/AdoBxgL/Ae0B5QL/AZYBSQL/AXwBDQH/Af4BeAEAAf8B9AFzAQAB
AAH/AdABYgEAAf8BmgFOAQoB/wFjAl0B3wT/AeEBrgExAf8BvQGXATsB/wHAAZgBNQH/AeMBpQEKAf8B /wHQAWIBAAH/AZoBTgEKAf8BYwJdAd8E/wHhAa4BMQH/Ab0BlwE7Af8BwAGYATUB/wHjAaUBCgH/Ac8B
zwGUAQAB/wHeAcwBnwH/A8AB/wPAAf8DwAH/A8AB/wPAAf8DwAH/A8AB/wPAAf8DrwH/BAACYwFaAekB lAEAAf8B3gHMAZ8B/wPAAf8DwAH/A8AB/wPAAf8DwAH/A8AB/wPAAf8DwAH/A68B/wQAAmMBWgHpAdkB
2QGaAQAB/wHaAaMBHAH/Ao4BjAH/A4oB/wOXAf8DmwH/A5EB/wN0Af8DSAH/AUMBQgE/Af8BtQGDAQcB mgEAAf8B2gGjARwB/wKOAYwB/wOKAf8DlwH/A5sB/wORAf8DdAH/A0gB/wFDAUIBPwH/AbUBgwEHAf8B
/wF6AVcBAAH/AzYBWAwAAwIBAwMIAQoDIQEvAzEBTgM9AWgDQwF2A0QBegNDAXUDPQFnAzEBTQMgAS4D egFXAQAB/wM2AVgMAAMCAQMDCAEKAyEBLwMxAU4DPQFoA0MBdgNEAXoDQwF1Az0BZwMxAU0DIAEuAwcB
BwEJBAIEAAH/AZUBNwL/AYkBHwL/AX0BCAL/AXgBAAL/AXgBAAL/AagBXAL/AeABzQL/AaEBZgL/AdgB CQQCBAAB/wGVATcC/wGJAR8C/wF9AQgC/wF4AQAC/wF4AQAC/wGoAVwC/wHgAc0C/wGhAWYC/wHYAcUC
xQL/AbkBlAL/AYcBIwL/AXgBAAH/AfsBdgEAAf8B4gFqAQAB/wGvAVQBAwH/AWMCXQHfBP8BuwGdAVMB /wG5AZQC/wGHASMC/wF4AQAB/wH7AXYBAAH/AeIBagEAAf8BrwFUAQMB/wFjAl0B3wT/AbsBnQFTAf8B
/wGIAYQBeQH/AYwBhQF0Af8BxAGZATAB/wHPAZQBAAH/Ad4BzAGfIf8DygH/A0MBdgHpAacBAgH/AekB iAGEAXkB/wGMAYUBdAH/AcQBmQEwAf8BzwGUAQAB/wHeAcwBnyH/A8oB/wNDAXYB6QGnAQIB/wHpAasB
qwESAf8B0AHKAbsB/wOsAf8DXQH/A0wB/wNLAf8DRAH/Aw8B/wOzAf8DZgH/AVQBTAE6Af8BrgF9AQQB EgH/AdABygG7Af8DrAH/A10B/wNMAf8DSwH/A0QB/wMPAf8DswH/A2YB/wFUAUwBOgH/Aa4BfQEEAf8D
/wNdAcwIAAMTARoDOQFdA1kBvANkAdsDagHtA2MB9gNfAfsDgQH9A18B+wNjAfYDZQHsA2MB2gNaAboD XQHMCAADEwEaAzkBXQNZAbwDZAHbA2oB7QNjAfYDXwH7A4EB/QNfAfsDYwH2A2UB7ANjAdoDWgG6AzgB
OAFcAxMBGgH/AaABSQL/AZIBMQL/AYEBEQL/AXkBAwL/AXgBAAL/AagBXAL/AeABzQL/AaEBZgL/AdgB XAMTARoB/wGgAUkC/wGSATEC/wGBAREC/wF5AQMC/wF4AQAC/wGoAVwC/wHgAc0C/wGhAWYC/wHYAcUC
xQL/AcABnwL/AYkBJwL/AXgBAAH/Af4BeAEAAf8B7AFvAQAB/wG/AVoBAgH/AWMCXQHfBP8BlAGKAXMB /wHAAZ8C/wGJAScC/wF4AQAB/wH+AXgBAAH/AewBbwEAAf8BvwFaAQIB/wFjAl0B3wT/AZQBigFzAf8D
/wOBAf8DgQH/AZoBigFjAf8BzwGUAQAB/wHeAcwBnwH/A9AB/wPQAf8D0AH/A9AB/wPQAf8D0AH/A9AB gQH/A4EB/wGaAYoBYwH/Ac8BlAEAAf8B3gHMAZ8B/wPQAf8D0AH/A9AB/wPQAf8D0AH/A9AB/wPQAf8D
/wPQAf8DtQH/AmoBYQHmAe0BrQEQAf8B9AHQAXYB/wP6Af8D+gH/A30B/wN/Af8DgAH/A4AB/wN+Af8D 0AH/A7UB/wJqAWEB5gHtAa0BEAH/AfQB0AF2Af8D+gH/A/oB/wN9Af8DfwH/A4AB/wOAAf8DfgH/A4QB
hAH/A7sB/wNqAf8BqAGAARwB/wJjAUgB9gQAAxoBJANWAa4DaAH0A4EB/wOBAf8DgQH/A4EB/wOBAf8D /wO7Af8DagH/AagBgAEcAf8CYwFIAfYEAAMaASQDVgGuA2gB9AOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB
gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DawHyA1IBoQH/AbMBbwL/AZ4BSAL/AYgBHgL/AXwBBwL/AXgB /wOBAf8DgQH/A4EB/wOBAf8DgQH/A2sB8gNSAaEB/wGzAW8C/wGeAUgC/wGIAR4C/wF8AQcC/wF4AQAC
AAL/AZgBQwL/Ac4BtAL/AdcBwAL/AeoB4AL/AZ0BVwL/AX4BEQL/AXgBAAL/AXgBAAH/AfABcQEAAf8B /wGYAUMC/wHOAbQC/wHXAcAC/wHqAeAC/wGdAVcC/wF+AREC/wF4AQAC/wF4AQAB/wHwAXEBAAH/AcsB
ywFkAQkB/wFjAWEBXQHfBP8BhgGDAX4B/wOBAf8DgQH/AYYBgwF7Af8BzwGUAQAB/wHeAcwBnwH/A4EB ZAEJAf8BYwFhAV0B3wT/AYYBgwF+Af8DgQH/A4EB/wGGAYMBewH/Ac8BlAEAAf8B3gHMAZ8B/wOBAf8D
/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DkwH/AWYBYwFiAe4B7wG0ASEB/wH3AdwBlwn/A5EB gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A5MB/wFlAmIB7gHvAbQBIQH/AfcB3AGXCf8DkQH/A4gB
/wOIAf8DhwH/A4cB/wOBAf8DVwH/A+YB/wOjAf8BtgGRATYB/wGBAWoBQQH5BAADVwGyA2UB5wOBAf8D /wOHAf8DhwH/A4EB/wNXAf8D5gH/A6MB/wG2AZEBNgH/AYABagFBAfkEAANXAbIDZQHnA4EB/wOBAf8D
gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DVQGvAf8BzAGfAv8B gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wNVAa8B/wHMAZ8C/wGsAWMC
rAFjAv8BkwEzAv8BgQERAv8BeQECAv8BggEWAv8BmgFLAv8BrgF4Av8BpQFXAv8BgQEXAv8BeQEEAv8B /wGTATMC/wGBAREC/wF5AQIC/wGCARYC/wGaAUsC/wGuAXgC/wGlAVcC/wGBARcC/wF5AQQC/wF4AQAC
eAEAAv8BeAEAAf8B8AFxAQAB/wHVAXEBFwH/AmMBXQHfBP8BiwGGAXkB/wOBAf8DgQH/AY4BhgFxAf8B /wF4AQAB/wHwAXEBAAH/AdUBcQEXAf8CYwFdAd8E/wGLAYYBeQH/A4EB/wOBAf8BjgGGAXEB/wHPAZQB
zwGUAQAB/wHeAcwBnwH/A6EB/wOhAf8DoQH/A6EB/wOhAf8DoQH/A6EB/wOhAf8DoQH/A0sBjQHwAb4B AAH/Ad4BzAGfAf8DoQH/A6EB/wOhAf8DoQH/A6EB/wOhAf8DoQH/A6EB/wOhAf8DSwGNAfABvgE/Af8B
PwH/AfQBzQFsIf8D+wH/A9AB/wHXAacBMQH/AmEBXQHRBAADbwHzA18B+wOBAf8DgQH/A4EB/wOBAf8D 9AHNAWwh/wP7Af8D0AH/AdcBpwExAf8CYQFdAdEEAANvAfMDXwH7A4EB/wOBAf8DgQH/A4EB/wOBAf8D
gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DVQGvAf8B6QHVAv8BvAGBAv8BpAFUAv8B gQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wNVAa8B/wHpAdUC/wG8AYEC/wGkAVQC/wGOASoC
jgEqAv8BfwENAv8BeQECAv8BewEJAv8BggEdAv8BeAEAAv8BeAEAAv8BeAEBAv8BegEEAv8BegEDAf8B /wF/AQ0C/wF5AQIC/wF7AQkC/wGCAR0C/wF4AQAC/wF4AQAC/wF4AQEC/wF6AQQC/wF6AQMB/wHzAXQB
8wF0AQMB/wHiAYQBMgH/A2MB3wT/AacBlAFnAf8BgwGCAX8B/wGFAYMBfgH/AbABlAFOAf8B0wGXAQIB AwH/AeIBhAEyAf8DYwHfBP8BpwGUAWcB/wGDAYIBfwH/AYUBgwF+Af8BsAGUAU4B/wHTAZcBAgH/AeAB
/wHgAc4BnwH/A+cB/wPnAf8D5wH/A+cB/wPnAf8D5wH/A+cB/wPnAf8DwAH/AwcBCQFmAWQBYgHuAfEB zgGfAf8D5wH/A+cB/wPnAf8D5wH/A+cB/wPnAf8D5wH/A+cB/wPAAf8DBwEJAWUBYwFiAe4B8QG8ATsB
vAE7Af8B+gHqAcIB/wPcAf8DdwH/A2gB/wNoAf8DaAH/AzIJ/wHyAd0BqQH/AeoBqQEIAf8DPgFqBAAD /wH6AeoBwgH/A9wB/wN3Af8DaAH/A2gB/wNoAf8DMgn/AfIB3QGpAf8B6gGpAQgB/wM+AWoEAANkAdsD
ZAHbA2gB9AOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8D aAH0A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wNVAa8D
VQGvA14B0gGPAYgBfwH5Af8BuwF9Av8BowFSAv8BkAEsAv8BggETAv8BfQEIAv8BegEEAv8BeQECAv8B XgHSAY4BhwF9AfkB/wG7AX0C/wGjAVIC/wGQASwC/wGCARMC/wF9AQgC/wF6AQQC/wF5AQIC/wF6AQQC
egEEAv8BfQEJAv8BgAEPAv8BfwENAf8B+AGGASAB/wF0AmgB9ANYAbgE/wHXAbEBUgH/AZoBjwF0Af8B /wF9AQkC/wGAAQ8C/wF/AQ0B/wH4AYYBIAH/AXMCaAH0A1gBuAT/AdcBsQFSAf8BmgGPAXQB/wGgAZIB
oAGSAW0B/wHgAa8BNwH/AecBqQEQAf8B6wHVAaAB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8D bQH/AeABrwE3Af8B5wGpARAB/wHrAdUBoAH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8D
gQH/A5MB/wQAAzMBUQNoAfAB8wHGAVgB/wH6AecBuBb/Af4B+wH/AfkB4gGqAf8B7wG4AS0B/wNOAZYE kwH/BAADMwFRA2gB8AHzAcYBWAH/AfoB5wG4Fv8B/gH7Af8B+QHiAaoB/wHvAbgBLQH/A04BlgQCBAAD
AgQAAzwBZANfAckDfQH6A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8D PAFkA18ByQN9AfoDgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wOBAf8DgQH/A4EB/wN9AfoD
fQH6A1UBqgM8AWYDYwHVAYsBfQF8AfgB/wG+AYUC/wGqAV8C/wGZAT4C/wGNAScC/wGGARoC/wGDARUC VQGqAzwBZgNjAdUBiAJ8AfgB/wG+AYUC/wGqAV8C/wGZAT4C/wGNAScC/wGGARoC/wGDARUC/wGFARkC
/wGFARkC/wGKASIC/wGNASgC/wGTATMB/wFxAW4BaAH1A10BxQM2AVkE/wH0Ac0BbAH/AfQBywFmAf8B /wGKASIC/wGNASgC/wGTATMB/wFwAW4BaAH1A10BxQM2AVkE/wH0Ac0BbAH/AfQBywFmAf8B9AHLAWUB
9AHLAWUB/wH0AcsBZQH/AfEBwQFJAf8B+QHjAawB/wOJAf8DiQH/A4kB/wOJAf8DiQH/A4kB/wOJAf8D /wH0AcsBZQH/AfEBwQFJAf8B+QHjAawB/wOJAf8DiQH/A4kB/wOJAf8DiQH/A4kB/wOJAf8DiQH/A5oB
iQH/A5oB/wgAAyIBMQNfAckBmAF+AWcB+gHzAcoBZQH/AfkB4QGmAf8B+wHtAcwB/wH7AewByAH/AfgB /wgAAyIBMQNfAckBlQF9AWcB+gHzAcoBZQH/AfkB4QGmAf8B+wHtAcwB/wH7AewByAH/AfgB3QGbAf8B
3QGbAf8BvgGQAWsB/gJlAV4B4gM9AWgEAQgAAwYBCAMxAUwDUAGbA2UB7AN9AfoDgQH/A4EB/wOBAf8D vAGOAWwB/gJlAV4B4gM9AWgEAQgAAwYBCAMxAUwDUAGbA2UB7AN9AfoDgQH/A4EB/wOBAf8DgQH/A4EB
gQH/A4EB/wOBAf8DgQH/A30B+gNqAe0DUAGbAy8BSQQAA0IBcgNjAdUBjwGKAYQB+QH/AckBmQL/AbwB /wOBAf8DgQH/A30B+gNqAe0DUAGbAy8BSQQAA0IBcgNjAdUBjgGJAYMB+QH/AckBmQL/AbwBfwL/Aa4B
fwL/Aa4BZgL/AaQBUwL/AZ8BSgL/AZ8BSwL/AaMBUQL/AacBWAH/AYsCfAH4A10BxwM7AWIEAED/EAAD ZgL/AaQBUwL/AZ8BSgL/AZ8BSwL/AaMBUQL/AacBWAH/AYgCfAH4A10BxwM7AWIEAED/EAADDwETA0cB
DwETA0cBggNkAdsBrAGSAW8B/ANnAeoDVAGoAygBOxwAAwUBBgMSARcDOgFgA1EBnwNfAdMDZwHvA2MB ggNkAdsBqgGPAW8B/ANnAeoDVAGoAygBOxwAAwUBBgMSARcDOgFgA1EBnwNfAdMDZwHvA2MB9gNiAe4D
9gNiAe4DXgHSA1EBngM5AV8DEQEWAwUBBgwAAzwBZQNeAdIB/wHvAeAC/wHcAbwC/wHNAZ8C/wHBAYoC XgHSA1EBngM5AV8DEQEWAwUBBgwAAzwBZQNeAdIB/wHvAeAC/wHcAbwC/wHNAZ8C/wHBAYoC/wG7AX8C
/wG7AX8C/wG/AYYC/wHNAaEC/wHpAdYB/wNcAcQDNQFVCAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwAB /wG/AYYC/wHNAaEC/wHpAdYB/wNcAcQDNQFVCAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEG
AQEAAQEGAAEBFgAD/wEAAcABAwYAAYABAWYAAYABAQYAAcABAwgAAf8B/AIAAcABAwIAAf8B/AIAAYAB AAEBFgAD/wEAAcABAwYAAYABAWYAAYABAQYAAcABAwgAAf8B/AIAAcABAwIAAf8B/AIAAYABAQIAAf8B
AQIAAf8B+QYAAf8B+QYAAfABEwYAAcABAwYAAYABAQL/BAABgAEBAcABAQUAAQEBgAYAAQEHAAEBBwAB +QYAAf8B+QYAAfABEwYAAcABAwYAAYABAQL/BAABgAEBAcABAQUAAQEBgAYAAQEHAAEBBwABAQcAAQEG
AQcAAQEGAAGAAQEGAAHAAQMCAAGAAQECAAHwAR8BwAEBAcABAws= AAGAAQEGAAHAAQMCAAGAAQECAAHwAR8BwAEBAcABAws=
</value> </value>
</data> </data>
<metadata name="ilStoreIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ilStoreIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@ -1,5 +1,6 @@
using Krypton.Toolkit; using Krypton.Toolkit;
using Microsoft.AspNetCore.Mvc.Routing; using Microsoft.AspNetCore.Mvc.Routing;
using Microsoft.VisualBasic.ApplicationServices;
using qtcnet_client.Controls; using qtcnet_client.Controls;
using qtcnet_client.Forms; using qtcnet_client.Forms;
using qtcnet_client.Model; using qtcnet_client.Model;
@ -26,6 +27,8 @@ namespace qtcnet_client
private readonly List<ChatRoomForm> OpenChatRoomForms = []; private readonly List<ChatRoomForm> OpenChatRoomForms = [];
private readonly List<ProfileForm> OpenProfileForms = []; private readonly List<ProfileForm> OpenProfileForms = [];
private readonly List<Contact> UserContactsList = [];
private Size LoggedOutSize = new(615, 702); private Size LoggedOutSize = new(615, 702);
private Size LoggedInSize = new(419, 715); private Size LoggedInSize = new(419, 715);
@ -278,11 +281,102 @@ namespace qtcnet_client
} }
} }
private void MainTabControl_OnContactControlDoubleClicked(object? sender, EventArgs e) private async void MainTabControl_OnContactControlDoubleClicked(object? sender, EventArgs e)
{ {
if (sender is ContactControl _) if (sender is ContactControl _contactCtrl)
{ {
var _user = await _apiService.GetUserInformationAsync(_contactCtrl.UserId);
if (_user.Success && _user.Data != null)
{
// create a profile form
ProfileForm _profile = new(_apiService)
{
UserId = _user.Data.Id,
Username = _user.Data.Username,
Bio = _user.Data.Bio,
Status = _user.Data.Status,
};
// check if user is in contacts list (if profile isn't self)
var _contact = UserContactsList.FirstOrDefault(e => e.OwnerId == _user.Data.Id || e.UserId == _user.Data.Id);
if (_contact != null)
{
// set contact status
if (_contact.UserId == _apiService.CurrentUser?.Id)
_profile.ContactStatus = _contact.UserStatus;
else
_profile.ContactStatus = _contact.OwnerStatus;
}
else
_profile.ContactStatus = Contact.ContactStatus.NoRelation;
// get profile image
var _pfpBytes = await _apiService.GetUserProfilePic(_contactCtrl.UserId);
if (_pfpBytes.Success && _pfpBytes.Data != null)
{
using var ms = new MemoryStream(_pfpBytes.Data);
Image img = Image.FromStream(ms);
_profile.ProfileImage = img;
}
_profile.OnClose += ProfileForm_OnClose;
OpenProfileForms.Add(_profile);
_profile.Show();
}
}
}
private async void MainTabControl_OnUserItemDoubleClicked(object? sender, EventArgs e)
{
if(sender is MainTabControl _mtCtrl)
{
if(_mtCtrl.SelectedUser != null)
{
// get the user to open the profile for
if(_mtCtrl.SelectedUser.Tag is string _tagString)
{
var _user = await _apiService.GetUserInformationAsync(_tagString);
if (_user.Success && _user.Data != null)
{
// create a profile form
ProfileForm _profile = new(_apiService)
{
UserId = _user.Data.Id,
Username = _user.Data.Username,
Bio = _user.Data.Bio,
Status = _user.Data.Status,
};
// check if user is in contacts list (if profile isn't self)
var _contact = UserContactsList.FirstOrDefault(e => e.OwnerId == _user.Data.Id || e.UserId == _user.Data.Id);
if (_contact != null)
{
// set contact status
if (_contact.OwnerId == _apiService.CurrentUser?.Id)
_profile.ContactStatus = _contact.UserStatus;
else
_profile.ContactStatus = _contact.OwnerStatus;
}
else
_profile.ContactStatus = Contact.ContactStatus.NoRelation;
// get profile image
var _pfpBytes = await _apiService.GetUserProfilePic(_tagString);
if(_pfpBytes.Success && _pfpBytes.Data != null)
{
using var ms = new MemoryStream(_pfpBytes.Data);
Image img = Image.FromStream(ms);
_profile.ProfileImage = img;
}
_profile.OnClose += ProfileForm_OnClose;
OpenProfileForms.Add(_profile);
_profile.Show();
}
}
}
} }
} }
@ -295,9 +389,21 @@ namespace qtcnet_client
} }
} }
private void _apiService_OnCurrentUserUpdate(object? sender, EventArgs e) private async void _apiService_OnCurrentUserUpdate(object? sender, EventArgs e)
{ {
throw new NotImplementedException(); // set everything in the current user profile
CurrentProfileControl?.Username = _apiService.CurrentUser?.Username ?? "Username";
CurrentProfileControl?.CurrencyCount = _apiService.CurrentUser?.CurrencyAmount ?? 0;
var _pfpRes = await _apiService.GetUserProfilePic(_apiService.CurrentUser!.Id);
if (_pfpRes.Success && _pfpRes.Data != null)
{
using var ms = new MemoryStream(_pfpRes.Data);
Image img = Image.FromStream(ms);
CurrentProfileControl?.ProfileImage = img;
}
CurrentProfileControl?.RefreshInfo();
} }
private void _gatewayService_OnUserForceLogout(object? sender, EventArgs e) private void _gatewayService_OnUserForceLogout(object? sender, EventArgs e)
@ -315,7 +421,16 @@ namespace qtcnet_client
// get and set contacts // get and set contacts
var _currentUserContacts = await _apiService.GetCurrentUserContacts(); var _currentUserContacts = await _apiService.GetCurrentUserContacts();
if (_currentUserContacts.Success && _currentUserContacts.Data != null) if (_currentUserContacts.Success && _currentUserContacts.Data != null)
{
UserContactsList.Clear();
UserContactsList.AddRange([.. _currentUserContacts.Data.DistinctBy(c => c.Id)]);
await SetupContactsUI(_currentUserContacts.Data); await SetupContactsUI(_currentUserContacts.Data);
} else
{
// if no contacts are found, just clear the lists
UserContactsList.Clear();
await SetupContactsUI([]);
}
} }
private async void _gatewayService_OnRefreshRoomListReceived(object? sender, EventArgs e) private async void _gatewayService_OnRefreshRoomListReceived(object? sender, EventArgs e)
@ -457,11 +572,16 @@ namespace qtcnet_client
MainTabControl.OnRoomControlDoubleClicked += MainTabControl_OnRoomControlDoubleClicked; MainTabControl.OnRoomControlDoubleClicked += MainTabControl_OnRoomControlDoubleClicked;
MainTabControl.OnContactControlDoubleClicked += MainTabControl_OnContactControlDoubleClicked; MainTabControl.OnContactControlDoubleClicked += MainTabControl_OnContactControlDoubleClicked;
MainTabControl.OnUserItemDoubleClicked += MainTabControl_OnUserItemDoubleClicked;
// get and set contacts // get and set contacts
var _currentUserContacts = await _apiService.GetCurrentUserContacts(); var _currentUserContacts = await _apiService.GetCurrentUserContacts();
if (_currentUserContacts.Success && _currentUserContacts.Data != null) if (_currentUserContacts.Success && _currentUserContacts.Data != null)
{
UserContactsList.Clear();
UserContactsList.AddRange([.. _currentUserContacts.Data.DistinctBy(c => c.Id)]);
await SetupContactsUI(_currentUserContacts.Data); await SetupContactsUI(_currentUserContacts.Data);
}
// get and set rooms // get and set rooms
var _roomList = await _apiService.GetAllRoomsAsync(); var _roomList = await _apiService.GetAllRoomsAsync();
@ -602,6 +722,7 @@ namespace qtcnet_client
{ {
var ctrl = new ContactControl var ctrl = new ContactControl
{ {
UserId = user.Data.Id,
Username = user.Data.Username, Username = user.Data.Username,
TextStatus = "NOT IMPLEMENTED", TextStatus = "NOT IMPLEMENTED",
Status = user.Data.Status, Status = user.Data.Status,

View File

@ -32,10 +32,14 @@
lblStatus = new Label(); lblStatus = new Label();
rtxtBio = new RichTextBox(); rtxtBio = new RichTextBox();
tlpActionButtons = new TableLayoutPanel(); tlpActionButtons = new TableLayoutPanel();
btnAction1 = new Button();
btnAction2 = new Button();
tlpUsernameTags = new TableLayoutPanel(); tlpUsernameTags = new TableLayoutPanel();
lblUsername = new Label(); lblUsername = new Label();
tlpTagIcons = new TableLayoutPanel(); tlpTagIcons = new TableLayoutPanel();
btnSaveProfile = new Button();
((System.ComponentModel.ISupportInitialize)pbProfileImage).BeginInit(); ((System.ComponentModel.ISupportInitialize)pbProfileImage).BeginInit();
tlpActionButtons.SuspendLayout();
tlpUsernameTags.SuspendLayout(); tlpUsernameTags.SuspendLayout();
SuspendLayout(); SuspendLayout();
// //
@ -48,6 +52,9 @@
pbProfileImage.SizeMode = PictureBoxSizeMode.Zoom; pbProfileImage.SizeMode = PictureBoxSizeMode.Zoom;
pbProfileImage.TabIndex = 0; pbProfileImage.TabIndex = 0;
pbProfileImage.TabStop = false; pbProfileImage.TabStop = false;
pbProfileImage.Click += pbProfileImage_Click;
pbProfileImage.MouseEnter += pbProfileImage_MouseEnter;
pbProfileImage.MouseLeave += pbProfileImage_MouseLeave;
// //
// lblStatus // lblStatus
// //
@ -78,6 +85,8 @@
tlpActionButtons.ColumnCount = 2; tlpActionButtons.ColumnCount = 2;
tlpActionButtons.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); tlpActionButtons.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
tlpActionButtons.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); tlpActionButtons.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
tlpActionButtons.Controls.Add(btnAction1, 0, 0);
tlpActionButtons.Controls.Add(btnAction2, 1, 0);
tlpActionButtons.Location = new Point(296, 415); tlpActionButtons.Location = new Point(296, 415);
tlpActionButtons.Name = "tlpActionButtons"; tlpActionButtons.Name = "tlpActionButtons";
tlpActionButtons.RowCount = 1; tlpActionButtons.RowCount = 1;
@ -85,6 +94,28 @@
tlpActionButtons.Size = new Size(121, 42); tlpActionButtons.Size = new Size(121, 42);
tlpActionButtons.TabIndex = 5; tlpActionButtons.TabIndex = 5;
// //
// btnAction1
//
btnAction1.Dock = DockStyle.Fill;
btnAction1.FlatAppearance.BorderSize = 0;
btnAction1.FlatStyle = FlatStyle.Flat;
btnAction1.Location = new Point(3, 3);
btnAction1.Name = "btnAction1";
btnAction1.Size = new Size(54, 36);
btnAction1.TabIndex = 0;
btnAction1.UseVisualStyleBackColor = true;
//
// btnAction2
//
btnAction2.Dock = DockStyle.Fill;
btnAction2.FlatAppearance.BorderSize = 0;
btnAction2.FlatStyle = FlatStyle.Flat;
btnAction2.Location = new Point(63, 3);
btnAction2.Name = "btnAction2";
btnAction2.Size = new Size(55, 36);
btnAction2.TabIndex = 1;
btnAction2.UseVisualStyleBackColor = true;
//
// tlpUsernameTags // tlpUsernameTags
// //
tlpUsernameTags.AutoSize = true; tlpUsernameTags.AutoSize = true;
@ -112,6 +143,7 @@
lblUsername.TabIndex = 0; lblUsername.TabIndex = 0;
lblUsername.Text = "Username"; lblUsername.Text = "Username";
lblUsername.TextAlign = ContentAlignment.MiddleLeft; lblUsername.TextAlign = ContentAlignment.MiddleLeft;
lblUsername.DoubleClick += lblUsername_DoubleClick;
// //
// tlpTagIcons // tlpTagIcons
// //
@ -128,6 +160,17 @@
tlpTagIcons.Size = new Size(145, 49); tlpTagIcons.Size = new Size(145, 49);
tlpTagIcons.TabIndex = 1; tlpTagIcons.TabIndex = 1;
// //
// btnSaveProfile
//
btnSaveProfile.Location = new Point(12, 434);
btnSaveProfile.Name = "btnSaveProfile";
btnSaveProfile.Size = new Size(45, 23);
btnSaveProfile.TabIndex = 7;
btnSaveProfile.Text = "Save";
btnSaveProfile.UseVisualStyleBackColor = true;
btnSaveProfile.Visible = false;
btnSaveProfile.Click += btnSaveProfile_Click;
//
// ProfileForm // ProfileForm
// //
AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleDimensions = new SizeF(7F, 15F);
@ -135,6 +178,7 @@
AutoSize = true; AutoSize = true;
BackColor = Color.DodgerBlue; BackColor = Color.DodgerBlue;
ClientSize = new Size(429, 463); ClientSize = new Size(429, 463);
Controls.Add(btnSaveProfile);
Controls.Add(tlpUsernameTags); Controls.Add(tlpUsernameTags);
Controls.Add(tlpActionButtons); Controls.Add(tlpActionButtons);
Controls.Add(rtxtBio); Controls.Add(rtxtBio);
@ -147,6 +191,7 @@
FormClosed += ProfileForm_FormClosed; FormClosed += ProfileForm_FormClosed;
Load += ProfileForm_Load; Load += ProfileForm_Load;
((System.ComponentModel.ISupportInitialize)pbProfileImage).EndInit(); ((System.ComponentModel.ISupportInitialize)pbProfileImage).EndInit();
tlpActionButtons.ResumeLayout(false);
tlpUsernameTags.ResumeLayout(false); tlpUsernameTags.ResumeLayout(false);
tlpUsernameTags.PerformLayout(); tlpUsernameTags.PerformLayout();
ResumeLayout(false); ResumeLayout(false);
@ -162,5 +207,8 @@
private TableLayoutPanel tlpUsernameTags; private TableLayoutPanel tlpUsernameTags;
private Label lblUsername; private Label lblUsername;
private TableLayoutPanel tlpTagIcons; private TableLayoutPanel tlpTagIcons;
private Button btnAction1;
private Button btnAction2;
private Button btnSaveProfile;
} }
} }

View File

@ -1,16 +1,22 @@
using qtcnet_client.Properties; using Krypton.Toolkit;
using qtcnet_client.Properties;
using QtCNETAPI.Models;
using QtCNETAPI.Services.ApiService;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Data; using System.Data;
using System.Drawing; using System.Drawing;
using System.Text; using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
namespace qtcnet_client.Forms namespace qtcnet_client.Forms
{ {
public partial class ProfileForm : Form public partial class ProfileForm : Form
{ {
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public string UserId { get; set; } = string.Empty;
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public string Username { get; set; } = "Username"; public string Username { get; set; } = "Username";
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
@ -22,13 +28,16 @@ namespace qtcnet_client.Forms
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public string[] Tags { get; set; } = []; public string[] Tags { get; set; } = [];
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public int ContactStatus { get; set; } = 0; public Contact.ContactStatus ContactStatus { get; set; }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public Image ProfileImage { get; set; } = Resources.DefaultPfp; public Image ProfileImage { get; set; } = Resources.DefaultPfp;
public event EventHandler? OnClose; public event EventHandler? OnClose;
public ProfileForm()
private IApiService _apiService;
public ProfileForm(IApiService apiService)
{ {
_apiService = apiService;
InitializeComponent(); InitializeComponent();
} }
@ -41,12 +50,249 @@ namespace qtcnet_client.Forms
pbProfileImage.Image = ProfileImage; pbProfileImage.Image = ProfileImage;
if (Status == 0) lblStatus.Visible = false; if (Status == 0) lblStatus.Visible = false;
if (UserId == _apiService.CurrentUser?.Id)
{
btnAction1.Visible = false;
btnAction2.Visible = false;
btnSaveProfile.Visible = true;
rtxtBio.ReadOnly = false;
}
switch (ContactStatus)
{
case Contact.ContactStatus.Accepted:
if (Status == 0) btnAction1.Visible = false;
btnAction1.Image = Resources.MessageIcon;
btnAction2.Image = Resources.RemoveContactIcon;
btnAction1.Click += BtnAction1_MessageClick;
btnAction2.Click += BtnAction2_RemoveContactClick;
break;
case Contact.ContactStatus.AwaitingApprovalFromSelf:
btnAction1.Image = Resources.AcceptContactIcon;
btnAction2.Image = Resources.DeclineContactIcon;
btnAction1.Click += BtnAction1_AcceptContactClick;
btnAction2.Click += BtnAction2_DeclineContactClick;
break;
case Contact.ContactStatus.AwaitingApprovalFromOther:
btnAction1.Image = Resources.RequestSentIcon;
btnAction2.Image = Resources.CancelRequestIcon;
btnAction1.Enabled = false;
btnAction2.Click += BtnAction2_CancelContactRequestClick;
break;
case Contact.ContactStatus.NoRelation:
btnAction1.Image = null;
btnAction2.Image = Resources.AddContactIcon;
btnAction1.Enabled = false;
btnAction2.Click += BtnAction2_AddContactClick;
break;
}
} }
private void ProfileForm_FormClosed(object sender, FormClosedEventArgs e) private async void BtnAction2_AddContactClick(object? sender, EventArgs e)
{ {
OnClose?.Invoke(this, EventArgs.Empty); // send request to add user as a contact
Close(); var _res = await _apiService.AddContactToCurrentUser(UserId);
if (_res.Success && _res.Data != null)
{
if (_res.Data.OwnerId == UserId)
ContactStatus = _res.Data.UserStatus;
else
ContactStatus = _res.Data.OwnerStatus;
}
ReevaluateContactStatus();
}
private async void BtnAction2_CancelContactRequestClick(object? sender, EventArgs e)
{
// remove contact from user
var _res = await _apiService.RemoveContactFromCurrentUser(UserId);
if (_res.Success && _res.Data != null)
ContactStatus = Contact.ContactStatus.NoRelation;
ReevaluateContactStatus();
}
private async void BtnAction1_AcceptContactClick(object? sender, EventArgs e)
{
// accept contact request
var _res = await _apiService.AcceptContactRequest(UserId);
if (_res.Success)
ContactStatus = Contact.ContactStatus.Accepted;
ReevaluateContactStatus();
}
private async void BtnAction2_DeclineContactClick(object? sender, EventArgs e)
{
// remove contact from user
var _res = await _apiService.RemoveContactFromCurrentUser(UserId);
if (_res.Success && _res.Data != null)
ContactStatus = Contact.ContactStatus.NoRelation;
ReevaluateContactStatus();
}
private void BtnAction1_MessageClick(object? sender, EventArgs e)
{
throw new NotImplementedException();
}
private async void BtnAction2_RemoveContactClick(object? sender, EventArgs e)
{
// remove contact from user
var _res = await _apiService.RemoveContactFromCurrentUser(UserId);
if (_res.Success && _res.Data != null)
ContactStatus = Contact.ContactStatus.NoRelation;
ReevaluateContactStatus();
}
private void ProfileForm_FormClosed(object sender, FormClosedEventArgs e) => OnClose?.Invoke(this, EventArgs.Empty);
private void ReevaluateContactStatus()
{
if (UserId != _apiService.CurrentUser?.Id)
{
switch (ContactStatus)
{
case Contact.ContactStatus.Accepted:
if (Status == 0) btnAction1.Visible = false;
btnAction1.Image = Resources.MessageIcon;
btnAction2.Image = Resources.RemoveContactIcon;
btnAction1.Click += BtnAction1_MessageClick;
btnAction2.Click += BtnAction2_RemoveContactClick;
break;
case Contact.ContactStatus.AwaitingApprovalFromSelf:
btnAction1.Image = Resources.AcceptContactIcon;
btnAction2.Image = Resources.DeclineContactIcon;
btnAction1.Click += BtnAction1_AcceptContactClick;
btnAction2.Click += BtnAction2_DeclineContactClick;
break;
case Contact.ContactStatus.AwaitingApprovalFromOther:
btnAction1.Image = Resources.RequestSentIcon;
btnAction2.Image = Resources.CancelRequestIcon;
btnAction1.Enabled = false;
btnAction2.Click += BtnAction2_CancelContactRequestClick;
break;
case Contact.ContactStatus.NoRelation:
btnAction1.Image = null;
btnAction2.Image = Resources.AddContactIcon;
btnAction1.Enabled = false;
btnAction2.Click += BtnAction2_AddContactClick;
break;
}
}
else
{
btnAction1.Enabled = false;
btnAction2.Enabled = false;
}
}
private void lblUsername_DoubleClick(object sender, EventArgs e)
{
if (UserId == _apiService.CurrentUser?.Id)
{
lblUsername.Visible = false;
TextBox txtUsernameEdit = new()
{
Text = lblUsername.Text,
Font = lblUsername.Font,
MaxLength = 16,
Dock = lblUsername.Dock,
Location = lblUsername.Location,
Size = lblUsername.Size,
};
txtUsernameEdit.KeyDown += TxtUsernameEdit_KeyDown;
tlpUsernameTags.Controls.Add(txtUsernameEdit);
txtUsernameEdit.Focus();
}
}
private void TxtUsernameEdit_KeyDown(object? sender, KeyEventArgs e)
{
if (sender is TextBox txtUsernameEdit && e.KeyCode == Keys.Enter)
{
lblUsername.Text = txtUsernameEdit.Text;
tlpUsernameTags.Controls.Remove(txtUsernameEdit);
txtUsernameEdit.Dispose();
lblUsername.Visible = true;
}
}
private async void btnSaveProfile_Click(object sender, EventArgs e)
{
// update current user profile based on stuff inputted
var _res = await _apiService.UpdateUserInformationAsync(new()
{
Id = _apiService.CurrentUser!.Id,
Username = lblUsername.Text,
Bio = rtxtBio.Text,
DateOfBirth = _apiService.CurrentUser.DateOfBirth,
});
if (_res.Success && _res.Data != null)
KryptonMessageBox.Show("Profile Updated", "Yipee!");
else
KryptonMessageBox.Show("Profile Update Failed. Please Try Again Later.", "Oops.");
}
private void pbProfileImage_Click(object sender, EventArgs e)
{
if(UserId == _apiService.CurrentUser?.Id)
{
Thread _fileDialogThread = new Thread(async () =>
{
using OpenFileDialog openFileDialog = new()
{
CheckFileExists = true,
CheckPathExists = true,
InitialDirectory = Environment.CurrentDirectory,
Filter = "Image Files (*.png, *.jpg, *.gif, *.bmp)|*.png;*.jpg;*.gif;*.bmp",
Title = "Select A New Profile Image"
};
var _res = openFileDialog.ShowDialog();
if(_res == DialogResult.OK)
{
// update the current users profile image
var _apiRes = await _apiService.UpdateUserProfilePic(openFileDialog.FileName);
if(_apiRes.Success)
{
Image newImg = Image.FromFile(openFileDialog.FileName);
pbProfileImage.Image = newImg;
pbProfileImage.Invalidate();
}
}
});
_fileDialogThread.SetApartmentState(ApartmentState.STA);
_fileDialogThread.Start();
}
}
private void pbProfileImage_MouseEnter(object sender, EventArgs e)
{
if(UserId == _apiService.CurrentUser?.Id)
{
Graphics g = pbProfileImage.CreateGraphics();
Rectangle rect = pbProfileImage.ClientRectangle;
// draw an opaque dark color onto the client rectangle of the picturebox
using SolidBrush sb = new(Color.FromArgb(50, Color.Black));
g.FillRectangle(sb, rect);
pbProfileImage.Cursor = Cursors.Hand;
}
}
private void pbProfileImage_MouseLeave(object sender, EventArgs e)
{
// redraw the box normally
pbProfileImage.Cursor = Cursors.Default;
pbProfileImage.Invalidate();
} }
} }
} }

View File

@ -60,6 +60,36 @@ namespace qtcnet_client.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap AcceptContactIcon {
get {
object obj = ResourceManager.GetObject("AcceptContactIcon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap AddContactIcon {
get {
object obj = ResourceManager.GetObject("AddContactIcon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap CancelRequestIcon {
get {
object obj = ResourceManager.GetObject("CancelRequestIcon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -70,6 +100,16 @@ namespace qtcnet_client.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap DeclineContactIcon {
get {
object obj = ResourceManager.GetObject("DeclineContactIcon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -80,6 +120,16 @@ namespace qtcnet_client.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap MessageIcon {
get {
object obj = ResourceManager.GetObject("MessageIcon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -90,6 +140,26 @@ namespace qtcnet_client.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap RemoveContactIcon {
get {
object obj = ResourceManager.GetObject("RemoveContactIcon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap RequestSentIcon {
get {
object obj = ResourceManager.GetObject("RequestSentIcon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>

View File

@ -121,8 +121,8 @@
<data name="DefaultPfp" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="DefaultPfp" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DefaultPfp.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\DefaultPfp.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="QtCNETIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="MessageIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\QtCNETIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\MessageIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="CurrencyIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="CurrencyIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CurrencyIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\CurrencyIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@ -130,7 +130,28 @@
<data name="RoomsChatIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="RoomsChatIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\RoomsChatIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\RoomsChatIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="QtCNETIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\QtCNETIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="SendIcon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="SendIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SendIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\SendIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="RemoveContactIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\RemoveContactIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AddContactIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AddContactIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="RequestSentIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\RequestSentIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CancelRequestIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\CancelRequestIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="AcceptContactIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AcceptContactIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="DeclineContactIcon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\DeclineContactIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB