diff --git a/CSMPFunctions.lua b/CSMPFunctions.lua index 7c9a58e..d9fdde5 100644 --- a/CSMPFunctions.lua +++ b/CSMPFunctions.lua @@ -1,49 +1,75 @@ +rbxlegacyversion = "" + -- VERSION CODENAME DOCUMENTATION +-- ------------------------------------------------------------- -- pre-alpha -- - Mid-2008 or lower. -- - Support for "fake" 2006/2007 clients, or the real things. -- - Uses Legacy joinscript. -- - Does not support hats or any other form of customization besides body colors. +-- ------------------------------------------------------------- -- pre-alpha-ext -- - Mid-2008 or lower. -- - Support for "fake" 2006/2007 clients, or the real things. -- - Uses Legacy joinscript. --- - Supports most kinds of customization. +-- - Supports only hats, body colors, and T-Shirts. +-- ------------------------------------------------------------- -- alpha -- - Mid-2008 or lower. -- - Uses Legacy joinscript. --- - Supports most kinds of customization. +-- - Supports only hats, body colors, T-Shirts, shirts, and pants. +-- ------------------------------------------------------------- -- beta -- - Late-2008-Early 2009. -- - Uses Legacy joinscript. --- - Supports most kinds of customization. +-- - Supports only hats, body colors, T-Shirts, shirts, and pants. +-- ------------------------------------------------------------- +-- delta-beta +-- - Late-2008-Early 2009. +-- - Uses RBXPri joinscript. +-- - Supports only hats, body colors, T-Shirts, shirts, and pants. +-- ------------------------------------------------------------- -- pre-gamma -- - Late-2009-Early 2010. -- - Uses Legacy joinscript. --- - Supports most kinds of customization. +-- - Supports all kinds of customization. +-- ------------------------------------------------------------- -- delta-pre-gamma -- - Late-2009-Early 2010. -- - Uses RBXPri joinscript. --- - Supports most kinds of customization. +-- - Supports all kinds of customization. +-- ------------------------------------------------------------- -- gamma -- - Mid-2010-November 2010. -- - Uses Legacy joinscript. --- - Supports most kinds of customization. +-- - Supports all kinds of customization. +-- ------------------------------------------------------------- -- delta-gamma -- - Mid-2010-November 2010. -- - Uses RBXPri joinscript. --- - Supports most kinds of customization. +-- - Supports all kinds of customization. +-- ------------------------------------------------------------- -- delta -- - December-2010-Early 2011. -- - Uses RBXPri joinscript. -- - Supports the more modern 2011 user interface. --- - Supports most kinds of customization. +-- - Supports all kinds of customization. +-- ------------------------------------------------------------- +-- delta-omega +-- - Mid-2011-Early-2012. +-- - Uses RBXPri joinscript. +-- - Supports the more modern 2011 user interface. +-- - Supports all kinds of customization. +-- ------------------------------------------------------------- -- omega --- - Mid-2011-???. +-- - Mid-2011-Early-2012. -- - Uses RBXPri joinscript. -- - Meant for more modern clients which don't use early 2011's UI. --- - Supports most kinds of customization. -rbxlegacyversion = "" +-- - Supports all kinds of customization. +-- ------------------------------------------------------------- +-- Don't edit anything below unless you know what you are doing. +-- ------------------------------------------------------------- + if (rbxlegacyversion == "pre-alpha") then settings().Rendering.frameRateManager = 2; settings().Rendering.graphicsMode = 2; @@ -66,6 +92,10 @@ elseif (rbxlegacyversion == "beta") then settings().Rendering.FrameRateManager = 2; settings().Network.SendRate = 30; settings().Network.ReceiveRate = 60; +elseif (rbxlegacyversion == "delta-beta") then + settings().Rendering.FrameRateManager = 2; + settings().Network.SendRate = 30; + settings().Network.ReceiveRate = 60; elseif (rbxlegacyversion == "pre-gamma") then settings().Rendering.FrameRateManager = 2; settings().Network.DataSendRate = 30; @@ -81,30 +111,42 @@ elseif (rbxlegacyversion == "gamma") then settings().Network.DataSendRate = 30; settings().Network.PhysicsSendRate = 20; settings().Network.ReceiveRate = 60; -elseif (rbxlegacyversion == "delta-gamma") then -- october 2010 + pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end); + pcall(function() settings().Diagnostics:LegacyScriptMode() end); +elseif (rbxlegacyversion == "delta-gamma") then settings().Rendering.FrameRateManager = 2; settings().Network.DataSendRate = 30; settings().Network.PhysicsSendRate = 20; settings().Network.ReceiveRate = 60; -elseif (rbxlegacyversion == "delta") then -- late 2010-early 2011. + pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end); + pcall(function() settings().Diagnostics:LegacyScriptMode() end); +elseif (rbxlegacyversion == "delta") then settings().Rendering.FrameRateManager = 2; - - game:GetService("CoreGui").DescendantAdded:connect(function(Child) - if (Child:IsA("BaseScript")) and (Child.Name~="SubMenuBuilder") and (Child.Name~="ToolTipper") and (Child.Name~="MainBotChatScript") then - Child:Remove(); - end - end) - - coroutine.resume(coroutine.create(function() - while not game:GetService("CoreGui"):FindFirstChild("RobloxGui") do game:GetService("CoreGui").ChildAdded:wait(); end - game:GetService("CoreGui").RobloxGui.TopLeftControl:Remove(); - end)) - + pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end); + pcall(function() settings().Diagnostics:LegacyScriptMode() end); coroutine.resume(coroutine.create(function() loadstring('\108\111\99\97\108\32\67\111\114\101\71\117\105\32\61\32\103\97\109\101\58\71\101\116\83\101\114\118\105\99\101\40\34\67\111\114\101\71\117\105\34\41\59\10\119\104\105\108\101\32\110\111\116\32\67\111\114\101\71\117\105\58\70\105\110\100\70\105\114\115\116\67\104\105\108\100\40\34\82\111\98\108\111\120\71\117\105\34\41\32\100\111\10\9\67\111\114\101\71\117\105\46\67\104\105\108\100\65\100\100\101\100\58\119\97\105\116\40\41\59\10\101\110\100\10\108\111\99\97\108\32\82\111\98\108\111\120\71\117\105\32\61\32\67\111\114\101\71\117\105\46\82\111\98\108\111\120\71\117\105\59\10\108\111\99\97\108\32\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\32\61\32\82\111\98\108\111\120\71\117\105\58\70\105\110\100\70\105\114\115\116\67\104\105\108\100\40\34\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\34\41\10\108\111\99\97\108\32\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\32\61\32\82\111\98\108\111\120\71\117\105\58\70\105\110\100\70\105\114\115\116\67\104\105\108\100\40\34\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\34\41\10\108\111\99\97\108\32\84\111\112\76\101\102\116\67\111\110\116\114\111\108\32\61\32\82\111\98\108\111\120\71\117\105\58\70\105\110\100\70\105\114\115\116\67\104\105\108\100\40\34\84\111\112\76\101\102\116\67\111\110\116\114\111\108\34\41\10\108\111\99\97\108\32\66\117\105\108\100\84\111\111\108\115\32\61\32\82\111\98\108\111\120\71\117\105\58\70\105\110\100\70\105\114\115\116\67\104\105\108\100\40\34\66\117\105\108\100\84\111\111\108\115\34\41\10\102\117\110\99\116\105\111\110\32\109\97\107\101\89\82\101\108\97\116\105\118\101\40\41\10\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\50\10\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\50\10\105\102\32\84\111\112\76\101\102\116\67\111\110\116\114\111\108\32\116\104\101\110\32\84\111\112\76\101\102\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\50\32\101\110\100\10\105\102\32\66\117\105\108\100\84\111\111\108\115\32\116\104\101\110\32\66\117\105\108\100\84\111\111\108\115\46\70\114\97\109\101\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\50\32\101\110\100\10\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\80\111\115\105\116\105\111\110\32\61\32\85\68\105\109\50\46\110\101\119\40\48\44\48\44\49\44\45\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\89\41\10\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\80\111\115\105\116\105\111\110\32\61\32\85\68\105\109\50\46\110\101\119\40\49\44\45\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\88\44\49\44\45\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\89\41\10\101\110\100\10\102\117\110\99\116\105\111\110\32\109\97\107\101\88\82\101\108\97\116\105\118\101\40\41\10\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\49\10\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\49\10\105\102\32\84\111\112\76\101\102\116\67\111\110\116\114\111\108\32\116\104\101\110\32\84\111\112\76\101\102\116\67\111\110\116\114\111\108\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\49\32\101\110\100\10\105\102\32\66\117\105\108\100\84\111\111\108\115\32\116\104\101\110\32\66\117\105\108\100\84\111\111\108\115\46\70\114\97\109\101\46\83\105\122\101\67\111\110\115\116\114\97\105\110\116\32\61\32\49\32\101\110\100\10\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\80\111\115\105\116\105\111\110\32\61\32\85\68\105\109\50\46\110\101\119\40\48\44\48\44\49\44\45\66\111\116\116\111\109\76\101\102\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\89\41\10\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\80\111\115\105\116\105\111\110\32\61\32\85\68\105\109\50\46\110\101\119\40\49\44\45\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\88\44\49\44\45\66\111\116\116\111\109\82\105\103\104\116\67\111\110\116\114\111\108\46\65\98\115\111\108\117\116\101\83\105\122\101\46\89\41\10\101\110\100\10\108\111\99\97\108\32\102\117\110\99\116\105\111\110\32\114\101\115\105\122\101\40\41\10\105\102\32\82\111\98\108\111\120\71\117\105\46\65\98\115\111\108\117\116\101\83\105\122\101\46\120\32\62\32\82\111\98\108\111\120\71\117\105\46\65\98\115\111\108\117\116\101\83\105\122\101\46\121\32\116\104\101\110\10\109\97\107\101\89\82\101\108\97\116\105\118\101\40\41\10\101\108\115\101\10\109\97\107\101\88\82\101\108\97\116\105\118\101\40\41\10\101\110\100\10\101\110\100\10\82\111\98\108\111\120\71\117\105\46\67\104\97\110\103\101\100\58\99\111\110\110\101\99\116\40\102\117\110\99\116\105\111\110\40\112\114\111\112\101\114\116\121\41\10\105\102\32\112\114\111\112\101\114\116\121\32\61\61\32\34\65\98\115\111\108\117\116\101\83\105\122\101\34\32\116\104\101\110\10\119\97\105\116\40\41\10\114\101\115\105\122\101\40\41\10\101\110\100\10\101\110\100\41\10\119\97\105\116\40\41\10\114\101\115\105\122\101\40\41\10')() end)) -elseif (rbxlegacyversion == "omega") then -- mid 2011 and above, or if you are trying to use RBXPri code. + coroutine.resume(coroutine.create(function() + for _,v in pairs(game:GetChildren()) do + if v.Name == "GuiRoot" then + coroutine.resume(coroutine.create(function() + v.ScoreHud.Parent = nil + end)) end end end)) +elseif (rbxlegacyversion == "delta-omega") then settings().Rendering.FrameRateManager = 2; + pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end); + pcall(function() settings().Diagnostics:LegacyScriptMode() end); + coroutine.resume(coroutine.create(function() + for _,v in pairs(game:GetChildren()) do + if v.Name == "GuiRoot" then + coroutine.resume(coroutine.create(function() + v.ScoreHud.Parent = nil + end)) end end end)) +elseif (rbxlegacyversion == "omega") then + settings().Rendering.FrameRateManager = 2; + pcall(function() game:GetService("ScriptContext").ScriptsDisabled = false end); + pcall(function() settings().Diagnostics:LegacyScriptMode() end); end rbxversion = version(); @@ -142,11 +184,65 @@ function LoadCharacterNew(playerApp,newChar) end end) end + elseif (newVal.CustomizationType.Value == 3) then + if (rbxlegacyversion ~= "pre-alpha") then + pcall(function() + local newTShirt = game.Workspace:InsertContent("http://www.roblox.com/asset/?id="..newVal.Value) + if newTShirt[1] then + if newTShirt[1].className == "ShirtGraphic" then + newTShirt[1].Parent = newChar + else + newTShirt[1]:remove() + end + end + end) + end + elseif (newVal.CustomizationType.Value == 4) then + if (rbxlegacyversion ~= "pre-alpha" or rbxlegacyversion ~= "pre-alpha-ext") then + pcall(function() + local newShirt = game.Workspace:InsertContent("http://www.roblox.com/asset/?id="..newVal.Value) + if newShirt[1] then + if newShirt[1].className == "Shirt" then + newShirt[1].Parent = newChar + else + newShirt[1]:remove() + end + end + end) + end + elseif (newVal.CustomizationType.Value == 5) then + if (rbxlegacyversion ~= "pre-alpha" or rbxlegacyversion ~= "pre-alpha-ext") then + pcall(function() + local newPants = game.Workspace:InsertContent("http://www.roblox.com/asset/?id="..newVal.Value) + if newPants[1] then + if newPants[1].className == "Pants" then + newPants[1].Parent = newChar + else + newPants[1]:remove() + end + end + end) + end + elseif (newVal.CustomizationType.Value == 6) then + if (rbxlegacyversion ~= "pre-alpha" or rbxlegacyversion ~= "pre-alpha-ext" or rbxlegacyversion ~= "alpha" or rbxlegacyversion ~= "beta" or rbxlegacyversion ~= "delta-beta") then + pcall(function() + local newFace = game.Workspace:InsertContent("http://www.roblox.com/asset/?id="..newVal.Value) + if newFace[1] then + if newFace[1].className == "Decal" then + newWaitForChild(charparts[1],"face"):remove() + newFace[1].Parent = charparts[1] + newFace[1].Face = "Front" + else + newFace[1]:remove() + end + end + end) + end end end end -function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID) +function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID) local newCharApp = Instance.new("IntValue",Player); newCharApp.Name = "Appearance"; --BODY COLORS @@ -208,7 +304,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso for i=1,3,1 do local newHat = Instance.new("StringValue",newCharApp); if (i == 1) then - if (RightLegColorID ~= nil) then + if (Hat1ID ~= nil) then newHat.Value = Hat1ID; newHat.Name = Hat1ID; else @@ -216,7 +312,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm"; end elseif (i == 2) then - if (RightLegColorID ~= nil) then + if (Hat2ID ~= nil) then newHat.Value = Hat2ID; newHat.Name = Hat2ID; else @@ -224,7 +320,7 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso newHat.Name = "NoHat.rbxm"; end elseif (i == 3) then - if (RightLegColorID ~= nil) then + if (Hat3ID ~= nil) then newHat.Value = Hat3ID; newHat.Name = Hat3ID; else @@ -237,15 +333,65 @@ function InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,Torso typeValue.Parent = newHat; typeValue.Value = 2; end + --T-SHIRT + local newTShirt = Instance.new("StringValue",newCharApp); + if (TShirtID ~= nil or TShirtID ~= "0") then + newTShirt.Value = TShirtID; + else + newTShirt.Value = "0"; + end + newTShirt.Name = "T-Shirt"; + local typeValue = Instance.new("NumberValue"); + typeValue.Name = "CustomizationType"; + typeValue.Parent = newTShirt; + typeValue.Value = 3; + --SHIRT + local newShirt = Instance.new("StringValue",newCharApp); + if (ShirtID ~= nil or ShirtID ~= "0") then + newShirt.Value = ShirtID; + else + newShirt.Value = "0"; + end + newShirt.Name = "Shirt"; + local typeValue = Instance.new("NumberValue"); + typeValue.Name = "CustomizationType"; + typeValue.Parent = newShirt; + typeValue.Value = 4; + --PANTS + local newPants = Instance.new("StringValue",newCharApp); + if (PantsID ~= nil or PantsID ~= "0") then + newPants.Value = PantsID; + else + newPants.Value = "0"; + end + newPants.Name = "Pants"; + local typeValue = Instance.new("NumberValue"); + typeValue.Name = "CustomizationType"; + typeValue.Parent = newPants; + typeValue.Value = 5; + --FACE + local newFace = Instance.new("StringValue",newCharApp); + if (FaceID ~= nil or FaceID ~= "0") then + newFace.Value = FaceID; + else + newFace.Value = "0"; + end + newFace.Name = "Face"; + local typeValue = Instance.new("NumberValue"); + typeValue.Name = "CustomizationType"; + typeValue.Parent = newFace; + typeValue.Value = 6; end function CSServer(Port,PlayerLimit) - if (rbxlegacyversion == "delta" or rbxlegacyversion == "delta-gamma" or rbxlegacyversion == "omega" or rbxlegacyversion == "delta-pre-gamma") then + if (rbxlegacyversion == "delta" or rbxlegacyversion == "delta-gamma" or rbxlegacyversion == "omega" or rbxlegacyversion == "delta-pre-gamma" or rbxlegacyversion == "delta-omega" or rbxlegacyversion == "delta-beta") then assert((type(Port)~="number" or tonumber(Port)~=nil or Port==nil),"CSRun Error: Port must be nil or a number."); local NetworkServer=game:GetService("NetworkServer"); pcall(NetworkServer.Stop,NetworkServer); NetworkServer:Start(Port); - game:GetService("Players").MaxPlayers = PlayerLimit + if (rbxlegacyversion ~= "omega") then + game:GetService("Players").MaxPlayers = PlayerLimit; + end game:GetService("Players").PlayerAdded:connect(function(Player) if (game:GetService("Players").NumPlayers > game:GetService("Players").MaxPlayers) then local message = Instance.new("Message") @@ -279,8 +425,10 @@ function CSServer(Port,PlayerLimit) game.Workspace:InsertContent("rbxasset://Fonts//Health2010.rbxm"); elseif (rbxlegacyversion == "delta") then game.Workspace:InsertContent("rbxasset://Fonts//Health2011.rbxm"); - elseif (rbxlegacyversion == "omega") then + game.Workspace:InsertContent("rbxasset://Fonts//CoreGui2011.rbxm"); + elseif (rbxlegacyversion == "omega" or rbxlegacyversion == "delta-omega") then game.Workspace:InsertContent("rbxasset://Fonts//Health2012.rbxm"); + game.Workspace:InsertContent("rbxasset://Fonts//CoreGui2012.rbxm"); end pcall(function() game.Close:connect(function() NetworkServer:Stop(); end) end); NetworkServer.IncommingConnection:connect(IncommingConnection); @@ -330,20 +478,10 @@ function CSServer(Port,PlayerLimit) end end -function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,Ticket) - if (rbxlegacyversion == "delta" or rbxlegacyversion == "delta-gamma" or rbxlegacyversion == "omega" or rbxlegacyversion == "delta-pre-gamma") then +function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID,Ticket) + if (rbxlegacyversion == "delta" or rbxlegacyversion == "delta-gamma" or rbxlegacyversion == "omega" or rbxlegacyversion == "delta-pre-gamma" or rbxlegacyversion == "delta-omega" or rbxlegacyversion == "delta-beta") then pcall(function() game:SetPlaceID(-1, false) end); pcall(function() game:GetService("Players"):SetChatStyle(Enum.ChatStyle.ClassicAndBubble) end); - - pcall(function() - game:GetService("GuiService").Changed:connect(function() - pcall(function() game:GetService("GuiService").ShowLegacyPlayerList=true; end); - pcall(function() game.CoreGui.RobloxGui.PlayerListScript:Remove(); end); - pcall(function() game.CoreGui.RobloxGui.PlayerListTopRightFrame:Remove(); end); - pcall(function() game.CoreGui.RobloxGui.BigPlayerListWindowImposter:Remove(); end); - pcall(function() game.CoreGui.RobloxGui.BigPlayerlist:Remove(); end); - end); - end) game:GetService("RunService"):Run(); assert((ServerIP~=nil and ServerPort~=nil),"CSConnect Error: ServerIP and ServerPort must be defined."); local function SetMessage(Message) game:SetMessage(Message); end @@ -431,21 +569,16 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He pcall(function() Player.Name=PlayerName or ""; end); pcall(function() Visit:SetUploadUrl(""); end); game:GetService("Visit"); - InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID); + if (rbxlegacyversion == "delta") then + game.CoreGui.RobloxGui.TopLeftControl.Help.Active = true; + elseif (rbxlegacyversion == "omega" or rbxlegacyversion == "delta-omega") then + game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.Help.Active = true; + end + InitalizeClientAppearance(Player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID); else pcall(function() game:SetPlaceID(-1, false) end); pcall(function() game:GetService("Players"):SetChatStyle(Enum.ChatStyle.ClassicAndBubble) end); - pcall(function() - game:GetService("GuiService").Changed:connect(function() - pcall(function() game:GetService("GuiService").ShowLegacyPlayerList=true; end); - pcall(function() game.CoreGui.RobloxGui.PlayerListScript:Remove(); end); - pcall(function() game.CoreGui.RobloxGui.PlayerListTopRightFrame:Remove(); end); - pcall(function() game.CoreGui.RobloxGui.BigPlayerListWindowImposter:Remove(); end); - pcall(function() game.CoreGui.RobloxGui.BigPlayerlist:Remove(); end); - end); - end) - local suc, err = pcall(function() client = game:GetService("NetworkClient") player = game:GetService("Players"):CreateLocalPlayer(UserID) @@ -456,7 +589,7 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He player.CharacterAppearance=0; pcall(function() player.Name=PlayerName or ""; end); game:GetService("Visit"); - InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID); + InitalizeClientAppearance(player,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID); end) local function dieerror(errmsg) @@ -506,11 +639,15 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He client.ConnectionRejected:connect(rejected) client.ConnectionFailed:connect(failed) client:Connect(ServerIP,ServerPort, 0, 20) - if (rbxlegacyversion == "pre-alpha" or rbxlegacyversion == "pre-alpha-ext") then + if (rbxlegacyversion == "pre-alpha") then game.GuiRoot.MainMenu["Toolbox"]:Remove() game.GuiRoot.MainMenu["Edit Mode"]:Remove() game.GuiRoot.RightPalette.ReportAbuse:Remove() game.GuiRoot.ChatMenuPanel:Remove() + elseif (rbxlegacyversion == "pre-alpha-ext") then + game.GuiRoot.MainMenu["Toolbox"]:Remove() + game.GuiRoot.MainMenu["Edit Mode"]:Remove() + game.GuiRoot.ChatMenuPanel:Remove() else game.GuiRoot.MainMenu["Tools"]:Remove() game.GuiRoot.MainMenu["Insert"]:Remove() @@ -526,20 +663,31 @@ function CSConnect(UserID,ServerIP,ServerPort,PlayerName,Hat1ID,Hat2ID,Hat3ID,He end end -function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,Ticket) - local plr = game.Players:CreateLocalPlayer(UserID); - game:GetService("RunService"):run(); +function CSSolo(UserID,PlayerName,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID) + if (rbxlegacyversion == "omega" or rbxlegacyversion == "delta-omega") then + game:GetService("RunService"):Run(); + else + game:GetService("RunService"):run(); + end if (rbxlegacyversion == "gamma" or rbxlegacyversion == "delta-gamma") then game.Workspace:InsertContent("rbxasset://Fonts//Health2010.rbxm"); elseif (rbxlegacyversion == "delta") then game.Workspace:InsertContent("rbxasset://Fonts//Health2011.rbxm"); - elseif (rbxlegacyversion == "omega") then + game.Workspace:InsertContent("rbxasset://Fonts//CoreGui2011.rbxm"); + elseif (rbxlegacyversion == "omega" or rbxlegacyversion == "delta-omega") then game.Workspace:InsertContent("rbxasset://Fonts//Health2012.rbxm"); + game.Workspace:InsertContent("rbxasset://Fonts//CoreGui2012.rbxm"); end + if (rbxlegacyversion == "delta") then + game.CoreGui.RobloxGui.TopLeftControl.Help.Active = true; + elseif (rbxlegacyversion == "omega" or rbxlegacyversion == "delta-omega") then + game.CoreGui.RobloxGui.ControlFrame.BottomRightControl.Help.Active = true; + end + local plr = game.Players:CreateLocalPlayer(UserID); plr.Name = PlayerName; plr:LoadCharacter(); plr.CharacterAppearance=0; - InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID); + InitalizeClientAppearance(plr,Hat1ID,Hat2ID,Hat3ID,HeadColorID,TorsoColorID,LeftArmColorID,RightArmColorID,LeftLegColorID,RightLegColorID,TShirtID,ShirtID,PantsID,FaceID); LoadCharacterNew(newWaitForChild(plr,"Appearance"),plr.Character); game:GetService("Visit"); while true do wait() diff --git a/CoreGui2011.rbxm b/CoreGui2011.rbxm new file mode 100644 index 0000000..cbd6915 --- /dev/null +++ b/CoreGui2011.rbxm @@ -0,0 +1,3601 @@ + + null + nil + + + false + + GUI_Copy + script.PlayerList:clone().Parent = game.StarterGui; +script:remove(); + true + + + + false + + PlayerList + local t = {} + +local function ScopedConnect(parentInstance, instance, event, signalFunc, syncFunc, removeFunc) + local eventConnection = nil + + --Connection on parentInstance is scoped by parentInstance (when destroyed, it goes away) + local tryConnect = function() + if game:IsAncestorOf(parentInstance) then + --Entering the world, make sure we are connected/synced + if not eventConnection then + eventConnection = instance[event]:connect(signalFunc) + if syncFunc then syncFunc() end + end + else + --Probably leaving the world, so disconnect for now + if eventConnection then + eventConnection:disconnect() + if removeFunc then removeFunc() end + end + end + end + + --Hook it up to ancestryChanged signal + local connection = parentInstance.AncestryChanged:connect(tryConnect) + + --Now connect us if we're already in the world + tryConnect() + + return connection +end + +local function CreateButtons(frame, buttons, yPos, ySize) + local buttonNum = 1 + local buttonObjs = {} + for i, obj in ipairs(buttons) do + local button = Instance.new("TextButton") + button.Name = "Button" .. buttonNum + button.Font = Enum.Font.Arial + button.FontSize = Enum.FontSize.Size18 + button.AutoButtonColor = true + button.Style = Enum.ButtonStyle.RobloxButtonDefault + button.Text = obj.Text + button.TextColor3 = Color3.new(1,1,1) + button.MouseButton1Click:connect(obj.Function) + button.Parent = frame + buttonObjs[buttonNum] = button + + buttonNum = buttonNum + 1 + end + local numButtons = buttonNum-1 + + if numButtons == 1 then + frame.Button1.Position = UDim2.new(0.35, 0, yPos.Scale, yPos.Offset) + frame.Button1.Size = UDim2.new(.4,0,ySize.Scale, ySize.Offset) + elseif numButtons == 2 then + frame.Button1.Position = UDim2.new(0.1, 0, yPos.Scale, yPos.Offset) + frame.Button1.Size = UDim2.new(.8/3,0, ySize.Scale, ySize.Offset) + + frame.Button2.Position = UDim2.new(0.55, 0, yPos.Scale, yPos.Offset) + frame.Button2.Size = UDim2.new(.35,0, ySize.Scale, ySize.Offset) + elseif numButtons >= 3 then + local spacing = .1 / numButtons + local buttonSize = .9 / numButtons + + buttonNum = 1 + while buttonNum <= numButtons do + buttonObjs[buttonNum].Position = UDim2.new(spacing*buttonNum + (buttonNum-1) * buttonSize, 0, yPos.Scale, yPos.Offset) + buttonObjs[buttonNum].Size = UDim2.new(buttonSize, 0, ySize.Scale, ySize.Offset) + buttonNum = buttonNum + 1 + end + end +end + +local function setSliderPos(newAbsPosX,slider,sliderPosition,bar,steps) + + local newStep = steps - 1 --otherwise we really get one more step than we want + + local relativePosX = math.min(1, math.max(0, (newAbsPosX - bar.AbsolutePosition.X) / bar.AbsoluteSize.X ) ) + local wholeNum, remainder = math.modf(relativePosX * newStep) + if remainder > 0.5 then + wholeNum = wholeNum + 1 + end + relativePosX = wholeNum/newStep + + local result = math.ceil(relativePosX * newStep) + if sliderPosition.Value ~= (result + 1) then --onky update if we moved a step + sliderPosition.Value = result + 1 + + if relativePosX == 1 then + slider.Position = UDim2.new(1,-slider.AbsoluteSize.X,slider.Position.Y.Scale,slider.Position.Y.Offset) + else + slider.Position = UDim2.new(relativePosX,0,slider.Position.Y.Scale,slider.Position.Y.Offset) + end + end + +end + +local function cancelSlide(areaSoak) + areaSoak.Visible = false + if areaSoakMouseMoveCon then areaSoakMouseMoveCon:disconnect() end +end + +t.CreateStyledMessageDialog = function(title, message, style, buttons) + local frame = Instance.new("Frame") + frame.Size = UDim2.new(0.5, 0, 0, 165) + frame.Position = UDim2.new(0.25, 0, 0.5, -72.5) + frame.Name = "MessageDialog" + frame.Active = true + frame.Style = Enum.FrameStyle.RobloxRound + + local styleImage = Instance.new("ImageLabel") + styleImage.Name = "StyleImage" + styleImage.BackgroundTransparency = 1 + styleImage.Position = UDim2.new(0,5,0,15) + if style == "error" or style == "Error" then + styleImage.Size = UDim2.new(0, 71, 0, 71) + styleImage.Image = "http://www.roblox.com/asset?id=42565285" + elseif style == "notify" or style == "Notify" then + styleImage.Size = UDim2.new(0, 71, 0, 71) + styleImage.Image = "http://www.roblox.com/asset?id=42604978" + elseif style == "confirm" or style == "Confirm" then + styleImage.Size = UDim2.new(0, 74, 0, 76) + styleImage.Image = "http://www.roblox.com/asset?id=42557901" + else + return t.CreateMessageDialog(title,message,buttons) + end + styleImage.Parent = frame + + local titleLabel = Instance.new("TextLabel") + titleLabel.Name = "Title" + titleLabel.Text = title + titleLabel.BackgroundTransparency = 1 + titleLabel.TextColor3 = Color3.new(221/255,221/255,221/255) + titleLabel.Position = UDim2.new(0, 80, 0, 0) + titleLabel.Size = UDim2.new(1, -80, 0, 40) + titleLabel.Font = Enum.Font.ArialBold + titleLabel.FontSize = Enum.FontSize.Size36 + titleLabel.TextXAlignment = Enum.TextXAlignment.Center + titleLabel.TextYAlignment = Enum.TextYAlignment.Center + titleLabel.Parent = frame + + local messageLabel = Instance.new("TextLabel") + messageLabel.Name = "Message" + messageLabel.Text = message + messageLabel.TextColor3 = Color3.new(221/255,221/255,221/255) + messageLabel.Position = UDim2.new(0.025, 80, 0, 45) + messageLabel.Size = UDim2.new(0.95, -80, 0, 55) + messageLabel.BackgroundTransparency = 1 + messageLabel.Font = Enum.Font.Arial + messageLabel.FontSize = Enum.FontSize.Size18 + messageLabel.TextWrap = true + messageLabel.TextXAlignment = Enum.TextXAlignment.Left + messageLabel.TextYAlignment = Enum.TextYAlignment.Top + messageLabel.Parent = frame + + CreateButtons(frame, buttons, UDim.new(0, 105), UDim.new(0, 40) ) + + return frame +end + +t.CreateMessageDialog = function(title, message, buttons) + local frame = Instance.new("Frame") + frame.Size = UDim2.new(0.5, 0, 0.5, 0) + frame.Position = UDim2.new(0.25, 0, 0.25, 0) + frame.Name = "MessageDialog" + frame.Active = true + frame.Style = Enum.FrameStyle.RobloxRound + + local titleLabel = Instance.new("TextLabel") + titleLabel.Name = "Title" + titleLabel.Text = title + titleLabel.BackgroundTransparency = 1 + titleLabel.TextColor3 = Color3.new(221/255,221/255,221/255) + titleLabel.Position = UDim2.new(0, 0, 0, 0) + titleLabel.Size = UDim2.new(1, 0, 0.15, 0) + titleLabel.Font = Enum.Font.ArialBold + titleLabel.FontSize = Enum.FontSize.Size36 + titleLabel.TextXAlignment = Enum.TextXAlignment.Center + titleLabel.TextYAlignment = Enum.TextYAlignment.Center + titleLabel.Parent = frame + + local messageLabel = Instance.new("TextLabel") + messageLabel.Name = "Message" + messageLabel.Text = message + messageLabel.TextColor3 = Color3.new(221/255,221/255,221/255) + messageLabel.Position = UDim2.new(0.025, 0, 0.175, 0) + messageLabel.Size = UDim2.new(0.95, 0, .55, 0) + messageLabel.BackgroundTransparency = 1 + messageLabel.Font = Enum.Font.Arial + messageLabel.FontSize = Enum.FontSize.Size18 + messageLabel.TextWrap = true + messageLabel.TextXAlignment = Enum.TextXAlignment.Left + messageLabel.TextYAlignment = Enum.TextYAlignment.Top + messageLabel.Parent = frame + + CreateButtons(frame, buttons, UDim.new(0.8,0), UDim.new(0.15, 0)) + + return frame +end + +t.CreateDropDownMenu = function(items, onSelect, forRoblox) + local width = UDim.new(0, 100) + local height = UDim.new(0, 32) + + local xPos = 0.055 + local frame = Instance.new("Frame") + frame.Name = "DropDownMenu" + frame.BackgroundTransparency = 1 + frame.Size = UDim2.new(width, height) + + local dropDownMenu = Instance.new("TextButton") + dropDownMenu.Name = "DropDownMenuButton" + dropDownMenu.TextWrap = true + dropDownMenu.TextColor3 = Color3.new(1,1,1) + dropDownMenu.Text = "Choose One" + dropDownMenu.Font = Enum.Font.ArialBold + dropDownMenu.FontSize = Enum.FontSize.Size18 + dropDownMenu.TextXAlignment = Enum.TextXAlignment.Left + dropDownMenu.TextYAlignment = Enum.TextYAlignment.Center + dropDownMenu.BackgroundTransparency = 1 + dropDownMenu.AutoButtonColor = true + dropDownMenu.Style = Enum.ButtonStyle.RobloxButton + dropDownMenu.Size = UDim2.new(1,0,1,0) + dropDownMenu.Parent = frame + dropDownMenu.ZIndex = 2 + + local dropDownIcon = Instance.new("ImageLabel") + dropDownIcon.Name = "Icon" + dropDownIcon.Active = false + dropDownIcon.Image = "http://www.roblox.com/asset/?id=45732894" + dropDownIcon.BackgroundTransparency = 1 + dropDownIcon.Size = UDim2.new(0,11,0,6) + dropDownIcon.Position = UDim2.new(1,-11,0.5, -2) + dropDownIcon.Parent = dropDownMenu + dropDownIcon.ZIndex = 2 + + local itemCount = #items + local dropDownItemCount = #items + local useScrollButtons = false + if dropDownItemCount > 6 then + useScrollButtons = true + dropDownItemCount = 6 + end + + local droppedDownMenu = Instance.new("TextButton") + droppedDownMenu.Name = "List" + droppedDownMenu.Text = "" + droppedDownMenu.BackgroundTransparency = 1 + --droppedDownMenu.AutoButtonColor = true + droppedDownMenu.Style = Enum.ButtonStyle.RobloxButton + droppedDownMenu.Visible = false + droppedDownMenu.Active = true --Blocks clicks + droppedDownMenu.Position = UDim2.new(0,0,0,0) + droppedDownMenu.Size = UDim2.new(1,0, (1 + dropDownItemCount)*.8, 0) + droppedDownMenu.Parent = frame + droppedDownMenu.ZIndex = 2 + + local choiceButton = Instance.new("TextButton") + choiceButton.Name = "ChoiceButton" + choiceButton.BackgroundTransparency = 1 + choiceButton.BorderSizePixel = 0 + choiceButton.Text = "ReplaceMe" + choiceButton.TextColor3 = Color3.new(1,1,1) + choiceButton.TextXAlignment = Enum.TextXAlignment.Left + choiceButton.TextYAlignment = Enum.TextYAlignment.Center + choiceButton.BackgroundColor3 = Color3.new(1, 1, 1) + choiceButton.Font = Enum.Font.Arial + choiceButton.FontSize = Enum.FontSize.Size18 + if useScrollButtons then + choiceButton.Size = UDim2.new(1,-13, .8/((dropDownItemCount + 1)*.8),0) + else + choiceButton.Size = UDim2.new(1, 0, .8/((dropDownItemCount + 1)*.8),0) + end + choiceButton.TextWrap = true + choiceButton.ZIndex = 2 + + local dropDownSelected = false + + local scrollUpButton + local scrollDownButton + local scrollMouseCount = 0 + + local setZIndex = function(baseZIndex) + droppedDownMenu.ZIndex = baseZIndex +1 + if scrollUpButton then + scrollUpButton.ZIndex = baseZIndex + 3 + end + if scrollDownButton then + scrollDownButton.ZIndex = baseZIndex + 3 + end + + local children = droppedDownMenu:GetChildren() + if children then + for i, child in ipairs(children) do + if child.Name == "ChoiceButton" then + child.ZIndex = baseZIndex + 2 + elseif child.Name == "ClickCaptureButton" then + child.ZIndex = baseZIndex + end + end + end + end + + local scrollBarPosition = 1 + local updateScroll = function() + if scrollUpButton then + scrollUpButton.Active = scrollBarPosition > 1 + end + if scrollDownButton then + scrollDownButton.Active = scrollBarPosition + dropDownItemCount <= itemCount + end + + local children = droppedDownMenu:GetChildren() + if not children then return end + + local childNum = 1 + for i, obj in ipairs(children) do + if obj.Name == "ChoiceButton" then + if childNum < scrollBarPosition or childNum >= scrollBarPosition + dropDownItemCount then + obj.Visible = false + else + obj.Position = UDim2.new(0,0,((childNum-scrollBarPosition+1)*.8)/((dropDownItemCount+1)*.8),0) + obj.Visible = true + end + obj.TextColor3 = Color3.new(1,1,1) + obj.BackgroundTransparency = 1 + + childNum = childNum + 1 + end + end + end + local toggleVisibility = function() + dropDownSelected = not dropDownSelected + + dropDownMenu.Visible = not dropDownSelected + droppedDownMenu.Visible = dropDownSelected + if dropDownSelected then + setZIndex(4) + else + setZIndex(2) + end + if useScrollButtons then + updateScroll() + end + end + droppedDownMenu.MouseButton1Click:connect(toggleVisibility) + + local updateSelection = function(text) + local foundItem = false + local children = droppedDownMenu:GetChildren() + local childNum = 1 + if children then + for i, obj in ipairs(children) do + if obj.Name == "ChoiceButton" then + if obj.Text == text then + obj.Font = Enum.Font.ArialBold + foundItem = true + scrollBarPosition = childNum + else + obj.Font = Enum.Font.Arial + end + childNum = childNum + 1 + end + end + end + if not text then + dropDownMenu.Text = "Choose One" + scrollBarPosition = 1 + else + if not foundItem then + error("Invalid Selection Update -- " .. text) + end + + if scrollBarPosition + dropDownItemCount > itemCount + 1 then + scrollBarPosition = itemCount - dropDownItemCount + 1 + end + + dropDownMenu.Text = text + end + end + + local function scrollDown() + if scrollBarPosition + dropDownItemCount <= itemCount then + scrollBarPosition = scrollBarPosition + 1 + updateScroll() + return true + end + return false + end + local function scrollUp() + if scrollBarPosition > 1 then + scrollBarPosition = scrollBarPosition - 1 + updateScroll() + return true + end + return false + end + + if useScrollButtons then + --Make some scroll buttons + scrollUpButton = Instance.new("ImageButton") + scrollUpButton.Name = "ScrollUpButton" + scrollUpButton.BackgroundTransparency = 1 + scrollUpButton.Image = "rbxasset://textures/ui/scrollbuttonUp.png" + scrollUpButton.Size = UDim2.new(0,17,0,17) + scrollUpButton.Position = UDim2.new(1,-11,(1*.8)/((dropDownItemCount+1)*.8),0) + scrollUpButton.MouseButton1Click:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + end) + scrollUpButton.MouseLeave:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + end) + scrollUpButton.MouseButton1Down:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + + scrollUp() + local val = scrollMouseCount + wait(0.5) + while val == scrollMouseCount do + if scrollUp() == false then + break + end + wait(0.1) + end + end) + + scrollUpButton.Parent = droppedDownMenu + + scrollDownButton = Instance.new("ImageButton") + scrollDownButton.Name = "ScrollDownButton" + scrollDownButton.BackgroundTransparency = 1 + scrollDownButton.Image = "rbxasset://textures/ui/scrollbuttonDown.png" + scrollDownButton.Size = UDim2.new(0,17,0,17) + scrollDownButton.Position = UDim2.new(1,-11,1,-11) + scrollDownButton.Parent = droppedDownMenu + scrollDownButton.MouseButton1Click:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + end) + scrollDownButton.MouseLeave:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + end) + scrollDownButton.MouseButton1Down:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + + scrollDown() + local val = scrollMouseCount + wait(0.5) + while val == scrollMouseCount do + if scrollDown() == false then + break + end + wait(0.1) + end + end) + + local scrollbar = Instance.new("ImageLabel") + scrollbar.Name = "ScrollBar" + scrollbar.Image = "rbxasset://textures/ui/scrollbar.png" + scrollbar.BackgroundTransparency = 1 + scrollbar.Size = UDim2.new(0, 18, (dropDownItemCount*.8)/((dropDownItemCount+1)*.8), -(17) - 11 - 4) + scrollbar.Position = UDim2.new(1,-11,(1*.8)/((dropDownItemCount+1)*.8),17+2) + scrollbar.Parent = droppedDownMenu + end + + for i,item in ipairs(items) do + -- needed to maintain local scope for items in event listeners below + local button = choiceButton:clone() + if forRoblox then + button.RobloxLocked = true + end + button.Text = item + button.Parent = droppedDownMenu + button.MouseButton1Click:connect(function() + --Remove Highlight + button.TextColor3 = Color3.new(1,1,1) + button.BackgroundTransparency = 1 + + updateSelection(item) + onSelect(item) + + toggleVisibility() + end) + button.MouseEnter:connect(function() + --Add Highlight + button.TextColor3 = Color3.new(0,0,0) + button.BackgroundTransparency = 0 + end) + + button.MouseLeave:connect(function() + --Remove Highlight + button.TextColor3 = Color3.new(1,1,1) + button.BackgroundTransparency = 1 + end) + end + + --This does the initial layout of the buttons + updateScroll() + + local bigFakeButton = Instance.new("TextButton") + bigFakeButton.BackgroundTransparency = 1 + bigFakeButton.Name = "ClickCaptureButton" + bigFakeButton.Size = UDim2.new(0, 4000, 0, 3000) + bigFakeButton.Position = UDim2.new(0, -2000, 0, -1500) + bigFakeButton.ZIndex = 1 + bigFakeButton.Text = "" + bigFakeButton.Parent = droppedDownMenu + bigFakeButton.MouseButton1Click:connect(toggleVisibility) + + dropDownMenu.MouseButton1Click:connect(toggleVisibility) + return frame, updateSelection +end + +t.CreatePropertyDropDownMenu = function(instance, property, enum) + + local items = enum:GetEnumItems() + local names = {} + local nameToItem = {} + for i,obj in ipairs(items) do + names[i] = obj.Name + nameToItem[obj.Name] = obj + end + + local frame + local updateSelection + frame, updateSelection = t.CreateDropDownMenu(names, function(text) instance[property] = nameToItem[text] end) + + ScopedConnect(frame, instance, "Changed", + function(prop) + if prop == property then + updateSelection(instance[property].Name) + end + end, + function() + updateSelection(instance[property].Name) + end) + + return frame +end + +t.GetFontHeight = function(font, fontSize) + if font == nil or fontSize == nil then + error("Font and FontSize must be non-nil") + end + + if font == Enum.Font.Legacy then + if fontSize == Enum.FontSize.Size8 then + return 12 + elseif fontSize == Enum.FontSize.Size9 then + return 14 + elseif fontSize == Enum.FontSize.Size10 then + return 15 + elseif fontSize == Enum.FontSize.Size11 then + return 17 + elseif fontSize == Enum.FontSize.Size12 then + return 18 + elseif fontSize == Enum.FontSize.Size14 then + return 21 + elseif fontSize == Enum.FontSize.Size18 then + return 27 + elseif fontSize == Enum.FontSize.Size24 then + return 36 + elseif fontSize == Enum.FontSize.Size36 then + return 54 + elseif fontSize == Enum.FontSize.Size48 then + return 72 + else + error("Unknown FontSize") + end + elseif font == Enum.Font.Arial or font == Enum.Font.ArialBold then + if fontSize == Enum.FontSize.Size8 then + return 8 + elseif fontSize == Enum.FontSize.Size9 then + return 9 + elseif fontSize == Enum.FontSize.Size10 then + return 10 + elseif fontSize == Enum.FontSize.Size11 then + return 11 + elseif fontSize == Enum.FontSize.Size12 then + return 12 + elseif fontSize == Enum.FontSize.Size14 then + return 14 + elseif fontSize == Enum.FontSize.Size18 then + return 18 + elseif fontSize == Enum.FontSize.Size24 then + return 24 + elseif fontSize == Enum.FontSize.Size36 then + return 36 + elseif fontSize == Enum.FontSize.Size48 then + return 48 + else + error("Unknown FontSize") + end + else + error("Unknown Font " .. font) + end +end + +local function layoutGuiObjectsHelper(frame, guiObjects, settingsTable) + local totalPixels = frame.AbsoluteSize.Y + local pixelsRemaining = frame.AbsoluteSize.Y + for i, child in ipairs(guiObjects) do + if child:IsA("TextLabel") or child:IsA("TextButton") then + local isLabel = child:IsA("TextLabel") + if isLabel then + pixelsRemaining = pixelsRemaining - settingsTable["TextLabelPositionPadY"] + else + pixelsRemaining = pixelsRemaining - settingsTable["TextButtonPositionPadY"] + end + child.Position = UDim2.new(child.Position.X.Scale, child.Position.X.Offset, 0, totalPixels - pixelsRemaining) + child.Size = UDim2.new(child.Size.X.Scale, child.Size.X.Offset, 0, pixelsRemaining) + + if child.TextFits and child.TextBounds.Y < pixelsRemaining then + child.Visible = true + if isLabel then + child.Size = UDim2.new(child.Size.X.Scale, child.Size.X.Offset, 0, child.TextBounds.Y + settingsTable["TextLabelSizePadY"]) + else + child.Size = UDim2.new(child.Size.X.Scale, child.Size.X.Offset, 0, child.TextBounds.Y + settingsTable["TextButtonSizePadY"]) + end + + while not child.TextFits do + child.Size = UDim2.new(child.Size.X.Scale, child.Size.X.Offset, 0, child.AbsoluteSize.Y + 1) + end + pixelsRemaining = pixelsRemaining - child.AbsoluteSize.Y + + if isLabel then + pixelsRemaining = pixelsRemaining - settingsTable["TextLabelPositionPadY"] + else + pixelsRemaining = pixelsRemaining - settingsTable["TextButtonPositionPadY"] + end + else + child.Visible = false + pixelsRemaining = -1 + end + + else + --GuiObject + child.Position = UDim2.new(child.Position.X.Scale, child.Position.X.Offset, 0, totalPixels - pixelsRemaining) + pixelsRemaining = pixelsRemaining - child.AbsoluteSize.Y + child.Visible = (pixelsRemaining >= 0) + end + end +end + +t.LayoutGuiObjects = function(frame, guiObjects, settingsTable) + if not frame:IsA("GuiObject") then + error("Frame must be a GuiObject") + end + for i, child in ipairs(guiObjects) do + if not child:IsA("GuiObject") then + error("All elements that are layed out must be of type GuiObject") + end + end + + if not settingsTable then + settingsTable = {} + end + + if not settingsTable["TextLabelSizePadY"] then + settingsTable["TextLabelSizePadY"] = 0 + end + if not settingsTable["TextLabelPositionPadY"] then + settingsTable["TextLabelPositionPadY"] = 0 + end + if not settingsTable["TextButtonSizePadY"] then + settingsTable["TextButtonSizePadY"] = 12 + end + if not settingsTable["TextButtonPositionPadY"] then + settingsTable["TextButtonPositionPadY"] = 2 + end + + --Wrapper frame takes care of styled objects + local wrapperFrame = Instance.new("Frame") + wrapperFrame.Name = "WrapperFrame" + wrapperFrame.BackgroundTransparency = 1 + wrapperFrame.Size = UDim2.new(1,0,1,0) + wrapperFrame.Parent = frame + + for i, child in ipairs(guiObjects) do + child.Parent = wrapperFrame + end + + local recalculate = function() + wait() + layoutGuiObjectsHelper(wrapperFrame, guiObjects, settingsTable) + end + + frame.Changed:connect( + function(prop) + if prop == "AbsoluteSize" then + --Wait a heartbeat for it to sync in + recalculate() + end + end) + frame.AncestryChanged:connect(recalculate) + + layoutGuiObjectsHelper(wrapperFrame, guiObjects, settingsTable) +end + + +t.CreateSlider = function(steps,width,position) + local sliderGui = Instance.new("Frame") + sliderGui.Size = UDim2.new(1,0,1,0) + sliderGui.BackgroundTransparency = 1 + sliderGui.Name = "SliderGui" + + local areaSoak = Instance.new("TextButton") + areaSoak.Name = "AreaSoak" + areaSoak.Text = "" + areaSoak.BackgroundTransparency = 1 + areaSoak.Active = false + areaSoak.Size = UDim2.new(1,0,1,0) + areaSoak.Visible = false + areaSoak.ZIndex = 4 + areaSoak.Parent = sliderGui + + local sliderPosition = Instance.new("IntValue") + sliderPosition.Name = "SliderPosition" + sliderPosition.Value = 0 + sliderPosition.Parent = sliderGui + + local id = math.random(1,100) + + local bar = Instance.new("Frame") + bar.Name = "Bar" + bar.BackgroundColor3 = Color3.new(0,0,0) + if type(width) == "number" then + bar.Size = UDim2.new(0,width,0,5) + else + bar.Size = UDim2.new(0,200,0,5) + end + bar.BorderColor3 = Color3.new(95/255,95/255,95/255) + bar.ZIndex = 2 + bar.Parent = sliderGui + + if position["X"] and position["X"]["Scale"] and position["X"]["Offset"] and position["Y"] and position["Y"]["Scale"] and position["Y"]["Offset"] then + bar.Position = position + end + + local slider = Instance.new("ImageButton") + slider.Name = "Slider" + slider.BackgroundTransparency = 1 + slider.Image = "rbxasset://textures/ui/Slider.png" + slider.Position = UDim2.new(0,0,0.5,-10) + slider.Size = UDim2.new(0,20,0,20) + slider.ZIndex = 3 + slider.Parent = bar + + local areaSoakMouseMoveCon = nil + + areaSoak.MouseLeave:connect(function() + if areaSoak.Visible then + cancelSlide(areaSoak) + end + end) + areaSoak.MouseButton1Up:connect(function() + if areaSoak.Visible then + cancelSlide(areaSoak) + end + end) + + slider.MouseButton1Down:connect(function() + areaSoak.Visible = true + if areaSoakMouseMoveCon then areaSoakMouseMoveCon:disconnect() end + areaSoakMouseMoveCon = areaSoak.MouseMoved:connect(function(x,y) + setSliderPos(x,slider,sliderPosition,bar,steps) + end) + end) + + slider.MouseButton1Up:connect(function() cancelSlide(areaSoak) end) + + sliderPosition.Changed:connect(function(prop) + local relativePosX = (sliderPosition.Value - 1) / steps + slider.Position = UDim2.new(relativePosX,0,slider.Position.Y.Scale,slider.Position.Y.Offset) + end) + + return sliderGui, sliderPosition + +end + + +t.CreateScrollingFrame = function(orderList,scrollStyle) + local frame = Instance.new("Frame") + frame.Name = "ScrollingFrame" + frame.BackgroundTransparency = 1 + frame.Size = UDim2.new(1,0,1,0) + + local scrollUpButton = Instance.new("ImageButton") + scrollUpButton.Name = "ScrollUpButton" + scrollUpButton.BackgroundTransparency = 1 + scrollUpButton.Image = "rbxasset://textures/ui/scrollbuttonUp.png" + scrollUpButton.Size = UDim2.new(0,17,0,17) + + + local scrollDownButton = Instance.new("ImageButton") + scrollDownButton.Name = "ScrollDownButton" + scrollDownButton.BackgroundTransparency = 1 + scrollDownButton.Image = "rbxasset://textures/ui/scrollbuttonDown.png" + scrollDownButton.Size = UDim2.new(0,17,0,17) + + local style = "simple" + if scrollStyle and tostring(scrollStyle) then + style = scrollStyle + end + + local scrollPosition = 1 + local rowSize = 1 + + local layoutGridScrollBar = function() + local guiObjects = {} + if orderList then + for i, child in ipairs(orderList) do + if child.Parent == frame then + table.insert(guiObjects, child) + end + end + else + local children = frame:GetChildren() + if children then + for i, child in ipairs(children) do + if child:IsA("GuiObject") then + table.insert(guiObjects, child) + end + end + end + end + if #guiObjects == 0 then + scrollUpButton.Active = false + scrollDownButton.Active = false + scrollPosition = 1 + return + end + + if scrollPosition > #guiObjects then + scrollPosition = #guiObjects + end + + local totalPixelsY = frame.AbsoluteSize.Y + local pixelsRemainingY = frame.AbsoluteSize.Y + + local totalPixelsX = frame.AbsoluteSize.X + + local xCounter = 0 + local rowSizeCounter = 0 + local setRowSize = true + + local pixelsBelowScrollbar = 0 + local pos = #guiObjects + while pixelsBelowScrollbar < totalPixelsY and pos >= 1 do + if pos >= scrollPosition then + pixelsBelowScrollbar = pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y + else + xCounter = xCounter + guiObjects[pos].AbsoluteSize.X + rowSizeCounter = rowSizeCounter + 1 + if xCounter >= totalPixelsX then + if setRowSize then + rowSize = rowSizeCounter - 1 + setRowSize = false + end + + rowSizeCounter = 0 + xCounter = 0 + if pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y <= totalPixelsY then + --It fits, so back up our scroll position + pixelsBelowScrollbar = pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y + if scrollPosition <= rowSize then + scrollPosition = rowSize + break + else + --print("Backing up ScrollPosition from -- " ..scrollPosition) + scrollPosition = scrollPosition - rowSize + end + else + break + end + end + end + pos = pos - 1 + end + + xCounter = 0 + --print("ScrollPosition = " .. scrollPosition) + pos = scrollPosition + rowSizeCounter = 0 + setRowSize = true + local lastChildSize = 0 + + local xOffset,yOffset = 0 + if guiObjects[1] then + yOffset = math.ceil(math.floor(math.fmod(totalPixelsY,guiObjects[1].AbsoluteSize.X))/2) + xOffset = math.ceil(math.floor(math.fmod(totalPixelsX,guiObjects[1].AbsoluteSize.Y))/2) + end + + for i, child in ipairs(guiObjects) do + if i < scrollPosition then + --print("Hiding " .. child.Name) + child.Visible = false + else + if pixelsRemainingY < 0 then + --print("Out of Space " .. child.Name) + child.Visible = false + else + --print("Laying out " .. child.Name) + --GuiObject + if setRowSize then rowSizeCounter = rowSizeCounter + 1 end + if xCounter + child.AbsoluteSize.X >= totalPixelsX then + if setRowSize then + rowSize = rowSizeCounter - 1 + setRowSize = false + end + xCounter = 0 + pixelsRemainingY = pixelsRemainingY - child.AbsoluteSize.Y + end + child.Position = UDim2.new(child.Position.X.Scale,xCounter + xOffset, 0, totalPixelsY - pixelsRemainingY + yOffset) + xCounter = xCounter + child.AbsoluteSize.X + child.Visible = ((pixelsRemainingY - child.AbsoluteSize.Y) >= 0) + lastChildSize = child.AbsoluteSize + end + end + end + + scrollUpButton.Active = (scrollPosition > 1) + if lastChildSize == 0 then + scrollDownButton.Active = false + else + scrollDownButton.Active = ((pixelsRemainingY - lastChildSize.Y) < 0) + end + end + + + local layoutSimpleScrollBar = function() + local guiObjects = {} + + if orderList then + for i, child in ipairs(orderList) do + if child.Parent == frame then + table.insert(guiObjects, child) + end + end + else + local children = frame:GetChildren() + if children then + for i, child in ipairs(children) do + if child:IsA("GuiObject") then + table.insert(guiObjects, child) + end + end + end + end + if #guiObjects == 0 then + scrollUpButton.Active = false + scrollDownButton.Active = false + scrollPosition = 1 + return + end + + if scrollPosition > #guiObjects then + scrollPosition = #guiObjects + end + + local totalPixels = frame.AbsoluteSize.Y + local pixelsRemaining = frame.AbsoluteSize.Y + + local pixelsBelowScrollbar = 0 + local pos = #guiObjects + while pixelsBelowScrollbar < totalPixels and pos >= 1 do + if pos >= scrollPosition then + pixelsBelowScrollbar = pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y + else + if pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y <= totalPixels then + --It fits, so back up our scroll position + pixelsBelowScrollbar = pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y + if scrollPosition <= 1 then + scrollPosition = 1 + break + else + --print("Backing up ScrollPosition from -- " ..scrollPosition) + scrollPosition = scrollPosition - 1 + end + else + break + end + end + pos = pos - 1 + end + + --print("ScrollPosition = " .. scrollPosition) + pos = scrollPosition + for i, child in ipairs(guiObjects) do + if i < scrollPosition then + --print("Hiding " .. child.Name) + child.Visible = false + else + if pixelsRemaining < 0 then + --print("Out of Space " .. child.Name) + child.Visible = false + else + --print("Laying out " .. child.Name) + --GuiObject + child.Position = UDim2.new(child.Position.X.Scale, child.Position.X.Offset, 0, totalPixels - pixelsRemaining) + pixelsRemaining = pixelsRemaining - child.AbsoluteSize.Y + child.Visible = (pixelsRemaining >= 0) + end + end + end + scrollUpButton.Active = (scrollPosition > 1) + scrollDownButton.Active = (pixelsRemaining < 0) + end + + local reentrancyGuard = false + local recalculate = function() + if reentrancyGuard then + return + end + reentrancyGuard = true + wait() + local success, err = nil + if style == "grid" then + success, err = pcall(function() layoutGridScrollBar(frame) end) + elseif style == "simple" then + success, err = pcall(function() layoutSimpleScrollBar(frame) end) + end + if not success then print(err) end + + reentrancyGuard = false + end + + local scrollUp = function() + if scrollUpButton.Active then + scrollPosition = scrollPosition - rowSize + recalculate() + end + end + + local scrollDown = function() + if scrollDownButton.Active then + scrollPosition = scrollPosition + rowSize + recalculate() + end + end + + local scrollMouseCount = 0 + scrollUpButton.MouseButton1Click:connect( + function() + --print("Up-MouseButton1Click") + scrollMouseCount = scrollMouseCount + 1 + end) + scrollUpButton.MouseLeave:connect( + function() + --print("Up-Leave") + scrollMouseCount = scrollMouseCount + 1 + end) + + scrollUpButton.MouseButton1Down:connect( + function() + --print("Up-Down") + scrollMouseCount = scrollMouseCount + 1 + + scrollUp() + local val = scrollMouseCount + wait(0.5) + while val == scrollMouseCount do + if scrollUp() == false then + break + end + wait(0.1) + end + end) + + scrollDownButton.MouseButton1Click:connect( + function() + --print("Down-Click") + scrollMouseCount = scrollMouseCount + 1 + end) + scrollDownButton.MouseLeave:connect( + function() + --print("Down-Leave") + scrollMouseCount = scrollMouseCount + 1 + end) + scrollDownButton.MouseButton1Down:connect( + function() + --print("Down-Down") + scrollMouseCount = scrollMouseCount + 1 + + scrollDown() + local val = scrollMouseCount + wait(0.5) + while val == scrollMouseCount do + if scrollDown() == false then + break + end + wait(0.1) + end + end) + + + frame.ChildAdded:connect(function() + recalculate() + end) + + frame.ChildRemoved:connect(function() + recalculate() + end) + + frame.Changed:connect( + function(prop) + if prop == "AbsoluteSize" then + --Wait a heartbeat for it to sync in + recalculate() + end + end) + frame.AncestryChanged:connect(recalculate) + + return frame, scrollUpButton, scrollDownButton, recalculate +end +local function binaryGrow(min, max, fits) + if min > max then + return min + end + local biggestLegal = min + + while min <= max do + local mid = min + math.floor((max - min) / 2) + if fits(mid) and (biggestLegal == nil or biggestLegal < mid) then + biggestLegal = mid + + --Try growing + min = mid + 1 + else + --Doesn't fit, shrink + max = mid - 1 + end + end + return biggestLegal +end + + +local function binaryShrink(min, max, fits) + if min > max then + return min + end + local smallestLegal = max + + while min <= max do + local mid = min + math.floor((max - min) / 2) + if fits(mid) and (smallestLegal == nil or smallestLegal > mid) then + smallestLegal = mid + + --It fits, shrink + max = mid - 1 + else + --Doesn't fit, grow + min = mid + 1 + end + end + return smallestLegal +end + + +local function getGuiOwner(instance) + while instance ~= nil do + if instance:IsA("ScreenGui") or instance:IsA("BillboardGui") then + return instance + end + instance = instance.Parent + end + return nil +end + +t.AutoTruncateTextObject = function(textLabel) + local text = textLabel.Text + + local fullLabel = textLabel:Clone() + fullLabel.Name = "Full" .. textLabel.Name + fullLabel.BorderSizePixel = 0 + fullLabel.BackgroundTransparency = 0 + fullLabel.Text = text + fullLabel.TextXAlignment = Enum.TextXAlignment.Center + fullLabel.Position = UDim2.new(0,-3,0,0) + fullLabel.Size = UDim2.new(0,100,1,0) + fullLabel.Visible = false + fullLabel.Parent = textLabel + + local shortText = nil + local mouseEnterConnection = nil + local mouseLeaveConnection= nil + + local checkForResize = function() + if getGuiOwner(textLabel) == nil then + return + end + textLabel.Text = text + if textLabel.TextFits then + --Tear down the rollover if it is active + if mouseEnterConnection then + mouseEnterConnection:disconnect() + mouseEnterConnection = nil + end + if mouseLeaveConnection then + mouseLeaveConnection:disconnect() + mouseLeaveConnection = nil + end + else + local len = string.len(text) + textLabel.Text = text .. "~" + + --Shrink the text + local textSize = binaryGrow(0, len, + function(pos) + if pos == 0 then + textLabel.Text = "~" + else + textLabel.Text = string.sub(text, 1, pos) .. "~" + end + return textLabel.TextFits + end) + shortText = string.sub(text, 1, textSize) .. "~" + textLabel.Text = shortText + + --Make sure the fullLabel fits + if not fullLabel.TextFits then + --Already too small, grow it really bit to start + fullLabel.Size = UDim2.new(0, 10000, 1, 0) + end + + --Okay, now try to binary shrink it back down + local fullLabelSize = binaryShrink(textLabel.AbsoluteSize.X,fullLabel.AbsoluteSize.X, + function(size) + fullLabel.Size = UDim2.new(0, size, 1, 0) + return fullLabel.TextFits + end) + fullLabel.Size = UDim2.new(0,fullLabelSize+6,1,0) + + --Now setup the rollover effects, if they are currently off + if mouseEnterConnection == nil then + mouseEnterConnection = textLabel.MouseEnter:connect( + function() + fullLabel.ZIndex = textLabel.ZIndex + 1 + fullLabel.Visible = true + --textLabel.Text = "" + end) + end + if mouseLeaveConnection == nil then + mouseLeaveConnection = textLabel.MouseLeave:connect( + function() + fullLabel.Visible = false + --textLabel.Text = shortText + end) + end + end + end + textLabel.AncestryChanged:connect(checkForResize) + textLabel.Changed:connect( + function(prop) + if prop == "AbsoluteSize" then + checkForResize() + end + end) + + checkForResize() + + local function changeText(newText) + text = newText + fullLabel.Text = text + checkForResize() + end + + return textLabel, changeText +end + +local function TransitionTutorialPages(fromPage, toPage, transitionFrame, currentPageValue) + if fromPage then + fromPage.Visible = false + if transitionFrame.Visible == false then + transitionFrame.Size = fromPage.Size + transitionFrame.Position = fromPage.Position + end + else + if transitionFrame.Visible == false then + transitionFrame.Size = UDim2.new(0.0,50,0.0,50) + transitionFrame.Position = UDim2.new(0.5,-25,0.5,-25) + end + end + transitionFrame.Visible = true + currentPageValue.Value = nil + + local newsize, newPosition + if toPage then + --Make it visible so it resizes + toPage.Visible = true + + newSize = toPage.Size + newPosition = toPage.Position + + toPage.Visible = false + else + newSize = UDim2.new(0.0,50,0.0,50) + newPosition = UDim2.new(0.5,-25,0.5,-25) + end + transitionFrame:TweenSizeAndPosition(newSize, newPosition, Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, 0.3, true, + function(state) + if state == Enum.TweenStatus.Completed then + transitionFrame.Visible = false + if toPage then + toPage.Visible = true + currentPageValue.Value = toPage + end + end + end) +end + +t.CreateTutorial = function(name, tutorialKey, createButtons) + local frame = Instance.new("Frame") + frame.Name = "Tutorial-" .. name + frame.BackgroundTransparency = 1 + frame.Size = UDim2.new(0.6, 0, 0.6, 0) + frame.Position = UDim2.new(0.2, 0, 0.2, 0) + + local transitionFrame = Instance.new("Frame") + transitionFrame.Name = "TransitionFrame" + transitionFrame.Style = Enum.FrameStyle.RobloxRound + transitionFrame.Size = UDim2.new(0.6, 0, 0.6, 0) + transitionFrame.Position = UDim2.new(0.2, 0, 0.2, 0) + transitionFrame.Visible = false + transitionFrame.Parent = frame + + local currentPageValue = Instance.new("ObjectValue") + currentPageValue.Name = "CurrentTutorialPage" + currentPageValue.Value = nil + currentPageValue.Parent = frame + + local boolValue = Instance.new("BoolValue") + boolValue.Name = "Buttons" + boolValue.Value = createButtons + boolValue.Parent = frame + + local pages = Instance.new("Frame") + pages.Name = "Pages" + pages.BackgroundTransparency = 1 + pages.Size = UDim2.new(1,0,1,0) + pages.Parent = frame + + local function getVisiblePageAndHideOthers() + local visiblePage = nil + local children = pages:GetChildren() + if children then + for i,child in ipairs(children) do + if child.Visible then + if visiblePage then + child.Visible = false + else + visiblePage = child + end + end + end + end + return visiblePage + end + + local showTutorial = function(alwaysShow) + if alwaysShow or UserSettings().GameSettings:GetTutorialState(tutorialKey) == false then + print("Showing tutorial-",tutorialKey) + local currentTutorialPage = getVisiblePageAndHideOthers() + + local firstPage = pages:FindFirstChild("TutorialPage1") + if firstPage then + TransitionTutorialPages(currentTutorialPage, firstPage, transitionFrame, currentPageValue) + else + error("Could not find TutorialPage1") + end + end + end + + local dismissTutorial = function() + local currentTutorialPage = getVisiblePageAndHideOthers() + + if currentTutorialPage then + TransitionTutorialPages(currentTutorialPage, nil, transitionFrame, currentPageValue) + end + + UserSettings().GameSettings:SetTutorialState(tutorialKey, true) + end + + local gotoPage = function(pageNum) + local page = pages:FindFirstChild("TutorialPage" .. pageNum) + local currentTutorialPage = getVisiblePageAndHideOthers() + TransitionTutorialPages(currentTutorialPage, page, transitionFrame, currentPageValue) + end + + return frame, showTutorial, dismissTutorial, gotoPage +end + +local function CreateBasicTutorialPage(name, handleResize, skipTutorial) + local frame = Instance.new("Frame") + frame.Name = "TutorialPage" + frame.Style = Enum.FrameStyle.RobloxRound + frame.Size = UDim2.new(0.6, 0, 0.6, 0) + frame.Position = UDim2.new(0.2, 0, 0.2, 0) + frame.Visible = false + + local frameHeader = Instance.new("TextLabel") + frameHeader.Name = "Header" + frameHeader.Text = name + frameHeader.BackgroundTransparency = 1 + frameHeader.FontSize = Enum.FontSize.Size24 + frameHeader.Font = Enum.Font.ArialBold + frameHeader.TextColor3 = Color3.new(1,1,1) + frameHeader.TextXAlignment = Enum.TextXAlignment.Center + frameHeader.TextWrap = true + frameHeader.Size = UDim2.new(1,-55, 0, 22) + frameHeader.Position = UDim2.new(0,0,0,0) + frameHeader.Parent = frame + + local skipButton = Instance.new("ImageButton") + skipButton.Name = "SkipButton" + skipButton.AutoButtonColor = false + skipButton.BackgroundTransparency = 1 + skipButton.Image = "http://www.roblox.com/asset/?id=37813546" + skipButton.MouseButton1Click:connect(function() + skipButton.Image = "http://www.roblox.com/asset/?id=37813546" + skipTutorial() + end) + skipButton.MouseEnter:connect(function() + skipButton.Image = "http://www.roblox.com/asset/?id=37813556" + end) + skipButton.MouseLeave:connect(function() + skipButton.Image = "http://www.roblox.com/asset/?id=37813546" + end) + skipButton.Size = UDim2.new(0, 55, 0, 22) + skipButton.Position = UDim2.new(1, -55, 0, 0) + skipButton.Parent = frame + + local innerFrame = Instance.new("Frame") + innerFrame.Name = "ContentFrame" + innerFrame.BackgroundTransparency = 1 + innerFrame.Position = UDim2.new(0,0,0,22) + innerFrame.Parent = frame + + local nextButton = Instance.new("TextButton") + nextButton.Name = "NextButton" + nextButton.Text = "Next" + nextButton.TextColor3 = Color3.new(1,1,1) + nextButton.Font = Enum.Font.Arial + nextButton.FontSize = Enum.FontSize.Size18 + nextButton.Style = Enum.ButtonStyle.RobloxButtonDefault + nextButton.Size = UDim2.new(0,80, 0, 32) + nextButton.Position = UDim2.new(0.5, 5, 1, -32) + nextButton.Active = false + nextButton.Visible = false + nextButton.Parent = frame + + local prevButton = Instance.new("TextButton") + prevButton.Name = "PrevButton" + prevButton.Text = "Previous" + prevButton.TextColor3 = Color3.new(1,1,1) + prevButton.Font = Enum.Font.Arial + prevButton.FontSize = Enum.FontSize.Size18 + prevButton.Style = Enum.ButtonStyle.RobloxButton + prevButton.Size = UDim2.new(0,80, 0, 32) + prevButton.Position = UDim2.new(0.5, -85, 1, -32) + prevButton.Active = false + prevButton.Visible = false + prevButton.Parent = frame + + innerFrame.Size = UDim2.new(1,0,1,-22-35) + + local parentConnection = nil + + local function basicHandleResize() + if frame.Visible and frame.Parent then + local maxSize = math.min(frame.Parent.AbsoluteSize.X, frame.Parent.AbsoluteSize.Y) + handleResize(200,maxSize) + end + end + + frame.Changed:connect( + function(prop) + if prop == "Parent" then + if parentConnection ~= nil then + parentConnection:disconnect() + parentConnection = nil + end + if frame.Parent and frame.Parent:IsA("GuiObject") then + parentConnection = frame.Parent.Changed:connect( + function(parentProp) + if parentProp == "AbsoluteSize" then + wait() + basicHandleResize() + end + end) + basicHandleResize() + end + end + + if prop == "Visible" then + basicHandleResize() + end + end) + + return frame, innerFrame +end + +t.CreateTextTutorialPage = function(name, text, skipTutorialFunc) + local frame = nil + local contentFrame = nil + + local textLabel = Instance.new("TextLabel") + textLabel.BackgroundTransparency = 1 + textLabel.TextColor3 = Color3.new(1,1,1) + textLabel.Text = text + textLabel.TextWrap = true + textLabel.TextXAlignment = Enum.TextXAlignment.Left + textLabel.TextYAlignment = Enum.TextYAlignment.Center + textLabel.Font = Enum.Font.Arial + textLabel.FontSize = Enum.FontSize.Size14 + textLabel.Size = UDim2.new(1,0,1,0) + + local function handleResize(minSize, maxSize) + size = binaryShrink(minSize, maxSize, + function(size) + frame.Size = UDim2.new(0, size, 0, size) + return textLabel.TextFits + end) + frame.Size = UDim2.new(0, size, 0, size) + frame.Position = UDim2.new(0.5, -size/2, 0.5, -size/2) + end + + frame, contentFrame = CreateBasicTutorialPage(name, handleResize, skipTutorialFunc) + textLabel.Parent = contentFrame + + return frame +end + +t.CreateImageTutorialPage = function(name, imageAsset, x, y, skipTutorialFunc) + local frame = nil + local contentFrame = nil + + local imageLabel = Instance.new("ImageLabel") + imageLabel.BackgroundTransparency = 1 + imageLabel.Image = imageAsset + imageLabel.Size = UDim2.new(0,x,0,y) + imageLabel.Position = UDim2.new(0.5,-x/2,0.5,-y/2) + + local function handleResize(minSize, maxSize) + size = binaryShrink(minSize, maxSize, + function(size) + return size >= x and size >= y + end) + if size >= x and size >= y then + imageLabel.Size = UDim2.new(0,x, 0,y) + imageLabel.Position = UDim2.new(0.5,-x/2, 0.5, -y/2) + else + if x > y then + --X is limiter, so + imageLabel.Size = UDim2.new(1,0,y/x,0) + imageLabel.Position = UDim2.new(0,0, 0.5 - (y/x)/2, 0) + else + --Y is limiter + imageLabel.Size = UDim2.new(x/y,0,1, 0) + imageLabel.Position = UDim2.new(0.5-(x/y)/2, 0, 0, 0) + end + end + frame.Size = UDim2.new(0, size, 0, size) + frame.Position = UDim2.new(0.5, -size/2, 0.5, -size/2) + end + + frame, contentFrame = CreateBasicTutorialPage(name, handleResize, skipTutorialFunc) + imageLabel.Parent = contentFrame + + return frame +end + +t.AddTutorialPage = function(tutorial, tutorialPage) + local transitionFrame = tutorial.TransitionFrame + local currentPageValue = tutorial.CurrentTutorialPage + + if not tutorial.Buttons.Value then + tutorialPage.ContentFrame.Size = UDim2.new(1,0,1,-22) + tutorialPage.NextButton.Parent = nil + tutorialPage.PrevButton.Parent = nil + end + + local children = tutorial.Pages:GetChildren() + if children and #children > 0 then + tutorialPage.Name = "TutorialPage" .. (#children+1) + local previousPage = children[#children] + if not previousPage:IsA("GuiObject") then + error("All elements under Pages must be GuiObjects") + end + + if tutorial.Buttons.Value then + if previousPage.NextButton.Active then + error("NextButton already Active on previousPage, please only add pages with RbxGui.AddTutorialPage function") + end + previousPage.NextButton.MouseButton1Click:connect( + function() + TransitionTutorialPages(previousPage, tutorialPage, transitionFrame, currentPageValue) + end) + previousPage.NextButton.Active = true + previousPage.NextButton.Visible = true + + if tutorialPage.PrevButton.Active then + error("PrevButton already Active on tutorialPage, please only add pages with RbxGui.AddTutorialPage function") + end + tutorialPage.PrevButton.MouseButton1Click:connect( + function() + TransitionTutorialPages(tutorialPage, previousPage, transitionFrame, currentPageValue) + end) + tutorialPage.PrevButton.Active = true + tutorialPage.PrevButton.Visible = true + end + + tutorialPage.Parent = tutorial.Pages + else + --First child + tutorialPage.Name = "TutorialPage1" + tutorialPage.Parent = tutorial.Pages + end +end + +t.Help = + function(funcNameOrFunc) + --input argument can be a string or a function. Should return a description (of arguments and expected side effects) + if funcNameOrFunc == "CreatePropertyDropDownMenu" or funcNameOrFunc == t.CreatePropertyDropDownMenu then + return "Function CreatePropertyDropDownMenu. " .. + "Arguments: (instance, propertyName, enumType). " .. + "Side effect: returns a container with a drop-down-box that is linked to the 'property' field of 'instance' which is of type 'enumType'" + end + if funcNameOrFunc == "CreateDropDownMenu" or funcNameOrFunc == t.CreateDropDownMenu then + return "Function CreateDropDownMenu. " .. + "Arguments: (items, onItemSelected). " .. + "Side effect: Returns 2 results, a container to the gui object and a 'updateSelection' function for external updating. The container is a drop-down-box created around a list of items" + end + if funcNameOrFunc == "CreateMessageDialog" or funcNameOrFunc == t.CreateMessageDialog then + return "Function CreateMessageDialog. " .. + "Arguments: (title, message, buttons). " .. + "Side effect: Returns a gui object of a message box with 'title' and 'message' as passed in. 'buttons' input is an array of Tables contains a 'Text' and 'Function' field for the text/callback of each button" + end + if funcNameOrFunc == "CreateStyledMessageDialog" or funcNameOrFunc == t.CreateStyledMessageDialog then + return "Function CreateStyledMessageDialog. " .. + "Arguments: (title, message, style, buttons). " .. + "Side effect: Returns a gui object of a message box with 'title' and 'message' as passed in. 'buttons' input is an array of Tables contains a 'Text' and 'Function' field for the text/callback of each button, 'style' is a string, either Error, Notify or Confirm" + end + if funcNameOrFunc == "GetFontHeight" or funcNameOrFunc == t.GetFontHeight then + return "Function GetFontHeight. " .. + "Arguments: (font, fontSize). " .. + "Side effect: returns the size in pixels of the given font + fontSize" + end + if funcNameOrFunc == "LayoutGuiObjects" or funcNameOrFunc == t.LayoutGuiObjects then + + end + if funcNameOrFunc == "CreateScrollingFrame" or funcNameOrFunc == t.CreateScrollingFrame then + return "Function CreateScrollingFrame. " .. + "Arguments: (orderList, style) " .. + "Side effect: returns 4 objects, (scrollFrame, scrollUpButton, scrollDownButton, recalculateFunction). 'scrollFrame' can be filled with GuiObjects. It will lay them out and allow scrollUpButton/scrollDownButton to interact with them. Orderlist is optional (and specifies the order to layout the children. Without orderlist, it uses the children order. style is also optional, and allows for a 'grid' styling if style is passed 'grid' as a string. recalculateFunction can be called when a relayout is needed (when orderList changes)" + end + if funcNameOrFunc == "AutoTruncateTextObject" or funcNameOrFunc == t.AutoTruncateTextObject then + return "Function AutoTruncateTextObject. " .. + "Arguments: (textLabel) " .. + "Side effect: returns 2 objects, (textLabel, changeText). The 'textLabel' input is modified to automatically truncate text (with ellipsis), if it gets too small to fit. 'changeText' is a function that can be used to change the text, it takes 1 string as an argument" + end + if funcNameOrFunc == "CreateSlider" or funcNameOrFunc == t.CreateSlider then + return "Function CreateSlider. " .. + "Arguments: (steps, width, position) " .. + "Side effect: returns 2 objects, (sliderGui, sliderPosition). The 'steps' argument specifies how many different positions the slider can hold along the bar. 'width' specifies in pixels how wide the bar should be (modifiable afterwards if desired). 'position' argument should be a UDim2 for slider positioning. 'sliderPosition' is an IntValue whose current .Value specifies the specific step the slider is currently on." + end + end + +local NewPlayerListGui = Instance.new("ScreenGui",script.Parent) +NewPlayerListGui.Name = "NewPlayerList" + +coroutine.resume(coroutine.create(function() +NewPlayerListGui.Parent = game.CoreGui +if game.CoreGui:FindFirstChild("NewPlayerList") then +game.CoreGui["NewPlayerList"].Parent = nil +end end)) + +local localTesting = true + +local friendWord = "Friend" +local friendWordLowercase = "friend" + +local testFriendingPlaces = {} +testFriendingPlaces[41324860] = true +local enableFriendingGlobally = false + +local testPlayerListPlaces = {} +testPlayerListPlaces[41324860] = true +testPlayerListPlaces[10042455] = true +local enablePlayerListGlobally = false + +local bigEasingStyle = Enum.EasingStyle.Back +local smallEasingStyle = Enum.EasingStyle.Quart +local lightBackground = true + +local function waitForChild(instance, name) + while not instance:FindFirstChild(name) do + instance.ChildAdded:wait() + end +end + +local function waitForProperty(instance, prop) + while not instance[prop] do + instance.Changed:wait() + end +end + +local function Color3I(r,g,b) + return Color3.new(r/255,g/255,b/255) +end + +function robloxLock(instance) +end + +function ArrayRemove(t, obj) + for i, obj2 in ipairs(t) do + if obj == obj2 then + table.remove(t, i) + return true + end + end + return false +end + +local function getPlayers() + local result = {} + local players = game:GetService("Players"):GetChildren() + if players then + for i, player in ipairs(players) do + if player:IsA("Player") then + table.insert(result, player) + end + end + end + return result +end + +local brickColorTable = {} +for i = 0, 63 do + brickColorTable[BrickColor.palette(i).Name] = BrickColor.palette(i).Color +end + +local function remapColor(i, j) + brickColorTable[BrickColor.palette(i).Name] = BrickColor.palette(j).Color +end + +remapColor(13, 12) +remapColor(14, 12) +remapColor(15, 12) +remapColor(61, 29) +remapColor(63, 62) +remapColor(56, 50) +remapColor(45, 53) +remapColor(51, 20) +remapColor(4, 20) +remapColor(59, 35) +remapColor(60, 29) + +local function getColor(brickColor) + if brickColorTable[brickColor.Name] then + return brickColorTable[brickColor.Name] + else + return brickColor.Color; + end +end + + + +local function getTeams() + local result = {} + local teams = game:GetService("Teams"):GetChildren() + for i, team in ipairs(teams) do + if team:IsA("Team") then + table.insert(result, team) + end + end + return result +end + +local supportFriends = false +local currentBoardType = "PlayerList" +local currentStatCount = 0 + +local createBoardsFunction = nil + + +local playerTable = {} +local teamTable = {} +local teamColorTable = {} + +local removePlayerFunction = nil +local recreatePlayerFunction = nil +local addPlayerFunction = function(player) + if recreatePlayerFunction then + recreatePlayerFunction(player) + end +end +local sortPlayerListsFunction = nil + +local minimizedState = nil +local bigWindowImposter = nil +local smallWindowPosition = UDim2.new(0, -20, 0,5)--UDim2.new(0, 0, 0,0) +local smallWindowSize = UDim2.new(1,0,1,0)--UDim2.new(1,5,1,0) +local bigWindowSize = UDim2.new(0.6,0,0.6,0) +local bigWindowPosition = UDim2.new(.2, 0, .2,0) + +local debounceTeamsChanged = false + +local currentWindowState = "Small" +local previousWindowState = nil +local transitionWindowsFunction = nil + +local container = nil +local topRightTrayContainer = nil + +local playerContextMenu = nil +local contextMenuElements = {} + +local function addContextMenuLabel(getText1, getText2, isVisible) + local t = {} + t.Type = "Label" + t.GetText1 = getText1 + t.GetText2 = getText2 + t.IsVisible = isVisible + table.insert(contextMenuElements, t) +end +local function addContextMenuButton(text, isVisible, isActive, doIt) + local t = {} + t.Text = text + t.Type = "Button" + t.IsVisible = isVisible + t.IsActive = isActive + t.DoIt = doIt + table.insert(contextMenuElements, t) +end + +local function getFriendStatus(player) + if player == game.Players.LocalPlayer then + return Enum.FriendStatus.NotFriend + else + return game.Players.LocalPlayer:GetFriendStatus(player) + end +end +--Populate the ContextMenus +addContextMenuLabel( + --GetText1 + function(player) + return "Loading..." + end, + --GetText2 + nil, + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.Unknown + end) + +--[[ +addContextMenuLabel( + --GetText1 + function(player) + return player.Name + end, + --GetText2 + nil, + --IsVisible + function(player) + return true + end)]]-- +addContextMenuButton("Send " .. friendWord .. " Request", + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.NotFriend + end, + --IsActive + function(player) + return true + end, + --DoIt + function(player) + return game.Players.LocalPlayer:RequestFriendship(player) + end +) +addContextMenuButton("Un" .. friendWordLowercase, + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.Friend + end, + --IsActive + function(player) + return true + end, + --DoIt + function(player) + return game.Players.LocalPlayer:RevokeFriendship(player) + end +) +addContextMenuButton("Accept " .. friendWord .. " Request", + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.FriendRequestReceived + end, + --IsActive + function(player) + return true + end, + --DoIt + function(player) + return game.Players.LocalPlayer:RequestFriendship(player) + end +) + +addContextMenuButton("Deny " .. friendWord .. " Request", + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.FriendRequestReceived + end, + --IsActive + function(player) + return true + end, + --DoIt + function(player) + return game.Players.LocalPlayer:RevokeFriendship(player) + end +) + +addContextMenuButton("Cancel " .. friendWord .. " Request", + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.FriendRequestSent + end, + --IsActive + function(player) + return true + end, + --DoIt + function(player) + return game.Players.LocalPlayer:RevokeFriendship(player) + end +) + + +local function getStatColumns(players) + for i, player in ipairs(players) do + local leaderstats = player:FindFirstChild("leaderstats") + if leaderstats then + --print(player, " is King of the List") + local stats = {} + local children = leaderstats:GetChildren() + if children then + for i, stat in ipairs(children) do + if stat:IsA("IntValue") then + table.insert(stats, stat.Name) + else + --TODO: This should check for IntValue only but current ScoreHud does not + table.insert(stats, stat.Name) + end + end + end + return stats + end + end + return nil +end + +local function determineBoardType() + local players = getPlayers() + + local foundLeaderstats = false + local numStats = 0 + local foundTeam = false + + local stats = getStatColumns(players) + if stats then + foundLeaderstats = true + numStats = #stats + end + + for i, player in ipairs(players) do + if not foundTeam then + if not player.Neutral then + foundTeam = true + break + end + end + end + + if foundLeaderstats and foundTeam then + return "TeamScore", numStats + elseif foundLeaderstats then + return "PlayerScore", numStats + elseif foundTeam then + return "TeamList", numStats + else + return "PlayerList", numStats + end +end + +local function toggleBigWindow() + if container == nil then + return + end + + if currentWindowState == "Big" then + --Hide it + if previousWindowState == nil or previousWindowState == "Big" or previousWindowState == "None" then + transitionWindowsFunction("None") + else + transitionWindowsFunction("Small") + end + else + previousWindowState = currentWindowState + transitionWindowsFunction("Big") + end +end +local previousBigPlayerList = nil +local function rebuildBoard(owner, boardType, numStats) + print("RebuildBoard") + if topRightTrayContainer == nil then + topRightTrayContainer = owner:FindFirstChild("PlayerListTopRightFrame") + if topRightTrayContainer == nil then + topRightTrayContainer = Instance.new("Frame") + topRightTrayContainer.Name = "PlayerListTopRightFrame" + topRightTrayContainer.BackgroundTransparency = 1 + topRightTrayContainer.Size = UDim2.new(0.2, 16, 0.42, 16)--UDim2.new(0.2, 0, 0.42, 0) + topRightTrayContainer.Position = UDim2.new(0.8, 0, 0, 0)--UDim2.new(0.8, 0, 0, 0) + topRightTrayContainer.Parent = container + end + end + if minimizedState == nil then + minimizedState = Instance.new("Frame") + minimizedState.Name = "MinimizedPlayerlist" + minimizedState.BackgroundTransparency = 1 + minimizedState.Position = UDim2.new(1, -166, 0,0) --UDim2.new(1, -153, 0,0) + minimizedState.Size = UDim2.new(0, 151, 0, 30) + + --[[local playerListButton = Instance.new("ImageButton") + playerListButton.Name = "GoBigButton" + playerListButton.Image = "rbxasset://textures/ui/playerlist_hidden_maximize.png" + playerListButton.BackgroundTransparency = 1 + playerListButton.Size = UDim2.new(0.0, 116, 0, 30) + playerListButton.Position = UDim2.new(0, 35, 0, 0) + playerListButton.MouseButton1Click:connect( + function() + toggleBigWindow() + end) + playerListButton.Parent = minimizedState]] + + playerListButton = Instance.new("ImageButton") + playerListButton.Name = "GoSmallButton" + playerListButton.Image = "rbxasset://textures/ui/playerlist_hidden_small.png" + playerListButton.BackgroundTransparency = 1 + playerListButton.Size = UDim2.new(0.0, 35, 0, 30) + playerListButton.Position = UDim2.new(1, -35, 0, 0) + playerListButton.MouseButton1Click:connect( + function() + transitionWindowsFunction("Small") + end) + playerListButton.Parent = minimizedState + + minimizedState.Visible = false + robloxLock(minimizedState) + minimizedState.Parent = topRightTrayContainer + end + if bigWindowImposter == nil then + bigWindowImposter = owner:FindFirstChild("BigPlayerListWindowImposter") + if bigWindowImposter == nil then + bigWindowImposter = Instance.new("Frame") + bigWindowImposter.Name = "BigPlayerListWindowImposter" + bigWindowImposter.Visible = false + --bigWindowImposter.Style = Enum.FrameStyle.RobloxRound + bigWindowImposter.BackgroundColor3 = Color3.new(0,0,0) + bigWindowImposter.BackgroundTransparency = 0.7 + bigWindowImposter.BorderSizePixel = 0 + --bigWindowImposter.Size = UDim2.new(0.4, 0, 0.4, 0) + bigWindowImposter.Size = UDim2.new(0.4, 7, 0.4, 7) + bigWindowImposter.Position = UDim2.new(0.3, 0, 0.3, 0) + robloxLock(bigWindowImposter) + bigWindowImposter.Parent = container + end + end + if container == nil or container ~= owner then + container = owner + + topRightTrayContainer.Parent = container + bigWindowImposter.Parent = container + end + + local smallVisible = true + local bigVisible = false + if container then + if topRightTrayContainer then + --Delete the old boards + if topRightTrayContainer:FindFirstChild("SmallPlayerlist") then + smallVisible = topRightTrayContainer.SmallPlayerlist.Visible + topRightTrayContainer.SmallPlayerlist.Parent = nil + print("Removed small playerlist") + else + print("Did not remove small playerlist") + end + end + if container:FindFirstChild("BigPlayerlist") then + bigVisible = container.BigPlayerlist.Visible or (previousBigPlayerList ~= nil) + container.BigPlayerlist.Parent = nil + if previousBigPlayerList ~= nil then + pcall(function() game.GuiService:RemoveCenterDialog(previousBigPlayerList) end) + previousBigPlayerList = nil + end + end + end + + local smallBoard, bigBoard = createBoardsFunction(boardType, numStats) + if smallBoard then + smallBoard.Visible = smallVisible + smallBoard.Parent = topRightTrayContainer + end + if bigBoard then + if bigVisible then + previousBigPlayerList = bigBoard + local centerDialogSupported, msg = pcall(function() game.GuiService:AddCenterDialog(previousBigPlayerList, Enum.CenterDialogType.PlayerInitiatedDialog, + function() + previousBigPlayerList.Visible = true + end) + end) + bigBoard.Visible = bigVisible + else + bigBoard.Visible = false + end + bigBoard.Parent = container + end + return container +end + + +local function showBigPlayerWindow() + if container:FindFirstChild("BigPlayerlist") then + if container.BigPlayerlist.Visible then + return + end + end + + bigWindowImposter.Visible = true + bigWindowImposter:TweenSizeAndPosition(bigWindowSize, bigWindowPosition, Enum.EasingDirection.Out, bigEasingStyle, 0.3, true, + function(state) + if state == Enum.TweenStatus.Completed then + bigWindowImposter.Visible = false + if container:FindFirstChild("BigPlayerlist") then + container.BigPlayerlist.Visible = true + end + end + end) +end + +local function hideBigPlayerWindow(completed) + if playerContextMenu then + playerContextMenu.Visible = false + end + + if container:FindFirstChild("BigPlayerlist") then + if container.BigPlayerlist.Visible == false and bigWindowImposter.Visible == false then + if completed then + completed() + end + --Already completely hidden + return + end + container.BigPlayerlist.Visible = false + end + + local completedFunction = completed + bigWindowImposter.Visible = true + bigWindowImposter:TweenSizeAndPosition(UDim2.new(0.4, 0, 0.4, 0), UDim2.new(0.3, 0, 0.3, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quart, 0.15, true, + function(state) + if state == Enum.TweenStatus.Completed then + bigWindowImposter.Visible = false + if completedFunction then + completedFunction() + end + end + end) +end +local function hideSmallPlayerWindow(completed) + if playerContextMenu then + playerContextMenu.Visible = false + end + if topRightTrayContainer:FindFirstChild("SmallPlayerlist") then + local completedFunction = completed + if topRightTrayContainer.SmallPlayerlist.Visible then + topRightTrayContainer.SmallPlayerlist:TweenPosition(UDim2.new(1,0,smallWindowPosition.Y.Scale, smallWindowPosition.Y.Offset), Enum.EasingDirection.Out, smallEasingStyle, 0.3, true, + function(state) + --print(state) + if state == Enum.TweenStatus.Completed then + if topRightTrayContainer:FindFirstChild("SmallPlayerlist") then + topRightTrayContainer.SmallPlayerlist.Visible = false + end + if completedFunction then + completedFunction() + end + end + end) + return + end + end + if completed then + completed() + end +end + + +transitionWindowsFunction = function(desiredState) + if desiredState == "Big" then + minimizedState.Visible = false + hideSmallPlayerWindow() + + if previousBigPlayerList ~= nil then + if previousBigPlayerList ~= container:FindFirstChild("BigPlayerlist") then + pcall(function() game.GuiService:RemoveCenterDialog(previousBigPlayerList) end) + previousBigPlayerList = nil + previousBigPlayerList = container:FindFirstChild("BigPlayerlist") + end + else + previousBigPlayerList = container:FindFirstChild("BigPlayerlist") + end + + if previousBigPlayerList then + local firstShow = false + local centerDialogSupported, msg = pcall(function() game.GuiService:AddCenterDialog(previousBigPlayerList, Enum.CenterDialogType.PlayerInitiatedDialog, + function() + if not firstShow then + showBigPlayerWindow() + firstShow = true + else + previousBigPlayerList.Visible = true + end + end) + end) + if centerDialogSupported == false then + print("Exception", msg) + showBigPlayerWindow() + end + else + showBigPlayerWindow() + end + currentWindowState = "Big" + elseif desiredState == "Small" then + minimizedState.Visible = false + if previousBigPlayerList ~= nil then + pcall(function() game.GuiService:RemoveCenterDialog(previousBigPlayerList) end) + previousBigPlayerList = nil + end + + hideBigPlayerWindow() + if topRightTrayContainer:FindFirstChild("SmallPlayerlist") then + if not topRightTrayContainer.SmallPlayerlist.Visible or topRightTrayContainer.SmallPlayerlist.Position ~= smallWindowPosition then + topRightTrayContainer.SmallPlayerlist.Visible = true + topRightTrayContainer.SmallPlayerlist:TweenPosition(smallWindowPosition, Enum.EasingDirection.Out, smallEasingStyle, 0.3, true) + end + end + currentWindowState = "Small" + elseif desiredState == "None" then + if previousBigPlayerList ~= nil then + pcall(function() game.GuiService:RemoveCenterDialog(previousBigPlayerList) end) + previousBigPlayerList = nil + end + + local smallDone = false + local bigDone = false + hideSmallPlayerWindow( + function() + smallDone = true + if bigDone and smallDone then + minimizedState.Visible = true + end + end) + hideBigPlayerWindow( + function() + bigDone = true + if bigDone and smallDone then + minimizedState.Visible = true + end + end) + currentWindowState = "None" + end +end + +local function getStatValuesForPlayer(player) + local leaderstats = player:FindFirstChild("leaderstats") + if leaderstats then + local children = leaderstats:GetChildren() + if children then + local result = {} + --Just go based on position + for i, stat in ipairs(children) do + if stat:IsA("IntValue") then + table.insert(result, stat) + else + table.insert(result, 0) + end + end + + return result, leaderstats + end + end + return nil +end + +--ChildAdded on Player (if it's name is "leaderstats") + +if UserSettings and LoadLibrary then + + RbxGui,msg = t + print("Libraries loaded") + + local function createTeamName(name, color) + local fontHeight = 20 --RbxGui.GetFontHeight(Enum.Font.ArialBold, Enum.FontSize.Size18) + local frame = Instance.new("Frame") + frame.Name = "Team-" .. name + frame.BorderSizePixel = 0 + frame.BackgroundTransparency = 0.5 + frame.BackgroundColor3 = Color3.new(1,1,1) + frame.Size = UDim2.new(1, 0, 0, fontHeight) + frame.Position = UDim2.new(0,0,0,0) + + local label = Instance.new("TextLabel") + label.Name = "NameLabel" + label.Text = " " .. name + label.Font = Enum.Font.ArialBold + label.FontSize = Enum.FontSize.Size18 + label.Position = UDim2.new(0,0,0,0) + label.Size = UDim2.new(1,0,1,0) + label.TextColor3 = Color3.new(1,1,1) + label.BackgroundTransparency = 0.5 + label.BackgroundColor3 = getColor(color) + label.BorderSizePixel = 0 + label.TextXAlignment = Enum.TextXAlignment.Left + label = RbxGui.AutoTruncateTextObject(label) + label.Parent = frame + + return frame + end + + local function getFriendStatusIcon(friendStatus) + if friendStatus == Enum.FriendStatus.Unknown or friendStatus == Enum.FriendStatus.NotFriend then + return nil + elseif friendStatus == Enum.FriendStatus.Friend then + return "rbxasset://textures/ui/PlayerlistFriendIcon.png" + elseif friendStatus == Enum.FriendStatus.FriendRequestSent then + return "rbxasset://textures/ui/PlayerlistFriendRequestSentIcon.png" + elseif friendStatus == Enum.FriendStatus.FriendRequestReceived then + return "rbxasset://textures/ui/PlayerlistFriendRequestReceivedIcon.png" + else + error("Unknown FriendStatus: " .. friendStatus) + end + end + + local function getMembershipTypeIcon(membershipType) + --TODO: replace with proper icons + if membershipType == Enum.MembershipType.None then + return "" + elseif membershipType == Enum.MembershipType.BuildersClub then + return "rbxasset://textures/ui/TinyBcIcon.png" + elseif membershipType == Enum.MembershipType.TurboBuildersClub then + return "rbxasset://textures/ui/TinyTbcIcon.png" + elseif membershipType == Enum.MembershipType.OutrageousBuildersClub then + return "rbxasset://textures/ui/TinyObcIcon.png" + else + error("Uknown membershipType" .. membershipType) + end + end + + + local function updatePlayerFriendStatus(nameObject, friendStatus) + local fontHeight = 20 --RbxGui.GetFontHeight(Enum.Font.ArialBold, Enum.FontSize.Size14) + + local friendIconImage = getFriendStatusIcon(friendStatus) + nameObject.MembershipTypeLabel.FriendStatusLabel.Visible = (friendIconImage ~= nil) + + if friendIconImage ~= nil then + --Show friend icon + nameObject.MembershipTypeLabel.FriendStatusLabel.Image = friendIconImage + nameObject.NameLabel.Position =UDim2.new(0,2*fontHeight,0,1) + nameObject.NameLabel.Size = UDim2.new(1,-2*fontHeight,1,-2) + else + --Hide the friend icon + nameObject.NameLabel.Position = UDim2.new(0,fontHeight+1,0,1) + nameObject.NameLabel.Size = UDim2.new(1,-(fontHeight+1),1,-2) + end + end + local function updatePlayerName(nameObject, membershipStatus, teamColor) + local fontHeight = 20 --RbxGui.GetFontHeight(Enum.Font.ArialBold, Enum.FontSize.Size14) + + nameObject.Size = UDim2.new(1,0,0,fontHeight) + nameObject.MembershipTypeLabel.Image = getMembershipTypeIcon(membershipStatus) + end + + + local function updatePlayerNameColor(player, teamColor) + local function updatePlayerNameColorHelper(nameObject) + if teamColor ~= nil then + nameObject.NameLabel.TextColor3 = getColor(teamColor) + nameObject.NameLabel.FullNameLabel.TextColor3 = getColor(teamColor) + else + nameObject.NameLabel.TextColor3 = Color3.new(1,1,1) + nameObject.NameLabel.FullNameLabel.TextColor3 = Color3.new(1,1,1) + end + end + + updatePlayerNameColorHelper(playerTable[player].NameObjectSmall) + updatePlayerNameColorHelper(playerTable[player].NameObjectBig) + end + + + local function createPlayerName(name, membershipStatus, teamColor, friendStatus) + local frame = Instance.new("Frame") + frame.Name = "Player_" .. name + if lightBackground then + frame.BackgroundColor3 = Color3.new(1,1,1) + else + frame.BackgroundColor3 = Color3.new(1,1,1) + end + frame.BackgroundTransparency = 0.5 + frame.BorderSizePixel = 0 + + local membershipStatusLabel = Instance.new("ImageLabel") + membershipStatusLabel.Name = "MembershipTypeLabel" + membershipStatusLabel.BackgroundTransparency = 1 + membershipStatusLabel.Size = UDim2.new(1,0,1,0) + membershipStatusLabel.Position = UDim2.new(0,0,0,0) + membershipStatusLabel.SizeConstraint = Enum.SizeConstraint.RelativeYY + membershipStatusLabel.Parent = frame + + local friendStatusLabel = Instance.new("ImageLabel") + friendStatusLabel.Name = "FriendStatusLabel" + friendStatusLabel.Visible = false + friendStatusLabel.BackgroundTransparency = 1 + friendStatusLabel.Size = UDim2.new(1,0,1,0) + friendStatusLabel.Position = UDim2.new(1,0,0,0) + friendStatusLabel.Parent = membershipStatusLabel + + local changeNameFunction + local nameLabel = Instance.new("TextLabel") + nameLabel.Name = "NameLabel" + nameLabel.Text = name + nameLabel.Font = Enum.Font.ArialBold + nameLabel.FontSize = Enum.FontSize.Size14 + nameLabel.TextColor3 = Color3.new(1,1,1) + nameLabel.BackgroundTransparency = 1 + nameLabel.BackgroundColor3 = Color3.new(0,0,0) + nameLabel.TextXAlignment = Enum.TextXAlignment.Left + nameLabel, changeNameFunction = RbxGui.AutoTruncateTextObject(nameLabel) + nameLabel.Parent = frame + + updatePlayerName(frame, membershipStatus, teamColor) + if supportFriends then + updatePlayerFriendStatus(frame, friendStatus) + else + updatePlayerFriendStatus(frame, Enum.FriendStatus.NotFriend) + end + return frame, changeNameFunction + end + + local function createStatColumn(i, numColumns, isTeam, color3, isHeader) + local textLabel = Instance.new("TextLabel") + textLabel.Name = "Stat" .. i + textLabel.TextColor3 = Color3.new(1,1,1) + textLabel.TextXAlignment = Enum.TextXAlignment.Right + textLabel.TextYAlignment = Enum.TextYAlignment.Center + textLabel.FontSize = Enum.FontSize.Size14 + if isHeader then + textLabel.FontSize = Enum.FontSize.Size18 + else + textLabel.FontSize = Enum.FontSize.Size14 + end + if isHeader or isTeam then + textLabel.Font = Enum.Font.ArialBold + else + textLabel.Font = Enum.Font.Arial + end + + if isTeam then + textLabel.BackgroundColor3 = color3 + textLabel.Text = 0 + else + textLabel.BackgroundColor3 = Color3.new(0,0,0) + textLabel.Text = "" + end + textLabel.BackgroundTransparency = 1 + if i == numColumns then + textLabel.Size = UDim2.new(1/numColumns, -6, 1, 0) + else + textLabel.Size = UDim2.new(1/numColumns, -4, 1, 0) + end + + textLabel.Position = UDim2.new((i-1) * (1/numColumns), 0, 0, 0) + return RbxGui.AutoTruncateTextObject(textLabel) + end + + local function createStatHeaders(stats, numColumns, isBig) + local frame = Instance.new("Frame") + frame.Name = "Headers" + frame.BorderSizePixel = 0 + frame.BackgroundColor3 = Color3.new(0,0,0) + frame.BackgroundTransparency = 1 + + local nameSize + if isBig then + nameSize = 0.5 + elseif numColumns == 1 then + nameSize = 0.7 + elseif numColumns == 2 then + nameSize = 0.6 + else + nameSize = 0.45 + end + frame.Size = UDim2.new(1-nameSize, 0, 1,0) + if isBig then + frame.Position = UDim2.new(nameSize,-25, 0,0) + else + frame.Position = UDim2.new(nameSize,0, 0,0) + end + + local i = 1 + while i <= numColumns do + local headerColumn, changeText = createStatColumn(i, numColumns, false, nil, true) + changeText(stats[i]) + headerColumn.Parent = frame + i = i + 1 + end + return frame, textChangers + end + + local function createStatColumns(nameObject, numColumns, isTeam, isBig) + local frame = Instance.new("Frame") + frame.Name = nameObject.Name .. "_WithStats" + frame.BorderSizePixel = 0 + frame.BackgroundColor3 = nameObject.BackgroundColor3 + frame.BackgroundTransparency = nameObject.BackgroundTransparency + frame.Size = nameObject.Size + frame.Position = nameObject.Position + + nameObject.BackgroundTransparency = 1 + + if numColumns == 0 then + nameObject.Size = UDim2.new(1,0,1,0) + nameObject.Position = UDim2.new(0,0,0,0) + nameObject.Parent = frame + return frame + end + + local statFrame = Instance.new("Frame") + statFrame.Name = "Stats" + if isTeam then + statFrame.BorderSizePixel = 0 + statFrame.BackgroundColor3 = nameObject.NameLabel.BackgroundColor3 + statFrame.BackgroundTransparency = nameObject.NameLabel.BackgroundTransparency + else + statFrame.BackgroundTransparency = 1 + end + + local nameSize + if isBig then + nameSize = 0.5 + elseif numColumns == 1 then + nameSize = 0.7 + elseif numColumns == 2 then + nameSize = 0.6 + else + nameSize = 0.45 + end + nameObject.Size = UDim2.new(nameSize, 0, 1, 0) + nameObject.Position = UDim2.new(0, 0, 0, 0) + statFrame.Size = UDim2.new(1-nameSize,0, 1,0) + statFrame.Position = UDim2.new(nameSize,0, 0,0) + + nameObject.Parent = frame + statFrame.Parent = frame + + local textChangers = {} + local i = 1 + while i <= numColumns do + local statColumn, changeText = createStatColumn(i, numColumns, isTeam, statFrame.BackgroundColor3) + statColumn.Parent = statFrame + table.insert(textChangers, changeText) + + i = i + 1 + end + + return frame, statFrame, textChangers + end + + local function createAlternatingRows(objects) + for i, line in ipairs(objects) do + if i % 2 == 0 then + line.BackgroundTransparency = 1 + else + line.BackgroundTransparency = 0.95 + end + end + end + local removeFromTeam = nil + + local function clearTableEntry(obj, tableInfo) + if tableInfo.MainObjectSmall then + tableInfo.MainObjectSmall.Parent = nil + tableInfo.MainObjectSmall = nil + end + if tableInfo.MainObjectBig then + tableInfo.MainObjectBig.Parent = nil + tableInfo.MainObjectBig = nil + end + if tableInfo.Connections then + for i, connection in ipairs(tableInfo.Connections) do + connection:disconnect() + end + tableInfo.Connections = nil + end + if tableInfo.LeaderStatConnections then + for i, connection in ipairs(tableInfo.LeaderStatConnections) do + connection:disconnect() + end + tableInfo.LeaderStatConnections = nil + end + if tableInfo.CurrentTeam then + removeFromTeam(obj) + tableInfo.CurrentTeam = nil + end + if tableInfo.Players then + for i, player in ipairs(tableInfo.Players) do + playerTable[player].CurrentTeam = nil + end + tableInfo.Players = {} + end + if tableInfo.StatValues then + tableInfo.StatValues = nil + end + end + + local function resetPlayerTable() + for player, info in pairs(playerTable) do + clearTableEntry(player, info) + playerTable[player] = nil + end + playerTable = {} + end + + local function resetTeamTable() + for team, info in pairs(teamTable) do + clearTableEntry(team, info) + teamTable[team] = nil + end + teamTable = {} + teamColorTable = {} + end + + local function getBoardTypeInfo() + local isTeam = (currentBoardType == "TeamScore" or currentBoardType == "TeamList") + local isScore = (currentBoardType == "TeamScore" or currentBoardType == "PlayerScore") + return isTeam, isScore + end + + + local function recomputeTeamScore(team, column) + if not team or team == "Neutral" then + return + end + + local function recomputeScoreHelper(statChangers) + if statChangers and column <= #statChangers then + local sum = 0 + for i, p in ipairs(teamTable[team].Players) do + if playerTable[p].StatValues and column <= #playerTable[p].StatValues then + sum = sum + playerTable[p].StatValues[column].Value + end + end + statChangers[column](sum) + end + end + + recomputeScoreHelper(teamTable[team].StatChangersSmall) + recomputeScoreHelper(teamTable[team].StatChangersBig) + end + local function recomputeCompleteTeamScore(team) + local col = 1 + while col <= currentStatCount do + recomputeTeamScore(team, col) + col = col + 1 + end + end + removeFromTeam = function(player) + if playerTable[player].CurrentTeam ~= nil then + ArrayRemove(teamTable[playerTable[player].CurrentTeam].Players, player) + recomputeCompleteTeamScore(playerTable[player].CurrentTeam) + playerTable[player].CurrentTeam = nil + end + end + + local function assignToTeam(player) + local isTeam, isScore = getBoardTypeInfo() + + if isTeam then + local newTeam = nil + + if player.Neutral or teamColorTable[player.TeamColor.Name] == nil then + newTeam = "Neutral" + else + newTeam = teamColorTable[player.TeamColor.Name] + end + + if playerTable[player].CurrentTeam == newTeam then + return + end + + removeFromTeam(player) + + playerTable[player].CurrentTeam = newTeam + table.insert(teamTable[newTeam].Players, player) + + if newTeam == "Neutral" then + updatePlayerNameColor(player, nil) + else + updatePlayerNameColor(player, player.TeamColor) + end + + recomputeCompleteTeamScore(newTeam) + + --Relayout + if sortPlayerListsFunction then + sortPlayerListsFunction() + end + end + end + + local function buildTeamObject(team, numStatColumns, suffix) + local isTeam, isScore = getBoardTypeInfo() + local teamObject = createTeamName(team.Name, team.TeamColor) + if not teamTable[team] then + teamTable[team] = {} + end + teamTable[team]["NameObject" .. suffix] = teamObject + if isScore then + local statObject + local textChangers + teamObject, statObject, textChangers = createStatColumns(teamObject, numStatColumns, true, suffix == "Big") + teamTable[team]["StatObject" .. suffix] = statObject + teamTable[team]["StatChangers" .. suffix] = textChangers + end + teamTable[team]["MainObject" .. suffix] = teamObject + if not teamTable[team].Players then + teamTable[team].Players = {} + end + return teamObject + end + + local currentContextMenuPlayer = nil + local function updatePlayerContextMenu(player) + currentContextMenuPlayer = player + local elementHeight = 20 + local function highlight(button) + button.TextColor3 = Color3.new(0,0,0) + button.BackgroundColor3 = Color3.new(0.8,0.8,0.8) + end + local function clearHighlight(button) + button.TextColor3 = Color3.new(1,1,1) + button.BackgroundColor3 = Color3.new(0,0,0) + end + if playerContextMenu == nil then + playerContextMenu = Instance.new("Frame") + playerContextMenu.Name = "PlayerListContextMenu" + playerContextMenu.BackgroundTransparency = 1 + playerContextMenu.Visible = false + + local playerContextMenuButton = Instance.new("TextButton") + playerContextMenuButton.Name = "PlayerListContextMenuButton" + playerContextMenuButton.Text = "" + playerContextMenuButton.Style = Enum.ButtonStyle.RobloxButtonDefault + playerContextMenuButton.ZIndex = 4 + playerContextMenuButton.Size = UDim2.new(1, 0, 1, -20) + playerContextMenuButton.Visible = true + playerContextMenuButton.Parent = playerContextMenu + + for i, contextElement in ipairs(contextMenuElements) do + local element = contextElement + if element.Type == "Button" then + local button = Instance.new("TextButton") + button.Name = "ContextButton" .. i + button.BackgroundColor3 = Color3.new(0,0,0) + button.BorderSizePixel = 0 + button.TextXAlignment = Enum.TextXAlignment.Left + button.Text = " " .. contextElement.Text + button.Font = Enum.Font.Arial + button.FontSize = Enum.FontSize.Size14 + button.Size = UDim2.new(1, 8, 0, elementHeight) + button.TextColor3 = Color3.new(1,1,1) + button.ZIndex = 4 + button.Parent = playerContextMenuButton + button.MouseButton1Click:connect(function() + if button.Active then + local success, result = pcall(function() element.DoIt(currentContextMenuPlayer) end) + playerContextMenu.Visible = false + end + end) + + button.MouseEnter:connect(function() + if button.Active then + highlight(button) + end + end) + button.MouseLeave:connect(function() + if button.Active then + clearHighlight(button) + end + end) + + contextElement.Button = button + contextElement.Element = button + elseif element.Type == "Label" then + local frame = Instance.new("Frame") + frame.Name = "ContextLabel" .. i + frame.BackgroundTransparency = 1 + frame.Size = UDim2.new(1, 8, 0, elementHeight) + + local label = Instance.new("TextLabel") + label.Name = "Text1" + label.BackgroundTransparency = 1 + label.BackgroundColor3 = Color3.new(1,1,1) + label.BorderSizePixel = 0 + label.TextXAlignment = Enum.TextXAlignment.Left + label.Font = Enum.Font.ArialBold + label.FontSize = Enum.FontSize.Size14 + label.Position = UDim2.new(0.0, 0, 0, 0) + label.Size = UDim2.new(0.5, 0, 1, 0) + label.TextColor3 = Color3.new(1,1,1) + label.ZIndex = 4 + label.Parent = frame + element.Label1 = label + + if element.GetText2 then + label = Instance.new("TextLabel") + label.Name = "Text2" + label.BackgroundTransparency = 1 + label.BackgroundColor3 = Color3.new(1,1,1) + label.BorderSizePixel = 0 + label.TextXAlignment = Enum.TextXAlignment.Right + label.Font = Enum.Font.Arial + label.FontSize = Enum.FontSize.Size14 + label.Position = UDim2.new(0.5, 0, 0, 0) + label.Size = UDim2.new(0.5, 0, 1, 0) + label.TextColor3 = Color3.new(1,1,1) + label.ZIndex = 4 + label.Parent = frame + element.Label2 = label + end + frame.Parent = playerContextMenuButton + element.Label = frame + element.Element = frame + end + end + + playerContextMenu.ZIndex = 4 + playerContextMenu.MouseLeave:connect(function() playerContextMenu.Visible = false end) + robloxLock(playerContextMenu) + playerContextMenu.Parent = NewPlayerListGui + + end + + local elementPos = 0 + for i, contextElement in ipairs(contextMenuElements) do + local isVisible = false + + if contextElement.IsVisible then + local success, visible = pcall(function() return contextElement.IsVisible(currentContextMenuPlayer) end) + if success then + isVisible = visible + else + print("Error in IsVisible call: " .. visible) + end + end + + if contextElement.Type == "Button" then + contextElement.Button.Visible = isVisible + if contextElement.Button.Visible then + isVisible = true + clearHighlight(contextElement.Button) + if contextElement.IsActive then + local success, active = pcall(function() return contextElement.IsActive(currentContextMenuPlayer) end) + if success then + contextElement.Button.Active = active + else + print("Error in IsActive call: " .. active) + end + end + if contextElement.Button.Active then + contextElement.Button.TextColor3 = Color3.new(1,1,1) + else + contextElement.Button.TextColor3 = Color3.new(0.7,0.7,0.7) + end + end + elseif contextElement.Type == "Label" then + contextElement.Label.Visible = isVisible + if contextElement.Label.Visible then + local success, text = pcall(function() return contextElement.GetText1(currentContextMenuPlayer) end) + if success then + contextElement.Label1.Text = " " .. text + else + print("Error in GetText1 call: " .. text) + end + + if contextElement.GetText2 then + local success, text = pcall(function() return contextElement.GetText2(currentContextMenuPlayer) end) + if success then + contextElement.Label2.Text = " " .. text + else + print("Error in GetText2 call: " .. text) + end + end + end + end + if isVisible then + contextElement.Element.Position = UDim2.new(0,-4, 0, elementPos * elementHeight - 4) + elementPos = elementPos + 1 + end + end + playerContextMenu.Size = UDim2.new(0, 150, 0, elementPos*elementHeight + 13 + 20) + end + local function showPlayerMenu(player, x, y) + updatePlayerContextMenu(player) + x = x - (playerContextMenu.AbsoluteSize.X/2) + if x + playerContextMenu.AbsoluteSize.X >= NewPlayerListGui.AbsoluteSize.X then + x = NewPlayerListGui.AbsoluteSize.X - playerContextMenu.AbsoluteSize.X + end + playerContextMenu.Visible = true + playerContextMenu.Position = UDim2.new(0, x, 0, y-playerContextMenu.AbsoluteSize.Y) + end + + local function buildPlayerObject(player, numStatColumns, suffix) + local isTeam, isScore = getBoardTypeInfo() + + local playerObject = nil + local changePlayerNameFunction = nil + local currentColor = nil + if isTeam and not player.Neutral then + currentColor = player.TeamColor.Color + else + currentColor = Color3.new(1,1,1) + end + playerObject, changePlayerNameFunction = createPlayerName(player.Name, player.MembershipType, currentColor, getFriendStatus(player)) + + if not playerTable[player] then + playerTable[player] = {} + end + if not playerTable[player].Connections then + playerTable[player].Connections = {} + end + if not playerTable[player].CurrentTeam then + playerTable[player].CurrentTeam = nil + end + playerTable[player]["NameObject" .. suffix] = playerObject + playerTable[player]["ChangeName" .. suffix] = changePlayerNameFunction + + if isScore then + local statObject = nil + local textChangers = nil + playerObject, statObject, textChangers = createStatColumns(playerObject, numStatColumns, false, suffix == "Big") + playerTable[player]["StatObject" .. suffix]= statObject + playerTable[player]["StatChangers" .. suffix] = textChangers + + local statValues, leaderstats = getStatValuesForPlayer(player) + if not statValues or #statValues < numStatColumns then + if not playerTable[player].LeaderStatConnections then + playerTable[player].LeaderStatConnections = {} + end + --Setup a listener to see when this data gets filled in + if not leaderstats then + --print("No leaderstats for ", player) + --We don't even have a leaderstats child, wait for one + table.insert(playerTable[player].LeaderStatConnections, + player.ChildAdded:connect( + function(child) + if child.Name == "leaderstats" then + --print("Got a leaderstats for ", player) + + --Connections will be torn down + recreatePlayerFunction(player) + else + --print("Unknown child, listening for connection") + table.insert(playerTable[player].LeaderStatConnections, + child.Changed:connect( + function(prop) + if prop == "Name" and child.Name == "leaderstats" then + --Connections will be torn down + recreatePlayerFunction(player) + end + end)) + end + end)) + else + --print("Need more children") + --We have a leaderstats, but not enough children, recreate if we get them + table.insert(playerTable[player].LeaderStatConnections, + leaderstats.ChildAdded:connect( + function(child) + --TODO only look for IntValue + recreatePlayerFunction(player) + end) + ) + table.insert(playerTable[player].LeaderStatConnections, + leaderstats.AncestryChanged:connect( + function(child) + --We got deleted, try again + recreatePlayerFunction(player) + end) + ) + end + end + if statValues then + if not playerTable[player].StatValues then + playerTable[player].StatValues = {} + end + local pos = 1 + while pos <= numStatColumns and pos <= #statValues do + local currentColumn = pos + local statValue = statValues[pos] + local statChanger = textChangers[pos] + + local updateStat = function(val) + statChanger(val) + recomputeTeamScore(playerTable[player].CurrentTeam, currentColumn) + end + if pos > #playerTable[player].StatValues then + table.insert(playerTable[player].StatValues, statValue) + end + + table.insert(playerTable[player].Connections, + statValue.Changed:connect(updateStat) + ) + table.insert(playerTable[player].Connections, + statValue.AncestryChanged:connect( + function() + recreatePlayerFunction(player) + end) + ) + updateStat(statValue.Value) + pos = pos + 1 + end + end + end + + if supportFriends and player ~= game.Players.LocalPlayer and player.userId > 0 and game.Players.LocalPlayer.userId > 0 then + local button = Instance.new("TextButton") + button.Name = playerObject.Name .. "Button" + button.Text = "" + button.Active = false + button.Size = playerObject.Size + button.Position = playerObject.Position + button.BackgroundColor3 = playerObject.BackgroundColor3 + + local secondButton = Instance.new("TextButton") + secondButton.Name = playerObject.Name .. "RealButton" + secondButton.Text = "" + secondButton.BackgroundTransparency = 1 + secondButton.BackgroundColor3 = playerObject.BackgroundColor3 + secondButton.Parent.BackgroundTransparency = 1 + secondButton.Parent.Visible = true + secondButton.ZIndex = 2 + secondButton.Size = UDim2.new(1,0,1,0) + + local previousTransparency = nil + table.insert(playerTable[player].Connections, + secondButton.MouseEnter:connect(--button.MouseEnter:connect( + function() + if previousTransparency == nil then + previousTransparency = secondButton--[[button]].BackgroundTransparency + end + + if lightBackground then + --button.BackgroundColor3 = Color3.new(0,0,0) + --button.BackgroundTransparency = 0 + secondButton.Parent.BackgroundTransparency = 0 + else + --button.BackgroundColor3 = Color3.new(1,1,1) + --secondButton.button.BackgroundTransparency = 1--0.80 + secondButton.Parent.BackgroundTransparency = 1 + end + end)) + table.insert(playerTable[player].Connections, + secondButton.MouseLeave:connect(--button.MouseLeave:connect( + function() + if previousTransparency ~= nil then + if lightBackground then + --button.BackgroundColor3 = Color3.new(1,1,1) + --button.BackgroundTransparency = previousTransparency + else + --secondButtonbutton.BackgroundColor3 = Color3.new(1,1,1) + --nbutton.BackgroundTransparency = previousTransparency + end + + previousTransparency = nil + end + secondButton.Parent.BackgroundTransparency = 1 + end)) + + local mouseDownX, mouseDownY + table.insert(playerTable[player].Connections, + secondButton.MouseButton1Down:connect(function(x,y) + mouseDownX = x + mouseDownY = y + end)) + table.insert(playerTable[player].Connections, + secondButton.MouseButton1Click:connect(function() + showPlayerMenu(player, mouseDownX, secondButton.AbsolutePosition.Y + secondButton.AbsoluteSize.Y ) + end)) + playerObject.BackgroundTransparency = 1 + playerObject.Size = UDim2.new(1,0,1,0) + playerObject.Position = UDim2.new(0,0,0,0) + playerObject.Parent = button + + playerTable[player]["MainObject" .. suffix] = button + + playerObject = button + else + playerTable[player]["MainObject" .. suffix] = playerObject + + if player == game.Players.LocalPlayer and supportFriends then + table.insert(playerTable[player].Connections, + player.FriendStatusChanged:connect( + function(otherPlayer, friendStatus) + if playerTable[otherPlayer] then + updatePlayerFriendStatus(playerTable[otherPlayer]["NameObject" .. suffix], friendStatus) + end + end) + ) + end + end + table.insert(playerTable[player].Connections, + player.Changed:connect( + function(prop) + if prop == "MembershipType" then + updatePlayerName(playerTable[player]["NameObject" .. suffix], player.MembershipType, currentColor) + elseif prop == "Name" then + playerTable[player]["ChangeName" .. suffix](player.Name) + elseif prop == "Neutral" or prop == "TeamColor" then + assignToTeam(player) + end + end) + ) + return playerObject + end + + local function orderScrollList(scrollOrder, objectName, scrollFrame) + local pos = 0 + local order = {} + local isTeam, isScore = getBoardTypeInfo() + for i, obj in ipairs(scrollOrder) do + order[obj] = 0 + end + + if isTeam then + local teams = getTeams() + for i, team in ipairs(teams) do + --print(team, objectName, teamTable[team][objectName]) + order[teamTable[team][objectName]] = pos + pos = pos + 1 + for i, player in ipairs(teamTable[team].Players) do + if playerTable[player] then + order[playerTable[player][objectName]] = pos + pos = pos + 1 + end + end + end + + if #teamTable["Neutral"].Players > 0 then + teamTable["Neutral"][objectName].Parent = scrollFrame + order[teamTable["Neutral"][objectName]] = pos + pos = pos + 1 + for i, player in ipairs(teamTable["Neutral"].Players) do + order[playerTable[player][objectName]] = pos + pos = pos + 1 + end + else + teamTable["Neutral"][objectName].Parent = nil + end + else + local players = getPlayers() + for i, player in ipairs(players) do + order[playerTable[player][objectName]] = pos + pos = pos + 1 + end + end + + table.sort(scrollOrder, + function(a,b) + return order[a] < order[b] + end) + end + + local function createPlayerListBasics(frame, isBig) + local headerFrame = Instance.new("Frame") + headerFrame.Name = "Header" + headerFrame.BackgroundTransparency = 1 + headerFrame.Size = UDim2.new(1,-13,0,26) + headerFrame.Position = UDim2.new(0,0,0,0) --UDim2.new(0,-6,0,-6) + headerFrame.Parent = frame + + local lowerPaneFrame = Instance.new("Frame") + lowerPaneFrame.Name = "ScrollingArea" + lowerPaneFrame.BackgroundTransparency = 1 + lowerPaneFrame.Size = UDim2.new(1,-3,1,-26) + lowerPaneFrame.Position = UDim2.new(0,0,0,26) + lowerPaneFrame.Parent = frame + + local scrollOrder = {} + local scrollFrame, scrollUp, scrollDown, recalculateScroll = RbxGui.CreateScrollingFrame(scrollOrder) + + local scrollBar = Instance.new("Frame") + scrollBar.Name = "ScrollBar" + scrollBar.BackgroundTransparency = 0.9 + scrollBar.BackgroundColor3 = Color3.new(1,1,1) + scrollBar.BorderSizePixel = 0 + scrollBar.Size = UDim2.new(0, 17, 1, -36) + if isBig then scrollBar.Size = UDim2.new(0, 17, 1, -61) end + scrollBar.Parent = lowerPaneFrame + + scrollFrame.Parent = lowerPaneFrame + scrollUp.Parent = lowerPaneFrame + scrollDown.Parent = lowerPaneFrame + + if isBig then + scrollFrame.Position = UDim2.new(0,0,0,0) --UDim2.new(0,-7,0,0) + scrollUp.Position = UDim2.new(1,-41,0,5) --UDim2.new(1,-19,0,0) + scrollDown.Position = UDim2.new(1,-41,1,-35) -- UDim2.new(1,-19,1,-15) + scrollBar.Position = UDim2.new(1, -41, 0, 24) -- UDim2.new(1, -19, 0, 19) + + scrollFrame.Size = UDim2.new(1,-48,1,0) + headerFrame.Size = UDim2.new(1,-20,0,32) + + else + scrollBar.Position = UDim2.new(1, -19, 0, 14) --UDim2.new(1, -17, 0, 19) + scrollFrame.Position = UDim2.new(0,1,0,0) -- UDim2.new(0,-5,0,0) + scrollUp.Position = UDim2.new(1,-19,0,-5) --UDim2.new(1,-17,0,0) + scrollDown.Position = UDim2.new(1,-19,1,-20) --UDim2.new(1,-17,1,-15) + + lowerPaneFrame.Position = UDim2.new(0,0,0,30) + + local toggleScrollBar = function(visible) + if visible then + scrollFrame.Size = UDim2.new(1,-16,1,0) + headerFrame.Size = UDim2.new(1,-16,0,32) + else + scrollFrame.Size = UDim2.new(1,0,1,0)--UDim2.new(1,5,1,0) + headerFrame.Size = UDim2.new(1,5,0,32) + end + scrollUp.Visible = visible + scrollDown.Visible = visible + scrollBar.Visible = visible + end + scrollUp.Changed:connect(function(prop) + if prop == "Active" then + toggleScrollBar(scrollUp.Active or scrollDown.Active) + end + end) + + scrollDown.Changed:connect(function(prop) + if prop == "Active" then + toggleScrollBar(scrollUp.Active or scrollDown.Active) + end + end) + + toggleScrollBar(scrollUp.Active or scrollDown.Active) + end + return headerFrame, scrollFrame, recalculateScroll, scrollOrder + end + + createBoardsFunction = function (boardType, numStatColumns) + print("Create Boards") + local smallFrame = Instance.new("Frame") + smallFrame.Name = "SmallPlayerlist" + smallFrame.Position = smallWindowPosition + smallFrame.Active = false + smallFrame.Size = smallWindowSize + --smallFrame.Style = Enum.FrameStyle.RobloxRound + smallFrame.BackgroundColor3 = Color3.new(0,0,0) + smallFrame.BackgroundTransparency = 0.7 + smallFrame.BorderSizePixel = 0 + + local bigFrame = Instance.new("Frame") + bigFrame.Name = "BigPlayerlist" + bigFrame.Size = bigWindowSize + bigFrame.Position = bigWindowPosition + --bigFrame.Style = Enum.FrameStyle.RobloxRound + bigFrame.BackgroundColor3 = Color3.new(0,0,0) + bigFrame.BackgroundTransparency = 0.7 + bigFrame.BorderSizePixel = 0 + bigFrame.Visible = false + + local bigFrameWrapper = Instance.new("Frame") + bigFrameWrapper.Name = "Expander" + --bigFrameWrapper.Size = UDim2.new(1,5,1,0) + bigFrameWrapper.Size = UDim2.new(1,21,1,16) + bigFrameWrapper.Position = UDim2.new(0, 0, 0,0) + bigFrameWrapper.BackgroundTransparency = 1 + bigFrameWrapper.Parent = bigFrame + + local smallHeaderFrame, scrollFrameSmall, recalculateScrollSmall, scrollOrderSmall = createPlayerListBasics(smallFrame, false) + local bigHeaderFrame, scrollFrameBig, recalculateScrollBig, scrollOrderBig = createPlayerListBasics(bigFrameWrapper, true) + + local playerListButton = Instance.new("ImageButton") + playerListButton.Name = "GoBigButton" + playerListButton.BackgroundTransparency = 1 + playerListButton.Image = "rbxasset://textures/ui/playerlist_small_maximize.png" + playerListButton.Size = UDim2.new(0.0, 35, 0, 29) + playerListButton.Position = UDim2.new(0, 0, 0, 0) + playerListButton.MouseButton1Click:connect( + function() + toggleBigWindow() + end) + playerListButton.Parent = smallHeaderFrame + + playerListButton = Instance.new("ImageButton") + playerListButton.Name = "CloseButton" + playerListButton.BackgroundTransparency = 1 + playerListButton.Image = "rbxasset://textures/ui/playerlist_small_hide.png" + playerListButton.Size = UDim2.new(0.0, 38, 0, 29) + playerListButton.Position = UDim2.new(0, 35, 0, 0) + playerListButton.MouseButton1Click:connect( + function() + transitionWindowsFunction("None") + end) + playerListButton.Parent = smallHeaderFrame + + playerListButton = Instance.new("ImageButton") + playerListButton.Name = "CloseButton" + playerListButton.Image = "rbxasset://textures/ui/playerlist_big_hide.png" + playerListButton.BackgroundTransparency = 1 + playerListButton.Size = UDim2.new(0.0, 29, 0, 29) + playerListButton.Position = UDim2.new(1, -30, 0.5, -15) + playerListButton.MouseButton1Click:connect( + function() + toggleBigWindow() + end) + playerListButton.Parent = bigHeaderFrame + + local placeName = Instance.new("TextLabel") + placeName.Name = "PlaceName" + placeName.Text = " Player List" + placeName.FontSize = Enum.FontSize.Size24 + placeName.TextXAlignment = Enum.TextXAlignment.Left + placeName.Font = Enum.Font.ArialBold + placeName.BackgroundTransparency = 1 + placeName.TextColor3 = Color3.new(1,1,1) + placeName.Size = UDim2.new(0.5, 0, 1, 0) + placeName.Position = UDim2.new(0, 0, 0.0, 0) + placeName = RbxGui.AutoTruncateTextObject(placeName) + placeName.Parent = bigHeaderFrame + + + currentBoardType = boardType + currentStatCount = numStatColumns + local isTeam, isScore = getBoardTypeInfo() + local players = getPlayers() + + if isScore then + local statColumns = getStatColumns(players) + numStatColumns = #statColumns + if numStatColumns > 3 then + numStatColumns = 3 + end + createStatHeaders(statColumns, numStatColumns, false).Parent = smallHeaderFrame + createStatHeaders(statColumns, currentStatCount, true).Parent = bigHeaderFrame + end + + --Clean up all old stuff + resetPlayerTable() + + for i, player in ipairs(players) do + local playerObject = buildPlayerObject(player, numStatColumns, "Small") + table.insert(scrollOrderSmall, playerObject) + playerObject.Parent = scrollFrameSmall + + playerObject = buildPlayerObject(player, currentStatCount, "Big") + table.insert(scrollOrderBig, playerObject) + playerObject.Parent = scrollFrameBig + end + + --Clean up old stuff + resetTeamTable() + + local teamStatObjects = {} + if isTeam then + local teams = getTeams() + local i = #teams + while i >= 1 do + --We go backwards so the "first" team color gets the team + local team = teams[i] + teamColorTable[team.TeamColor.Name] = team + i = i - 1 + end + + --Adding/Removing a Team causes a full invalidation of the board + for i, team in ipairs(teams) do + local teamObject = buildTeamObject(team, numStatColumns, "Small") + table.insert(scrollOrderSmall, teamObject) + teamObject.Parent = scrollFrameSmall + + teamObject = buildTeamObject(team, currentStatCount, "Big") + table.insert(scrollOrderBig, teamObject) + teamObject.Parent = scrollFrameBig + end + + teamTable["Neutral"] = {} + teamTable["Neutral"].Players = {} + + local neutralTeamObject = createTeamName("Neutral", BrickColor.palette(8)) + teamTable["Neutral"].NameObjectSmall = neutralTeamObject + teamTable["Neutral"].StatObjectSmall = nil + teamTable["Neutral"].MainObjectSmall = neutralTeamObject + table.insert(scrollOrderSmall, neutralTeamObject) + + neutralTeamObject = createTeamName("Neutral", BrickColor.palette(8)) + teamTable["Neutral"].NameObjectBig = neutralTeamObject + teamTable["Neutral"].StatObjectBig = nil + teamTable["Neutral"].MainObjectBig = neutralTeamObject + table.insert(scrollOrderBig, neutralTeamObject) + + local neutralPlayers = {} + for i, player in ipairs(players) do + assignToTeam(player) + end + end + + removePlayerFunction = function(player) + if playerTable[player] then + ArrayRemove(scrollOrderSmall, playerTable[player].MainObjectSmall) + ArrayRemove(scrollOrderBig, playerTable[player].MainObjectBig) + + clearTableEntry(player, playerTable[player]) + + playerTable[player] = nil + end + end + recreatePlayerFunction = function(player) + removePlayerFunction(player) + + local playerObject = buildPlayerObject(player, numStatColumns, "Small") + table.insert(scrollOrderSmall, playerObject) + robloxLock(playerObject) + playerObject.Parent = scrollFrameSmall + + playerObject = buildPlayerObject(player, currentStatCount, "Big") + table.insert(scrollOrderBig, playerObject) + robloxLock(playerObject) + playerObject.Parent = scrollFrameBig + + local isTeam, isScore = getBoardTypeInfo() + if isTeam then + assignToTeam(player) + end + + sortPlayerListsFunction() + end + + sortPlayerListsFunction = function() + orderScrollList(scrollOrderSmall, "MainObjectSmall", scrollFrameSmall) + recalculateScrollSmall() + createAlternatingRows(scrollOrderSmall) + + orderScrollList(scrollOrderBig, "MainObjectBig", scrollFrameBig) + recalculateScrollBig() + createAlternatingRows(scrollOrderBig) + end + + sortPlayerListsFunction() + + robloxLock(smallFrame) + robloxLock(bigFrame) + return smallFrame, bigFrame + end + + --Teams changing invalidates the whole board + local function teamsChanged() + if debounceTeamsChanged then + return + end + + debounceTeamsChanged = true + wait() + rebuildBoard(NewPlayerListGui, determineBoardType()) + debounceTeamsChanged = false + end + + + local checkIfBoardChanged = function() + local newBoardType, numStats = determineBoardType() + if newBoardType ~= currentBoardType or numStats ~= currentStatCount then + --print("BoardChanged to " .. newBoardType .. " with " .. numStats .. " stats") + rebuildBoard(NewPlayerListGui, newBoardType, numStats) + end + end + + local function buildPlayerList() + waitForChild(game, "Players") + waitForProperty(game.Players, "LocalPlayer") + + local playerListEnabled = testPlayerListPlaces[game.PlaceId] or enablePlayerListGlobally + if localTesting and (game.PlaceId == 0) or (game.PlaceId == -1) then + playerListEnabled = true + end + if not playerListEnabled then + --No playerlist + return + end + + supportFriends = testFriendingPlaces[game.PlaceId] or enableFriendingGlobally + if localTesting and (game.PlaceId == 0) or (game.PlaceId == -1) then + supportFriends = false + end + + local teams = game:GetService("Teams") + if teams then + local teamConnections = {} + + teams.ChildAdded:connect( + function(child) + if child:IsA("Team") then + teamsChanged() + teamConnections[child] = child.Changed:connect( + function(prop) + if prop == "TeamColor" or prop == "Name" then + --Rebuild when things change + teamsChanged() + end + end) + end + end) + teams.ChildRemoved:connect( + function(child) + if child:IsA("Team") then + if teamConnections[child] then + teamConnections[child]:disconnect() + teamConnections[child] = nil + end + teamsChanged() + end + end) + end + + game.Players.ChildAdded:connect( + function(player) + if player:IsA("Player") then + addPlayerFunction(player) + end + end) + + game.Players.ChildRemoved:connect( + function(player) + if player:IsA("Player") then + if removePlayerFunction then + removePlayerFunction(player) + end + end + end) + + rebuildBoard(NewPlayerListGui, determineBoardType()) + + delay(0, + function() + while true do + wait(5) + checkIfBoardChanged() + end + end) + end + + buildPlayerList() +end + true + + + + \ No newline at end of file diff --git a/CoreGui2012.rbxm b/CoreGui2012.rbxm new file mode 100644 index 0000000..cbd6915 --- /dev/null +++ b/CoreGui2012.rbxm @@ -0,0 +1,3601 @@ + + null + nil + + + false + + GUI_Copy + script.PlayerList:clone().Parent = game.StarterGui; +script:remove(); + true + + + + false + + PlayerList + local t = {} + +local function ScopedConnect(parentInstance, instance, event, signalFunc, syncFunc, removeFunc) + local eventConnection = nil + + --Connection on parentInstance is scoped by parentInstance (when destroyed, it goes away) + local tryConnect = function() + if game:IsAncestorOf(parentInstance) then + --Entering the world, make sure we are connected/synced + if not eventConnection then + eventConnection = instance[event]:connect(signalFunc) + if syncFunc then syncFunc() end + end + else + --Probably leaving the world, so disconnect for now + if eventConnection then + eventConnection:disconnect() + if removeFunc then removeFunc() end + end + end + end + + --Hook it up to ancestryChanged signal + local connection = parentInstance.AncestryChanged:connect(tryConnect) + + --Now connect us if we're already in the world + tryConnect() + + return connection +end + +local function CreateButtons(frame, buttons, yPos, ySize) + local buttonNum = 1 + local buttonObjs = {} + for i, obj in ipairs(buttons) do + local button = Instance.new("TextButton") + button.Name = "Button" .. buttonNum + button.Font = Enum.Font.Arial + button.FontSize = Enum.FontSize.Size18 + button.AutoButtonColor = true + button.Style = Enum.ButtonStyle.RobloxButtonDefault + button.Text = obj.Text + button.TextColor3 = Color3.new(1,1,1) + button.MouseButton1Click:connect(obj.Function) + button.Parent = frame + buttonObjs[buttonNum] = button + + buttonNum = buttonNum + 1 + end + local numButtons = buttonNum-1 + + if numButtons == 1 then + frame.Button1.Position = UDim2.new(0.35, 0, yPos.Scale, yPos.Offset) + frame.Button1.Size = UDim2.new(.4,0,ySize.Scale, ySize.Offset) + elseif numButtons == 2 then + frame.Button1.Position = UDim2.new(0.1, 0, yPos.Scale, yPos.Offset) + frame.Button1.Size = UDim2.new(.8/3,0, ySize.Scale, ySize.Offset) + + frame.Button2.Position = UDim2.new(0.55, 0, yPos.Scale, yPos.Offset) + frame.Button2.Size = UDim2.new(.35,0, ySize.Scale, ySize.Offset) + elseif numButtons >= 3 then + local spacing = .1 / numButtons + local buttonSize = .9 / numButtons + + buttonNum = 1 + while buttonNum <= numButtons do + buttonObjs[buttonNum].Position = UDim2.new(spacing*buttonNum + (buttonNum-1) * buttonSize, 0, yPos.Scale, yPos.Offset) + buttonObjs[buttonNum].Size = UDim2.new(buttonSize, 0, ySize.Scale, ySize.Offset) + buttonNum = buttonNum + 1 + end + end +end + +local function setSliderPos(newAbsPosX,slider,sliderPosition,bar,steps) + + local newStep = steps - 1 --otherwise we really get one more step than we want + + local relativePosX = math.min(1, math.max(0, (newAbsPosX - bar.AbsolutePosition.X) / bar.AbsoluteSize.X ) ) + local wholeNum, remainder = math.modf(relativePosX * newStep) + if remainder > 0.5 then + wholeNum = wholeNum + 1 + end + relativePosX = wholeNum/newStep + + local result = math.ceil(relativePosX * newStep) + if sliderPosition.Value ~= (result + 1) then --onky update if we moved a step + sliderPosition.Value = result + 1 + + if relativePosX == 1 then + slider.Position = UDim2.new(1,-slider.AbsoluteSize.X,slider.Position.Y.Scale,slider.Position.Y.Offset) + else + slider.Position = UDim2.new(relativePosX,0,slider.Position.Y.Scale,slider.Position.Y.Offset) + end + end + +end + +local function cancelSlide(areaSoak) + areaSoak.Visible = false + if areaSoakMouseMoveCon then areaSoakMouseMoveCon:disconnect() end +end + +t.CreateStyledMessageDialog = function(title, message, style, buttons) + local frame = Instance.new("Frame") + frame.Size = UDim2.new(0.5, 0, 0, 165) + frame.Position = UDim2.new(0.25, 0, 0.5, -72.5) + frame.Name = "MessageDialog" + frame.Active = true + frame.Style = Enum.FrameStyle.RobloxRound + + local styleImage = Instance.new("ImageLabel") + styleImage.Name = "StyleImage" + styleImage.BackgroundTransparency = 1 + styleImage.Position = UDim2.new(0,5,0,15) + if style == "error" or style == "Error" then + styleImage.Size = UDim2.new(0, 71, 0, 71) + styleImage.Image = "http://www.roblox.com/asset?id=42565285" + elseif style == "notify" or style == "Notify" then + styleImage.Size = UDim2.new(0, 71, 0, 71) + styleImage.Image = "http://www.roblox.com/asset?id=42604978" + elseif style == "confirm" or style == "Confirm" then + styleImage.Size = UDim2.new(0, 74, 0, 76) + styleImage.Image = "http://www.roblox.com/asset?id=42557901" + else + return t.CreateMessageDialog(title,message,buttons) + end + styleImage.Parent = frame + + local titleLabel = Instance.new("TextLabel") + titleLabel.Name = "Title" + titleLabel.Text = title + titleLabel.BackgroundTransparency = 1 + titleLabel.TextColor3 = Color3.new(221/255,221/255,221/255) + titleLabel.Position = UDim2.new(0, 80, 0, 0) + titleLabel.Size = UDim2.new(1, -80, 0, 40) + titleLabel.Font = Enum.Font.ArialBold + titleLabel.FontSize = Enum.FontSize.Size36 + titleLabel.TextXAlignment = Enum.TextXAlignment.Center + titleLabel.TextYAlignment = Enum.TextYAlignment.Center + titleLabel.Parent = frame + + local messageLabel = Instance.new("TextLabel") + messageLabel.Name = "Message" + messageLabel.Text = message + messageLabel.TextColor3 = Color3.new(221/255,221/255,221/255) + messageLabel.Position = UDim2.new(0.025, 80, 0, 45) + messageLabel.Size = UDim2.new(0.95, -80, 0, 55) + messageLabel.BackgroundTransparency = 1 + messageLabel.Font = Enum.Font.Arial + messageLabel.FontSize = Enum.FontSize.Size18 + messageLabel.TextWrap = true + messageLabel.TextXAlignment = Enum.TextXAlignment.Left + messageLabel.TextYAlignment = Enum.TextYAlignment.Top + messageLabel.Parent = frame + + CreateButtons(frame, buttons, UDim.new(0, 105), UDim.new(0, 40) ) + + return frame +end + +t.CreateMessageDialog = function(title, message, buttons) + local frame = Instance.new("Frame") + frame.Size = UDim2.new(0.5, 0, 0.5, 0) + frame.Position = UDim2.new(0.25, 0, 0.25, 0) + frame.Name = "MessageDialog" + frame.Active = true + frame.Style = Enum.FrameStyle.RobloxRound + + local titleLabel = Instance.new("TextLabel") + titleLabel.Name = "Title" + titleLabel.Text = title + titleLabel.BackgroundTransparency = 1 + titleLabel.TextColor3 = Color3.new(221/255,221/255,221/255) + titleLabel.Position = UDim2.new(0, 0, 0, 0) + titleLabel.Size = UDim2.new(1, 0, 0.15, 0) + titleLabel.Font = Enum.Font.ArialBold + titleLabel.FontSize = Enum.FontSize.Size36 + titleLabel.TextXAlignment = Enum.TextXAlignment.Center + titleLabel.TextYAlignment = Enum.TextYAlignment.Center + titleLabel.Parent = frame + + local messageLabel = Instance.new("TextLabel") + messageLabel.Name = "Message" + messageLabel.Text = message + messageLabel.TextColor3 = Color3.new(221/255,221/255,221/255) + messageLabel.Position = UDim2.new(0.025, 0, 0.175, 0) + messageLabel.Size = UDim2.new(0.95, 0, .55, 0) + messageLabel.BackgroundTransparency = 1 + messageLabel.Font = Enum.Font.Arial + messageLabel.FontSize = Enum.FontSize.Size18 + messageLabel.TextWrap = true + messageLabel.TextXAlignment = Enum.TextXAlignment.Left + messageLabel.TextYAlignment = Enum.TextYAlignment.Top + messageLabel.Parent = frame + + CreateButtons(frame, buttons, UDim.new(0.8,0), UDim.new(0.15, 0)) + + return frame +end + +t.CreateDropDownMenu = function(items, onSelect, forRoblox) + local width = UDim.new(0, 100) + local height = UDim.new(0, 32) + + local xPos = 0.055 + local frame = Instance.new("Frame") + frame.Name = "DropDownMenu" + frame.BackgroundTransparency = 1 + frame.Size = UDim2.new(width, height) + + local dropDownMenu = Instance.new("TextButton") + dropDownMenu.Name = "DropDownMenuButton" + dropDownMenu.TextWrap = true + dropDownMenu.TextColor3 = Color3.new(1,1,1) + dropDownMenu.Text = "Choose One" + dropDownMenu.Font = Enum.Font.ArialBold + dropDownMenu.FontSize = Enum.FontSize.Size18 + dropDownMenu.TextXAlignment = Enum.TextXAlignment.Left + dropDownMenu.TextYAlignment = Enum.TextYAlignment.Center + dropDownMenu.BackgroundTransparency = 1 + dropDownMenu.AutoButtonColor = true + dropDownMenu.Style = Enum.ButtonStyle.RobloxButton + dropDownMenu.Size = UDim2.new(1,0,1,0) + dropDownMenu.Parent = frame + dropDownMenu.ZIndex = 2 + + local dropDownIcon = Instance.new("ImageLabel") + dropDownIcon.Name = "Icon" + dropDownIcon.Active = false + dropDownIcon.Image = "http://www.roblox.com/asset/?id=45732894" + dropDownIcon.BackgroundTransparency = 1 + dropDownIcon.Size = UDim2.new(0,11,0,6) + dropDownIcon.Position = UDim2.new(1,-11,0.5, -2) + dropDownIcon.Parent = dropDownMenu + dropDownIcon.ZIndex = 2 + + local itemCount = #items + local dropDownItemCount = #items + local useScrollButtons = false + if dropDownItemCount > 6 then + useScrollButtons = true + dropDownItemCount = 6 + end + + local droppedDownMenu = Instance.new("TextButton") + droppedDownMenu.Name = "List" + droppedDownMenu.Text = "" + droppedDownMenu.BackgroundTransparency = 1 + --droppedDownMenu.AutoButtonColor = true + droppedDownMenu.Style = Enum.ButtonStyle.RobloxButton + droppedDownMenu.Visible = false + droppedDownMenu.Active = true --Blocks clicks + droppedDownMenu.Position = UDim2.new(0,0,0,0) + droppedDownMenu.Size = UDim2.new(1,0, (1 + dropDownItemCount)*.8, 0) + droppedDownMenu.Parent = frame + droppedDownMenu.ZIndex = 2 + + local choiceButton = Instance.new("TextButton") + choiceButton.Name = "ChoiceButton" + choiceButton.BackgroundTransparency = 1 + choiceButton.BorderSizePixel = 0 + choiceButton.Text = "ReplaceMe" + choiceButton.TextColor3 = Color3.new(1,1,1) + choiceButton.TextXAlignment = Enum.TextXAlignment.Left + choiceButton.TextYAlignment = Enum.TextYAlignment.Center + choiceButton.BackgroundColor3 = Color3.new(1, 1, 1) + choiceButton.Font = Enum.Font.Arial + choiceButton.FontSize = Enum.FontSize.Size18 + if useScrollButtons then + choiceButton.Size = UDim2.new(1,-13, .8/((dropDownItemCount + 1)*.8),0) + else + choiceButton.Size = UDim2.new(1, 0, .8/((dropDownItemCount + 1)*.8),0) + end + choiceButton.TextWrap = true + choiceButton.ZIndex = 2 + + local dropDownSelected = false + + local scrollUpButton + local scrollDownButton + local scrollMouseCount = 0 + + local setZIndex = function(baseZIndex) + droppedDownMenu.ZIndex = baseZIndex +1 + if scrollUpButton then + scrollUpButton.ZIndex = baseZIndex + 3 + end + if scrollDownButton then + scrollDownButton.ZIndex = baseZIndex + 3 + end + + local children = droppedDownMenu:GetChildren() + if children then + for i, child in ipairs(children) do + if child.Name == "ChoiceButton" then + child.ZIndex = baseZIndex + 2 + elseif child.Name == "ClickCaptureButton" then + child.ZIndex = baseZIndex + end + end + end + end + + local scrollBarPosition = 1 + local updateScroll = function() + if scrollUpButton then + scrollUpButton.Active = scrollBarPosition > 1 + end + if scrollDownButton then + scrollDownButton.Active = scrollBarPosition + dropDownItemCount <= itemCount + end + + local children = droppedDownMenu:GetChildren() + if not children then return end + + local childNum = 1 + for i, obj in ipairs(children) do + if obj.Name == "ChoiceButton" then + if childNum < scrollBarPosition or childNum >= scrollBarPosition + dropDownItemCount then + obj.Visible = false + else + obj.Position = UDim2.new(0,0,((childNum-scrollBarPosition+1)*.8)/((dropDownItemCount+1)*.8),0) + obj.Visible = true + end + obj.TextColor3 = Color3.new(1,1,1) + obj.BackgroundTransparency = 1 + + childNum = childNum + 1 + end + end + end + local toggleVisibility = function() + dropDownSelected = not dropDownSelected + + dropDownMenu.Visible = not dropDownSelected + droppedDownMenu.Visible = dropDownSelected + if dropDownSelected then + setZIndex(4) + else + setZIndex(2) + end + if useScrollButtons then + updateScroll() + end + end + droppedDownMenu.MouseButton1Click:connect(toggleVisibility) + + local updateSelection = function(text) + local foundItem = false + local children = droppedDownMenu:GetChildren() + local childNum = 1 + if children then + for i, obj in ipairs(children) do + if obj.Name == "ChoiceButton" then + if obj.Text == text then + obj.Font = Enum.Font.ArialBold + foundItem = true + scrollBarPosition = childNum + else + obj.Font = Enum.Font.Arial + end + childNum = childNum + 1 + end + end + end + if not text then + dropDownMenu.Text = "Choose One" + scrollBarPosition = 1 + else + if not foundItem then + error("Invalid Selection Update -- " .. text) + end + + if scrollBarPosition + dropDownItemCount > itemCount + 1 then + scrollBarPosition = itemCount - dropDownItemCount + 1 + end + + dropDownMenu.Text = text + end + end + + local function scrollDown() + if scrollBarPosition + dropDownItemCount <= itemCount then + scrollBarPosition = scrollBarPosition + 1 + updateScroll() + return true + end + return false + end + local function scrollUp() + if scrollBarPosition > 1 then + scrollBarPosition = scrollBarPosition - 1 + updateScroll() + return true + end + return false + end + + if useScrollButtons then + --Make some scroll buttons + scrollUpButton = Instance.new("ImageButton") + scrollUpButton.Name = "ScrollUpButton" + scrollUpButton.BackgroundTransparency = 1 + scrollUpButton.Image = "rbxasset://textures/ui/scrollbuttonUp.png" + scrollUpButton.Size = UDim2.new(0,17,0,17) + scrollUpButton.Position = UDim2.new(1,-11,(1*.8)/((dropDownItemCount+1)*.8),0) + scrollUpButton.MouseButton1Click:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + end) + scrollUpButton.MouseLeave:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + end) + scrollUpButton.MouseButton1Down:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + + scrollUp() + local val = scrollMouseCount + wait(0.5) + while val == scrollMouseCount do + if scrollUp() == false then + break + end + wait(0.1) + end + end) + + scrollUpButton.Parent = droppedDownMenu + + scrollDownButton = Instance.new("ImageButton") + scrollDownButton.Name = "ScrollDownButton" + scrollDownButton.BackgroundTransparency = 1 + scrollDownButton.Image = "rbxasset://textures/ui/scrollbuttonDown.png" + scrollDownButton.Size = UDim2.new(0,17,0,17) + scrollDownButton.Position = UDim2.new(1,-11,1,-11) + scrollDownButton.Parent = droppedDownMenu + scrollDownButton.MouseButton1Click:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + end) + scrollDownButton.MouseLeave:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + end) + scrollDownButton.MouseButton1Down:connect( + function() + scrollMouseCount = scrollMouseCount + 1 + + scrollDown() + local val = scrollMouseCount + wait(0.5) + while val == scrollMouseCount do + if scrollDown() == false then + break + end + wait(0.1) + end + end) + + local scrollbar = Instance.new("ImageLabel") + scrollbar.Name = "ScrollBar" + scrollbar.Image = "rbxasset://textures/ui/scrollbar.png" + scrollbar.BackgroundTransparency = 1 + scrollbar.Size = UDim2.new(0, 18, (dropDownItemCount*.8)/((dropDownItemCount+1)*.8), -(17) - 11 - 4) + scrollbar.Position = UDim2.new(1,-11,(1*.8)/((dropDownItemCount+1)*.8),17+2) + scrollbar.Parent = droppedDownMenu + end + + for i,item in ipairs(items) do + -- needed to maintain local scope for items in event listeners below + local button = choiceButton:clone() + if forRoblox then + button.RobloxLocked = true + end + button.Text = item + button.Parent = droppedDownMenu + button.MouseButton1Click:connect(function() + --Remove Highlight + button.TextColor3 = Color3.new(1,1,1) + button.BackgroundTransparency = 1 + + updateSelection(item) + onSelect(item) + + toggleVisibility() + end) + button.MouseEnter:connect(function() + --Add Highlight + button.TextColor3 = Color3.new(0,0,0) + button.BackgroundTransparency = 0 + end) + + button.MouseLeave:connect(function() + --Remove Highlight + button.TextColor3 = Color3.new(1,1,1) + button.BackgroundTransparency = 1 + end) + end + + --This does the initial layout of the buttons + updateScroll() + + local bigFakeButton = Instance.new("TextButton") + bigFakeButton.BackgroundTransparency = 1 + bigFakeButton.Name = "ClickCaptureButton" + bigFakeButton.Size = UDim2.new(0, 4000, 0, 3000) + bigFakeButton.Position = UDim2.new(0, -2000, 0, -1500) + bigFakeButton.ZIndex = 1 + bigFakeButton.Text = "" + bigFakeButton.Parent = droppedDownMenu + bigFakeButton.MouseButton1Click:connect(toggleVisibility) + + dropDownMenu.MouseButton1Click:connect(toggleVisibility) + return frame, updateSelection +end + +t.CreatePropertyDropDownMenu = function(instance, property, enum) + + local items = enum:GetEnumItems() + local names = {} + local nameToItem = {} + for i,obj in ipairs(items) do + names[i] = obj.Name + nameToItem[obj.Name] = obj + end + + local frame + local updateSelection + frame, updateSelection = t.CreateDropDownMenu(names, function(text) instance[property] = nameToItem[text] end) + + ScopedConnect(frame, instance, "Changed", + function(prop) + if prop == property then + updateSelection(instance[property].Name) + end + end, + function() + updateSelection(instance[property].Name) + end) + + return frame +end + +t.GetFontHeight = function(font, fontSize) + if font == nil or fontSize == nil then + error("Font and FontSize must be non-nil") + end + + if font == Enum.Font.Legacy then + if fontSize == Enum.FontSize.Size8 then + return 12 + elseif fontSize == Enum.FontSize.Size9 then + return 14 + elseif fontSize == Enum.FontSize.Size10 then + return 15 + elseif fontSize == Enum.FontSize.Size11 then + return 17 + elseif fontSize == Enum.FontSize.Size12 then + return 18 + elseif fontSize == Enum.FontSize.Size14 then + return 21 + elseif fontSize == Enum.FontSize.Size18 then + return 27 + elseif fontSize == Enum.FontSize.Size24 then + return 36 + elseif fontSize == Enum.FontSize.Size36 then + return 54 + elseif fontSize == Enum.FontSize.Size48 then + return 72 + else + error("Unknown FontSize") + end + elseif font == Enum.Font.Arial or font == Enum.Font.ArialBold then + if fontSize == Enum.FontSize.Size8 then + return 8 + elseif fontSize == Enum.FontSize.Size9 then + return 9 + elseif fontSize == Enum.FontSize.Size10 then + return 10 + elseif fontSize == Enum.FontSize.Size11 then + return 11 + elseif fontSize == Enum.FontSize.Size12 then + return 12 + elseif fontSize == Enum.FontSize.Size14 then + return 14 + elseif fontSize == Enum.FontSize.Size18 then + return 18 + elseif fontSize == Enum.FontSize.Size24 then + return 24 + elseif fontSize == Enum.FontSize.Size36 then + return 36 + elseif fontSize == Enum.FontSize.Size48 then + return 48 + else + error("Unknown FontSize") + end + else + error("Unknown Font " .. font) + end +end + +local function layoutGuiObjectsHelper(frame, guiObjects, settingsTable) + local totalPixels = frame.AbsoluteSize.Y + local pixelsRemaining = frame.AbsoluteSize.Y + for i, child in ipairs(guiObjects) do + if child:IsA("TextLabel") or child:IsA("TextButton") then + local isLabel = child:IsA("TextLabel") + if isLabel then + pixelsRemaining = pixelsRemaining - settingsTable["TextLabelPositionPadY"] + else + pixelsRemaining = pixelsRemaining - settingsTable["TextButtonPositionPadY"] + end + child.Position = UDim2.new(child.Position.X.Scale, child.Position.X.Offset, 0, totalPixels - pixelsRemaining) + child.Size = UDim2.new(child.Size.X.Scale, child.Size.X.Offset, 0, pixelsRemaining) + + if child.TextFits and child.TextBounds.Y < pixelsRemaining then + child.Visible = true + if isLabel then + child.Size = UDim2.new(child.Size.X.Scale, child.Size.X.Offset, 0, child.TextBounds.Y + settingsTable["TextLabelSizePadY"]) + else + child.Size = UDim2.new(child.Size.X.Scale, child.Size.X.Offset, 0, child.TextBounds.Y + settingsTable["TextButtonSizePadY"]) + end + + while not child.TextFits do + child.Size = UDim2.new(child.Size.X.Scale, child.Size.X.Offset, 0, child.AbsoluteSize.Y + 1) + end + pixelsRemaining = pixelsRemaining - child.AbsoluteSize.Y + + if isLabel then + pixelsRemaining = pixelsRemaining - settingsTable["TextLabelPositionPadY"] + else + pixelsRemaining = pixelsRemaining - settingsTable["TextButtonPositionPadY"] + end + else + child.Visible = false + pixelsRemaining = -1 + end + + else + --GuiObject + child.Position = UDim2.new(child.Position.X.Scale, child.Position.X.Offset, 0, totalPixels - pixelsRemaining) + pixelsRemaining = pixelsRemaining - child.AbsoluteSize.Y + child.Visible = (pixelsRemaining >= 0) + end + end +end + +t.LayoutGuiObjects = function(frame, guiObjects, settingsTable) + if not frame:IsA("GuiObject") then + error("Frame must be a GuiObject") + end + for i, child in ipairs(guiObjects) do + if not child:IsA("GuiObject") then + error("All elements that are layed out must be of type GuiObject") + end + end + + if not settingsTable then + settingsTable = {} + end + + if not settingsTable["TextLabelSizePadY"] then + settingsTable["TextLabelSizePadY"] = 0 + end + if not settingsTable["TextLabelPositionPadY"] then + settingsTable["TextLabelPositionPadY"] = 0 + end + if not settingsTable["TextButtonSizePadY"] then + settingsTable["TextButtonSizePadY"] = 12 + end + if not settingsTable["TextButtonPositionPadY"] then + settingsTable["TextButtonPositionPadY"] = 2 + end + + --Wrapper frame takes care of styled objects + local wrapperFrame = Instance.new("Frame") + wrapperFrame.Name = "WrapperFrame" + wrapperFrame.BackgroundTransparency = 1 + wrapperFrame.Size = UDim2.new(1,0,1,0) + wrapperFrame.Parent = frame + + for i, child in ipairs(guiObjects) do + child.Parent = wrapperFrame + end + + local recalculate = function() + wait() + layoutGuiObjectsHelper(wrapperFrame, guiObjects, settingsTable) + end + + frame.Changed:connect( + function(prop) + if prop == "AbsoluteSize" then + --Wait a heartbeat for it to sync in + recalculate() + end + end) + frame.AncestryChanged:connect(recalculate) + + layoutGuiObjectsHelper(wrapperFrame, guiObjects, settingsTable) +end + + +t.CreateSlider = function(steps,width,position) + local sliderGui = Instance.new("Frame") + sliderGui.Size = UDim2.new(1,0,1,0) + sliderGui.BackgroundTransparency = 1 + sliderGui.Name = "SliderGui" + + local areaSoak = Instance.new("TextButton") + areaSoak.Name = "AreaSoak" + areaSoak.Text = "" + areaSoak.BackgroundTransparency = 1 + areaSoak.Active = false + areaSoak.Size = UDim2.new(1,0,1,0) + areaSoak.Visible = false + areaSoak.ZIndex = 4 + areaSoak.Parent = sliderGui + + local sliderPosition = Instance.new("IntValue") + sliderPosition.Name = "SliderPosition" + sliderPosition.Value = 0 + sliderPosition.Parent = sliderGui + + local id = math.random(1,100) + + local bar = Instance.new("Frame") + bar.Name = "Bar" + bar.BackgroundColor3 = Color3.new(0,0,0) + if type(width) == "number" then + bar.Size = UDim2.new(0,width,0,5) + else + bar.Size = UDim2.new(0,200,0,5) + end + bar.BorderColor3 = Color3.new(95/255,95/255,95/255) + bar.ZIndex = 2 + bar.Parent = sliderGui + + if position["X"] and position["X"]["Scale"] and position["X"]["Offset"] and position["Y"] and position["Y"]["Scale"] and position["Y"]["Offset"] then + bar.Position = position + end + + local slider = Instance.new("ImageButton") + slider.Name = "Slider" + slider.BackgroundTransparency = 1 + slider.Image = "rbxasset://textures/ui/Slider.png" + slider.Position = UDim2.new(0,0,0.5,-10) + slider.Size = UDim2.new(0,20,0,20) + slider.ZIndex = 3 + slider.Parent = bar + + local areaSoakMouseMoveCon = nil + + areaSoak.MouseLeave:connect(function() + if areaSoak.Visible then + cancelSlide(areaSoak) + end + end) + areaSoak.MouseButton1Up:connect(function() + if areaSoak.Visible then + cancelSlide(areaSoak) + end + end) + + slider.MouseButton1Down:connect(function() + areaSoak.Visible = true + if areaSoakMouseMoveCon then areaSoakMouseMoveCon:disconnect() end + areaSoakMouseMoveCon = areaSoak.MouseMoved:connect(function(x,y) + setSliderPos(x,slider,sliderPosition,bar,steps) + end) + end) + + slider.MouseButton1Up:connect(function() cancelSlide(areaSoak) end) + + sliderPosition.Changed:connect(function(prop) + local relativePosX = (sliderPosition.Value - 1) / steps + slider.Position = UDim2.new(relativePosX,0,slider.Position.Y.Scale,slider.Position.Y.Offset) + end) + + return sliderGui, sliderPosition + +end + + +t.CreateScrollingFrame = function(orderList,scrollStyle) + local frame = Instance.new("Frame") + frame.Name = "ScrollingFrame" + frame.BackgroundTransparency = 1 + frame.Size = UDim2.new(1,0,1,0) + + local scrollUpButton = Instance.new("ImageButton") + scrollUpButton.Name = "ScrollUpButton" + scrollUpButton.BackgroundTransparency = 1 + scrollUpButton.Image = "rbxasset://textures/ui/scrollbuttonUp.png" + scrollUpButton.Size = UDim2.new(0,17,0,17) + + + local scrollDownButton = Instance.new("ImageButton") + scrollDownButton.Name = "ScrollDownButton" + scrollDownButton.BackgroundTransparency = 1 + scrollDownButton.Image = "rbxasset://textures/ui/scrollbuttonDown.png" + scrollDownButton.Size = UDim2.new(0,17,0,17) + + local style = "simple" + if scrollStyle and tostring(scrollStyle) then + style = scrollStyle + end + + local scrollPosition = 1 + local rowSize = 1 + + local layoutGridScrollBar = function() + local guiObjects = {} + if orderList then + for i, child in ipairs(orderList) do + if child.Parent == frame then + table.insert(guiObjects, child) + end + end + else + local children = frame:GetChildren() + if children then + for i, child in ipairs(children) do + if child:IsA("GuiObject") then + table.insert(guiObjects, child) + end + end + end + end + if #guiObjects == 0 then + scrollUpButton.Active = false + scrollDownButton.Active = false + scrollPosition = 1 + return + end + + if scrollPosition > #guiObjects then + scrollPosition = #guiObjects + end + + local totalPixelsY = frame.AbsoluteSize.Y + local pixelsRemainingY = frame.AbsoluteSize.Y + + local totalPixelsX = frame.AbsoluteSize.X + + local xCounter = 0 + local rowSizeCounter = 0 + local setRowSize = true + + local pixelsBelowScrollbar = 0 + local pos = #guiObjects + while pixelsBelowScrollbar < totalPixelsY and pos >= 1 do + if pos >= scrollPosition then + pixelsBelowScrollbar = pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y + else + xCounter = xCounter + guiObjects[pos].AbsoluteSize.X + rowSizeCounter = rowSizeCounter + 1 + if xCounter >= totalPixelsX then + if setRowSize then + rowSize = rowSizeCounter - 1 + setRowSize = false + end + + rowSizeCounter = 0 + xCounter = 0 + if pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y <= totalPixelsY then + --It fits, so back up our scroll position + pixelsBelowScrollbar = pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y + if scrollPosition <= rowSize then + scrollPosition = rowSize + break + else + --print("Backing up ScrollPosition from -- " ..scrollPosition) + scrollPosition = scrollPosition - rowSize + end + else + break + end + end + end + pos = pos - 1 + end + + xCounter = 0 + --print("ScrollPosition = " .. scrollPosition) + pos = scrollPosition + rowSizeCounter = 0 + setRowSize = true + local lastChildSize = 0 + + local xOffset,yOffset = 0 + if guiObjects[1] then + yOffset = math.ceil(math.floor(math.fmod(totalPixelsY,guiObjects[1].AbsoluteSize.X))/2) + xOffset = math.ceil(math.floor(math.fmod(totalPixelsX,guiObjects[1].AbsoluteSize.Y))/2) + end + + for i, child in ipairs(guiObjects) do + if i < scrollPosition then + --print("Hiding " .. child.Name) + child.Visible = false + else + if pixelsRemainingY < 0 then + --print("Out of Space " .. child.Name) + child.Visible = false + else + --print("Laying out " .. child.Name) + --GuiObject + if setRowSize then rowSizeCounter = rowSizeCounter + 1 end + if xCounter + child.AbsoluteSize.X >= totalPixelsX then + if setRowSize then + rowSize = rowSizeCounter - 1 + setRowSize = false + end + xCounter = 0 + pixelsRemainingY = pixelsRemainingY - child.AbsoluteSize.Y + end + child.Position = UDim2.new(child.Position.X.Scale,xCounter + xOffset, 0, totalPixelsY - pixelsRemainingY + yOffset) + xCounter = xCounter + child.AbsoluteSize.X + child.Visible = ((pixelsRemainingY - child.AbsoluteSize.Y) >= 0) + lastChildSize = child.AbsoluteSize + end + end + end + + scrollUpButton.Active = (scrollPosition > 1) + if lastChildSize == 0 then + scrollDownButton.Active = false + else + scrollDownButton.Active = ((pixelsRemainingY - lastChildSize.Y) < 0) + end + end + + + local layoutSimpleScrollBar = function() + local guiObjects = {} + + if orderList then + for i, child in ipairs(orderList) do + if child.Parent == frame then + table.insert(guiObjects, child) + end + end + else + local children = frame:GetChildren() + if children then + for i, child in ipairs(children) do + if child:IsA("GuiObject") then + table.insert(guiObjects, child) + end + end + end + end + if #guiObjects == 0 then + scrollUpButton.Active = false + scrollDownButton.Active = false + scrollPosition = 1 + return + end + + if scrollPosition > #guiObjects then + scrollPosition = #guiObjects + end + + local totalPixels = frame.AbsoluteSize.Y + local pixelsRemaining = frame.AbsoluteSize.Y + + local pixelsBelowScrollbar = 0 + local pos = #guiObjects + while pixelsBelowScrollbar < totalPixels and pos >= 1 do + if pos >= scrollPosition then + pixelsBelowScrollbar = pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y + else + if pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y <= totalPixels then + --It fits, so back up our scroll position + pixelsBelowScrollbar = pixelsBelowScrollbar + guiObjects[pos].AbsoluteSize.Y + if scrollPosition <= 1 then + scrollPosition = 1 + break + else + --print("Backing up ScrollPosition from -- " ..scrollPosition) + scrollPosition = scrollPosition - 1 + end + else + break + end + end + pos = pos - 1 + end + + --print("ScrollPosition = " .. scrollPosition) + pos = scrollPosition + for i, child in ipairs(guiObjects) do + if i < scrollPosition then + --print("Hiding " .. child.Name) + child.Visible = false + else + if pixelsRemaining < 0 then + --print("Out of Space " .. child.Name) + child.Visible = false + else + --print("Laying out " .. child.Name) + --GuiObject + child.Position = UDim2.new(child.Position.X.Scale, child.Position.X.Offset, 0, totalPixels - pixelsRemaining) + pixelsRemaining = pixelsRemaining - child.AbsoluteSize.Y + child.Visible = (pixelsRemaining >= 0) + end + end + end + scrollUpButton.Active = (scrollPosition > 1) + scrollDownButton.Active = (pixelsRemaining < 0) + end + + local reentrancyGuard = false + local recalculate = function() + if reentrancyGuard then + return + end + reentrancyGuard = true + wait() + local success, err = nil + if style == "grid" then + success, err = pcall(function() layoutGridScrollBar(frame) end) + elseif style == "simple" then + success, err = pcall(function() layoutSimpleScrollBar(frame) end) + end + if not success then print(err) end + + reentrancyGuard = false + end + + local scrollUp = function() + if scrollUpButton.Active then + scrollPosition = scrollPosition - rowSize + recalculate() + end + end + + local scrollDown = function() + if scrollDownButton.Active then + scrollPosition = scrollPosition + rowSize + recalculate() + end + end + + local scrollMouseCount = 0 + scrollUpButton.MouseButton1Click:connect( + function() + --print("Up-MouseButton1Click") + scrollMouseCount = scrollMouseCount + 1 + end) + scrollUpButton.MouseLeave:connect( + function() + --print("Up-Leave") + scrollMouseCount = scrollMouseCount + 1 + end) + + scrollUpButton.MouseButton1Down:connect( + function() + --print("Up-Down") + scrollMouseCount = scrollMouseCount + 1 + + scrollUp() + local val = scrollMouseCount + wait(0.5) + while val == scrollMouseCount do + if scrollUp() == false then + break + end + wait(0.1) + end + end) + + scrollDownButton.MouseButton1Click:connect( + function() + --print("Down-Click") + scrollMouseCount = scrollMouseCount + 1 + end) + scrollDownButton.MouseLeave:connect( + function() + --print("Down-Leave") + scrollMouseCount = scrollMouseCount + 1 + end) + scrollDownButton.MouseButton1Down:connect( + function() + --print("Down-Down") + scrollMouseCount = scrollMouseCount + 1 + + scrollDown() + local val = scrollMouseCount + wait(0.5) + while val == scrollMouseCount do + if scrollDown() == false then + break + end + wait(0.1) + end + end) + + + frame.ChildAdded:connect(function() + recalculate() + end) + + frame.ChildRemoved:connect(function() + recalculate() + end) + + frame.Changed:connect( + function(prop) + if prop == "AbsoluteSize" then + --Wait a heartbeat for it to sync in + recalculate() + end + end) + frame.AncestryChanged:connect(recalculate) + + return frame, scrollUpButton, scrollDownButton, recalculate +end +local function binaryGrow(min, max, fits) + if min > max then + return min + end + local biggestLegal = min + + while min <= max do + local mid = min + math.floor((max - min) / 2) + if fits(mid) and (biggestLegal == nil or biggestLegal < mid) then + biggestLegal = mid + + --Try growing + min = mid + 1 + else + --Doesn't fit, shrink + max = mid - 1 + end + end + return biggestLegal +end + + +local function binaryShrink(min, max, fits) + if min > max then + return min + end + local smallestLegal = max + + while min <= max do + local mid = min + math.floor((max - min) / 2) + if fits(mid) and (smallestLegal == nil or smallestLegal > mid) then + smallestLegal = mid + + --It fits, shrink + max = mid - 1 + else + --Doesn't fit, grow + min = mid + 1 + end + end + return smallestLegal +end + + +local function getGuiOwner(instance) + while instance ~= nil do + if instance:IsA("ScreenGui") or instance:IsA("BillboardGui") then + return instance + end + instance = instance.Parent + end + return nil +end + +t.AutoTruncateTextObject = function(textLabel) + local text = textLabel.Text + + local fullLabel = textLabel:Clone() + fullLabel.Name = "Full" .. textLabel.Name + fullLabel.BorderSizePixel = 0 + fullLabel.BackgroundTransparency = 0 + fullLabel.Text = text + fullLabel.TextXAlignment = Enum.TextXAlignment.Center + fullLabel.Position = UDim2.new(0,-3,0,0) + fullLabel.Size = UDim2.new(0,100,1,0) + fullLabel.Visible = false + fullLabel.Parent = textLabel + + local shortText = nil + local mouseEnterConnection = nil + local mouseLeaveConnection= nil + + local checkForResize = function() + if getGuiOwner(textLabel) == nil then + return + end + textLabel.Text = text + if textLabel.TextFits then + --Tear down the rollover if it is active + if mouseEnterConnection then + mouseEnterConnection:disconnect() + mouseEnterConnection = nil + end + if mouseLeaveConnection then + mouseLeaveConnection:disconnect() + mouseLeaveConnection = nil + end + else + local len = string.len(text) + textLabel.Text = text .. "~" + + --Shrink the text + local textSize = binaryGrow(0, len, + function(pos) + if pos == 0 then + textLabel.Text = "~" + else + textLabel.Text = string.sub(text, 1, pos) .. "~" + end + return textLabel.TextFits + end) + shortText = string.sub(text, 1, textSize) .. "~" + textLabel.Text = shortText + + --Make sure the fullLabel fits + if not fullLabel.TextFits then + --Already too small, grow it really bit to start + fullLabel.Size = UDim2.new(0, 10000, 1, 0) + end + + --Okay, now try to binary shrink it back down + local fullLabelSize = binaryShrink(textLabel.AbsoluteSize.X,fullLabel.AbsoluteSize.X, + function(size) + fullLabel.Size = UDim2.new(0, size, 1, 0) + return fullLabel.TextFits + end) + fullLabel.Size = UDim2.new(0,fullLabelSize+6,1,0) + + --Now setup the rollover effects, if they are currently off + if mouseEnterConnection == nil then + mouseEnterConnection = textLabel.MouseEnter:connect( + function() + fullLabel.ZIndex = textLabel.ZIndex + 1 + fullLabel.Visible = true + --textLabel.Text = "" + end) + end + if mouseLeaveConnection == nil then + mouseLeaveConnection = textLabel.MouseLeave:connect( + function() + fullLabel.Visible = false + --textLabel.Text = shortText + end) + end + end + end + textLabel.AncestryChanged:connect(checkForResize) + textLabel.Changed:connect( + function(prop) + if prop == "AbsoluteSize" then + checkForResize() + end + end) + + checkForResize() + + local function changeText(newText) + text = newText + fullLabel.Text = text + checkForResize() + end + + return textLabel, changeText +end + +local function TransitionTutorialPages(fromPage, toPage, transitionFrame, currentPageValue) + if fromPage then + fromPage.Visible = false + if transitionFrame.Visible == false then + transitionFrame.Size = fromPage.Size + transitionFrame.Position = fromPage.Position + end + else + if transitionFrame.Visible == false then + transitionFrame.Size = UDim2.new(0.0,50,0.0,50) + transitionFrame.Position = UDim2.new(0.5,-25,0.5,-25) + end + end + transitionFrame.Visible = true + currentPageValue.Value = nil + + local newsize, newPosition + if toPage then + --Make it visible so it resizes + toPage.Visible = true + + newSize = toPage.Size + newPosition = toPage.Position + + toPage.Visible = false + else + newSize = UDim2.new(0.0,50,0.0,50) + newPosition = UDim2.new(0.5,-25,0.5,-25) + end + transitionFrame:TweenSizeAndPosition(newSize, newPosition, Enum.EasingDirection.InOut, Enum.EasingStyle.Quad, 0.3, true, + function(state) + if state == Enum.TweenStatus.Completed then + transitionFrame.Visible = false + if toPage then + toPage.Visible = true + currentPageValue.Value = toPage + end + end + end) +end + +t.CreateTutorial = function(name, tutorialKey, createButtons) + local frame = Instance.new("Frame") + frame.Name = "Tutorial-" .. name + frame.BackgroundTransparency = 1 + frame.Size = UDim2.new(0.6, 0, 0.6, 0) + frame.Position = UDim2.new(0.2, 0, 0.2, 0) + + local transitionFrame = Instance.new("Frame") + transitionFrame.Name = "TransitionFrame" + transitionFrame.Style = Enum.FrameStyle.RobloxRound + transitionFrame.Size = UDim2.new(0.6, 0, 0.6, 0) + transitionFrame.Position = UDim2.new(0.2, 0, 0.2, 0) + transitionFrame.Visible = false + transitionFrame.Parent = frame + + local currentPageValue = Instance.new("ObjectValue") + currentPageValue.Name = "CurrentTutorialPage" + currentPageValue.Value = nil + currentPageValue.Parent = frame + + local boolValue = Instance.new("BoolValue") + boolValue.Name = "Buttons" + boolValue.Value = createButtons + boolValue.Parent = frame + + local pages = Instance.new("Frame") + pages.Name = "Pages" + pages.BackgroundTransparency = 1 + pages.Size = UDim2.new(1,0,1,0) + pages.Parent = frame + + local function getVisiblePageAndHideOthers() + local visiblePage = nil + local children = pages:GetChildren() + if children then + for i,child in ipairs(children) do + if child.Visible then + if visiblePage then + child.Visible = false + else + visiblePage = child + end + end + end + end + return visiblePage + end + + local showTutorial = function(alwaysShow) + if alwaysShow or UserSettings().GameSettings:GetTutorialState(tutorialKey) == false then + print("Showing tutorial-",tutorialKey) + local currentTutorialPage = getVisiblePageAndHideOthers() + + local firstPage = pages:FindFirstChild("TutorialPage1") + if firstPage then + TransitionTutorialPages(currentTutorialPage, firstPage, transitionFrame, currentPageValue) + else + error("Could not find TutorialPage1") + end + end + end + + local dismissTutorial = function() + local currentTutorialPage = getVisiblePageAndHideOthers() + + if currentTutorialPage then + TransitionTutorialPages(currentTutorialPage, nil, transitionFrame, currentPageValue) + end + + UserSettings().GameSettings:SetTutorialState(tutorialKey, true) + end + + local gotoPage = function(pageNum) + local page = pages:FindFirstChild("TutorialPage" .. pageNum) + local currentTutorialPage = getVisiblePageAndHideOthers() + TransitionTutorialPages(currentTutorialPage, page, transitionFrame, currentPageValue) + end + + return frame, showTutorial, dismissTutorial, gotoPage +end + +local function CreateBasicTutorialPage(name, handleResize, skipTutorial) + local frame = Instance.new("Frame") + frame.Name = "TutorialPage" + frame.Style = Enum.FrameStyle.RobloxRound + frame.Size = UDim2.new(0.6, 0, 0.6, 0) + frame.Position = UDim2.new(0.2, 0, 0.2, 0) + frame.Visible = false + + local frameHeader = Instance.new("TextLabel") + frameHeader.Name = "Header" + frameHeader.Text = name + frameHeader.BackgroundTransparency = 1 + frameHeader.FontSize = Enum.FontSize.Size24 + frameHeader.Font = Enum.Font.ArialBold + frameHeader.TextColor3 = Color3.new(1,1,1) + frameHeader.TextXAlignment = Enum.TextXAlignment.Center + frameHeader.TextWrap = true + frameHeader.Size = UDim2.new(1,-55, 0, 22) + frameHeader.Position = UDim2.new(0,0,0,0) + frameHeader.Parent = frame + + local skipButton = Instance.new("ImageButton") + skipButton.Name = "SkipButton" + skipButton.AutoButtonColor = false + skipButton.BackgroundTransparency = 1 + skipButton.Image = "http://www.roblox.com/asset/?id=37813546" + skipButton.MouseButton1Click:connect(function() + skipButton.Image = "http://www.roblox.com/asset/?id=37813546" + skipTutorial() + end) + skipButton.MouseEnter:connect(function() + skipButton.Image = "http://www.roblox.com/asset/?id=37813556" + end) + skipButton.MouseLeave:connect(function() + skipButton.Image = "http://www.roblox.com/asset/?id=37813546" + end) + skipButton.Size = UDim2.new(0, 55, 0, 22) + skipButton.Position = UDim2.new(1, -55, 0, 0) + skipButton.Parent = frame + + local innerFrame = Instance.new("Frame") + innerFrame.Name = "ContentFrame" + innerFrame.BackgroundTransparency = 1 + innerFrame.Position = UDim2.new(0,0,0,22) + innerFrame.Parent = frame + + local nextButton = Instance.new("TextButton") + nextButton.Name = "NextButton" + nextButton.Text = "Next" + nextButton.TextColor3 = Color3.new(1,1,1) + nextButton.Font = Enum.Font.Arial + nextButton.FontSize = Enum.FontSize.Size18 + nextButton.Style = Enum.ButtonStyle.RobloxButtonDefault + nextButton.Size = UDim2.new(0,80, 0, 32) + nextButton.Position = UDim2.new(0.5, 5, 1, -32) + nextButton.Active = false + nextButton.Visible = false + nextButton.Parent = frame + + local prevButton = Instance.new("TextButton") + prevButton.Name = "PrevButton" + prevButton.Text = "Previous" + prevButton.TextColor3 = Color3.new(1,1,1) + prevButton.Font = Enum.Font.Arial + prevButton.FontSize = Enum.FontSize.Size18 + prevButton.Style = Enum.ButtonStyle.RobloxButton + prevButton.Size = UDim2.new(0,80, 0, 32) + prevButton.Position = UDim2.new(0.5, -85, 1, -32) + prevButton.Active = false + prevButton.Visible = false + prevButton.Parent = frame + + innerFrame.Size = UDim2.new(1,0,1,-22-35) + + local parentConnection = nil + + local function basicHandleResize() + if frame.Visible and frame.Parent then + local maxSize = math.min(frame.Parent.AbsoluteSize.X, frame.Parent.AbsoluteSize.Y) + handleResize(200,maxSize) + end + end + + frame.Changed:connect( + function(prop) + if prop == "Parent" then + if parentConnection ~= nil then + parentConnection:disconnect() + parentConnection = nil + end + if frame.Parent and frame.Parent:IsA("GuiObject") then + parentConnection = frame.Parent.Changed:connect( + function(parentProp) + if parentProp == "AbsoluteSize" then + wait() + basicHandleResize() + end + end) + basicHandleResize() + end + end + + if prop == "Visible" then + basicHandleResize() + end + end) + + return frame, innerFrame +end + +t.CreateTextTutorialPage = function(name, text, skipTutorialFunc) + local frame = nil + local contentFrame = nil + + local textLabel = Instance.new("TextLabel") + textLabel.BackgroundTransparency = 1 + textLabel.TextColor3 = Color3.new(1,1,1) + textLabel.Text = text + textLabel.TextWrap = true + textLabel.TextXAlignment = Enum.TextXAlignment.Left + textLabel.TextYAlignment = Enum.TextYAlignment.Center + textLabel.Font = Enum.Font.Arial + textLabel.FontSize = Enum.FontSize.Size14 + textLabel.Size = UDim2.new(1,0,1,0) + + local function handleResize(minSize, maxSize) + size = binaryShrink(minSize, maxSize, + function(size) + frame.Size = UDim2.new(0, size, 0, size) + return textLabel.TextFits + end) + frame.Size = UDim2.new(0, size, 0, size) + frame.Position = UDim2.new(0.5, -size/2, 0.5, -size/2) + end + + frame, contentFrame = CreateBasicTutorialPage(name, handleResize, skipTutorialFunc) + textLabel.Parent = contentFrame + + return frame +end + +t.CreateImageTutorialPage = function(name, imageAsset, x, y, skipTutorialFunc) + local frame = nil + local contentFrame = nil + + local imageLabel = Instance.new("ImageLabel") + imageLabel.BackgroundTransparency = 1 + imageLabel.Image = imageAsset + imageLabel.Size = UDim2.new(0,x,0,y) + imageLabel.Position = UDim2.new(0.5,-x/2,0.5,-y/2) + + local function handleResize(minSize, maxSize) + size = binaryShrink(minSize, maxSize, + function(size) + return size >= x and size >= y + end) + if size >= x and size >= y then + imageLabel.Size = UDim2.new(0,x, 0,y) + imageLabel.Position = UDim2.new(0.5,-x/2, 0.5, -y/2) + else + if x > y then + --X is limiter, so + imageLabel.Size = UDim2.new(1,0,y/x,0) + imageLabel.Position = UDim2.new(0,0, 0.5 - (y/x)/2, 0) + else + --Y is limiter + imageLabel.Size = UDim2.new(x/y,0,1, 0) + imageLabel.Position = UDim2.new(0.5-(x/y)/2, 0, 0, 0) + end + end + frame.Size = UDim2.new(0, size, 0, size) + frame.Position = UDim2.new(0.5, -size/2, 0.5, -size/2) + end + + frame, contentFrame = CreateBasicTutorialPage(name, handleResize, skipTutorialFunc) + imageLabel.Parent = contentFrame + + return frame +end + +t.AddTutorialPage = function(tutorial, tutorialPage) + local transitionFrame = tutorial.TransitionFrame + local currentPageValue = tutorial.CurrentTutorialPage + + if not tutorial.Buttons.Value then + tutorialPage.ContentFrame.Size = UDim2.new(1,0,1,-22) + tutorialPage.NextButton.Parent = nil + tutorialPage.PrevButton.Parent = nil + end + + local children = tutorial.Pages:GetChildren() + if children and #children > 0 then + tutorialPage.Name = "TutorialPage" .. (#children+1) + local previousPage = children[#children] + if not previousPage:IsA("GuiObject") then + error("All elements under Pages must be GuiObjects") + end + + if tutorial.Buttons.Value then + if previousPage.NextButton.Active then + error("NextButton already Active on previousPage, please only add pages with RbxGui.AddTutorialPage function") + end + previousPage.NextButton.MouseButton1Click:connect( + function() + TransitionTutorialPages(previousPage, tutorialPage, transitionFrame, currentPageValue) + end) + previousPage.NextButton.Active = true + previousPage.NextButton.Visible = true + + if tutorialPage.PrevButton.Active then + error("PrevButton already Active on tutorialPage, please only add pages with RbxGui.AddTutorialPage function") + end + tutorialPage.PrevButton.MouseButton1Click:connect( + function() + TransitionTutorialPages(tutorialPage, previousPage, transitionFrame, currentPageValue) + end) + tutorialPage.PrevButton.Active = true + tutorialPage.PrevButton.Visible = true + end + + tutorialPage.Parent = tutorial.Pages + else + --First child + tutorialPage.Name = "TutorialPage1" + tutorialPage.Parent = tutorial.Pages + end +end + +t.Help = + function(funcNameOrFunc) + --input argument can be a string or a function. Should return a description (of arguments and expected side effects) + if funcNameOrFunc == "CreatePropertyDropDownMenu" or funcNameOrFunc == t.CreatePropertyDropDownMenu then + return "Function CreatePropertyDropDownMenu. " .. + "Arguments: (instance, propertyName, enumType). " .. + "Side effect: returns a container with a drop-down-box that is linked to the 'property' field of 'instance' which is of type 'enumType'" + end + if funcNameOrFunc == "CreateDropDownMenu" or funcNameOrFunc == t.CreateDropDownMenu then + return "Function CreateDropDownMenu. " .. + "Arguments: (items, onItemSelected). " .. + "Side effect: Returns 2 results, a container to the gui object and a 'updateSelection' function for external updating. The container is a drop-down-box created around a list of items" + end + if funcNameOrFunc == "CreateMessageDialog" or funcNameOrFunc == t.CreateMessageDialog then + return "Function CreateMessageDialog. " .. + "Arguments: (title, message, buttons). " .. + "Side effect: Returns a gui object of a message box with 'title' and 'message' as passed in. 'buttons' input is an array of Tables contains a 'Text' and 'Function' field for the text/callback of each button" + end + if funcNameOrFunc == "CreateStyledMessageDialog" or funcNameOrFunc == t.CreateStyledMessageDialog then + return "Function CreateStyledMessageDialog. " .. + "Arguments: (title, message, style, buttons). " .. + "Side effect: Returns a gui object of a message box with 'title' and 'message' as passed in. 'buttons' input is an array of Tables contains a 'Text' and 'Function' field for the text/callback of each button, 'style' is a string, either Error, Notify or Confirm" + end + if funcNameOrFunc == "GetFontHeight" or funcNameOrFunc == t.GetFontHeight then + return "Function GetFontHeight. " .. + "Arguments: (font, fontSize). " .. + "Side effect: returns the size in pixels of the given font + fontSize" + end + if funcNameOrFunc == "LayoutGuiObjects" or funcNameOrFunc == t.LayoutGuiObjects then + + end + if funcNameOrFunc == "CreateScrollingFrame" or funcNameOrFunc == t.CreateScrollingFrame then + return "Function CreateScrollingFrame. " .. + "Arguments: (orderList, style) " .. + "Side effect: returns 4 objects, (scrollFrame, scrollUpButton, scrollDownButton, recalculateFunction). 'scrollFrame' can be filled with GuiObjects. It will lay them out and allow scrollUpButton/scrollDownButton to interact with them. Orderlist is optional (and specifies the order to layout the children. Without orderlist, it uses the children order. style is also optional, and allows for a 'grid' styling if style is passed 'grid' as a string. recalculateFunction can be called when a relayout is needed (when orderList changes)" + end + if funcNameOrFunc == "AutoTruncateTextObject" or funcNameOrFunc == t.AutoTruncateTextObject then + return "Function AutoTruncateTextObject. " .. + "Arguments: (textLabel) " .. + "Side effect: returns 2 objects, (textLabel, changeText). The 'textLabel' input is modified to automatically truncate text (with ellipsis), if it gets too small to fit. 'changeText' is a function that can be used to change the text, it takes 1 string as an argument" + end + if funcNameOrFunc == "CreateSlider" or funcNameOrFunc == t.CreateSlider then + return "Function CreateSlider. " .. + "Arguments: (steps, width, position) " .. + "Side effect: returns 2 objects, (sliderGui, sliderPosition). The 'steps' argument specifies how many different positions the slider can hold along the bar. 'width' specifies in pixels how wide the bar should be (modifiable afterwards if desired). 'position' argument should be a UDim2 for slider positioning. 'sliderPosition' is an IntValue whose current .Value specifies the specific step the slider is currently on." + end + end + +local NewPlayerListGui = Instance.new("ScreenGui",script.Parent) +NewPlayerListGui.Name = "NewPlayerList" + +coroutine.resume(coroutine.create(function() +NewPlayerListGui.Parent = game.CoreGui +if game.CoreGui:FindFirstChild("NewPlayerList") then +game.CoreGui["NewPlayerList"].Parent = nil +end end)) + +local localTesting = true + +local friendWord = "Friend" +local friendWordLowercase = "friend" + +local testFriendingPlaces = {} +testFriendingPlaces[41324860] = true +local enableFriendingGlobally = false + +local testPlayerListPlaces = {} +testPlayerListPlaces[41324860] = true +testPlayerListPlaces[10042455] = true +local enablePlayerListGlobally = false + +local bigEasingStyle = Enum.EasingStyle.Back +local smallEasingStyle = Enum.EasingStyle.Quart +local lightBackground = true + +local function waitForChild(instance, name) + while not instance:FindFirstChild(name) do + instance.ChildAdded:wait() + end +end + +local function waitForProperty(instance, prop) + while not instance[prop] do + instance.Changed:wait() + end +end + +local function Color3I(r,g,b) + return Color3.new(r/255,g/255,b/255) +end + +function robloxLock(instance) +end + +function ArrayRemove(t, obj) + for i, obj2 in ipairs(t) do + if obj == obj2 then + table.remove(t, i) + return true + end + end + return false +end + +local function getPlayers() + local result = {} + local players = game:GetService("Players"):GetChildren() + if players then + for i, player in ipairs(players) do + if player:IsA("Player") then + table.insert(result, player) + end + end + end + return result +end + +local brickColorTable = {} +for i = 0, 63 do + brickColorTable[BrickColor.palette(i).Name] = BrickColor.palette(i).Color +end + +local function remapColor(i, j) + brickColorTable[BrickColor.palette(i).Name] = BrickColor.palette(j).Color +end + +remapColor(13, 12) +remapColor(14, 12) +remapColor(15, 12) +remapColor(61, 29) +remapColor(63, 62) +remapColor(56, 50) +remapColor(45, 53) +remapColor(51, 20) +remapColor(4, 20) +remapColor(59, 35) +remapColor(60, 29) + +local function getColor(brickColor) + if brickColorTable[brickColor.Name] then + return brickColorTable[brickColor.Name] + else + return brickColor.Color; + end +end + + + +local function getTeams() + local result = {} + local teams = game:GetService("Teams"):GetChildren() + for i, team in ipairs(teams) do + if team:IsA("Team") then + table.insert(result, team) + end + end + return result +end + +local supportFriends = false +local currentBoardType = "PlayerList" +local currentStatCount = 0 + +local createBoardsFunction = nil + + +local playerTable = {} +local teamTable = {} +local teamColorTable = {} + +local removePlayerFunction = nil +local recreatePlayerFunction = nil +local addPlayerFunction = function(player) + if recreatePlayerFunction then + recreatePlayerFunction(player) + end +end +local sortPlayerListsFunction = nil + +local minimizedState = nil +local bigWindowImposter = nil +local smallWindowPosition = UDim2.new(0, -20, 0,5)--UDim2.new(0, 0, 0,0) +local smallWindowSize = UDim2.new(1,0,1,0)--UDim2.new(1,5,1,0) +local bigWindowSize = UDim2.new(0.6,0,0.6,0) +local bigWindowPosition = UDim2.new(.2, 0, .2,0) + +local debounceTeamsChanged = false + +local currentWindowState = "Small" +local previousWindowState = nil +local transitionWindowsFunction = nil + +local container = nil +local topRightTrayContainer = nil + +local playerContextMenu = nil +local contextMenuElements = {} + +local function addContextMenuLabel(getText1, getText2, isVisible) + local t = {} + t.Type = "Label" + t.GetText1 = getText1 + t.GetText2 = getText2 + t.IsVisible = isVisible + table.insert(contextMenuElements, t) +end +local function addContextMenuButton(text, isVisible, isActive, doIt) + local t = {} + t.Text = text + t.Type = "Button" + t.IsVisible = isVisible + t.IsActive = isActive + t.DoIt = doIt + table.insert(contextMenuElements, t) +end + +local function getFriendStatus(player) + if player == game.Players.LocalPlayer then + return Enum.FriendStatus.NotFriend + else + return game.Players.LocalPlayer:GetFriendStatus(player) + end +end +--Populate the ContextMenus +addContextMenuLabel( + --GetText1 + function(player) + return "Loading..." + end, + --GetText2 + nil, + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.Unknown + end) + +--[[ +addContextMenuLabel( + --GetText1 + function(player) + return player.Name + end, + --GetText2 + nil, + --IsVisible + function(player) + return true + end)]]-- +addContextMenuButton("Send " .. friendWord .. " Request", + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.NotFriend + end, + --IsActive + function(player) + return true + end, + --DoIt + function(player) + return game.Players.LocalPlayer:RequestFriendship(player) + end +) +addContextMenuButton("Un" .. friendWordLowercase, + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.Friend + end, + --IsActive + function(player) + return true + end, + --DoIt + function(player) + return game.Players.LocalPlayer:RevokeFriendship(player) + end +) +addContextMenuButton("Accept " .. friendWord .. " Request", + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.FriendRequestReceived + end, + --IsActive + function(player) + return true + end, + --DoIt + function(player) + return game.Players.LocalPlayer:RequestFriendship(player) + end +) + +addContextMenuButton("Deny " .. friendWord .. " Request", + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.FriendRequestReceived + end, + --IsActive + function(player) + return true + end, + --DoIt + function(player) + return game.Players.LocalPlayer:RevokeFriendship(player) + end +) + +addContextMenuButton("Cancel " .. friendWord .. " Request", + --IsVisible + function(player) + return getFriendStatus(player) == Enum.FriendStatus.FriendRequestSent + end, + --IsActive + function(player) + return true + end, + --DoIt + function(player) + return game.Players.LocalPlayer:RevokeFriendship(player) + end +) + + +local function getStatColumns(players) + for i, player in ipairs(players) do + local leaderstats = player:FindFirstChild("leaderstats") + if leaderstats then + --print(player, " is King of the List") + local stats = {} + local children = leaderstats:GetChildren() + if children then + for i, stat in ipairs(children) do + if stat:IsA("IntValue") then + table.insert(stats, stat.Name) + else + --TODO: This should check for IntValue only but current ScoreHud does not + table.insert(stats, stat.Name) + end + end + end + return stats + end + end + return nil +end + +local function determineBoardType() + local players = getPlayers() + + local foundLeaderstats = false + local numStats = 0 + local foundTeam = false + + local stats = getStatColumns(players) + if stats then + foundLeaderstats = true + numStats = #stats + end + + for i, player in ipairs(players) do + if not foundTeam then + if not player.Neutral then + foundTeam = true + break + end + end + end + + if foundLeaderstats and foundTeam then + return "TeamScore", numStats + elseif foundLeaderstats then + return "PlayerScore", numStats + elseif foundTeam then + return "TeamList", numStats + else + return "PlayerList", numStats + end +end + +local function toggleBigWindow() + if container == nil then + return + end + + if currentWindowState == "Big" then + --Hide it + if previousWindowState == nil or previousWindowState == "Big" or previousWindowState == "None" then + transitionWindowsFunction("None") + else + transitionWindowsFunction("Small") + end + else + previousWindowState = currentWindowState + transitionWindowsFunction("Big") + end +end +local previousBigPlayerList = nil +local function rebuildBoard(owner, boardType, numStats) + print("RebuildBoard") + if topRightTrayContainer == nil then + topRightTrayContainer = owner:FindFirstChild("PlayerListTopRightFrame") + if topRightTrayContainer == nil then + topRightTrayContainer = Instance.new("Frame") + topRightTrayContainer.Name = "PlayerListTopRightFrame" + topRightTrayContainer.BackgroundTransparency = 1 + topRightTrayContainer.Size = UDim2.new(0.2, 16, 0.42, 16)--UDim2.new(0.2, 0, 0.42, 0) + topRightTrayContainer.Position = UDim2.new(0.8, 0, 0, 0)--UDim2.new(0.8, 0, 0, 0) + topRightTrayContainer.Parent = container + end + end + if minimizedState == nil then + minimizedState = Instance.new("Frame") + minimizedState.Name = "MinimizedPlayerlist" + minimizedState.BackgroundTransparency = 1 + minimizedState.Position = UDim2.new(1, -166, 0,0) --UDim2.new(1, -153, 0,0) + minimizedState.Size = UDim2.new(0, 151, 0, 30) + + --[[local playerListButton = Instance.new("ImageButton") + playerListButton.Name = "GoBigButton" + playerListButton.Image = "rbxasset://textures/ui/playerlist_hidden_maximize.png" + playerListButton.BackgroundTransparency = 1 + playerListButton.Size = UDim2.new(0.0, 116, 0, 30) + playerListButton.Position = UDim2.new(0, 35, 0, 0) + playerListButton.MouseButton1Click:connect( + function() + toggleBigWindow() + end) + playerListButton.Parent = minimizedState]] + + playerListButton = Instance.new("ImageButton") + playerListButton.Name = "GoSmallButton" + playerListButton.Image = "rbxasset://textures/ui/playerlist_hidden_small.png" + playerListButton.BackgroundTransparency = 1 + playerListButton.Size = UDim2.new(0.0, 35, 0, 30) + playerListButton.Position = UDim2.new(1, -35, 0, 0) + playerListButton.MouseButton1Click:connect( + function() + transitionWindowsFunction("Small") + end) + playerListButton.Parent = minimizedState + + minimizedState.Visible = false + robloxLock(minimizedState) + minimizedState.Parent = topRightTrayContainer + end + if bigWindowImposter == nil then + bigWindowImposter = owner:FindFirstChild("BigPlayerListWindowImposter") + if bigWindowImposter == nil then + bigWindowImposter = Instance.new("Frame") + bigWindowImposter.Name = "BigPlayerListWindowImposter" + bigWindowImposter.Visible = false + --bigWindowImposter.Style = Enum.FrameStyle.RobloxRound + bigWindowImposter.BackgroundColor3 = Color3.new(0,0,0) + bigWindowImposter.BackgroundTransparency = 0.7 + bigWindowImposter.BorderSizePixel = 0 + --bigWindowImposter.Size = UDim2.new(0.4, 0, 0.4, 0) + bigWindowImposter.Size = UDim2.new(0.4, 7, 0.4, 7) + bigWindowImposter.Position = UDim2.new(0.3, 0, 0.3, 0) + robloxLock(bigWindowImposter) + bigWindowImposter.Parent = container + end + end + if container == nil or container ~= owner then + container = owner + + topRightTrayContainer.Parent = container + bigWindowImposter.Parent = container + end + + local smallVisible = true + local bigVisible = false + if container then + if topRightTrayContainer then + --Delete the old boards + if topRightTrayContainer:FindFirstChild("SmallPlayerlist") then + smallVisible = topRightTrayContainer.SmallPlayerlist.Visible + topRightTrayContainer.SmallPlayerlist.Parent = nil + print("Removed small playerlist") + else + print("Did not remove small playerlist") + end + end + if container:FindFirstChild("BigPlayerlist") then + bigVisible = container.BigPlayerlist.Visible or (previousBigPlayerList ~= nil) + container.BigPlayerlist.Parent = nil + if previousBigPlayerList ~= nil then + pcall(function() game.GuiService:RemoveCenterDialog(previousBigPlayerList) end) + previousBigPlayerList = nil + end + end + end + + local smallBoard, bigBoard = createBoardsFunction(boardType, numStats) + if smallBoard then + smallBoard.Visible = smallVisible + smallBoard.Parent = topRightTrayContainer + end + if bigBoard then + if bigVisible then + previousBigPlayerList = bigBoard + local centerDialogSupported, msg = pcall(function() game.GuiService:AddCenterDialog(previousBigPlayerList, Enum.CenterDialogType.PlayerInitiatedDialog, + function() + previousBigPlayerList.Visible = true + end) + end) + bigBoard.Visible = bigVisible + else + bigBoard.Visible = false + end + bigBoard.Parent = container + end + return container +end + + +local function showBigPlayerWindow() + if container:FindFirstChild("BigPlayerlist") then + if container.BigPlayerlist.Visible then + return + end + end + + bigWindowImposter.Visible = true + bigWindowImposter:TweenSizeAndPosition(bigWindowSize, bigWindowPosition, Enum.EasingDirection.Out, bigEasingStyle, 0.3, true, + function(state) + if state == Enum.TweenStatus.Completed then + bigWindowImposter.Visible = false + if container:FindFirstChild("BigPlayerlist") then + container.BigPlayerlist.Visible = true + end + end + end) +end + +local function hideBigPlayerWindow(completed) + if playerContextMenu then + playerContextMenu.Visible = false + end + + if container:FindFirstChild("BigPlayerlist") then + if container.BigPlayerlist.Visible == false and bigWindowImposter.Visible == false then + if completed then + completed() + end + --Already completely hidden + return + end + container.BigPlayerlist.Visible = false + end + + local completedFunction = completed + bigWindowImposter.Visible = true + bigWindowImposter:TweenSizeAndPosition(UDim2.new(0.4, 0, 0.4, 0), UDim2.new(0.3, 0, 0.3, 0), Enum.EasingDirection.In, Enum.EasingStyle.Quart, 0.15, true, + function(state) + if state == Enum.TweenStatus.Completed then + bigWindowImposter.Visible = false + if completedFunction then + completedFunction() + end + end + end) +end +local function hideSmallPlayerWindow(completed) + if playerContextMenu then + playerContextMenu.Visible = false + end + if topRightTrayContainer:FindFirstChild("SmallPlayerlist") then + local completedFunction = completed + if topRightTrayContainer.SmallPlayerlist.Visible then + topRightTrayContainer.SmallPlayerlist:TweenPosition(UDim2.new(1,0,smallWindowPosition.Y.Scale, smallWindowPosition.Y.Offset), Enum.EasingDirection.Out, smallEasingStyle, 0.3, true, + function(state) + --print(state) + if state == Enum.TweenStatus.Completed then + if topRightTrayContainer:FindFirstChild("SmallPlayerlist") then + topRightTrayContainer.SmallPlayerlist.Visible = false + end + if completedFunction then + completedFunction() + end + end + end) + return + end + end + if completed then + completed() + end +end + + +transitionWindowsFunction = function(desiredState) + if desiredState == "Big" then + minimizedState.Visible = false + hideSmallPlayerWindow() + + if previousBigPlayerList ~= nil then + if previousBigPlayerList ~= container:FindFirstChild("BigPlayerlist") then + pcall(function() game.GuiService:RemoveCenterDialog(previousBigPlayerList) end) + previousBigPlayerList = nil + previousBigPlayerList = container:FindFirstChild("BigPlayerlist") + end + else + previousBigPlayerList = container:FindFirstChild("BigPlayerlist") + end + + if previousBigPlayerList then + local firstShow = false + local centerDialogSupported, msg = pcall(function() game.GuiService:AddCenterDialog(previousBigPlayerList, Enum.CenterDialogType.PlayerInitiatedDialog, + function() + if not firstShow then + showBigPlayerWindow() + firstShow = true + else + previousBigPlayerList.Visible = true + end + end) + end) + if centerDialogSupported == false then + print("Exception", msg) + showBigPlayerWindow() + end + else + showBigPlayerWindow() + end + currentWindowState = "Big" + elseif desiredState == "Small" then + minimizedState.Visible = false + if previousBigPlayerList ~= nil then + pcall(function() game.GuiService:RemoveCenterDialog(previousBigPlayerList) end) + previousBigPlayerList = nil + end + + hideBigPlayerWindow() + if topRightTrayContainer:FindFirstChild("SmallPlayerlist") then + if not topRightTrayContainer.SmallPlayerlist.Visible or topRightTrayContainer.SmallPlayerlist.Position ~= smallWindowPosition then + topRightTrayContainer.SmallPlayerlist.Visible = true + topRightTrayContainer.SmallPlayerlist:TweenPosition(smallWindowPosition, Enum.EasingDirection.Out, smallEasingStyle, 0.3, true) + end + end + currentWindowState = "Small" + elseif desiredState == "None" then + if previousBigPlayerList ~= nil then + pcall(function() game.GuiService:RemoveCenterDialog(previousBigPlayerList) end) + previousBigPlayerList = nil + end + + local smallDone = false + local bigDone = false + hideSmallPlayerWindow( + function() + smallDone = true + if bigDone and smallDone then + minimizedState.Visible = true + end + end) + hideBigPlayerWindow( + function() + bigDone = true + if bigDone and smallDone then + minimizedState.Visible = true + end + end) + currentWindowState = "None" + end +end + +local function getStatValuesForPlayer(player) + local leaderstats = player:FindFirstChild("leaderstats") + if leaderstats then + local children = leaderstats:GetChildren() + if children then + local result = {} + --Just go based on position + for i, stat in ipairs(children) do + if stat:IsA("IntValue") then + table.insert(result, stat) + else + table.insert(result, 0) + end + end + + return result, leaderstats + end + end + return nil +end + +--ChildAdded on Player (if it's name is "leaderstats") + +if UserSettings and LoadLibrary then + + RbxGui,msg = t + print("Libraries loaded") + + local function createTeamName(name, color) + local fontHeight = 20 --RbxGui.GetFontHeight(Enum.Font.ArialBold, Enum.FontSize.Size18) + local frame = Instance.new("Frame") + frame.Name = "Team-" .. name + frame.BorderSizePixel = 0 + frame.BackgroundTransparency = 0.5 + frame.BackgroundColor3 = Color3.new(1,1,1) + frame.Size = UDim2.new(1, 0, 0, fontHeight) + frame.Position = UDim2.new(0,0,0,0) + + local label = Instance.new("TextLabel") + label.Name = "NameLabel" + label.Text = " " .. name + label.Font = Enum.Font.ArialBold + label.FontSize = Enum.FontSize.Size18 + label.Position = UDim2.new(0,0,0,0) + label.Size = UDim2.new(1,0,1,0) + label.TextColor3 = Color3.new(1,1,1) + label.BackgroundTransparency = 0.5 + label.BackgroundColor3 = getColor(color) + label.BorderSizePixel = 0 + label.TextXAlignment = Enum.TextXAlignment.Left + label = RbxGui.AutoTruncateTextObject(label) + label.Parent = frame + + return frame + end + + local function getFriendStatusIcon(friendStatus) + if friendStatus == Enum.FriendStatus.Unknown or friendStatus == Enum.FriendStatus.NotFriend then + return nil + elseif friendStatus == Enum.FriendStatus.Friend then + return "rbxasset://textures/ui/PlayerlistFriendIcon.png" + elseif friendStatus == Enum.FriendStatus.FriendRequestSent then + return "rbxasset://textures/ui/PlayerlistFriendRequestSentIcon.png" + elseif friendStatus == Enum.FriendStatus.FriendRequestReceived then + return "rbxasset://textures/ui/PlayerlistFriendRequestReceivedIcon.png" + else + error("Unknown FriendStatus: " .. friendStatus) + end + end + + local function getMembershipTypeIcon(membershipType) + --TODO: replace with proper icons + if membershipType == Enum.MembershipType.None then + return "" + elseif membershipType == Enum.MembershipType.BuildersClub then + return "rbxasset://textures/ui/TinyBcIcon.png" + elseif membershipType == Enum.MembershipType.TurboBuildersClub then + return "rbxasset://textures/ui/TinyTbcIcon.png" + elseif membershipType == Enum.MembershipType.OutrageousBuildersClub then + return "rbxasset://textures/ui/TinyObcIcon.png" + else + error("Uknown membershipType" .. membershipType) + end + end + + + local function updatePlayerFriendStatus(nameObject, friendStatus) + local fontHeight = 20 --RbxGui.GetFontHeight(Enum.Font.ArialBold, Enum.FontSize.Size14) + + local friendIconImage = getFriendStatusIcon(friendStatus) + nameObject.MembershipTypeLabel.FriendStatusLabel.Visible = (friendIconImage ~= nil) + + if friendIconImage ~= nil then + --Show friend icon + nameObject.MembershipTypeLabel.FriendStatusLabel.Image = friendIconImage + nameObject.NameLabel.Position =UDim2.new(0,2*fontHeight,0,1) + nameObject.NameLabel.Size = UDim2.new(1,-2*fontHeight,1,-2) + else + --Hide the friend icon + nameObject.NameLabel.Position = UDim2.new(0,fontHeight+1,0,1) + nameObject.NameLabel.Size = UDim2.new(1,-(fontHeight+1),1,-2) + end + end + local function updatePlayerName(nameObject, membershipStatus, teamColor) + local fontHeight = 20 --RbxGui.GetFontHeight(Enum.Font.ArialBold, Enum.FontSize.Size14) + + nameObject.Size = UDim2.new(1,0,0,fontHeight) + nameObject.MembershipTypeLabel.Image = getMembershipTypeIcon(membershipStatus) + end + + + local function updatePlayerNameColor(player, teamColor) + local function updatePlayerNameColorHelper(nameObject) + if teamColor ~= nil then + nameObject.NameLabel.TextColor3 = getColor(teamColor) + nameObject.NameLabel.FullNameLabel.TextColor3 = getColor(teamColor) + else + nameObject.NameLabel.TextColor3 = Color3.new(1,1,1) + nameObject.NameLabel.FullNameLabel.TextColor3 = Color3.new(1,1,1) + end + end + + updatePlayerNameColorHelper(playerTable[player].NameObjectSmall) + updatePlayerNameColorHelper(playerTable[player].NameObjectBig) + end + + + local function createPlayerName(name, membershipStatus, teamColor, friendStatus) + local frame = Instance.new("Frame") + frame.Name = "Player_" .. name + if lightBackground then + frame.BackgroundColor3 = Color3.new(1,1,1) + else + frame.BackgroundColor3 = Color3.new(1,1,1) + end + frame.BackgroundTransparency = 0.5 + frame.BorderSizePixel = 0 + + local membershipStatusLabel = Instance.new("ImageLabel") + membershipStatusLabel.Name = "MembershipTypeLabel" + membershipStatusLabel.BackgroundTransparency = 1 + membershipStatusLabel.Size = UDim2.new(1,0,1,0) + membershipStatusLabel.Position = UDim2.new(0,0,0,0) + membershipStatusLabel.SizeConstraint = Enum.SizeConstraint.RelativeYY + membershipStatusLabel.Parent = frame + + local friendStatusLabel = Instance.new("ImageLabel") + friendStatusLabel.Name = "FriendStatusLabel" + friendStatusLabel.Visible = false + friendStatusLabel.BackgroundTransparency = 1 + friendStatusLabel.Size = UDim2.new(1,0,1,0) + friendStatusLabel.Position = UDim2.new(1,0,0,0) + friendStatusLabel.Parent = membershipStatusLabel + + local changeNameFunction + local nameLabel = Instance.new("TextLabel") + nameLabel.Name = "NameLabel" + nameLabel.Text = name + nameLabel.Font = Enum.Font.ArialBold + nameLabel.FontSize = Enum.FontSize.Size14 + nameLabel.TextColor3 = Color3.new(1,1,1) + nameLabel.BackgroundTransparency = 1 + nameLabel.BackgroundColor3 = Color3.new(0,0,0) + nameLabel.TextXAlignment = Enum.TextXAlignment.Left + nameLabel, changeNameFunction = RbxGui.AutoTruncateTextObject(nameLabel) + nameLabel.Parent = frame + + updatePlayerName(frame, membershipStatus, teamColor) + if supportFriends then + updatePlayerFriendStatus(frame, friendStatus) + else + updatePlayerFriendStatus(frame, Enum.FriendStatus.NotFriend) + end + return frame, changeNameFunction + end + + local function createStatColumn(i, numColumns, isTeam, color3, isHeader) + local textLabel = Instance.new("TextLabel") + textLabel.Name = "Stat" .. i + textLabel.TextColor3 = Color3.new(1,1,1) + textLabel.TextXAlignment = Enum.TextXAlignment.Right + textLabel.TextYAlignment = Enum.TextYAlignment.Center + textLabel.FontSize = Enum.FontSize.Size14 + if isHeader then + textLabel.FontSize = Enum.FontSize.Size18 + else + textLabel.FontSize = Enum.FontSize.Size14 + end + if isHeader or isTeam then + textLabel.Font = Enum.Font.ArialBold + else + textLabel.Font = Enum.Font.Arial + end + + if isTeam then + textLabel.BackgroundColor3 = color3 + textLabel.Text = 0 + else + textLabel.BackgroundColor3 = Color3.new(0,0,0) + textLabel.Text = "" + end + textLabel.BackgroundTransparency = 1 + if i == numColumns then + textLabel.Size = UDim2.new(1/numColumns, -6, 1, 0) + else + textLabel.Size = UDim2.new(1/numColumns, -4, 1, 0) + end + + textLabel.Position = UDim2.new((i-1) * (1/numColumns), 0, 0, 0) + return RbxGui.AutoTruncateTextObject(textLabel) + end + + local function createStatHeaders(stats, numColumns, isBig) + local frame = Instance.new("Frame") + frame.Name = "Headers" + frame.BorderSizePixel = 0 + frame.BackgroundColor3 = Color3.new(0,0,0) + frame.BackgroundTransparency = 1 + + local nameSize + if isBig then + nameSize = 0.5 + elseif numColumns == 1 then + nameSize = 0.7 + elseif numColumns == 2 then + nameSize = 0.6 + else + nameSize = 0.45 + end + frame.Size = UDim2.new(1-nameSize, 0, 1,0) + if isBig then + frame.Position = UDim2.new(nameSize,-25, 0,0) + else + frame.Position = UDim2.new(nameSize,0, 0,0) + end + + local i = 1 + while i <= numColumns do + local headerColumn, changeText = createStatColumn(i, numColumns, false, nil, true) + changeText(stats[i]) + headerColumn.Parent = frame + i = i + 1 + end + return frame, textChangers + end + + local function createStatColumns(nameObject, numColumns, isTeam, isBig) + local frame = Instance.new("Frame") + frame.Name = nameObject.Name .. "_WithStats" + frame.BorderSizePixel = 0 + frame.BackgroundColor3 = nameObject.BackgroundColor3 + frame.BackgroundTransparency = nameObject.BackgroundTransparency + frame.Size = nameObject.Size + frame.Position = nameObject.Position + + nameObject.BackgroundTransparency = 1 + + if numColumns == 0 then + nameObject.Size = UDim2.new(1,0,1,0) + nameObject.Position = UDim2.new(0,0,0,0) + nameObject.Parent = frame + return frame + end + + local statFrame = Instance.new("Frame") + statFrame.Name = "Stats" + if isTeam then + statFrame.BorderSizePixel = 0 + statFrame.BackgroundColor3 = nameObject.NameLabel.BackgroundColor3 + statFrame.BackgroundTransparency = nameObject.NameLabel.BackgroundTransparency + else + statFrame.BackgroundTransparency = 1 + end + + local nameSize + if isBig then + nameSize = 0.5 + elseif numColumns == 1 then + nameSize = 0.7 + elseif numColumns == 2 then + nameSize = 0.6 + else + nameSize = 0.45 + end + nameObject.Size = UDim2.new(nameSize, 0, 1, 0) + nameObject.Position = UDim2.new(0, 0, 0, 0) + statFrame.Size = UDim2.new(1-nameSize,0, 1,0) + statFrame.Position = UDim2.new(nameSize,0, 0,0) + + nameObject.Parent = frame + statFrame.Parent = frame + + local textChangers = {} + local i = 1 + while i <= numColumns do + local statColumn, changeText = createStatColumn(i, numColumns, isTeam, statFrame.BackgroundColor3) + statColumn.Parent = statFrame + table.insert(textChangers, changeText) + + i = i + 1 + end + + return frame, statFrame, textChangers + end + + local function createAlternatingRows(objects) + for i, line in ipairs(objects) do + if i % 2 == 0 then + line.BackgroundTransparency = 1 + else + line.BackgroundTransparency = 0.95 + end + end + end + local removeFromTeam = nil + + local function clearTableEntry(obj, tableInfo) + if tableInfo.MainObjectSmall then + tableInfo.MainObjectSmall.Parent = nil + tableInfo.MainObjectSmall = nil + end + if tableInfo.MainObjectBig then + tableInfo.MainObjectBig.Parent = nil + tableInfo.MainObjectBig = nil + end + if tableInfo.Connections then + for i, connection in ipairs(tableInfo.Connections) do + connection:disconnect() + end + tableInfo.Connections = nil + end + if tableInfo.LeaderStatConnections then + for i, connection in ipairs(tableInfo.LeaderStatConnections) do + connection:disconnect() + end + tableInfo.LeaderStatConnections = nil + end + if tableInfo.CurrentTeam then + removeFromTeam(obj) + tableInfo.CurrentTeam = nil + end + if tableInfo.Players then + for i, player in ipairs(tableInfo.Players) do + playerTable[player].CurrentTeam = nil + end + tableInfo.Players = {} + end + if tableInfo.StatValues then + tableInfo.StatValues = nil + end + end + + local function resetPlayerTable() + for player, info in pairs(playerTable) do + clearTableEntry(player, info) + playerTable[player] = nil + end + playerTable = {} + end + + local function resetTeamTable() + for team, info in pairs(teamTable) do + clearTableEntry(team, info) + teamTable[team] = nil + end + teamTable = {} + teamColorTable = {} + end + + local function getBoardTypeInfo() + local isTeam = (currentBoardType == "TeamScore" or currentBoardType == "TeamList") + local isScore = (currentBoardType == "TeamScore" or currentBoardType == "PlayerScore") + return isTeam, isScore + end + + + local function recomputeTeamScore(team, column) + if not team or team == "Neutral" then + return + end + + local function recomputeScoreHelper(statChangers) + if statChangers and column <= #statChangers then + local sum = 0 + for i, p in ipairs(teamTable[team].Players) do + if playerTable[p].StatValues and column <= #playerTable[p].StatValues then + sum = sum + playerTable[p].StatValues[column].Value + end + end + statChangers[column](sum) + end + end + + recomputeScoreHelper(teamTable[team].StatChangersSmall) + recomputeScoreHelper(teamTable[team].StatChangersBig) + end + local function recomputeCompleteTeamScore(team) + local col = 1 + while col <= currentStatCount do + recomputeTeamScore(team, col) + col = col + 1 + end + end + removeFromTeam = function(player) + if playerTable[player].CurrentTeam ~= nil then + ArrayRemove(teamTable[playerTable[player].CurrentTeam].Players, player) + recomputeCompleteTeamScore(playerTable[player].CurrentTeam) + playerTable[player].CurrentTeam = nil + end + end + + local function assignToTeam(player) + local isTeam, isScore = getBoardTypeInfo() + + if isTeam then + local newTeam = nil + + if player.Neutral or teamColorTable[player.TeamColor.Name] == nil then + newTeam = "Neutral" + else + newTeam = teamColorTable[player.TeamColor.Name] + end + + if playerTable[player].CurrentTeam == newTeam then + return + end + + removeFromTeam(player) + + playerTable[player].CurrentTeam = newTeam + table.insert(teamTable[newTeam].Players, player) + + if newTeam == "Neutral" then + updatePlayerNameColor(player, nil) + else + updatePlayerNameColor(player, player.TeamColor) + end + + recomputeCompleteTeamScore(newTeam) + + --Relayout + if sortPlayerListsFunction then + sortPlayerListsFunction() + end + end + end + + local function buildTeamObject(team, numStatColumns, suffix) + local isTeam, isScore = getBoardTypeInfo() + local teamObject = createTeamName(team.Name, team.TeamColor) + if not teamTable[team] then + teamTable[team] = {} + end + teamTable[team]["NameObject" .. suffix] = teamObject + if isScore then + local statObject + local textChangers + teamObject, statObject, textChangers = createStatColumns(teamObject, numStatColumns, true, suffix == "Big") + teamTable[team]["StatObject" .. suffix] = statObject + teamTable[team]["StatChangers" .. suffix] = textChangers + end + teamTable[team]["MainObject" .. suffix] = teamObject + if not teamTable[team].Players then + teamTable[team].Players = {} + end + return teamObject + end + + local currentContextMenuPlayer = nil + local function updatePlayerContextMenu(player) + currentContextMenuPlayer = player + local elementHeight = 20 + local function highlight(button) + button.TextColor3 = Color3.new(0,0,0) + button.BackgroundColor3 = Color3.new(0.8,0.8,0.8) + end + local function clearHighlight(button) + button.TextColor3 = Color3.new(1,1,1) + button.BackgroundColor3 = Color3.new(0,0,0) + end + if playerContextMenu == nil then + playerContextMenu = Instance.new("Frame") + playerContextMenu.Name = "PlayerListContextMenu" + playerContextMenu.BackgroundTransparency = 1 + playerContextMenu.Visible = false + + local playerContextMenuButton = Instance.new("TextButton") + playerContextMenuButton.Name = "PlayerListContextMenuButton" + playerContextMenuButton.Text = "" + playerContextMenuButton.Style = Enum.ButtonStyle.RobloxButtonDefault + playerContextMenuButton.ZIndex = 4 + playerContextMenuButton.Size = UDim2.new(1, 0, 1, -20) + playerContextMenuButton.Visible = true + playerContextMenuButton.Parent = playerContextMenu + + for i, contextElement in ipairs(contextMenuElements) do + local element = contextElement + if element.Type == "Button" then + local button = Instance.new("TextButton") + button.Name = "ContextButton" .. i + button.BackgroundColor3 = Color3.new(0,0,0) + button.BorderSizePixel = 0 + button.TextXAlignment = Enum.TextXAlignment.Left + button.Text = " " .. contextElement.Text + button.Font = Enum.Font.Arial + button.FontSize = Enum.FontSize.Size14 + button.Size = UDim2.new(1, 8, 0, elementHeight) + button.TextColor3 = Color3.new(1,1,1) + button.ZIndex = 4 + button.Parent = playerContextMenuButton + button.MouseButton1Click:connect(function() + if button.Active then + local success, result = pcall(function() element.DoIt(currentContextMenuPlayer) end) + playerContextMenu.Visible = false + end + end) + + button.MouseEnter:connect(function() + if button.Active then + highlight(button) + end + end) + button.MouseLeave:connect(function() + if button.Active then + clearHighlight(button) + end + end) + + contextElement.Button = button + contextElement.Element = button + elseif element.Type == "Label" then + local frame = Instance.new("Frame") + frame.Name = "ContextLabel" .. i + frame.BackgroundTransparency = 1 + frame.Size = UDim2.new(1, 8, 0, elementHeight) + + local label = Instance.new("TextLabel") + label.Name = "Text1" + label.BackgroundTransparency = 1 + label.BackgroundColor3 = Color3.new(1,1,1) + label.BorderSizePixel = 0 + label.TextXAlignment = Enum.TextXAlignment.Left + label.Font = Enum.Font.ArialBold + label.FontSize = Enum.FontSize.Size14 + label.Position = UDim2.new(0.0, 0, 0, 0) + label.Size = UDim2.new(0.5, 0, 1, 0) + label.TextColor3 = Color3.new(1,1,1) + label.ZIndex = 4 + label.Parent = frame + element.Label1 = label + + if element.GetText2 then + label = Instance.new("TextLabel") + label.Name = "Text2" + label.BackgroundTransparency = 1 + label.BackgroundColor3 = Color3.new(1,1,1) + label.BorderSizePixel = 0 + label.TextXAlignment = Enum.TextXAlignment.Right + label.Font = Enum.Font.Arial + label.FontSize = Enum.FontSize.Size14 + label.Position = UDim2.new(0.5, 0, 0, 0) + label.Size = UDim2.new(0.5, 0, 1, 0) + label.TextColor3 = Color3.new(1,1,1) + label.ZIndex = 4 + label.Parent = frame + element.Label2 = label + end + frame.Parent = playerContextMenuButton + element.Label = frame + element.Element = frame + end + end + + playerContextMenu.ZIndex = 4 + playerContextMenu.MouseLeave:connect(function() playerContextMenu.Visible = false end) + robloxLock(playerContextMenu) + playerContextMenu.Parent = NewPlayerListGui + + end + + local elementPos = 0 + for i, contextElement in ipairs(contextMenuElements) do + local isVisible = false + + if contextElement.IsVisible then + local success, visible = pcall(function() return contextElement.IsVisible(currentContextMenuPlayer) end) + if success then + isVisible = visible + else + print("Error in IsVisible call: " .. visible) + end + end + + if contextElement.Type == "Button" then + contextElement.Button.Visible = isVisible + if contextElement.Button.Visible then + isVisible = true + clearHighlight(contextElement.Button) + if contextElement.IsActive then + local success, active = pcall(function() return contextElement.IsActive(currentContextMenuPlayer) end) + if success then + contextElement.Button.Active = active + else + print("Error in IsActive call: " .. active) + end + end + if contextElement.Button.Active then + contextElement.Button.TextColor3 = Color3.new(1,1,1) + else + contextElement.Button.TextColor3 = Color3.new(0.7,0.7,0.7) + end + end + elseif contextElement.Type == "Label" then + contextElement.Label.Visible = isVisible + if contextElement.Label.Visible then + local success, text = pcall(function() return contextElement.GetText1(currentContextMenuPlayer) end) + if success then + contextElement.Label1.Text = " " .. text + else + print("Error in GetText1 call: " .. text) + end + + if contextElement.GetText2 then + local success, text = pcall(function() return contextElement.GetText2(currentContextMenuPlayer) end) + if success then + contextElement.Label2.Text = " " .. text + else + print("Error in GetText2 call: " .. text) + end + end + end + end + if isVisible then + contextElement.Element.Position = UDim2.new(0,-4, 0, elementPos * elementHeight - 4) + elementPos = elementPos + 1 + end + end + playerContextMenu.Size = UDim2.new(0, 150, 0, elementPos*elementHeight + 13 + 20) + end + local function showPlayerMenu(player, x, y) + updatePlayerContextMenu(player) + x = x - (playerContextMenu.AbsoluteSize.X/2) + if x + playerContextMenu.AbsoluteSize.X >= NewPlayerListGui.AbsoluteSize.X then + x = NewPlayerListGui.AbsoluteSize.X - playerContextMenu.AbsoluteSize.X + end + playerContextMenu.Visible = true + playerContextMenu.Position = UDim2.new(0, x, 0, y-playerContextMenu.AbsoluteSize.Y) + end + + local function buildPlayerObject(player, numStatColumns, suffix) + local isTeam, isScore = getBoardTypeInfo() + + local playerObject = nil + local changePlayerNameFunction = nil + local currentColor = nil + if isTeam and not player.Neutral then + currentColor = player.TeamColor.Color + else + currentColor = Color3.new(1,1,1) + end + playerObject, changePlayerNameFunction = createPlayerName(player.Name, player.MembershipType, currentColor, getFriendStatus(player)) + + if not playerTable[player] then + playerTable[player] = {} + end + if not playerTable[player].Connections then + playerTable[player].Connections = {} + end + if not playerTable[player].CurrentTeam then + playerTable[player].CurrentTeam = nil + end + playerTable[player]["NameObject" .. suffix] = playerObject + playerTable[player]["ChangeName" .. suffix] = changePlayerNameFunction + + if isScore then + local statObject = nil + local textChangers = nil + playerObject, statObject, textChangers = createStatColumns(playerObject, numStatColumns, false, suffix == "Big") + playerTable[player]["StatObject" .. suffix]= statObject + playerTable[player]["StatChangers" .. suffix] = textChangers + + local statValues, leaderstats = getStatValuesForPlayer(player) + if not statValues or #statValues < numStatColumns then + if not playerTable[player].LeaderStatConnections then + playerTable[player].LeaderStatConnections = {} + end + --Setup a listener to see when this data gets filled in + if not leaderstats then + --print("No leaderstats for ", player) + --We don't even have a leaderstats child, wait for one + table.insert(playerTable[player].LeaderStatConnections, + player.ChildAdded:connect( + function(child) + if child.Name == "leaderstats" then + --print("Got a leaderstats for ", player) + + --Connections will be torn down + recreatePlayerFunction(player) + else + --print("Unknown child, listening for connection") + table.insert(playerTable[player].LeaderStatConnections, + child.Changed:connect( + function(prop) + if prop == "Name" and child.Name == "leaderstats" then + --Connections will be torn down + recreatePlayerFunction(player) + end + end)) + end + end)) + else + --print("Need more children") + --We have a leaderstats, but not enough children, recreate if we get them + table.insert(playerTable[player].LeaderStatConnections, + leaderstats.ChildAdded:connect( + function(child) + --TODO only look for IntValue + recreatePlayerFunction(player) + end) + ) + table.insert(playerTable[player].LeaderStatConnections, + leaderstats.AncestryChanged:connect( + function(child) + --We got deleted, try again + recreatePlayerFunction(player) + end) + ) + end + end + if statValues then + if not playerTable[player].StatValues then + playerTable[player].StatValues = {} + end + local pos = 1 + while pos <= numStatColumns and pos <= #statValues do + local currentColumn = pos + local statValue = statValues[pos] + local statChanger = textChangers[pos] + + local updateStat = function(val) + statChanger(val) + recomputeTeamScore(playerTable[player].CurrentTeam, currentColumn) + end + if pos > #playerTable[player].StatValues then + table.insert(playerTable[player].StatValues, statValue) + end + + table.insert(playerTable[player].Connections, + statValue.Changed:connect(updateStat) + ) + table.insert(playerTable[player].Connections, + statValue.AncestryChanged:connect( + function() + recreatePlayerFunction(player) + end) + ) + updateStat(statValue.Value) + pos = pos + 1 + end + end + end + + if supportFriends and player ~= game.Players.LocalPlayer and player.userId > 0 and game.Players.LocalPlayer.userId > 0 then + local button = Instance.new("TextButton") + button.Name = playerObject.Name .. "Button" + button.Text = "" + button.Active = false + button.Size = playerObject.Size + button.Position = playerObject.Position + button.BackgroundColor3 = playerObject.BackgroundColor3 + + local secondButton = Instance.new("TextButton") + secondButton.Name = playerObject.Name .. "RealButton" + secondButton.Text = "" + secondButton.BackgroundTransparency = 1 + secondButton.BackgroundColor3 = playerObject.BackgroundColor3 + secondButton.Parent.BackgroundTransparency = 1 + secondButton.Parent.Visible = true + secondButton.ZIndex = 2 + secondButton.Size = UDim2.new(1,0,1,0) + + local previousTransparency = nil + table.insert(playerTable[player].Connections, + secondButton.MouseEnter:connect(--button.MouseEnter:connect( + function() + if previousTransparency == nil then + previousTransparency = secondButton--[[button]].BackgroundTransparency + end + + if lightBackground then + --button.BackgroundColor3 = Color3.new(0,0,0) + --button.BackgroundTransparency = 0 + secondButton.Parent.BackgroundTransparency = 0 + else + --button.BackgroundColor3 = Color3.new(1,1,1) + --secondButton.button.BackgroundTransparency = 1--0.80 + secondButton.Parent.BackgroundTransparency = 1 + end + end)) + table.insert(playerTable[player].Connections, + secondButton.MouseLeave:connect(--button.MouseLeave:connect( + function() + if previousTransparency ~= nil then + if lightBackground then + --button.BackgroundColor3 = Color3.new(1,1,1) + --button.BackgroundTransparency = previousTransparency + else + --secondButtonbutton.BackgroundColor3 = Color3.new(1,1,1) + --nbutton.BackgroundTransparency = previousTransparency + end + + previousTransparency = nil + end + secondButton.Parent.BackgroundTransparency = 1 + end)) + + local mouseDownX, mouseDownY + table.insert(playerTable[player].Connections, + secondButton.MouseButton1Down:connect(function(x,y) + mouseDownX = x + mouseDownY = y + end)) + table.insert(playerTable[player].Connections, + secondButton.MouseButton1Click:connect(function() + showPlayerMenu(player, mouseDownX, secondButton.AbsolutePosition.Y + secondButton.AbsoluteSize.Y ) + end)) + playerObject.BackgroundTransparency = 1 + playerObject.Size = UDim2.new(1,0,1,0) + playerObject.Position = UDim2.new(0,0,0,0) + playerObject.Parent = button + + playerTable[player]["MainObject" .. suffix] = button + + playerObject = button + else + playerTable[player]["MainObject" .. suffix] = playerObject + + if player == game.Players.LocalPlayer and supportFriends then + table.insert(playerTable[player].Connections, + player.FriendStatusChanged:connect( + function(otherPlayer, friendStatus) + if playerTable[otherPlayer] then + updatePlayerFriendStatus(playerTable[otherPlayer]["NameObject" .. suffix], friendStatus) + end + end) + ) + end + end + table.insert(playerTable[player].Connections, + player.Changed:connect( + function(prop) + if prop == "MembershipType" then + updatePlayerName(playerTable[player]["NameObject" .. suffix], player.MembershipType, currentColor) + elseif prop == "Name" then + playerTable[player]["ChangeName" .. suffix](player.Name) + elseif prop == "Neutral" or prop == "TeamColor" then + assignToTeam(player) + end + end) + ) + return playerObject + end + + local function orderScrollList(scrollOrder, objectName, scrollFrame) + local pos = 0 + local order = {} + local isTeam, isScore = getBoardTypeInfo() + for i, obj in ipairs(scrollOrder) do + order[obj] = 0 + end + + if isTeam then + local teams = getTeams() + for i, team in ipairs(teams) do + --print(team, objectName, teamTable[team][objectName]) + order[teamTable[team][objectName]] = pos + pos = pos + 1 + for i, player in ipairs(teamTable[team].Players) do + if playerTable[player] then + order[playerTable[player][objectName]] = pos + pos = pos + 1 + end + end + end + + if #teamTable["Neutral"].Players > 0 then + teamTable["Neutral"][objectName].Parent = scrollFrame + order[teamTable["Neutral"][objectName]] = pos + pos = pos + 1 + for i, player in ipairs(teamTable["Neutral"].Players) do + order[playerTable[player][objectName]] = pos + pos = pos + 1 + end + else + teamTable["Neutral"][objectName].Parent = nil + end + else + local players = getPlayers() + for i, player in ipairs(players) do + order[playerTable[player][objectName]] = pos + pos = pos + 1 + end + end + + table.sort(scrollOrder, + function(a,b) + return order[a] < order[b] + end) + end + + local function createPlayerListBasics(frame, isBig) + local headerFrame = Instance.new("Frame") + headerFrame.Name = "Header" + headerFrame.BackgroundTransparency = 1 + headerFrame.Size = UDim2.new(1,-13,0,26) + headerFrame.Position = UDim2.new(0,0,0,0) --UDim2.new(0,-6,0,-6) + headerFrame.Parent = frame + + local lowerPaneFrame = Instance.new("Frame") + lowerPaneFrame.Name = "ScrollingArea" + lowerPaneFrame.BackgroundTransparency = 1 + lowerPaneFrame.Size = UDim2.new(1,-3,1,-26) + lowerPaneFrame.Position = UDim2.new(0,0,0,26) + lowerPaneFrame.Parent = frame + + local scrollOrder = {} + local scrollFrame, scrollUp, scrollDown, recalculateScroll = RbxGui.CreateScrollingFrame(scrollOrder) + + local scrollBar = Instance.new("Frame") + scrollBar.Name = "ScrollBar" + scrollBar.BackgroundTransparency = 0.9 + scrollBar.BackgroundColor3 = Color3.new(1,1,1) + scrollBar.BorderSizePixel = 0 + scrollBar.Size = UDim2.new(0, 17, 1, -36) + if isBig then scrollBar.Size = UDim2.new(0, 17, 1, -61) end + scrollBar.Parent = lowerPaneFrame + + scrollFrame.Parent = lowerPaneFrame + scrollUp.Parent = lowerPaneFrame + scrollDown.Parent = lowerPaneFrame + + if isBig then + scrollFrame.Position = UDim2.new(0,0,0,0) --UDim2.new(0,-7,0,0) + scrollUp.Position = UDim2.new(1,-41,0,5) --UDim2.new(1,-19,0,0) + scrollDown.Position = UDim2.new(1,-41,1,-35) -- UDim2.new(1,-19,1,-15) + scrollBar.Position = UDim2.new(1, -41, 0, 24) -- UDim2.new(1, -19, 0, 19) + + scrollFrame.Size = UDim2.new(1,-48,1,0) + headerFrame.Size = UDim2.new(1,-20,0,32) + + else + scrollBar.Position = UDim2.new(1, -19, 0, 14) --UDim2.new(1, -17, 0, 19) + scrollFrame.Position = UDim2.new(0,1,0,0) -- UDim2.new(0,-5,0,0) + scrollUp.Position = UDim2.new(1,-19,0,-5) --UDim2.new(1,-17,0,0) + scrollDown.Position = UDim2.new(1,-19,1,-20) --UDim2.new(1,-17,1,-15) + + lowerPaneFrame.Position = UDim2.new(0,0,0,30) + + local toggleScrollBar = function(visible) + if visible then + scrollFrame.Size = UDim2.new(1,-16,1,0) + headerFrame.Size = UDim2.new(1,-16,0,32) + else + scrollFrame.Size = UDim2.new(1,0,1,0)--UDim2.new(1,5,1,0) + headerFrame.Size = UDim2.new(1,5,0,32) + end + scrollUp.Visible = visible + scrollDown.Visible = visible + scrollBar.Visible = visible + end + scrollUp.Changed:connect(function(prop) + if prop == "Active" then + toggleScrollBar(scrollUp.Active or scrollDown.Active) + end + end) + + scrollDown.Changed:connect(function(prop) + if prop == "Active" then + toggleScrollBar(scrollUp.Active or scrollDown.Active) + end + end) + + toggleScrollBar(scrollUp.Active or scrollDown.Active) + end + return headerFrame, scrollFrame, recalculateScroll, scrollOrder + end + + createBoardsFunction = function (boardType, numStatColumns) + print("Create Boards") + local smallFrame = Instance.new("Frame") + smallFrame.Name = "SmallPlayerlist" + smallFrame.Position = smallWindowPosition + smallFrame.Active = false + smallFrame.Size = smallWindowSize + --smallFrame.Style = Enum.FrameStyle.RobloxRound + smallFrame.BackgroundColor3 = Color3.new(0,0,0) + smallFrame.BackgroundTransparency = 0.7 + smallFrame.BorderSizePixel = 0 + + local bigFrame = Instance.new("Frame") + bigFrame.Name = "BigPlayerlist" + bigFrame.Size = bigWindowSize + bigFrame.Position = bigWindowPosition + --bigFrame.Style = Enum.FrameStyle.RobloxRound + bigFrame.BackgroundColor3 = Color3.new(0,0,0) + bigFrame.BackgroundTransparency = 0.7 + bigFrame.BorderSizePixel = 0 + bigFrame.Visible = false + + local bigFrameWrapper = Instance.new("Frame") + bigFrameWrapper.Name = "Expander" + --bigFrameWrapper.Size = UDim2.new(1,5,1,0) + bigFrameWrapper.Size = UDim2.new(1,21,1,16) + bigFrameWrapper.Position = UDim2.new(0, 0, 0,0) + bigFrameWrapper.BackgroundTransparency = 1 + bigFrameWrapper.Parent = bigFrame + + local smallHeaderFrame, scrollFrameSmall, recalculateScrollSmall, scrollOrderSmall = createPlayerListBasics(smallFrame, false) + local bigHeaderFrame, scrollFrameBig, recalculateScrollBig, scrollOrderBig = createPlayerListBasics(bigFrameWrapper, true) + + local playerListButton = Instance.new("ImageButton") + playerListButton.Name = "GoBigButton" + playerListButton.BackgroundTransparency = 1 + playerListButton.Image = "rbxasset://textures/ui/playerlist_small_maximize.png" + playerListButton.Size = UDim2.new(0.0, 35, 0, 29) + playerListButton.Position = UDim2.new(0, 0, 0, 0) + playerListButton.MouseButton1Click:connect( + function() + toggleBigWindow() + end) + playerListButton.Parent = smallHeaderFrame + + playerListButton = Instance.new("ImageButton") + playerListButton.Name = "CloseButton" + playerListButton.BackgroundTransparency = 1 + playerListButton.Image = "rbxasset://textures/ui/playerlist_small_hide.png" + playerListButton.Size = UDim2.new(0.0, 38, 0, 29) + playerListButton.Position = UDim2.new(0, 35, 0, 0) + playerListButton.MouseButton1Click:connect( + function() + transitionWindowsFunction("None") + end) + playerListButton.Parent = smallHeaderFrame + + playerListButton = Instance.new("ImageButton") + playerListButton.Name = "CloseButton" + playerListButton.Image = "rbxasset://textures/ui/playerlist_big_hide.png" + playerListButton.BackgroundTransparency = 1 + playerListButton.Size = UDim2.new(0.0, 29, 0, 29) + playerListButton.Position = UDim2.new(1, -30, 0.5, -15) + playerListButton.MouseButton1Click:connect( + function() + toggleBigWindow() + end) + playerListButton.Parent = bigHeaderFrame + + local placeName = Instance.new("TextLabel") + placeName.Name = "PlaceName" + placeName.Text = " Player List" + placeName.FontSize = Enum.FontSize.Size24 + placeName.TextXAlignment = Enum.TextXAlignment.Left + placeName.Font = Enum.Font.ArialBold + placeName.BackgroundTransparency = 1 + placeName.TextColor3 = Color3.new(1,1,1) + placeName.Size = UDim2.new(0.5, 0, 1, 0) + placeName.Position = UDim2.new(0, 0, 0.0, 0) + placeName = RbxGui.AutoTruncateTextObject(placeName) + placeName.Parent = bigHeaderFrame + + + currentBoardType = boardType + currentStatCount = numStatColumns + local isTeam, isScore = getBoardTypeInfo() + local players = getPlayers() + + if isScore then + local statColumns = getStatColumns(players) + numStatColumns = #statColumns + if numStatColumns > 3 then + numStatColumns = 3 + end + createStatHeaders(statColumns, numStatColumns, false).Parent = smallHeaderFrame + createStatHeaders(statColumns, currentStatCount, true).Parent = bigHeaderFrame + end + + --Clean up all old stuff + resetPlayerTable() + + for i, player in ipairs(players) do + local playerObject = buildPlayerObject(player, numStatColumns, "Small") + table.insert(scrollOrderSmall, playerObject) + playerObject.Parent = scrollFrameSmall + + playerObject = buildPlayerObject(player, currentStatCount, "Big") + table.insert(scrollOrderBig, playerObject) + playerObject.Parent = scrollFrameBig + end + + --Clean up old stuff + resetTeamTable() + + local teamStatObjects = {} + if isTeam then + local teams = getTeams() + local i = #teams + while i >= 1 do + --We go backwards so the "first" team color gets the team + local team = teams[i] + teamColorTable[team.TeamColor.Name] = team + i = i - 1 + end + + --Adding/Removing a Team causes a full invalidation of the board + for i, team in ipairs(teams) do + local teamObject = buildTeamObject(team, numStatColumns, "Small") + table.insert(scrollOrderSmall, teamObject) + teamObject.Parent = scrollFrameSmall + + teamObject = buildTeamObject(team, currentStatCount, "Big") + table.insert(scrollOrderBig, teamObject) + teamObject.Parent = scrollFrameBig + end + + teamTable["Neutral"] = {} + teamTable["Neutral"].Players = {} + + local neutralTeamObject = createTeamName("Neutral", BrickColor.palette(8)) + teamTable["Neutral"].NameObjectSmall = neutralTeamObject + teamTable["Neutral"].StatObjectSmall = nil + teamTable["Neutral"].MainObjectSmall = neutralTeamObject + table.insert(scrollOrderSmall, neutralTeamObject) + + neutralTeamObject = createTeamName("Neutral", BrickColor.palette(8)) + teamTable["Neutral"].NameObjectBig = neutralTeamObject + teamTable["Neutral"].StatObjectBig = nil + teamTable["Neutral"].MainObjectBig = neutralTeamObject + table.insert(scrollOrderBig, neutralTeamObject) + + local neutralPlayers = {} + for i, player in ipairs(players) do + assignToTeam(player) + end + end + + removePlayerFunction = function(player) + if playerTable[player] then + ArrayRemove(scrollOrderSmall, playerTable[player].MainObjectSmall) + ArrayRemove(scrollOrderBig, playerTable[player].MainObjectBig) + + clearTableEntry(player, playerTable[player]) + + playerTable[player] = nil + end + end + recreatePlayerFunction = function(player) + removePlayerFunction(player) + + local playerObject = buildPlayerObject(player, numStatColumns, "Small") + table.insert(scrollOrderSmall, playerObject) + robloxLock(playerObject) + playerObject.Parent = scrollFrameSmall + + playerObject = buildPlayerObject(player, currentStatCount, "Big") + table.insert(scrollOrderBig, playerObject) + robloxLock(playerObject) + playerObject.Parent = scrollFrameBig + + local isTeam, isScore = getBoardTypeInfo() + if isTeam then + assignToTeam(player) + end + + sortPlayerListsFunction() + end + + sortPlayerListsFunction = function() + orderScrollList(scrollOrderSmall, "MainObjectSmall", scrollFrameSmall) + recalculateScrollSmall() + createAlternatingRows(scrollOrderSmall) + + orderScrollList(scrollOrderBig, "MainObjectBig", scrollFrameBig) + recalculateScrollBig() + createAlternatingRows(scrollOrderBig) + end + + sortPlayerListsFunction() + + robloxLock(smallFrame) + robloxLock(bigFrame) + return smallFrame, bigFrame + end + + --Teams changing invalidates the whole board + local function teamsChanged() + if debounceTeamsChanged then + return + end + + debounceTeamsChanged = true + wait() + rebuildBoard(NewPlayerListGui, determineBoardType()) + debounceTeamsChanged = false + end + + + local checkIfBoardChanged = function() + local newBoardType, numStats = determineBoardType() + if newBoardType ~= currentBoardType or numStats ~= currentStatCount then + --print("BoardChanged to " .. newBoardType .. " with " .. numStats .. " stats") + rebuildBoard(NewPlayerListGui, newBoardType, numStats) + end + end + + local function buildPlayerList() + waitForChild(game, "Players") + waitForProperty(game.Players, "LocalPlayer") + + local playerListEnabled = testPlayerListPlaces[game.PlaceId] or enablePlayerListGlobally + if localTesting and (game.PlaceId == 0) or (game.PlaceId == -1) then + playerListEnabled = true + end + if not playerListEnabled then + --No playerlist + return + end + + supportFriends = testFriendingPlaces[game.PlaceId] or enableFriendingGlobally + if localTesting and (game.PlaceId == 0) or (game.PlaceId == -1) then + supportFriends = false + end + + local teams = game:GetService("Teams") + if teams then + local teamConnections = {} + + teams.ChildAdded:connect( + function(child) + if child:IsA("Team") then + teamsChanged() + teamConnections[child] = child.Changed:connect( + function(prop) + if prop == "TeamColor" or prop == "Name" then + --Rebuild when things change + teamsChanged() + end + end) + end + end) + teams.ChildRemoved:connect( + function(child) + if child:IsA("Team") then + if teamConnections[child] then + teamConnections[child]:disconnect() + teamConnections[child] = nil + end + teamsChanged() + end + end) + end + + game.Players.ChildAdded:connect( + function(player) + if player:IsA("Player") then + addPlayerFunction(player) + end + end) + + game.Players.ChildRemoved:connect( + function(player) + if player:IsA("Player") then + if removePlayerFunction then + removePlayerFunction(player) + end + end + end) + + rebuildBoard(NewPlayerListGui, determineBoardType()) + + delay(0, + function() + while true do + wait(5) + checkIfBoardChanged() + end + end) + end + + buildPlayerList() +end + true + + + + \ No newline at end of file diff --git a/Health2011.rbxm b/Health2011.rbxm index d453181..4fadee2 100644 --- a/Health2011.rbxm +++ b/Health2011.rbxm @@ -15,34 +15,7 @@ script:remove(); HealthGUI true - - - false - 4290164919 - 1 - 4279970357 - 1 - rbxasset://textures/healthgui/HurtOverlay.png - hurtOverlay - - 2 - 0 - 0 - -22 - - - 1 - 0 - 1.1500001 - 30 - - 0 - true - 1 - true - - - + false 4285215356 @@ -68,7 +41,7 @@ script:remove(); 1 true - + false 4294967295 @@ -95,7 +68,7 @@ script:remove(); true - + false 4294967295 @@ -122,7 +95,7 @@ script:remove(); true - + false 4294967295 @@ -148,13 +121,14 @@ script:remove(); 1 true - + false Script h = script.Parent.Parent.Parent.Parent.Parent.Character.Humanoid -tray = script.Parent +tray = script.Parent.Parent +base = tray.Parent local lastHealth = 100 local lastHealth2 = 100 local maxWidth = 0.96 @@ -193,11 +167,6 @@ function UpdateGUI(health) end end - -function HealthChanged(health) - -end - function AnimateBars(x, y, lastX, height) local width = math.abs(x - lastX) if( x > lastX ) then @@ -234,7 +203,8 @@ function AnimateHurtOverlay() -- overlay.Position = UDim2.new(-2, 0, -2, -22) -- overlay.Size = UDim2.new(4.5, 0, 4.65, 30) - overlay = HealthGUI_prototype.hurtOverlay + overlay = base.hurtOverlay + overlay.Visible = true overlay.Position = UDim2.new(-2, 0, -2, -22) overlay.Size = UDim2.new(4.5, 0, 4.65, 30) -- Animate In, fast @@ -264,21 +234,22 @@ function AnimateHurtOverlay() -- Hide after we're done overlay.Position = UDim2.new(10, 0, 0, 0) + overlay.Visible = false end h.Changed:connect(function() - UpdateGUI(health) - if ( (lastHealth2 - health) > (humanoid.MaxHealth / 10) ) then - lastHealth2 = health + UpdateGUI(h.Health) + if ( (lastHealth2 - h.Health) > (h.MaxHealth / 10) ) then + lastHealth2 = h.Health else - lastHealth2 = health + lastHealth2 = h.Health end end) true - + false 4294967295 @@ -305,7 +276,7 @@ h.Changed:connect(function() true - + false 4294967295 @@ -333,6 +304,33 @@ h.Changed:connect(function() + + + false + 4290164919 + 1 + 4279970357 + 1 + rbxasset://textures/healthgui/HurtOverlay.png + hurtOverlay + + 2 + 0 + 0 + -22 + + + 1 + 0 + 1.1500001 + 30 + + 0 + false + 1 + true + + \ No newline at end of file diff --git a/Health2012.rbxm b/Health2012.rbxm index d453181..4fadee2 100644 --- a/Health2012.rbxm +++ b/Health2012.rbxm @@ -15,34 +15,7 @@ script:remove(); HealthGUI true - - - false - 4290164919 - 1 - 4279970357 - 1 - rbxasset://textures/healthgui/HurtOverlay.png - hurtOverlay - - 2 - 0 - 0 - -22 - - - 1 - 0 - 1.1500001 - 30 - - 0 - true - 1 - true - - - + false 4285215356 @@ -68,7 +41,7 @@ script:remove(); 1 true - + false 4294967295 @@ -95,7 +68,7 @@ script:remove(); true - + false 4294967295 @@ -122,7 +95,7 @@ script:remove(); true - + false 4294967295 @@ -148,13 +121,14 @@ script:remove(); 1 true - + false Script h = script.Parent.Parent.Parent.Parent.Parent.Character.Humanoid -tray = script.Parent +tray = script.Parent.Parent +base = tray.Parent local lastHealth = 100 local lastHealth2 = 100 local maxWidth = 0.96 @@ -193,11 +167,6 @@ function UpdateGUI(health) end end - -function HealthChanged(health) - -end - function AnimateBars(x, y, lastX, height) local width = math.abs(x - lastX) if( x > lastX ) then @@ -234,7 +203,8 @@ function AnimateHurtOverlay() -- overlay.Position = UDim2.new(-2, 0, -2, -22) -- overlay.Size = UDim2.new(4.5, 0, 4.65, 30) - overlay = HealthGUI_prototype.hurtOverlay + overlay = base.hurtOverlay + overlay.Visible = true overlay.Position = UDim2.new(-2, 0, -2, -22) overlay.Size = UDim2.new(4.5, 0, 4.65, 30) -- Animate In, fast @@ -264,21 +234,22 @@ function AnimateHurtOverlay() -- Hide after we're done overlay.Position = UDim2.new(10, 0, 0, 0) + overlay.Visible = false end h.Changed:connect(function() - UpdateGUI(health) - if ( (lastHealth2 - health) > (humanoid.MaxHealth / 10) ) then - lastHealth2 = health + UpdateGUI(h.Health) + if ( (lastHealth2 - h.Health) > (h.MaxHealth / 10) ) then + lastHealth2 = h.Health else - lastHealth2 = health + lastHealth2 = h.Health end end) true - + false 4294967295 @@ -305,7 +276,7 @@ h.Changed:connect(function() true - + false 4294967295 @@ -333,6 +304,33 @@ h.Changed:connect(function() + + + false + 4290164919 + 1 + 4279970357 + 1 + rbxasset://textures/healthgui/HurtOverlay.png + hurtOverlay + + 2 + 0 + 0 + -22 + + + 1 + 0 + 1.1500001 + 30 + + 0 + false + 1 + true + + \ No newline at end of file diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher.sln b/RBX2008/RBX2008Launcher/RBX2008Launcher.sln deleted file mode 100644 index a604cc1..0000000 --- a/RBX2008/RBX2008Launcher/RBX2008Launcher.sln +++ /dev/null @@ -1,18 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -# SharpDevelop 4.4 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RBX2008Launcher", "RBX2008Launcher\RBX2008Launcher.csproj", "{F92FFBED-2767-4676-9711-BB89CDA58A43}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F92FFBED-2767-4676-9711-BB89CDA58A43}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F92FFBED-2767-4676-9711-BB89CDA58A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F92FFBED-2767-4676-9711-BB89CDA58A43}.Release|Any CPU.Build.0 = Release|Any CPU - {F92FFBED-2767-4676-9711-BB89CDA58A43}.Release|Any CPU.ActiveCfg = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher/GlobalVars.cs b/RBX2008/RBX2008Launcher/RBX2008Launcher/GlobalVars.cs deleted file mode 100644 index 9b1413b..0000000 --- a/RBX2008/RBX2008Launcher/RBX2008Launcher/GlobalVars.cs +++ /dev/null @@ -1,7 +0,0 @@ -public static class GlobalVars -{ - public static string ClientDir = ""; - public static string Map = "Baseplate.rbxl"; - public static string PlayerName = "Player"; - public static bool CloseOnLaunch = true; -} \ No newline at end of file diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher/MainForm.Designer.cs b/RBX2008/RBX2008Launcher/RBX2008Launcher/MainForm.Designer.cs deleted file mode 100644 index 249f983..0000000 --- a/RBX2008/RBX2008Launcher/RBX2008Launcher/MainForm.Designer.cs +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Created by SharpDevelop. - * User: BITL-Gaming - * Date: 10/7/2016 - * Time: 3:01 PM - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ -namespace RBXLegacyLauncher -{ - partial class MainForm - { - /// - /// Designer variable used to keep track of non-visual components. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Disposes resources used by the form. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing) { - if (components != null) { - components.Dispose(); - } - } - base.Dispose(disposing); - } - - /// - /// This method is required for Windows Forms designer support. - /// Do not change the method contents inside the source code editor. The Forms designer might - /// not be able to load this method if it was changed manually. - /// - private void InitializeComponent() - { - this.label1 = new System.Windows.Forms.Label(); - this.listBox1 = new System.Windows.Forms.ListBox(); - this.checkBox1 = new System.Windows.Forms.CheckBox(); - this.button3 = new System.Windows.Forms.Button(); - this.button5 = new System.Windows.Forms.Button(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.label15 = new System.Windows.Forms.Label(); - this.button2 = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(100, 57); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(70, 18); - this.label1.TabIndex = 1; - this.label1.Text = "Map List"; - this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter; - // - // listBox1 - // - this.listBox1.FormattingEnabled = true; - this.listBox1.Location = new System.Drawing.Point(12, 73); - this.listBox1.Name = "listBox1"; - this.listBox1.Size = new System.Drawing.Size(264, 134); - this.listBox1.TabIndex = 0; - this.listBox1.SelectedIndexChanged += new System.EventHandler(this.ListBox1SelectedIndexChanged); - // - // checkBox1 - // - this.checkBox1.Checked = true; - this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBox1.Location = new System.Drawing.Point(12, 35); - this.checkBox1.Name = "checkBox1"; - this.checkBox1.Size = new System.Drawing.Size(158, 19); - this.checkBox1.TabIndex = 5; - this.checkBox1.Text = "Close Launcher on Launch"; - this.checkBox1.UseCompatibleTextRendering = true; - this.checkBox1.UseVisualStyleBackColor = true; - this.checkBox1.CheckedChanged += new System.EventHandler(this.CheckBox1CheckedChanged); - // - // button3 - // - this.button3.Location = new System.Drawing.Point(12, 240); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(264, 24); - this.button3.TabIndex = 6; - this.button3.Text = "Launch ROBLOX Studio"; - this.button3.UseVisualStyleBackColor = true; - this.button3.Click += new System.EventHandler(this.Button3Click); - // - // button5 - // - this.button5.Location = new System.Drawing.Point(192, 35); - this.button5.Name = "button5"; - this.button5.Size = new System.Drawing.Size(84, 32); - this.button5.TabIndex = 10; - this.button5.Text = "Save Config"; - this.button5.UseVisualStyleBackColor = true; - this.button5.Click += new System.EventHandler(this.Button5Click); - // - // textBox2 - // - this.textBox2.Location = new System.Drawing.Point(96, 9); - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(180, 20); - this.textBox2.TabIndex = 11; - this.textBox2.Text = "Player"; - this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.textBox2.TextChanged += new System.EventHandler(this.TextBox2TextChanged); - // - // label15 - // - this.label15.Location = new System.Drawing.Point(12, 12); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(87, 15); - this.label15.TabIndex = 12; - this.label15.Text = "PLAYER NAME:"; - // - // button2 - // - this.button2.Location = new System.Drawing.Point(12, 210); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(264, 24); - this.button2.TabIndex = 2; - this.button2.Text = "LAUNCH GAME"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.Button2Click); - // - // MainForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.SystemColors.ControlLightLight; - this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.ClientSize = new System.Drawing.Size(288, 275); - this.Controls.Add(this.label15); - this.Controls.Add(this.textBox2); - this.Controls.Add(this.button5); - this.Controls.Add(this.button3); - this.Controls.Add(this.checkBox1); - this.Controls.Add(this.button2); - this.Controls.Add(this.listBox1); - this.Controls.Add(this.label1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.Name = "MainForm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "RBX2008 Launcher"; - this.Load += new System.EventHandler(this.MainFormLoad); - this.ResumeLayout(false); - this.PerformLayout(); - } - private System.Windows.Forms.Label label15; - private System.Windows.Forms.TextBox textBox2; - private System.Windows.Forms.Button button5; - private System.Windows.Forms.Button button3; - private System.Windows.Forms.CheckBox checkBox1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.ListBox listBox1; - private System.Windows.Forms.Label label1; - } -} diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher/MainForm.cs b/RBX2008/RBX2008Launcher/RBX2008Launcher/MainForm.cs deleted file mode 100644 index 99f94e5..0000000 --- a/RBX2008/RBX2008Launcher/RBX2008Launcher/MainForm.cs +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Created by SharpDevelop. - * User: BITL-Gaming - * Date: 10/7/2016 - * Time: 3:01 PM - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Windows.Forms; -using System.IO; -using System.Diagnostics; -using System.Threading; - -namespace RBXLegacyLauncher -{ - /// - /// Description of MainForm. - /// - public partial class MainForm : Form - { - public MainForm() - { - // - // The InitializeComponent() call is required for Windows Forms designer support. - // - InitializeComponent(); - - // - // TODO: Add constructor code after the InitializeComponent() call. - // - } - void Button2Click(object sender, EventArgs e) - { - string luafile = GlobalVars.ClientDir + @"\\game.lua"; - string rbxexe = GlobalVars.ClientDir + @"\\RobloxApp.exe"; - string mapfile = GlobalVars.ClientDir + @"\\maps\\" + GlobalVars.Map; - string settingsluafile = GlobalVars.ClientDir + @"\\game.lua"; - string quote = "\""; - string args = ""; - args = "-script " + quote + "dofile('" + settingsluafile + "'); game:Load('" + mapfile + "'); wait(0.001); dofile('" + luafile + "'); _G.Play('" + GlobalVars.PlayerName + "');" + quote; - Process.Start(rbxexe, args); - WriteConfigValues(); - if (GlobalVars.CloseOnLaunch == true) - { - this.Close(); - } - } - - void MainFormLoad(object sender, EventArgs e) - { - if (!File.Exists("config.txt")) - { - WriteConfigValues(); - } - GlobalVars.ClientDir = Path.Combine(Environment.CurrentDirectory, @"client"); - GlobalVars.ClientDir = GlobalVars.ClientDir.Replace(@"\",@"\\"); - GlobalVars.Map = "Baseplate.rbxl"; - string mapdir = GlobalVars.ClientDir + @"\\maps\\"; - DirectoryInfo dinfo = new DirectoryInfo(mapdir); - FileInfo[] Files = dinfo.GetFiles("*.rbxl"); - foreach( FileInfo file in Files ) - { - listBox1.Items.Add(file.Name); - } - listBox1.SelectedItem = GlobalVars.Map; - ReadConfigValues(); - } - - void ReadConfigValues() - { - string line1, line2; - - using(StreamReader reader = new StreamReader("config.txt")) - { - line1 = reader.ReadLine(); - line2 = reader.ReadLine(); - } - - bool bline1 = Convert.ToBoolean(line1); - GlobalVars.CloseOnLaunch = bline1; - - GlobalVars.PlayerName = line2; - - if (GlobalVars.CloseOnLaunch == true) - { - checkBox1.Checked = true; - } - else if (GlobalVars.CloseOnLaunch == false) - { - checkBox1.Checked = false; - } - - textBox2.Text = GlobalVars.PlayerName; - } - - void WriteConfigValues() - { - string[] lines = { GlobalVars.CloseOnLaunch.ToString(), GlobalVars.PlayerName.ToString() }; - File.WriteAllLines("config.txt", lines); - } - - void ListBox1SelectedIndexChanged(object sender, EventArgs e) - { - GlobalVars.Map = listBox1.SelectedItem.ToString(); - } - - void CheckBox1CheckedChanged(object sender, EventArgs e) - { - if (checkBox1.Checked == true) - { - GlobalVars.CloseOnLaunch = true; - } - else if (checkBox1.Checked == false) - { - GlobalVars.CloseOnLaunch = false; - } - } - - void Button5Click(object sender, EventArgs e) - { - WriteConfigValues(); - } - - void TextBox2TextChanged(object sender, EventArgs e) - { - GlobalVars.PlayerName = textBox2.Text; - } - - void Button3Click(object sender, EventArgs e) - { - string rbxexe = GlobalVars.ClientDir + @"\\RobloxApp.exe"; - Process.Start(rbxexe); - WriteConfigValues(); - if (GlobalVars.CloseOnLaunch == true) - { - this.Close(); - } - } - } -} diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher/MainForm.resx b/RBX2008/RBX2008Launcher/RBX2008Launcher/MainForm.resx deleted file mode 100644 index 1af7de1..0000000 --- a/RBX2008/RBX2008Launcher/RBX2008Launcher/MainForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher/Program.cs b/RBX2008/RBX2008Launcher/RBX2008Launcher/Program.cs deleted file mode 100644 index 4be6f26..0000000 --- a/RBX2008/RBX2008Launcher/RBX2008Launcher/Program.cs +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Created by SharpDevelop. - * User: BITL-Gaming - * Date: 10/7/2016 - * Time: 3:01 PM - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ -using System; -using System.Windows.Forms; - -namespace RBXLegacyLauncher -{ - /// - /// Class with program entry point. - /// - internal sealed class Program - { - /// - /// Program entry point. - /// - [STAThread] - private static void Main(string[] args) - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new MainForm()); - } - - } -} diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher/Properties/AssemblyInfo.cs b/RBX2008/RBX2008Launcher/RBX2008Launcher/Properties/AssemblyInfo.cs deleted file mode 100644 index d620dcf..0000000 --- a/RBX2008/RBX2008Launcher/RBX2008Launcher/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,31 +0,0 @@ -#region Using directives - -using System; -using System.Reflection; -using System.Runtime.InteropServices; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("RBXLegacyLauncher")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("RBXLegacyLauncher")] -[assembly: AssemblyCopyright("Copyright 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// This sets the default COM visibility of types in the assembly to invisible. -// If you need to expose a type to COM, use [ComVisible(true)] on that type. -[assembly: ComVisible(false)] - -// The assembly version has following format : -// -// Major.Minor.Build.Revision -// -// You can specify all the values or you can use the default the Revision and -// Build Numbers by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.*")] diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher/RBX2008Launcher.csproj b/RBX2008/RBX2008Launcher/RBX2008Launcher/RBX2008Launcher.csproj deleted file mode 100644 index 8fd8672..0000000 --- a/RBX2008/RBX2008Launcher/RBX2008Launcher/RBX2008Launcher.csproj +++ /dev/null @@ -1,80 +0,0 @@ - - - - {F92FFBED-2767-4676-9711-BB89CDA58A43} - Debug - AnyCPU - WinExe - RBX2008Launcher - RBX2008Launcher - v4.0 - - - Properties - Resources\RBXLegacyIcon.ico - False - False - False - False - obj\$(Configuration)\ - 4 - - - x86 - 4194304 - False - Auto - 4096 - - - bin\Debug\ - True - Full - False - True - DEBUG;TRACE - - - bin\Release\ - False - None - True - False - TRACE - obj\ - - - - - 3.5 - - - - 3.5 - - - - - - 3.5 - - - - - - - MainForm.cs - - - - - - - MainForm.cs - - - - - - - \ No newline at end of file diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher/Resources/RBXLegacyIcon.ico b/RBX2008/RBX2008Launcher/RBX2008Launcher/Resources/RBXLegacyIcon.ico deleted file mode 100644 index d166bf8..0000000 Binary files a/RBX2008/RBX2008Launcher/RBX2008Launcher/Resources/RBXLegacyIcon.ico and /dev/null differ diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher/Resources/RBXLegacylogo.png b/RBX2008/RBX2008Launcher/RBX2008Launcher/Resources/RBXLegacylogo.png deleted file mode 100644 index 5504e8c..0000000 Binary files a/RBX2008/RBX2008Launcher/RBX2008Launcher/Resources/RBXLegacylogo.png and /dev/null differ diff --git a/RBX2008/RBX2008Launcher/RBX2008Launcher/app.config b/RBX2008/RBX2008Launcher/RBX2008Launcher/app.config deleted file mode 100644 index 970c80b..0000000 --- a/RBX2008/RBX2008Launcher/RBX2008Launcher/app.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/RBX2008/game.lua b/RBX2008/game.lua deleted file mode 100644 index 99abbab..0000000 --- a/RBX2008/game.lua +++ /dev/null @@ -1,15 +0,0 @@ -function Play(PlayerName) - local plr = game.Players:CreateLocalPlayer(0); - plr.Name = PlayerName; - game:GetService("Visit"); - game:GetService("RunService"):run(); - plr:LoadCharacter(); - while true do wait(0.001) - if plr.Character.Humanoid.Health == 0 then - wait(5); - plr:LoadCharacter(); - end - end -end - -_G.Play=Play; diff --git a/RBX2008/settings.lua b/RBX2008/settings.lua deleted file mode 100644 index 6c844e9..0000000 --- a/RBX2008/settings.lua +++ /dev/null @@ -1 +0,0 @@ -settings().Rendering.frameRateManager = 2; \ No newline at end of file diff --git a/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization.Designer.cs b/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization.Designer.cs index 2719ccb..6dc6719 100644 --- a/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization.Designer.cs +++ b/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization.Designer.cs @@ -39,6 +39,7 @@ namespace RBXLegacyLauncher System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CharacterCustomization)); this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // button1 @@ -61,12 +62,23 @@ namespace RBXLegacyLauncher this.button2.UseVisualStyleBackColor = true; this.button2.Click += new System.EventHandler(this.Button2Click); // + // button3 + // + this.button3.Location = new System.Drawing.Point(9, 132); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(242, 54); + this.button3.TabIndex = 33; + this.button3.Text = "Clothing"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.Button3Click); + // // CharacterCustomization // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.SystemColors.ControlLightLight; - this.ClientSize = new System.Drawing.Size(263, 137); + this.ClientSize = new System.Drawing.Size(263, 198); + this.Controls.Add(this.button3); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; @@ -77,6 +89,7 @@ namespace RBXLegacyLauncher this.Load += new System.EventHandler(this.CharacterCustomizationLoad); this.ResumeLayout(false); } + private System.Windows.Forms.Button button3; private System.Windows.Forms.Button button2; private System.Windows.Forms.Button button1; } diff --git a/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization.cs b/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization.cs index 04e260a..b8c5e41 100644 --- a/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization.cs +++ b/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization.cs @@ -58,5 +58,11 @@ namespace RBXLegacyLauncher CharacterCustomization_HatMenu chats = new CharacterCustomization_HatMenu(); chats.Show(); } + + void Button3Click(object sender, EventArgs e) + { + CharacterCustomization_ClothingMenu clothes = new CharacterCustomization_ClothingMenu(); + clothes.Show(); + } } } diff --git a/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization_ClothingMenu.Designer.cs b/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization_ClothingMenu.Designer.cs new file mode 100644 index 0000000..e17b9f5 --- /dev/null +++ b/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization_ClothingMenu.Designer.cs @@ -0,0 +1,145 @@ +/* + * Created by SharpDevelop. + * User: BITL + * Date: 6/17/2017 + * Time: 8:41 AM + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +namespace RBXLegacyLauncher +{ + partial class CharacterCustomization_ClothingMenu + { + /// + /// Designer variable used to keep track of non-visual components. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Disposes resources used by the form. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing) { + if (components != null) { + components.Dispose(); + } + } + base.Dispose(disposing); + } + + /// + /// This method is required for Windows Forms designer support. + /// Do not change the method contents inside the source code editor. The Forms designer might + /// not be able to load this method if it was changed manually. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CharacterCustomization_ClothingMenu)); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.textBox3 = new System.Windows.Forms.TextBox(); + this.textBox4 = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(53, 15); + this.label1.TabIndex = 0; + this.label1.Text = "T-Shirt ID"; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(12, 37); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(42, 15); + this.label2.TabIndex = 2; + this.label2.Text = "Shirt ID"; + // + // label3 + // + this.label3.Location = new System.Drawing.Point(12, 62); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(49, 15); + this.label3.TabIndex = 3; + this.label3.Text = "Pants ID"; + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(71, 6); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(100, 20); + this.textBox1.TabIndex = 4; + this.textBox1.TextChanged += new System.EventHandler(this.TextBox1TextChanged); + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(71, 32); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(100, 20); + this.textBox2.TabIndex = 5; + this.textBox2.TextChanged += new System.EventHandler(this.TextBox2TextChanged); + // + // textBox3 + // + this.textBox3.Location = new System.Drawing.Point(71, 59); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(100, 20); + this.textBox3.TabIndex = 6; + this.textBox3.TextChanged += new System.EventHandler(this.TextBox3TextChanged); + // + // textBox4 + // + this.textBox4.Location = new System.Drawing.Point(71, 86); + this.textBox4.Name = "textBox4"; + this.textBox4.Size = new System.Drawing.Size(100, 20); + this.textBox4.TabIndex = 7; + this.textBox4.TextChanged += new System.EventHandler(this.TextBox4TextChanged); + // + // label4 + // + this.label4.Location = new System.Drawing.Point(12, 89); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(49, 15); + this.label4.TabIndex = 8; + this.label4.Text = "Face ID"; + // + // CharacterCustomization_ClothingMenu + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ControlLightLight; + this.ClientSize = new System.Drawing.Size(179, 113); + this.Controls.Add(this.label4); + this.Controls.Add(this.textBox4); + this.Controls.Add(this.textBox3); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "CharacterCustomization_ClothingMenu"; + this.Text = "Clothing"; + this.Load += new System.EventHandler(this.CharacterCustomization_ClothingMenuLoad); + this.ResumeLayout(false); + this.PerformLayout(); + } + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox textBox4; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + } +} diff --git a/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization_ClothingMenu.cs b/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization_ClothingMenu.cs new file mode 100644 index 0000000..8b575ff --- /dev/null +++ b/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization_ClothingMenu.cs @@ -0,0 +1,120 @@ +/* + * Created by SharpDevelop. + * User: BITL + * Date: 6/17/2017 + * Time: 8:41 AM + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +using System.Windows.Forms; + +namespace RBXLegacyLauncher +{ + /// + /// Description of CharacterCustomization_ClothingMenu. + /// + public partial class CharacterCustomization_ClothingMenu : Form + { + public CharacterCustomization_ClothingMenu() + { + // + // The InitializeComponent() call is required for Windows Forms designer support. + // + InitializeComponent(); + + // + // TODO: Add constructor code after the InitializeComponent() call. + // + } + + void TextBox1TextChanged(object sender, EventArgs e) + { + int parsedValue; + if (int.TryParse(textBox1.Text, out parsedValue)) + { + if (textBox1.Text.Equals("")) + { + GlobalVars.Custom_TShirt = 0; + } + else + { + GlobalVars.Custom_TShirt = Convert.ToInt32(textBox1.Text); + } + } + else + { + GlobalVars.Custom_TShirt = 0; + } + } + + void TextBox2TextChanged(object sender, EventArgs e) + { + int parsedValue; + if (int.TryParse(textBox2.Text, out parsedValue)) + { + if (textBox2.Text.Equals("")) + { + GlobalVars.Custom_Shirt = 0; + } + else + { + GlobalVars.Custom_Shirt = Convert.ToInt32(textBox2.Text); + } + } + else + { + GlobalVars.Custom_Shirt = 0; + } + } + + void TextBox3TextChanged(object sender, EventArgs e) + { + int parsedValue; + if (int.TryParse(textBox3.Text, out parsedValue)) + { + if (textBox3.Text.Equals("")) + { + GlobalVars.Custom_Pants = 0; + } + else + { + GlobalVars.Custom_Pants = Convert.ToInt32(textBox3.Text); + } + } + else + { + GlobalVars.Custom_Pants = 0; + } + } + + void TextBox4TextChanged(object sender, EventArgs e) + { + int parsedValue; + if (int.TryParse(textBox4.Text, out parsedValue)) + { + if (textBox4.Text.Equals("")) + { + GlobalVars.Custom_Face = 0; + } + else + { + GlobalVars.Custom_Face = Convert.ToInt32(textBox4.Text); + } + } + else + { + GlobalVars.Custom_Face = 0; + } + } + + void CharacterCustomization_ClothingMenuLoad(object sender, EventArgs e) + { + textBox1.Text = GlobalVars.Custom_TShirt.ToString(); + textBox2.Text = GlobalVars.Custom_Shirt.ToString(); + textBox3.Text = GlobalVars.Custom_Pants.ToString(); + textBox4.Text = GlobalVars.Custom_Face.ToString(); + } + } +} diff --git a/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization_ClothingMenu.resx b/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization_ClothingMenu.resx new file mode 100644 index 0000000..8fcf2e5 --- /dev/null +++ b/RBXLegacyLauncher/RBXLegacyLauncher/CharacterCustomization_ClothingMenu.resx @@ -0,0 +1,6293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAYAEBAAAAAAIABoBAAAZgAAACAgAAAAACAAqBAAAM4EAAAwMAAAAAAgAKglAAB2FQAAQEAAAAAA + IAAoQgAAHjsAAICAAAAAACAAKAgBAEZ9AAAAAAAAAAAgACggBABuhQEAKAAAABAAAAAgAAAAAQAgAAAA + AABABAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////95eXn/1dXV/25ubv/Q0ND/iYmJ/6Wl + pf+hoaH/hYWF/4mJif/V1dX/srKy/9zc3P//////////////////////f39///////9ubm7/0NDQ/4mJ + if/FxcX/sbGx/5WVlf+JiYn/1dXV/5SUlP/Kysr//////////////////////8/Pz///////+vr///Ly + ///X1///zs7//+Li///39///////////////////6+v/////////////xsb//5mZ//+MjP//+Pj//4mJ + //9hYf//q6v//9DQ//+8vP//dnb//4GB///l5f//2Nj//5CQ//+Rkf//5ub//66u///x8f//mZn//4mJ + ///y8v//mpr//29v//96ev//k5P//0pK///x8f//nZ3//5iY////////l5f//+rq//+rq///9PT//8vL + ///19f//ra3//1BQ///9/f//lpb//9vb//+Njf//h4f///39////////t7f//8vL////////qKj///f3 + //+dnf//kZH//+bm//9jY///+vr//4eH//++vv//iIj//4mJ///5+f///////8zM//+fn////v7//6Wl + ///6+v//np7//6ys///V1f//jY3///j4//+MjP//zs7//2Ji///t7f///v7//5yc///7+///4+P//4uL + //+iov///Pz//83N///Pz///2Nj//21t//+hof//oaH//4uL//+YmP//tLT//7Gx///Hx///ior//5iY + ///c3P//w8P//6Cg//+goP//nJz//7+////9/f///////////////////////9TU//+srP////////Dw + ///a2v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//KAAAACAAAABAAAAAAQAgAAAAAACAEAAAAAAAAAAA + AAAAAAAAAAAAAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////3t7 + e/9ra2v/f39//9fX1/97e3v/a2tr/39/f//X19f/u7u7/2tra/9zc3P/w8PD/5+fn///////e3t7/8PD + w/+7u7v/a2tr/4uLi//r6+v//////3t7e//Dw8P///////////////////////////////////////// + ////////T09P/6+vr////////////09PT/+Dg4P/6+vr//////9PT0//r6+v/6+vr/+vr6//Z2dn/39/ + f/8nJyf/r6+v/09PT/+vr6//8/Pz/+vr6///////T09P/6+vr/////////////////////////////// + //////////////////9PT0//r6+v////////////T09P/4ODg//r6+v//////09PT/+vr6//x8fH/9fX + 1/9/f3///////09PT/+vr6//T09P/6+vr//z8/P/6+vr/7u7u/9XV1f/n5+f/+vr6/////////////// + /////////////////////////////09PT/+vr6////////////97e3v/a2tr/39/f//X19f/u7u7/2tr + a/+Li4v/6+vr/8fHx/9/f3//a2tr/+vr6/+7u7v/a2tr/4uLi//r6+v/e3t7/8PDw//b29v/w8PD//// + ////////////////////////////////////////e3t7/8PDw/////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////+zs + ///Nzf///////9XV//+Li///lJT//6io//+8vP//z8///+Pj///6+v////////////////////////// + ////////9fX//7m5/////////////////////////////7u7//+Pj///j4///4+P//+ysv////////// + ///o6P//Ojr//zo6//83N///YGD//6+v//+srP//mJj//4OD//9vb///Q0P//5SU//+lpf//vb3///// + //////////////z8//9TU///V1f//1ZW///k5P//////////////////YGD//5mZ//+vr///qqr//0ZG + ////////5eX//zk5///IyP//8/P//yIi//+env/////////////////////////////i4v//Hx///1ZW + //9MTP//l5f////////+/v//aWn//5iY////////ysr//z8///+dnf////////////9eXv//4+P///// + ///+/v//PT3//+Hh//84OP//zs7/////////////Pz///1JS//93d///b2///0ZG//8zM////v7//4yM + //8MDP//+vr///v7//9ubv//bW3//4KC//97e//////////////+/v//WVn//62t/////////////1tb + ///m5v////////////8sLP//ODj//9TU//////////////39//8tLf//Ojr//7m5//8+Pv//9fX//0lJ + ///U1P//i4v//wQE///Q0P////////////+Zmf//ZGT///7+/////////////5CQ//93d/////////// + ////////WFj//+jo/////////////z4+///Z2f/////////////W1v//Q0P//x0d///5+f///////y4u + //81Nf//dHT///v7////////fHz//1ZW///7+//////////////////////////////Cwv//SEj///v7 + //////////////////9WVv//6+v/////////////8PD/////////////0tL//w4O//+env//QkL///// + //////////////b2/////////v7//4iI//8yMv//dHT//1dX///6+v//////////////////5ub//zQ0 + ///q6v///////////////////////1NT///u7v////////j4//8/P///bm7///Dw////////3t7//1pa + //8XF///+fn///////+6uv//x8f///b2////////0dH//yQk///k5P//MjL//+fn//////////////// + ///u7v//S0v//6Cg////////////////////////T0////Dw/////////Pz//z8///+wsP//Njb//7u7 + /////////////xwc///39///+/v//yUl//91df//JSX//97e///k5P//Rkb//z4+///Q0P////////// + ///////////////////6+v//aGj//3d3///9/f////////////9NTf//8/P/////////////Pj7///// + //+zs///goL/////////////Ghr///7+///n5///Hx///3Jy//9TU////////5ub//8LC///uLj///// + /////////////+jo///09P/////////////+/v//j4///1FR///y8v///////0pK///39/////////// + //89Pf//xsb//zc3///W1v////////////8fH/////////39///g4P//vr7//+np///+/v//R0f//5qa + ///////////////////+/v//UFD//0RE///x8f/////////////+/v//UVH//5aW////////SEj///n5 + /////////////zc3//9WVv//6en//////////////////x0d///R0f//6ur///39/////////v7//3Jy + //9PT///R0f//+Tk/////////////6am//9wcP//urr//0BA///t7f///////319//90dP///v7///// + //9ERP///Pz/////////////////////////////3t7//4SE//86Ov//YGD//3Jy//9YWP//RUX//0ND + //83N///hIT////////MzP//OTn//7Ky///p6f//ODj///T0////////v7///zw8//95ef//bGz///7+ + /////////////0JC//9+fv//e3v//3h4//90dP//cHD//0JC//9UVP//rKz///f3//////////////// + ///////////////////////////////////z8///YWH//yUl//+/v///////////////////xcX//3Bw + ///9/f//////////////////z8///8PD///Gxv//yMj//8vL///Nzf//8PD///////////////////// + ////////////////////////////////////////////////////////zc3///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAA + AAAAAAAAAAAAAAAAAAD//////v7+/////////////v7+///////+/v7////////////+/v7///////// + ///+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+//// + /////////v7+///////+/v7////////////+/v7////////////+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+/////////////v7+//////+qqqr/X19f/19f + X/9fX1//ZGRk//////+qqqr/X19f/19fX/9fX1//ZGRk//7+/v/+/v7/goKC/19fX/9fX1//ZGRk//7+ + /v+qqqr/3Nzc//7+/v+qqqr/ZGRk//7+/v/+/v7/goKC/19fX/9fX1//3Nzc//7+/v/+/v7/+vr6/19f + X/+0tLT///////7+/v/+/v7///////7+/v/+/v7///////7+/v////////////////////////////// + //93d3f/BgYG/9/f3//f39//4ODg//////93d3f/BgYG/9/f3//f39//4ODg//////+IiIj/DQ0N/9/f + 3//f39//ODg4//////93d3f/rq6u/9/f3/9oaGj/BwcH//////+IiIj/DQ0N/9/f3//f39//aGho//// + ////////9/f3/wAAAP+Hh4f////////////////////////////////////////////+/v7//v7+//7+ + /v/+/v7//v7+//7+/v93d3f/BwcH//7+/v/+/v7//v7+//7+/v93d3f/BAQE/5+fn//S0tL//v7+//7+ + /v93d3f/BwcH//7+/v/MzMz/Kioq//7+/v93d3f/SkpK/19fX/8sLCz/BwcH//7+/v93d3f/BwcH//7+ + /v/+/v7//v7+//7+/v/+/v7/9/f3/wAAAP+Hh4f//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v///////v7+/////////////v7+//////93d3f/BwcH///////+/v7///////////93d3f/BAQE/5+f + n//S0tL///////7+/v93d3f/BwcH//7+/v/MzMz/oqKi//7+/v93d3f/x8fH//7+/v93d3f/BwcH//7+ + /v93d3f/BwcH//7+/v/+/v7///////7+/v/+/v7/f39//ywsLP99fX3/3Nzc//7+/v/+/v7///////7+ + /v/+/v7///////7+/v////////////////////////////////93d3f/BwcH//////////////////// + //93d3f/BgYG/9/f3//f39//4ODg//////+IiIj/DQ0N/9/f3//f39//aGho//////+IiIj/tbW1/9/f + 3/9oaGj/Hx8f//////+IiIj/DQ0N/9/f3//f39//aGho//////+IiIj/DQ0N/+jo6P/u7u7/UFBQ//// + ///////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v93d3f/BwcH//7+ + /v/+/v7//v7+//7+/v+qqqr/X19f/19fX/9fX1//ZGRk//7+/v/+/v7/goKC/19fX/9fX1//3Nzc//7+ + /v/+/v7/goKC/19fX/9fX1//3Nzc//7+/v/+/v7/goKC/19fX/9fX1//3Nzc//7+/v+qqqr/ZGRk//7+ + /v/+/v7/h4eH//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+/////////////v7+//// + //93d3f/BwcH///////+/v7////////////+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v////////////// + ///////////////////u7u7/4ODg//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/9XV + /v+Pj/7//v7+//7+/v/Y2P7/fHz+/0hI/v9aWv7/bm7+/4GB/v+Wlv7/qan+/729/v/R0f7/5ub+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7/mZn+/7Oz/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v///////v7+/9ra///X1///19f+/9fX///X1/7/19f//+rq///+/v7///////// + ///+/v7/zs7//xQU/v8MDP7/XV3//zU1/v8JCf7/VVX//5aW/v+Hh/7/c3P//19f/v9LS/7/Nzf//yMj + /v8PD/7/AwP//+vr/v/19f7/oaH///39/v/+/v7///////7+/v/+/v7///////7+/v+pqf7/Dg7//xQU + /v9VVf7/5eX///7+/v/+/v7///////7+/v///////////xUV//8GBv//Bwf//wcH//8HB///AwP//3R0 + ///////////////////Jyf//EhL//35+///c3P//JSX//wYG///n5/////////////////////////// + ///////////////////9/f//IyP//6Cg//9AQP//BAT//1pa///29v///////////////////////8DA + //8MDP//trb//+rq//9dXf//ERH//5aW///8/P/////////////+/v7//v7+/w8P/v/Pz/7//v7+//7+ + /v/+/v7/dXX+/2Zm/v/+/v7//v7+/8TE/v8PD/7/iIj+//7+/v/+/v7/yMj+/wAA/v8+Pv7/7u7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7/ZGT+/wUF/v9FRf7/29v+/zg4/v83N/7/5ub+//7+ + /v/+/v7/09P+/xER/v+dnf7//v7+//7+/v/+/v7/urr+/yMj/v86Ov7/6+v+//7+/v///////v7+/w8P + ///V1f///v7+///////+/v7/g4P//1hY///+/v7/vr7//w0N//+Rkf7///////7+/v/+/v7/zc3//xER + /v9HR/7/Kyv//9bW/v+xsf7/hob//1tb/v8wMP7/tbX///7+/v/o6P7/LS3//xYW/v/39/7///////f3 + /v9cXP7/HR3//83N/v/j4/7/HR3//4CA/v/+/v7///////7+/v/+/v7/+fn//zw8/v9UVP7//v7///7+ + /v///////f3//wwM///V1f//////////////////kZH//0lJ//+4uP//DAz//5mZ//////////////// + ////////x8f//xgY//+Skv//AQH//0xM//8AAP//UVH//35+//9ERP//b2////////9OTv//DQ3//wEB + ///o6P/////////////+/v//hob//w0N//8lJf//ZGT///7+///////////////////+/v//b2///ykp + ///y8v/////////////+/v7//f3+/wwM/v/b2/7//v7+//7+/v/+/v7/n5/+/xcX/v8LC/7/o6P+//7+ + /v/+/v7//v7+//7+/v/+/v7/sbH+/wAA/v8dHf7/srL+//Ly/v8AAP7/6Oj+//7+/v9sbP7/MDD+//7+ + /v/n5/7/Kyv+/wAA/v+pqf7//v7+//7+/v/+/v7//v7+/6+v/v9WVv7/+vr+//7+/v/+/v7//v7+//7+ + /v+lpf7/Dg7+/9bW/v/+/v7//v7+//7+/v//////+/v+/wkJ///c3P///v7+///////+/v7/rKz//wYG + //+qqv7////////////+/v7///////j4/v+AgP7/Bwf//xkZ/v/x8f7///////7+/v8PD/7/RUX//0lJ + /v8YGP7/wcH///7+/v/+/v7/6ur//y4u/v9DQ/7/9/f///7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7//////9LS/v8MDP7/rKz///7+/v/+/v7///////7+/v//////+/v//wgI///g4P////////// + ////////w8P//7Ky////////////////////////w8P//yoq//8qKv//goL//ygo//////////////// + //+2tv//iYn//21t///j4///////////////////2Nj//0BA//8AAP//SEj///X1//////////////// + ////////////////////////7+///yYm//92dv///v7////////////////////////+/v7/+fn+/wUF + /v/h4f7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/v7/7/RET+/wAA/v+Dg/7/rq7+/ysr + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//39/v9zc/7/BQX+/1BQ/v/R0f7/Nzf+/0ND + /v/09P7//v7+//7+/v/+/v7//v7+//7+/v/9/f7/T0/+/z4+/v/7+/7//v7+//7+/v/+/v7//v7+//7+ + /v//////+fn+/wQE///l5f///v7+///////+/v7/paX//19f/v+Bgf7/9fX///7+/v/+/v7//v7//7W1 + /v8tLf7/CQn//ykp/v/9/f7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/d3f7/SUn//xgY + /v/8/P7/rKz//wcH/v/Jyf7///////7+/v/+/v7///////7+/v/+/v7/gYH//xER/v+4uP7///////7+ + /v/+/v7///////7+/v//////9/f//wEB///n5///////////////////dnb//zIy//81Nf//IyP//7i4 + ///+/v/////////////7+///e3v//wAA///s7P////////////8cHP//Hx///zAw//92dv//5eX///// + ////////kZH//0RE///Pz///Dw///6Sk/////////////////////////////////////////v7//6io + //8NDf//kpL///7+///////////////////+/v7/9/f+/wAA/v/q6v7//v7+//7+/v/+/v7/fX3+/11d + /v/7+/7/jo7+/wwM/v9oaP7//v7+//7+/v/+/v7/qan+/wAA/v/29v7//v7+//b2/v8AAP7/ra3+/6qq + /v8iIv7/ODj+//7+/v/+/v7/R0f+/3Fx/v8bG/7/hYX+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/Hx/7/GBj+/2ho/v/6+v7//v7+//7+/v//////9PT+/wAA///t7f///v7+//// + ///+/v7/hob//1ZW/v/+/v7//////5mZ/v87O/7///////7+/v/+/v7/paX//wAA/v/9/f7//////+Dg + /v8AAP7/nJz//6ys/v8KCv7/y8v///7+/v/z8/7/CAj//w4O/v9mZv7//v7///7+/v/+/v7///////7+ + /v/+/v7//Pz///7+/v/+/v7///////7+/v/+/v7/4eH//y8v/v9CQv7/7Oz///7+/v//////8fH//wAA + ///w8P//////////////////jo7//09P////////7u7//z8///9hYf//////////////////oqL//wkJ + /////////////+Tk//9aWv//ODj//xUV//91df////////////+ysv//AAD//0hI///6+v////////// + ///////////////////j4///OTn//+Tk//////////////////////////////Ly//9NTf//JSX//9jY + ///+/v7/7+/+/wAA/v/z8/7//v7+//7+/v/+/v7/lJT+/0ZG/v/Z2f7/KCj+/0VF/v/t7f7//v7+//7+ + /v/+/v7/np7+/xER/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/9/f7//v7+//7+/v9RUf7/Kyv+//Hx + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v9MTP7/Fhb+/yMj/v/g4P7//v7+//7+/v/+/v7//v7+//7+ + /v9xcf7/Gxv+/9zc/v//////6+v+/wAA///29v///v7+///////+/v7/nJz//wUF/v8DA/7/cHD///v7 + /v/+/v7///////7+/v/+/v7/l5f//xoa/v/+/v7///////7+/v/+/v7///////7+/v/+/v7//f3//2xs + /v8XF/7/Cgr//42N/v/9/f7///////7+/v/+/v7//////6Oj/v8UFP7/5+f//2dn/v8eHv7/2tr///7+ + /v/+/v7//v7//3l5/v8YGP7/19f///7+/v//////6ur//wAA///5+f//////////////////3t7//7u7 + ///g4P///v7///////////////////7+///V1f//VFT//wQE//80NP//TU3//2dn//+AgP//mZn//7Ky + ///Ly///a2v//yMj///g4P//wsL//x8f//9JSf//6Oj/////////////5+f//xMT//+np/////////39 + //9tbf//Ghr//9XV///+/v//gYH//xQU///T0//////////////+/v7/5eX+/wAA/v/7+/7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/j4/7/i4v+/zEx/v8HB/7/T0/+/6am/v+xsf7/mJj+/35+ + /v9lZf7/S0v+/zIy/v8YGP7/Jyf+/+Pj/v/+/v7//v7+/+7u/v9UVP7/GRn+/7q6/v/+/v7/VFT+/1BQ + /v/+/v7//v7+//7+/v/9/f7/dXX+/xUV/v9ubv7/ERH+/83N/v/+/v7//v7+//7+/v//////5OT+/wAA + //++vv//ubn+/7i4//+0tP7/sbH//66u/v+qqv7/lJT//0BA/v8FBf7/QED//5qa/v/t7f7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7/m5v//w0N + /v9QUP7/EhL//+bm/v/+/v7///////7+/v/+/v7//v7//319/v8ODv7/yMj///7+/v/+/v7///////7+ + /v//////4+P//yAg//8mJv//Jib//ysr//8sLP//MDD//zIy//80NP//QED//4uL///i4v////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////9bW//8wMP//oaH///////////////////////////////////7+///h4f////////// + ///////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/5+f7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+/////////////v7+///////+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v///////v7+/////////////v7+///////+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+/////////////v7+//// + ///+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+ + /v///////////////////////v7+//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/////////////v7+///////+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+ + /v/+/v7///////7+/v/+/v7///////7+/v/+/v7///////7+/v///////////////////////v7+//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA + //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA + AAAAAP//AAAAAAAA//8oAAAAQAAAAIAAAAABACAAAAAAAABCAAAAAAAAAAAAAAAAAAAAAAAA//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////8/Pz/9/f3//f39//39/f/9/f3//f39//6+v + r///////z8/P/39/f/9/f3//f39//39/f/9/f3//r6+v////////////z8/P/39/f/9/f3//f39//39/ + f/+vr6///////8/Pz/+vr6/////////////Pz8//f39//6+vr////////////8/Pz/9/f3//f39//39/ + f/+vr6///////////////////////8/Pz/9/f3//r6+v//////////////////////////////////// + //////////////////////////////////////////////////////////////////+fn5//AAAA/y8v + L/9/f3//f39//39/f/+vr6///////5+fn/8AAAD/Ly8v/39/f/9/f3//f39//6+vr///////z8/P/09P + T/8vLy//f39//39/f/9PT0//X19f//////+fn5//X19f////////////n5+f/wAAAP9fX1///////8/P + z/9PT0//Ly8v/39/f/9/f3//f39//6+vr/////////////////+fn5//AAAA/19fX/////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////n5+f/wAAAP9fX1////////////////////////////+fn5//AAAA/19fX/////////////// + /////////////5+fn/8AAAD/X19f////////////n5+f/19fX///////n5+f/y8vL/9/f3//f39//09P + T/8AAAD/X19f//////+fn5//AAAA/19fX////////////8/Pz/+vr6//////////////////n5+f/wAA + AP9fX1////////////////////////////////////////////////////////////////////////// + /////////////////////////////5+fn/8AAAD/X19f////////////////////////////n5+f/wAA + AP8vLy//f39//6+vr/////////////////+fn5//AAAA/19fX///////z8/P/09PT/9fX1///////5+f + n/8vLy//f39//39/f/9PT0//AAAA/19fX///////n5+f/wAAAP9fX1////////////////////////// + /////////////5+fn/8AAAD/X19f//////////////////////////////////////////////////// + //////////////////////////////////////////////////+fn5//AAAA/19fX/////////////// + /////////////5+fn/8AAAD/Ly8v/39/f/+vr6//////////////////n5+f/wAAAP9fX1///////8/P + z/9/f3//r6+v//////+fn5//X19f////////////n5+f/wAAAP9fX1///////5+fn/8AAAD/X19f//// + /////////////////////////////8/Pz/9PT0//Ly8v/39/f/+vr6////////////////////////// + ////////////////////////////////////////////////////////////////////////n5+f/wAA + AP9fX1////////////////////////////+fn5//AAAA/19fX////////////////////////////5+f + n/8AAAD/X19f////////////z8/P/6+vr///////n5+f/19fX////////////5+fn/8AAAD/X19f//// + //+fn5//AAAA/19fX////////////8/Pz/+vr6///////8/Pz/9PT0//Ly8v/6+vr//Pz8//f39//6+v + r/////////////////////////////////////////////////////////////////////////////// + /////////////5+fn/8AAAD/X19f////////////////////////////n5+f/wAAAP8vLy//f39//39/ + f/9/f3//r6+v///////Pz8//T09P/y8vL/9/f3//f39//39/f/+vr6///////8/Pz/9/f3//f39//39/ + f/9PT0//Ly8v/6+vr///////z8/P/09PT/8vLy//f39//39/f/9/f3//r6+v//////+fn5//AAAA/19f + X////////////5+fn/9fX1////////////////////////////////////////////////////////// + //////////////////////////////////+fn5//AAAA/19fX////////////////////////////8/P + z/9/f3//f39//39/f/9/f3//f39//6+vr////////////8/Pz/9/f3//f39//39/f/+vr6////////// + ////////z8/P/39/f/9/f3//f39//6+vr//////////////////Pz8//f39//39/f/9/f3//r6+v//// + ////////z8/P/39/f/+vr6/////////////Pz8//r6+v//////////////////////////////////// + ////////////////////////////////////////////////////////n5+f/wAAAP9fX1////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////8/P + z/9/f3//r6+v//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////+0tP//R0f//+/v/////////////9ra//9+fv//IyP//w0N//8gIP//NDT//0hI + //9bW///cHD//4OD//+Xl///qqr//76+///S0v//7u7///////////////////////////////////// + ////////////////////////////////////////2dn//zQ0//+1tf////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+srP//BQX//wAA//8uLv//oKD//zg4//8AAP//BAT//0pK + //93d///Y2P//09P//86Ov//Jyf//xIS//8BAf//AAD//wAA//8AAP//AAD//0lJ/////////////87O + ///w8P//////////////////////////////////////////////////5+f//yIi//8CAv//AAD//1ZW + ///m5v/////////////////////////////////////////////Ozv//Hx///x8f//8fH///Hx///x8f + //8fH///Hx///x8f//+trf////////////////////////////+lpf//AwP//zU1//+urv//Dg7//wAA + //8GBv//k5P//+np////////////////////////////////////////+/v//+np///V1f//wMD//01N + //8MDP//+vr//729//8MDP//KSn//9zc////////////////////////////////////////8/P//zQ0 + //8ODv//zc3//4+P//8MDP//EBD//5iY///9/f//////////////////////////////////w8P//wAA + //9HR///X1///19f//9fX///X1///1dX//8AAP//lJT///////////////////////+fn///AgL//zw8 + ///x8f///////8/P//8YGP//BQX//8PD//////////////////////////////////////////////// + //////////////////+lpf//AAD//35+//8JCf//LCz//xQU//8TE///v7////////////////////// + ////////+vr//0lJ//8FBf//u7v/////////////4OD//0xM//8AAP//Ozv//9TU//////////////// + /////////////7+///8AAP//v7/////////////////////////z8///AAD//4aG//////////////// + //+Xl///AQH//0ND///z8///////////////////a2v//wAA//8ICP//rq7///////////////////// + ////////////////////////////////////////5eX//wAA//8AAP//Nzf//+3t///d3f//Kyv//wUF + //+amv///////////////////v7//2Fh//8AAP//oqL/////////////////////////////qan//xgY + //8FBf//np7///////////////////////+/v///AAD//8fH/////////////////////////v7//wMD + //93d/////////////+Pj///AAD//0tL///29v///////////////////////2ho//8VFf//NTX//wIC + //+Wlv////////Ly///Jyf//np7//3Jy//9HR///Y2P//////////////////5+f//8BAf//Hx////Hx + //////////////Hx//9KSv//AAD//3Bw///7+////////35+//8AAP//hob///////////////////// + /////////////+/v//8lJf//FRX//+Li////////////////////////urr//wAA///IyP////////// + //////////////////8QEP//aWn///////+Hh///AAD//1JS///5+f////////////////////////// + //9hYf//Hx////Hx//8gIP//AAD//0hI//8BAf//AAD//wAA//8ICP//ExP//w8P///7+////////5KS + //8BAf//CQn//woK///5+f///////////////////Pz//3R0//8AAP//SUn//46O//8AAP//aWn///7+ + //////////////////////////////39//9PT///AwP//729/////////////////////////////7e3 + //8AAP//ycn/////////////////////////////HR3//1tb//9/f///AAD//1pa///7+/////////// + ////////////////////////X1///xcX//89Pf//AAD//0JC//+zs///AAD//3Fx///a2v///Pz//6Sk + //8AAP//yMj///////+Skv//AQH//w8P//8AAP//wsL/////////////////////////////np7//wYG + //8AAP//Tk7///v7//////////////////////////////////+Fhf//AAD//4qK//////////////// + //////////////////+3t///AAD//9DQ/////////////////////////////yws//8LC///AAD//2Nj + ///8/P//////////////////////////////////+Pj//z8///8AAP//ERH//52d///+/v//8vL//wAA + //+Hh/////////7+//+Cgv//AAD//4uL/////////////5qa//8BAf//AAD//4KC//////////////// + ///////////////////Cwv//TU3///X1//////////////////////////////////+5uf//AgL//1RU + ///+/v//////////////////////////////////sbH//wAA///Q0P////////////////////////// + //86Ov//AAD//2tr///9/f//////////////////////////////////xMT//yoq//8AAP//HR3//+fn + //////////////////8PD///Kyv//319//9UVP//AAD//1BQ///x8f//////////////////oKD//wIC + //8tLf//8/P///////////////////////////////////////////////////////////////////// + ///g4P//FBT//ykp///x8f///////////////////////////////////////7Cw//8AAP//09P///// + ////////////////////////SEj//3V1///+/v/////////////////////////////w8P//aWn//wEB + //8bG///Jib//zIy////////////////////////Xl7//yAg//8BAf//AgL//4OD///9/f////////// + //////////////7+//9PT///AAD//zo6///x8f////////////////////////////////////////// + ///////////////////39///NDT//w0N///W1v////////////////////////////////////////// + //+wsP//AAD//9fX/////////////////////////////8PD//////////////////////////////// + //+vr///Gxv//wEB//9paf//8PD//09P//84OP//////////////////////////////////9/f//+Pj + /////////////////////////////8PD//84OP//AAD//yIi//8FBf//Njb//+7u//////////////// + ////////////////////////////////////////ZGT//wAA//+srP////////////////////////// + ////////////////////////qKj//wAA///X1/////////////////////////////////////////// + ///////////////////9/f//nJz//xsb//8AAP//S0v//9TU//9ISP//Ozv///////////////////// + /////////////////////////////////////////Pz//2Bg//8AAP//AQH//46O///6+v//rq7//wcH + //8xMf//7Oz/////////////////////////////////////////////nJz//wAA//9ubv////////// + /////////////////////////////////////////////6io//8AAP//3Nz///////////////////// + ///z8///f3///39///+Wlv//+fn////////////////////////19f//hYX//w4O//8DA///Dg7//z8/ + ///////////////////////////////////////////////////////////////////o6P//YGD//wEB + //8gIP//+vr///////9ZWf//AAD//5+f/////////////////////////////////////////////729 + //8REf//HBz//83N//////////////////////////////////////////////////+mpv//AAD//9/f + ////////////////////////8PD//wAA//8AAP//AAD//yws///ExP////////////////////////// + ///q6v//bm7//wYG//8JCf//6en//////////////////3Z2//93d///h4f//5iY///b2/////////// + //////////////////84OP//Nzf///////+Xl///AAD//29v//////////////////////////////// + ////////////////////////2dn//yUl//8KCv//rKz///////////////////////////////////// + ////////n5///wAA///f3/////////////////////////f3//8AAP//g4P//7Oz//8dHf//AQH//2ho + ///v7/////////////////////////////87O///AAD//+vr//////////////////8HB///AgL//wAA + //8AAP//AwP//1ZW///Q0P/////////////u7v//AwP//4CA//+0tP//AwP//1BQ///8/P////////// + ///////////////////////////////////////////////////t7f//QUH//wEB//+EhP///v7///// + /////////////////////////////5+f//8AAP//5ub////////////////////////+/v//AAD//3t7 + ////////8vL//21t//8CAv//GRn//+fn////////////////////////ODj//wAA///09P////////// + ///w8P//AAD//4yM///4+P//3t7//z09//8AAP//qan/////////////p6f//wAA//+Xl///Cwv//zc3 + ///19f////////////////////////////////////////////////////////////////////////n5 + //9kZP//AAD//1pa///39/////////////////////////////+cnP//AAD//+jo//////////////// + /////////////wcH//90dP//////////////////enr//wAA///z8////////////////////////zMz + //8AAP///Pz/////////////2tr//wAA//9/f///6en//9zc//8LC///T0///////////////////11d + //8DA///Fhb//yIi///p6f////////////////////////////////////////////////////////// + /////////////////////////v7//4yM//8CAv//Nzf//+bm////////////////////////l5f//wAA + ///o6P////////////////////////////8PD///bW3//////////////v7//1VV//8XF/////////// + //////////////////8xMf//Bgb//////////////////8TE//8AAP//AAD//wAA//8DA///Dw///+Tk + //////////////z8//8VFf//AAD//xMT///Y2P////////////////////////////////////////// + //+mpv//1NT/////////////////////////////////////////////sbH//wwM//8cHP//zs7///// + /////////////5eX//8AAP//8PD/////////////////////////////Fhb//2Rk////////+Pj//2Bg + //8AAP//YGD/////////////////////////////Kir//xAQ///////////////////5+f//1NT//7Gx + //+Ojv//a2v//6io///////////////////IyP//AAD//wgI///Cwv////////////////////////// + ///////////////////i4v//Dg7//xQU///Ozv////////////////////////////////////////// + ///Ozv//CQn//woK///Y2P////////////+Tk///AAD///Dw/////////////////////////////x4e + //9cXP//6Oj//zo6//8AAP//e3v///39/////////////////////////////ygo//8ZGf////////// + ///////////////////////////////////////////////////9/f//VVX//wAA//+goP////////// + ///////////////////////////////////+/v//SUn//wkJ//8eHv//EBD//8jI//////////////// + ///////////////////+/v//bm7//wAA//91df//////////////////kJD//wAA///x8f////////// + //////////////////8mJv//CAj//wUF//8KCv//qKj///////////////////////////////////// + //8gIP//IiL////////////////////////////////////////////////////////9/f//ZWX//wAA + //8BAf//Kyv//9LS////////////////////////////////////////oaH//wAA//+MjP//4eH//yMj + //8NDf//wMD/////////////////////////////dnb//wAA//9tbf///v7//////////////////5CQ + //8AAP//9/f/////////////////////////////Wlr//1ZW//95ef//0ND///////////////////// + ////////////////////////Hh7//xUV//+Wlv//sLD//8nJ///i4v//+fn///////////////////// + ///9/f//ZWX//wAA//+EhP//ubn//xgY//8ICP//lpb///7+////////////////////////5+f//xER + //84OP///Pz////////k5P//Jyf//woK//+6uv//////////////////f3///wAA//9lZf///v7///// + //////////////////+Kiv//AAD///f3//////////////////////////////////////////////// + /////////////////////////////9zc//+Cgv//KCj//wAA//8AAP//AAD//wAA//8AAP//AAD//wEB + //8VFf//Li7//0hI//9hYf//TU3//wAA//+IiP/////////////p6f//Skr//wAA//9RUf//7e3///// + /////////////1FR//8HB///1tb//////////////////+jo//8sLP//Bwf//7Oz////////hob//wAA + //9eXv///Pz/////////////////////////////iIj//wAA///6+v////////////////////////// + ///////////////////////////////////o6P//kpL//zc3//8AAP//AQH//zw8//+Wlv//6+v///Hx + ///X1///vb3//6Sk//+Li///cnL//1hY//8+Pv//JSX//wwM//+Li/////////////////////////7+ + //+Pj///Bwf//x0d///Cwv///////6mp//8AAP//hob/////////////////////////////7Oz//zEx + //8FBf//Xl7//wAA//9WVv//+/v//////////////////////////////////4iI//8AAP////////n5 + ///39///9fX///Dw///w8P//6en//+jo///k5P//3d3//6Gh//9HR///AwP//wAA//8tLf//h4f//+Dg + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////8/P//8oKP//AwP//3l5//8WFv//NDT///v7//////////////// + ///////////////////u7v//Njb//wAA//9PT///+fn///////////////////////////////////// + //+AgP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//ICD//3l5 + ///T0/////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////9PT//2Rk//8AAP//Bgb//9HR + //////////////////////////////////////////////Hx//94eP//+Pj///////////////////// + ////////////////////////v7///4CA//+IiP//iIj//4mJ//+QkP//kJD//5KS//+Xl///l5f//5qa + //+fn///xcX///39//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////qqr//42N//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAIAAAAAAAQAAAQAgAAAAAAAACAEAAAAAAAAA + AAAAAAAAAAAAAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////z8/P/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/7+/v/////////////////8/Pz//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP+/v7////////////////////////////8/Pz//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/v7+//////////////////z8/P/8AAAD/v7+///////////////////// + ////////Pz8//wAAAP8AAAD/AAAA/7+/v////////////////////////////z8/P/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/v7+//////////////////////////////////////////////////z8/ + P/8AAAD/AAAA/wAAAP+/v7////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////Pz8//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/v7+//////////////////z8/ + P/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/7+/v/////////////// + /////////////z8/P/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+/v7////////// + ////////Pz8//wAAAP+/v7////////////////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///// + ////////////////////////Pz8//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+/v7////////// + ////////////////////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///////////////////// + ////////////////////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////// + /////////////////////////////////////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////// + //////////////////8/Pz//AAAA/7+/v/////////////////8/Pz//AAAA/7+/v/////////////// + /////////////z8/P/8AAAD/AAAA/wAAAP+/v7//////////////////Pz8//wAAAP8AAAD/AAAA/7+/ + v////////////////////////////z8/P/8AAAD/v7+///////////////////////////////////// + //8/Pz//AAAA/wAAAP8AAAD/v7+///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////z8/ + P/8AAAD/AAAA/wAAAP+/v7////////////////////////////////////////////////////////// + //8/Pz//AAAA/wAAAP8AAAD/v7+///////////////////////////////////////////////////// + ////////Pz8//wAAAP8AAAD/AAAA/7+/v////////////////////////////z8/P/8AAAD/v7+///// + /////////////z8/P/8AAAD/v7+/////////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/ + v/////////////////8/Pz//AAAA/wAAAP8AAAD/v7+/////////////////////////////Pz8//wAA + AP+/v7///////////////////////////////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////// + /////////////////////////////////////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////// + //////////////////////////////////////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///// + ////////////////////////Pz8//wAAAP+/v7//////////////////Pz8//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/v7+//////////////////z8/P/8AAAD/AAAA/wAA + AP+/v7////////////////////////////////////////////////////////////////////////// + ////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8/Pz//AAAA/wAAAP8AAAD/v7+///////////////////////////////////////////////////// + ////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////////////////////////////////////// + /////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////////////////////////8/Pz//AAAA/7+/ + v/////////////////8/Pz//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP+/v7//////////////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////////////////////// + //////////////////////////////////////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////// + //////////////////////////////////////////////////8/Pz//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/7+/v///////////////////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/ + v/////////////////8/Pz//AAAA/wAAAP8AAAD/v7+//////////////////z8/P/8AAAD/v7+///// + ////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////////8/Pz//AAAA/wAA + AP8AAAD/v7+///////////////////////////////////////////////////////////////////// + /////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////////////////////////////////////// + /////////////z8/P/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/v7+///////////////////// + //////////////////8/Pz//AAAA/wAAAP8AAAD/v7+//////////////////z8/P/8AAAD/AAAA/wAA + AP+/v7//////////////////Pz8//wAAAP+/v7////////////////////////////8/Pz//AAAA/wAA + AP8AAAD/v7+//////////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////////////////////// + ////////////////////////////////////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/ + v/////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///// + ////////////////////////////////////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/ + v////////////////////////////////////////////////////////////z8/P/8AAAD/AAAA/wAA + AP+/v7////////////////////////////////////////////////////////////8/Pz//AAAA/7+/ + v////////////////////////////z8/P/8AAAD/AAAA/wAAAP+/v7//////////////////Pz8//wAA + AP8AAAD/AAAA/7+/v/////////////////////////////////////////////////////////////// + ////////Pz8//wAAAP8AAAD/AAAA/7+/v///////Pz8//wAAAP+/v7////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////////////////////////////////////// + //////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///////////////////////////////////// + ////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////////////////////// + /////////////////////////////z8/P/8AAAD/v7+/////////////////////////////Pz8//wAA + AP8AAAD/AAAA/7+/v/////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///////////////////// + //////////////////////////////////////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///// + //8/Pz//AAAA/7+/v/////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/ + v////////////////////////////////////////////////////////////z8/P/8AAAD/AAAA/wAA + AP+/v7////////////////////////////////////////////////////////////8/Pz//AAAA/wAA + AP8AAAD/v7+/////////////////////////////Pz8//wAAAP+/v7//////////////////Pz8//wAA + AP+/v7////////////////////////////8/Pz//AAAA/wAAAP8AAAD/v7+//////////////////z8/ + P/8AAAD/AAAA/wAAAP+/v7////////////////////////////8/Pz//AAAA/7+/v/////////////// + //8/Pz//AAAA/wAAAP8AAAD/v7+/////////////////////////////Pz8//wAAAP+/v7////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///////////////////////////////////// + ////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////////////////////// + /////////////////////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////////////////////// + //8/Pz//AAAA/7+/v/////////////////8/Pz//AAAA/7+/v////////////////////////////z8/ + P/8AAAD/AAAA/wAAAP+/v7//////////////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////// + /////////////z8/P/8AAAD/v7+//////////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////// + //////////////////8/Pz//AAAA/7+/v/////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////z8/P/8AAAD/AAAA/wAA + AP+/v7////////////////////////////////////////////////////////////8/Pz//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+/v7////////////////////////// + //8/Pz//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/7+/v/////////////////////////////// + ////////Pz8//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+/v7////////////////////////// + /////////////z8/P/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/v7+///////////////////// + ////////Pz8//wAAAP8AAAD/AAAA/7+/v////////////////////////////z8/P/8AAAD/v7+///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////Pz8//wAAAP8AAAD/AAAA/7+/v/////////////////////////////// + /////////////////////////////z8/P/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/7+/v////////////////////////////z8/P/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/v7+///////////////////////////////////////8/Pz//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/7+/v///////////////////////////////////////Pz8//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP+/v7////////////////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///// + ////////////////////////Pz8//wAAAP+/v7////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8/Pz//AAAA/wAA + AP8AAAD/v7+///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////z8/P/8AAAD/AAAA/wAAAP+/v7////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////Pz8//wAA + AP8AAAD/AAAA/7+/v/////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8/Pz//AAAA/wAAAP8AAAD/v7+///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///c3P//Ojr//9PT///////////////////////////////////////////////////Q0P//dHT//xoa + //8QEP//JSX//zc3//9KSv//Xl7//3Nz//+Ghv//mpr//6ys///AwP//19f//+np///7+/////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////z8//9YWP//eHj///b2//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////2dn//x0d//8AAP//EBD//8LC//////////////// + /////////////+Pj//+Jif//Kyv//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8SEv//Jib//zg4//9LS///YGD//3R0//+Hh///m5v//6+v + ///Dw///+Pj///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////a2v//wAA//8AAP//IyP//7u7//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////9LS + //8VFf//AAD//wAA//8AAP//CAj//6ys////////8fH//56e//9CQv//AgL//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+0tP////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////4iI//8AAP//AAD//wAA//8AAP//AAD//11d + ///p6f////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////Nzf//FRX//wAA//8AAP//AAD//wAA//8AAP//AwP//4aG + //8JCf//AAD//wAA//8AAP//AAD//wAA//8REf//Zmb//8HB///29v//5+f//9PT//+7u///qan//5aW + //9/f///bGz//1hY//9ERP//Li7//xwc//8HB///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//3Fx////////////////////////7+///0xM///ExP////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //+iov//AQH//wAA//8AAP//Cgr//wAA//8AAP//AAD//xMT//+fn////f3///////////////////// + ////////////////////////////////////////////////////////////////////////rKz//z8/ + //8/P///Pz///z8///8/P///Pz///z8///8/P///Pz///z8///8/P///Pz///z8///8/P///Pz///z8/ + //95ef//////////////////////////////////////////////////////////////////yMj//w8P + //8AAP//AAD//woK//+lpf//KSn//wAA//8AAP//AAD//wAA//8AAP//AAD//wgI//9VVf//sLD///j4 + //////////////////////////////////////////////////////////////////////////////// + ///y8v//3d3//8nJ//+1tf//oqL//4uL//94eP//TEz//wAA//8AAP//MDD//////////////////+rq + //8wMP//AAD//wYG//+goP////////////////////////////////////////////////////////// + ////////////////////////////////////////u7v//wYG//8AAP//AAD//1BQ///w8P//cHD//wMD + //8AAP//AAD//wAA//9AQP//2dn///////////////////////////////////////////////////// + //////////////////////////////////+Rkf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//z4+//////////////////////////////// + /////////////////////////////8HB//8PD///AAD//wAA//8ODv//vr7////////s7P//OTn//wAA + //8AAP//AAD//wAA//8aGv//8fH///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///o6P//AAD//wAA//8CAv//7u7////////k5P//Kir//wAA//8AAP//AAD//wAA//93d////Pz///// + /////////////////////////////////////////////////////////////////////////////8/P + //8PD///AAD//wAA//85Of//9fX/////////////y8v//zAw//8AAP//AAD//wAA//8HB///gYH///j4 + /////////////////////////////////////////////////////////////////////////////5GR + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//MDD///////////////////////////////////////////////////////++vv//Cgr//wAA + //8AAP//Dw///8jI///////////////////19f//TEz//wAA//8AAP//AAD//xYW///y8v////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8qKv//AAD//wAA//+wsP//3d3//yQk + //8AAP//AAD//wAA//8AAP//AAD//wAA//9OTv//8vL///////////////////////////////////// + ///////////////////////////////////h4f//Ghr//wAA//8AAP//JSX//+rq//////////////// + ////////+/v//4qK//8KCv//AAD//wAA//8AAP//KSn//8HB//////////////////////////////// + ////////////////////////////////////////gID//wAA//8AAP//X1///7+///+/v///v7///7+/ + //+/v///v7///7+///+/v///v7///7+///+fn///AAD//wAA//8jI/////////////////////////// + ////////////////////////tbX//woK//8AAP//AAD//xUV///Nzf////////////////////////// + ///8/P//YmL//wAA//8AAP//AAD//zMz///o6P////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////2xs//8AAP//AAD//01N//8dHf//AAD//wAA//8GBv//qan//1FR//8AAP//AAD//wAA + //8tLf//4OD/////////////////////////////////////////////////////////////7e3//ykp + //8AAP//AAD//xYW///d3f///////////////////////////////////////93d//9HR///AAD//wAA + //8AAP//AQH//2Vl///t7f////////////////////////////////////////////////////////// + //9/f///AAD//wAA//9/f////////////////////////////////////////////////////////+Hh + //8AAP//AAD//xQU/////////////////////////////////////////////7Oz//8GBv//AAD//wAA + //8WFv//0tL////////////////////////////////////////d3f//AAD//wAA//8AAP//AAD//yMj + ///b2/////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////rKz//wAA//8AAP//AAD//wAA + //8AAP//Cgr//7q6/////////f3//3t7//8BAf//AAD//wAA//8WFv//xMT///////////////////// + //////////////////////////////b2//88PP//AAD//wAA//8KCv//y8v///////////////////// + //////////////////////////////////+lpf//FRX//wAA//8AAP//AAD//xcX//+mpv////////// + /////////////////////////////////////////////39///8AAP//AAD//39///////////////// + ////////////////////////////////////////8PD//wAA//8AAP//BQX///////////////////// + //////////////////+kpP//Bgb//wAA//8AAP//HR3//9zc//////////////////////////////// + /////////////9HR//8AAP//AAD//wAA//8AAP//AAD//xUV///Kyv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////r6///AQH//wAA//8AAP//AAD//w8P///Dw////////////////////////6Sk + //8ICP//AAD//wAA//8GBv//oKD////////////////////////////////////////8/P//U1P//wAA + //8AAP//AwP//7a2//////////////////////////////////////////////////////////////// + ///s7P//YmL//wAA//8AAP//AAD//wQE///R0f////////////////////////////////////////// + ////////f3///wAA//8AAP//kJD///////////////////////////////////////////////////// + ///8/P//AAD//wAA//8AAP//9fX/////////////////////////////pKT//wMD//8AAP//AAD//yQk + ///c3P//////////////////////////////////////////////////0dH//wAA//8AAP//FBT//wYG + //8AAP//AAD//woK//+2tv//////////////////////////////////////////////////9/f//9DQ + //+lpf//eXn//05O///Dw////////////////////////////////////////76+//8EBP//AAD//wAA + //8VFf//ycn//////////////////////////////////8fH//8YGP//AAD//wAA//8AAP//d3f///z8 + /////////////////////////////25u//8AAP//AAD//wAA//+amv////////////////////////// + //////////////////////////////////////////////////+Pj///AAD//wAA//8AAP//jo7///// + //////////////////////////////////////////////////9/f///AAD//wAA//+Rkf////////// + //////////////////////////////////////////////////8NDf//AAD//wAA///o6P////////// + /////////////5aW//8CAv//AAD//wAA//8kJP//5OT///////////////////////////////////// + ///////////////////R0f//AAD//wAA//8/P///wMD//w8P//8AAP//AAD//wQE//+dnf////////// + ///6+v//09P//6io//9+fv//U1P//ycn//8DA///AAD//wAA//8AAP//AAD//3l5//////////////// + //////////////////+0tP//Cgr//wAA//8AAP//AAD//2dn//////////////////////////////// + /////////////+Li//8xMf//AAD//wAA//8AAP//Tk7///Ly//////////////////+MjP//AAD//wAA + //8AAP//f3////////////////////////////////////////////////////////////////////// + ////////wsL//wUF//8AAP//AAD//1ZW///9/f////////////////////////////////////////// + /////////////3p6//8AAP//AAD//5GR//////////////////////////////////////////////// + /////////////xsb//8AAP//AAD//9vb//////////////////+Vlf//AQH//wAA//8AAP//LS3//+jo + /////////////////////////////////////////////////////////////8bG//8AAP//AAD//z8/ + ////////z8///xkZ//8AAP//AAD//wEB//+EhP//f3///wUF//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//OTn/////////////////////////////qqr//wYG//8AAP//AAD//wAA + //8AAP//KSn///////////////////////////////////////////////////T0//9TU///AAD//wAA + //8AAP//LS3//+Dg////////pqb//wEB//8AAP//AAD//2Fh///9/f////////////////////////// + /////////////////////////////////////////////+bm//8YGP//AAD//wAA//8rK///8/P///// + ////////////////////////////////////////////////////////cHD//wAA//8AAP//kZH///// + ////////////////////////////////////////////////////////KCj//wAA//8AAP//zMz///// + ////////iYn//wAA//8AAP//AAD//zEx///q6v////////////////////////////////////////// + ////////////////////////v7///wAA//8AAP//Pz/////////5+f//Z2f//wAA//8AAP//AAD//wAA + //8cHP//AAD//wAA//8AAP//AAD//wAA//8AAP//AQH//yIi//9MTP//AAD//wAA//8DA///8PD///// + /////////////5+f//8DA///AAD//wAA//8iIv//AgL//wAA//8AAP//6Oj///////////////////// + //////////////////////////////39//9+fv//AQH//wAA//8AAP//Fhb//4yM//8GBv//AAD//wAA + //9ISP//+vr///////////////////////////////////////////////////////////////////// + ///6+v//PDz//wAA//8AAP//Dg7//9jY//////////////////////////////////////////////// + //////////////////9wcP//AAD//wAA//+Rkf////////////////////////////////////////// + //////////////////81Nf//AAD//wAA//+9vf///////4WF//8AAP//AAD//wAA//83N///7+////// + //////////////////////////////////////////////////////////////////+/v///AAD//wAA + //9LS///xsb//ysr//8AAP//AAD//wAA//8EBP//eXn//5qa//8AAP//AAD//xwc//9ycv//oaH//8vL + ///z8/////////////8pKf//AAD//wAA//+zs///////////////////pKT//wMD//8AAP//AAD//yQk + //8ZGf//AAD//wAA//+lpf////////////////////////////////////////////////////////// + //+np///CQn//wAA//8AAP//AAD//wAA//8AAP//MjL///Ly//////////////////////////////// + /////////////////////////////////////////////29v//8AAP//AAD//wEB//+vr/////////// + /////////////////////////////////////////////////////////////3Bw//8AAP//AAD//5eX + /////////////////////////////////////////////////////////////0FB//8AAP//AAD//7Cw + //95ef//AAD//wAA//8AAP//Q0P//+/v//////////////////////////////////////////////// + /////////////////////////////7+///8AAP//AAD//xAQ//8CAv//AAD//wAA//8AAP//NDT//8/P + ////////urr//wAA//8AAP//OTn//////////////////////////////////2xs//8AAP//AAD//3Bw + ////////////////////////pKT//wYG//8AAP//AAD//wAA//8AAP//AAD//2Rk//////////////// + ///////////////////////////////////////////////////Jyf//GRn//wAA//8AAP//AAD//yAg + ///n5/////////////////////////////////////////////////////////////////////////// + //+mpv//AAD//wAA//8AAP//eXn///////////////////////////////////////////////////// + ////////////////////////cHD//wAA//8AAP//oaH///////////////////////////////////// + ////////////////////////UVH//wAA//8AAP//Ly///wAA//8AAP//AAD//0RE///19f////////// + ////////////////////////////////////////////////////////////////////////sbH//wAA + //8AAP//AAD//wAA//8AAP//Cgr//42N///8/P/////////////Z2f//AAD//wAA//8fH/////////// + ////////////////////////iIj//wAA//8AAP//Ly//////////////////////////////s7P//wYG + //8AAP//AAD//wAA//8AAP//JCT///////////////////////////////////////////////////// + ///////////////////k5P//MjL//wAA//8TE///19f///////////////////////////////////// + ////////////////////////////////////////0tL//wsL//8AAP//AAD//0VF///8/P////////// + //////////////////////////////////////////////////////////////////9wcP//AAD//wAA + //+hof////////////////////////////////////////////////////////////9iYv//AAD//wAA + //8AAP//AAD//wAA//9PT///+fn///////////////////////////////////////////////////// + /////////////////////////////+bm//9LS///AAD//wAA//8AAP//AAD//0VF///e3v////////// + //////////////T0//8AAP//AAD//wQE///8/P///////////////////f3//4CA//8CAv//AAD//wAA + //8ICP//9vb/////////////////////////////s7P//wYG//8AAP//AAD//wAA//8AAP//5OT///// + ///////////////////////////////////////////////////////////////////19f//XV3//8TE + /////////////////////////////////////////////////////////////////////////////+/v + //8lJf//AAD//wAA//8gIP//6+v///////////////////////////////////////////////////// + /////////////////////////////2dn//8AAP//AAD//6Gh//////////////////////////////// + /////////////////////////////25u//8AAP//AAD//wAA//8AAP//Vlb///n5//////////////// + //////////////////////////////////////////////////////////////39//+Zmf//EBD//wAA + //8AAP//AAD//xIS//+hof///f3//////////////////////////////////xER//8AAP//AAD//6+v + ///m5v///////+/v//9OTv//AAD//wAA//8AAP//HBz//8jI//////////////////////////////// + ////////urr//woK//8AAP//AAD//wAA//+fn/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////9/f//UFD//wAA//8AAP//Bwf//8rK//////////////// + ////////////////////////////////////////////////////////////////////////YmL//wAA + //8AAP//oaH/////////////////////////////////////////////////////////////enr//wAA + //8AAP//AAD//1tb///8/P////////////////////////////////////////////////////////// + ///////////////////Y2P//Pj7//wAA//8AAP//AAD//wAA//8AAP//YmL///////////////////// + ////////////////////////LCz//wAA//8AAP//AAD//wAA//8PD///FRX//wAA//8AAP//AAD//zw8 + ///n5///////////////////////////////////////////////////vr7//woK//8AAP//AAD//xUV + ///S0v////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////4aG + //8AAP//AAD//wAA//+cnP////////////////////////////////////////////////////////// + //////////////////////////////////9iYv//AAD//wAA//+hof////////////////////////// + //////////////////////////////////+Jif//AAD//wAA//9paf///Pz///////////////////// + ///////////////////////////////////////////////////5+f//goL//wcH//8AAP//AAD//wAA + //8EBP//AAD//wAA//9iYv////////////////////////////////////////////9ISP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//9tbf//+vr///////////////////////////////////// + ////////////////////////p6f//wAA//8AAP//AAD//xMT///IyP////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+7u///AwP//wAA//8AAP//ZGT///////////////////// + /////////////////////////////////////////////////////////////////////////////2Ji + //8AAP//AAD//6ys/////////////////////////////////////////////////////////////5iY + //8AAP//bm7///39//////////////////////////////////////////////////////////////// + ////////xsb//ysr//8AAP//AAD//wAA//8CAv//bW3//5WV//8AAP//AAD//2lp//////////////// + /////////////////////////////729//91df//UlL//y0t//8HB///AAD//wAA//8ICP//oKD///// + //////////////////////////////////////////////////////////////z8//+UlP//AAD//wAA + //8AAP//AAD//w8P///IyP////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////4eH//xMT + //8AAP//AAD//zU1///4+P////////////////////////////////////////////////////////// + ////////////////////////////////////////YmL//wAA//8AAP//sLD///////////////////// + ////////////////////////////////////////paX//3l5//////////////////////////////// + ////////////////////////////////////////8fH//2tr//8CAv//AAD//wAA//8AAP//Kyv//8bG + ////////oaH//wAA//8AAP//cHD///////////////////////////////////////////////////// + //////////////z8///h4f//vLz//9LS//////////////////////////////////////////////// + //////////////////+1tf//LS3//wAA//8AAP//AAD//wAA//8AAP//AAD//w8P//++vv////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////f3//81Nf//AAD//wAA//8UFP//4eH///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9iYv//AAD//wAA//+wsP////////////////////////////////////////////////////////// + ///w8P///////////////////////////////////////////////////////////////////////7Gx + //8cHP//AAD//wAA//8AAP//BQX//4GB///4+P////////////+amv//AAD//wAA//9wcP////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////Nzf//QkL//wAA//8AAP//AAD//wAA + //8QEP//enr//xUV//8AAP//AAD//woK//++vv////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////ZGT//wAA + //8AAP//AwP//7y8//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////1FR//8AAP//AAD//7Cw//////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////5+f//gID//wwM//8AAP//AAD//wAA//8AAP//UlL//9nZ + /////////////5GR//8AAP//AAD//3Bw//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///f3///XFz//wEB//8AAP//AAD//wAA//8JCf//dXX//+3t////////0tL//xUV//8AAP//AAD//woK + //+2tv////////////////////////////////////////////////////////////////////////// + /////////////////////////////52d//8AAP//AAD//wAA//+Hh/////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////UVH//wAA//8AAP//sLD///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////5+f//2lp//8EBP//AAD//wAA//8AAP//BAT//2pq///o6P//kZH//wAA//8AAP//fX3///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9vb//0dH//8AAP//AAD//wAA//8AAP//BQX//7u7 + ////////////////////////09P//x0d//8AAP//AAD//wYG//+zs/////////////////////////// + ///////////////////////////////////////////////////////////////////Ly///CAj//wAA + //8AAP//NDT///39//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////9RUf//AAD//wAA//+ysv////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////9nZ//9SUv//AAD//wAA + //8AAP//AAD//w0N//85Of//AAD//wAA//9/f/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////f3//6Wl//8aGv//AAD//wAA//8AAP//BQX//3V1///29v//////////////////29v//wkJ + //8AAP//AAD//wkJ///m5v////////////////////////////////////////////////////////// + /////////////////////////////9/f//8pKf//AAD//wAA//8AAP//cHD///z8//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////1FR//8AAP//AAD//7+///////////////////////////////////////////////// + ////////0dH//wAA//8AAP//AAD//wAA//8AAP//Wlr//+np//////////////////////////////// + ///////////////////////////////////Fxf//Ozv//wAA//8AAP//AAD//wAA//8AAP//AAD//39/ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////Ly//91df//BQX//wAA + //8AAP//CAj///X1//////////////////+Bgf//AAD//wAA//8AAP//j4////////////////////// + /////////////////////////////////////////////////////////////////////////////+/v + //9HR///AAD//wAA//8AAP//Skr//+/v//////////////////////////////////////////////// + ////////////////////////////////////////////////////////UVH//wAA//8AAP//v7////// + ///////////////////////////////////////////////////g4P//AAD//wAA//8AAP//AAD//wAA + //8AAP//EhL//56e///9/f////////////////////////////////////////////////////////// + ////////rq7//ycn//8AAP//AAD//wAA//8AAP//Jib//9/f//////////////////////////////// + ////////09P//9bW///n5///9fX///////////////////////////////////////////////////// + //////////////////////////////////+Ojv//AAD//wAA//9KSv//////////////////np7//wEB + //8AAP//AAD//25u//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////z8//9qav//AAD//wAA//8AAP//KSn//93d + //////////////////////////////////////////////////////////////////////////////// + //////////////////9KSv//AAD//wAA//+/v/////////////////////////////////////////// + /////////////+Hh//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//z8////X1/////////// + ////////////////////////////////////////////////////////+/v//5eX//8YGP//AAD//wAA + //8AAP//ycn///////////////////////////////////////8vL///AAD//wAA//8AAP//Bwf//xkZ + //8pKf//OTn//4OD///u7v///////////////////////////////////////////////////////1NT + //8AAP//AAD//5KS/////////////7q6//8GBv//AAD//wAA//9RUf///Pz///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////+UlP//AwP//wAA//8AAP//FBT//8LC//////////////////////////////// + /////////////////////////////////////////////////////////////z8///8AAP//AAD//7+/ + ////////////////////////////////////////////////////////7u7//wAA//8AAP//ERH///// + //+4uP//ICD//wAA//8AAP//AAD//wcH//+AgP//+Pj///////////////////////////////////// + /////////////////////////////35+//8AAP//AAD//wAA///R0f////////////////////////// + /////////////xsb//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wwM//9ycv//4uL///// + ///////////////////////////////////6+v//Dg7//wAA//8AAP//3Nz////////Q0P//Dw///wAA + //8AAP//Njb///X1//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////+3t///Dw///wAA + //8AAP//Bgb//52d//////////////////////////////////////////////////////////////// + ////////////////////////Pz///wAA//8AAP//v7////////////////////////////////////// + ///////////////////w8P//AAD//wAA//8AAP/////////////09P//cnL//wMD//8AAP//AAD//wAA + //8oKP//wMD/////////////////////////////////////////////////////////////cHD//wAA + //8AAP//AAD//97e////////////////////////////////////////BAT//wAA//8AAP//CAj//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8GBv//YWH//+Li/////////////////////////////7+/ + //8AAP//AAD//yYm////////5OT//x0d//8AAP//AAD//yIi///p6f////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////U1P//IiL//wAA//8AAP//AAD//3Nz///8/P////////// + //////////////////////////////////////////////////////////////////8/P///AAD//wAA + ///Jyf////////////////////////////////////////////////////////z8//8AAP//AAD//wAA + ////////////////////////zMz//zEx//8AAP//AAD//wAA//8BAf//ZGT//+7u//////////////// + //////////////////////////////////9wcP//AAD//wAA//8AAP//4uL///////////////////// + /////////////+vr//8AAP//AAD//wwM////////+Pj//+np///b2///n5///ykp//8AAP//AAD//wAA + //8VFf//6+v/////////////////////////////dHT//wAA//8AAP//cHD//+/v//8vL///AAD//wAA + //8SEv//2dn///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///p6f//Ozv//wAA//8AAP//AAD//0xM///x8f////////////////////////////////////////// + /////////////////////////////z8///8AAP//AAD//9HR//////////////////////////////// + /////////////////////////////wAA//8AAP//AAD///Dw////////////////////////+/v//4mJ + //8KCv//AAD//wAA//8AAP//srL//////////////////////////////////////////////////3Bw + //8AAP//AAD//wAA///w8P//////////////////////////////////2Nj//wAA//8AAP//JSX///// + ////////////////////////ysr//wEB//8AAP//AAD//6en//////////////////////////////// + //8qKv//AAD//wAA//+0tP//R0f//wAA//8AAP//Bwf//8PD//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////4+P//XFz//wAA//8AAP//AAD//ysr + ///f3///////////////////////////////////////////////////////////////////Pz///wAA + //8AAP//0dH/////////////////////////////////////////////////////////////DQ3//wAA + //8AAP//8PD//////////////////////////////////9zc//8ODv//AAD//wAA///X1/////////// + ////////////////////////////////////////bGz//wAA//8AAP//AAD///Pz//////////////// + ///////////////////AwP//AAD//wAA//85Of////////////////////////j4//8sLP//AAD//wAA + //9NTf//////////////////////////////////4OD//wAA//8AAP//CQn//1lZ//8AAP//AAD//wEB + //+pqf////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////9/f//hob//wEB//8AAP//AAD//xQU///Cwv////////////////////////// + //////////////////////////////////80NP//AAD//wAA///R0f////////////////////////// + //////////////////////////////////8REf//AAD//wAA///j4/////////////////////////// + ////////+vr//wMD//8AAP//AQH///f3//////////////////////////////////////////////// + //9iYv//AAD//wAA//8AAP///////////////////////////////////////6qq//8AAP//AAD//ycn + //+env//wcH//+Xl////////e3v//wAA//8AAP//Dg7//+Hh//////////////////////////////// + //+Wlv//AAD//wAA//8DA///AAD//wAA//8AAP//ior///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////qqr//woK + //8AAP//AAD//wYG//+dnf///////////////////////////////////////////////////////zAw + //8AAP//AAD//9HR/////////////////////////////////////////////////////////////xwc + //8AAP//AAD//+Hh///////////////////////////////////d3f//AAD//wAA//8eHv////////// + /////////////////////////////////////////////2Ji//8AAP//AAD//wgI//////////////// + ////////////////////////lpb//wAA//8AAP//AAD//wAA//8AAP//AAD//wwM//8DA///AAD//wAA + //+Wlv///////////////////////////////////////0xM//8AAP//AAD//wAA//8AAP//AAD//2ho + //////////////////////////////////////////////////////////////////////////////// + //////////////////+6uv///Pz///////////////////////////////////////////////////// + ////////////////////////////////////////ysr//xkZ//8AAP//AAD//wAA//9zc////Pz///// + ////////////////////////////////////////MDD//wAA//8AAP//0dH///////////////////// + ////////////////////////////////////////IiL//wAA//8AAP//09P///////////////////// + /////////f3//3l5//8AAP//AAD//z4+//////////////////////////////////////////////// + ////////YmL//wAA//8AAP//ERH///////////////////////////////////////98fP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//PDz///z8//////////////////////////////// + ///29v//Cgr//wAA//8AAP//AAD//wAA//9MTP///Pz///////////////////////////////////// + ////////////////////////////////////////////////////////19f//wcH//9bW////Pz///// + //////////////////////////////////////////////////////////////////////////////// + ////////4+P//zEx//8AAP//AAD//wAA//9MTP//8fH///////////////////////////////////// + //8wMP//AAD//wAA///h4f////////////////////////////////////////////////////////// + //8qKv//AAD//wAA///R0f////////////////////////X1//9ZWf//AAD//wAA//8AAP//Y2P///// + //////////////////////////////////////////////////9XV///AAD//wAA//8eHv////////// + /////////////////////////////+np//+6uv//mZn//3R0//9SUv//MDD//w0N//8AAP//AAD//wgI + ///Y2P///////////////////////////////////////7e3//8AAP//AAD//wAA//8AAP//MjL///Pz + //////////////////////////////////////////////////////////////////////////////// + //////////////z8//84OP//AAD//wAA//9QUP//+fn///////////////////////////////////// + ////////////////////////////////////////////////////////8/P//09P//8AAP//AAD//wAA + //8rK///39///////////////////////////////////zAw//8AAP//AAD//+Hh//////////////// + /////////////////////////////////////////////zAw//8AAP//AAD//8LC//////////////// + ///k5P//NDT//wAA//8AAP//AAD//zg4///m5v////////////////////////////////////////// + /////////////1FR//8AAP//AAD//yIi//////////////////////////////////////////////// + /////////////////////////////+jo///ExP//w8P///////////////////////////////////// + ////////bW3//wAA//8AAP//AAD//yAg///m5v////////////////////////////////////////// + ////////////////////////////////////////////////////////j4///wAA//8AAP//AAD//wAA + //9NTf//9fX///////////////////////////////////////////////////////////////////// + ////////////////////////+fn//yQk//8AAP//AAD//wAA//+Fhf////////////////////////// + ////////Ly///wAA//8AAP//4eH///////////////////////////////////////////////////// + ////////ODj//wAA//8AAP//v7//////////////yMj//xkZ//8AAP//AAD//wAA//9fX///+Pj///// + ////////////////////////////////////////////////////////UVH//wAA//8AAP//MDD///// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////+/v//8dHf//AAD//wAA//8PD///1dX///// + //////////////////////////////////////////////////////////////////////////////// + /////////////9vb//8KCv//AAD//wAA//8AAP//AAD//wAA//9DQ///9fX///////////////////// + //////////////////////////////////////////////////////////////z8//9bW///AAD//wAA + //8AAP//cHD///////////////////////////////////////8iIv//AAD//wAA///h4f////////// + //////////////////////////////////////////////////8/P///AAD//wAA//+0tP///////6Sk + //8ICP//AAD//wAA//8DA///jo7///////////////////////////////////////////////////// + //////////////////9RUf//AAD//wAA//80NP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///5+f//R0f//wAA//8AAP//AAD//5yc//////////////////////////////////////////////// + ///////////////////////////////////////////////////9/f//QUH//wAA//8AAP//JSX//3p6 + //8AAP//AAD//wAA//87O///7+////////////////////////////////////////////////////// + ///////////////////9/f//YmL//wAA//8AAP//AAD//2lp///9/f////////////////////////// + /////////////yIi//8AAP//AAD//+Hh//////////////////////////////////////////////// + /////////////0dH//8AAP//AAD//yMj//8UFP//AAD//wAA//8AAP//ERH//7m5//////////////// + /////////////////////////////////////////////////////////////0BA//8AAP//AAD//z8/ + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////+fn//09P//8AAP//AAD//wAA//8AAP//DAz//6Cg + //////////////////////////////////////////////////////////////////////////////// + /////////////5WV//8AAP//AAD//wIC///Cwv///////4mJ//8AAP//AAD//wAA//83N///7e3///// + /////////////////////////////////////////////////////////f3//2lp//8AAP//AAD//wAA + //9eXv///f3/////////////////////////////////////////////IiL//wAA//8AAP//5+f///// + ////////////////////////////////////////////////////////UVH//wAA//8AAP//AAD//wAA + //8AAP//AAD//ygo///a2v////////////////////////////////////////////////////////// + ////////////////////////Pz///wAA//8AAP//SEj///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////n5 + //9PT///AAD//wAA//8AAP//BAT//wAA//8AAP//AAD//1pa///x8f////////////////////////// + ///////////////////////////////////////////////////h4f//Dg7//wAA//8AAP//b2////// + /////////////42N//8BAf//AAD//wAA//8tLf//6ur///////////////////////////////////// + //////////////////9zc///AAD//wAA//8AAP//W1v///z8//////////////////////////////// + //////////////////8iIv//AAD//wAA///w8P////////////////////////////////////////// + //////////////////9XV///AAD//wAA//8AAP//AAD//wYG//9SUv//7+////////////////////// + //////////////////////////////////////////////////////////////////8/P///AAD//wAA + //9RUf////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////5+f//T0///wAA//8AAP//AAD//4mJ///MzP//Jib//wAA + //8AAP//AAD//yMj///Ly/////////////////////////////////////////////////////////// + /////////////0ZG//8AAP//AAD//yEh///z8////////////////////////5aW//8BAf//AAD//wAA + //8rK///5OT/////////////////////////////////////////////eXn//wAA//8AAP//AAD//09P + ///8/P///////////////////////////////////////////////////////yIi//8AAP//AAD///Dw + /////////////////////////////////////////////////////////////5qa//93d///nJz//7y8 + ///h4f///Pz///////////////////////////////////////////////////////////////////// + /////////////////////////////zg4//8AAP//AAD//wUF//8jI///OTn//1VV//9sbP//h4f//6Gh + //+4uP//0tL//+rq////////////////////////////////////////////////////////+fn//09P + //8AAP//AAD//wAA//+Jif/////////////z8///YmL//wAA//8AAP//AAD//wUF//+Kiv///f3///// + //////////////////////////////////////////////////+goP//AAD//wAA//8BAf//vr7///// + /////////////////////////////5mZ//8DA///AAD//wAA//8kJP//5OT///////////////////// + /////////////4SE//8AAP//AAD//wAA//9PT///+fn///////////////////////////////////// + ////////////////////////Gxv//wAA//8AAP//8PD///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////19f//35+//8jI///AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wYG//8gIP//Nzf//1FR + //9qav//g4P//52d//+1tf//zs7//+bm//9PT///AAD//wAA//8BAf//jY3///////////////////// + ////////p6f//w8P//8AAP//AAD//wAA//9HR///5+f///////////////////////////////////// + ////////5eX//xAQ//8AAP//AAD//2ho/////////////////////////////////////////////6Sk + //8DA///AAD//wAA//8eHv//3Nz///////////////////////+Jif//AAD//wAA//8AAP//Q0P///b2 + //////////////////////////////////////////////////////////////////8REf//AAD//wAA + ///w8P////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///m5v//jY3//zMz//8AAP//AAD//wAA//8AAP//AAD//wAA//8CAv//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AQH//5aW////////////////////////////////////////39///zo6//8AAP//AAD//wAA + //8WFv//uLj///////////////////////////////////////9RUf//AAD//wAA//8eHv//8fH///// + /////////////////////////////////////////////6am//8GBv//AAD//wAA//8dHf//1dX///// + ////////k5P//wAA//8AAP//AAD//0FB///19f////////////////////////////////////////// + /////////////////////////////xER//8AAP//AAD///Dw//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+/v//+cnP//Q0P//wIC//8AAP//AAD//wAA//8AAP//AAD//wwM + //9aWv//tLT///r6///v7///2Nj//7u7//+lpf//iYn//3Bw//9YWP//Ozv//yUl//8JCf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wEB//+Wlv////////////////////////// + ////////////////////////+/v//3t7//8DA///AAD//wAA//8BAf//c3P///n5//////////////// + ////////p6f//wAA//8AAP//AQH//7q6//////////////////////////////////////////////// + /////////////7Oz//8GBv//AAD//wAA//8VFf//0tL//5aW//8BAf//AAD//wAA//83N///7+////// + ////////////////////////////////////////////////////////////////////////ERH//wAA + //8AAP///Pz///////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////9/f//6ys//9SUv//Bwf//wAA + //8AAP//AAD//wAA//8AAP//BQX//0xM//+mpv//8/P///////////////////////////////////// + ///////////////////////////////////v7///2Nj//7u7//+lpf//iYn//3Bw//9YWP//Ozv//yUl + //8LC///lpb//////////////////////////////////////////////////////////////////8DA + //8cHP//AAD//wAA//8AAP//NDT//9vb/////////////+rq//8VFf//AAD//wAA//9hYf////////// + /////////////////////////////////////////////////////////////7S0//8KCv//AAD//wAA + //8PD///AQH//wAA//8AAP//MzP//+/v//////////////////////////////////////////////// + //////////////////////////////////8REf//AAD//wAA//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///8/P//u7v//2Fh//8PD///AAD//wAA//8AAP//AAD//wAA//8BAf//PT3//5eX///r6/////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////+3t//9RUf//AAD//wAA//8AAP//DQ3//6Oj + ////////WVn//wAA//8AAP//Gxv//+/v//////////////////////////////////////////////// + /////////////////////////////76+//8KCv//AAD//wAA//8AAP//AAD//y0t///q6v////////// + /////////////////////////////////////////////////////////////////////////////xER + //8AAP//AAD/////////////9vb///Dw///w8P//8PD///Dw///n5///4eH//+Hh///h4f//4eH//9XV + ///R0f//0dH//9HR///R0f//wsL//7+///+4uP//cXH//xoa//8AAP//AAD//wAA//8AAP//AAD//wAA + //8uLv//iIj//+Li//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////+Xl///CQn//wAA//8AAP//AAD//0JC//8AAP//AAD//wAA//+0tP////////// + /////////////////////////////////////////////////////////////////////////////76+ + //8PD///AAD//wAA//8nJ///6ur///////////////////////////////////////////////////// + ////////////////////////////////////////AwP//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//yAg//96ev//09P///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////U1P//LS3//wAA + //8AAP//AAD//wAA//8AAP//XFz///////////////////////////////////////////////////// + /////////////////////////////////////////////8jI//8PD///JCT//+Tk//////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//Fhb//2tr///Fxf///f3///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////39///a2v//wEB//8AAP//AAD//xgY///s7P////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////8nJ///j4/////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAA//8AAP//AgL//xER//8REf//ERH//xER + //8REf//Fhb//yIi//8iIv//IiL//yIi//8iIv//KSn//zAw//8wMP//MDD//zAw//8wMP//Ojr//z8/ + //8/P///Xl7//7e3///6+v////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////srL//xQU//8AAP//ra3///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////5OT//4eH//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAQAAAAIAAAEAIAAAAAAAACAEAAAA + AAAAAAAAAAAAAAAAAAD///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f///////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3///////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/f39///////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/39/f/////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/f39///// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/f39///////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9/f3///////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39/////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/39/f/////////////////////////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/39/ + f///////////////////////////////////////f39//wAAAP8AAAD/AAAA/39/f/////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39///////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP9/f3///////////////////////////////////////39/f/8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f///////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9/f3////////////////////////////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/f39///////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/f39///// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3///////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/39/f/////////////////////////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f/////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f/////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39/////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/39/f///////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9/f3////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9/f3////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP9/f3///////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f///////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f/////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39///////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/f39///////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3///////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f/////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9/f3////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f/////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/39/f///////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39///////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + //////////////////////////////////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f///////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3///////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f/////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + ////////////////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3///////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + /////////////////////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/39/f/////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f/////////////////////////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/f39///////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39//////////////////39/f/8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/39/f/////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f/////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////9/f3//AAAA/wAAAP8AAAD/f39///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f///////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9/f3////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3//////////////////f39//wAAAP8AAAD/AAAA/39/ + f/////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/f39///////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9/f3///////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39///////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39//////////////////39/f/8AAAD/AAAA/wAA + AP9/f3////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/39/ + f///////////////////////////////////////f39//wAAAP8AAAD/AAAA/39/f/////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39///////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP9/f3///////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/39/f/////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP9/f3///////////////////////////////////////39/f/8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f///////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/f39///////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9/f3////////////////////////////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/f39///////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/f39///// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3///////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/39/f///////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f/////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39/////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/39/f///////////////////////////////////////f39//wAAAP8AAAD/AAAA/39/ + f////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP9/f3///////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/39/f/////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39/////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f/////////////////////////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39///////////////////////////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/ + f/////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9/f3////////////////////////////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f/////////////////////////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////9/f3//AAAA/wAAAP8AAAD/f39///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP9/f3////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39///////////////////////////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + ////////////////////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////////////////////// + /////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////// + ////////////////////////////////////////f39//wAAAP8AAAD/AAAA/39/f/////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/f39///////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f/////////////////////////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + /////////////////////////////39/f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////// + //////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////// + /////////////////////////////////////////////39/f/8AAAD/AAAA/wAAAP9/f3////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////9/f3//AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/39/f/////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////f39//wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////39/f/8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9/f3//AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////f39//wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + f/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/f39///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9/f3//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/39/f/////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////f39//wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9/f3////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////90dP//dHT///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////6+v//v7///11d//8NDf//Ghr//ycn//9ERP//U1P//2Fh//96ev//iIj//6Oj + //+3t///xMT//+Hh///r6/////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////6en//z8///+hof////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////90dP//AAD//wAA//9VVf//+vr///// + //////////////////////////////////////////////////////////////////////////////// + /////////////9LS//9xcf//Ghr//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//Jyf//0RE//9TU///YWH//3p6//+IiP//o6P//7y8 + ///Hx///4eH///Dw//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////8/P//zg4//8AAP//AAD//0FB + ///c3P////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////90dP//AAD//wAA//8AAP//AAD//0FB + ///z8/////////////////////////////////////////////////////////////////////////// + ///k5P//hIT//ysr//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//x4e//8sLP//RET//1ZW//9hYf//f3///4yM//+jo///vLz//8fH + ///h4f//8PD///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////+vr//0xM//8AAP//AAD//wAA + //8AAP//CAj//4aG///6+v////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////r6//9ra///AAD//wAA//8AAP//AAD//wAA + //8AAP//Li7//+np////////////////////////////////////////////////////////8PD//56e + //9DQ///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//Hh7//yws//9ERP//Wlr//2Rk//9/f///kZH//+Xl//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////2dn//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//Kir//8jI//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////r6//9VVf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8iIv//2dn///////////////////////////////////r6//+ysv//VVX//wgI + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+Hh/////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////4OD//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//amr///Dw//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////r6//9VVf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//xUV///Cwv//////////////////x8f//2lp//8VFf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//S0v///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////52d//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//qKj///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////r6//9VVf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//DQ3//6+v///r6///Jyf//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//CAj//1VV//+ysv//9vb//+Tk + ///a2v//xMT//6+v//+env//f3///3Bw//9hYf//RET//zg4//8jI///CAj//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w0N + ///29v///////////////////////////////////////////////////////8LC//9iYv//8/P///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////7Oz//8EBP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//9NTf//4eH///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////Pz//9ISP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8EBP//e3v//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//9HR///np7///Pz//////////////// + ///////////////////////////////////////////////////////////////////29v//4eH//8/P + ///AwP//o6P//5GR//9/f///ZGT//1ZW//9ERP//LCz//x4e//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//w8P//////////////////////////////////////////////////8LC//8NDf//AAD//zU1 + ///p6f////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////8zM//8NDf//AAD//wAA + //8AAP//AAD//wAA//8AAP//Jib//wQE//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w0N + //+Pj///+vr///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////5GR//9/f///f3///39///9/f///f3///39/ + //9/f///f3///39///9/f///f3///39///9/f///f3///39///9/f///f3///39///9/f///f3///39/ + //9/f///f3///39///9/f///f3///39///9/f///f3///39///9/f///f3///39////R0f////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////Pz//88PP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//ykp//+Dg///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//MzP//5CQ///k5P////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////+vr///h4f//xMT//7Oz + //+jo///g4P//3d3//9hYf//TEz//0BA//8jI///DQ3//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//39//////////////////////////////////////////////6+v//8NDf//AAD//wAA + //8AAP//Ghr//8zM//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////93d//8aGv//AAD//wAA + //8AAP//AAD//wAA//8AAP//NTX///Pz///Q0P//Njb//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//zEx///MzP////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8jI///AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//lZX///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////Pz//88PP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//ykp///p6f///////6Gh//8EBP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//yIi//98fP//2dn///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////4eH//9bW//9aWv//AAD//wAA + //8AAP//AAD//wAA//9ERP///////////////////////////////////////6ys//8EBP//AAD//wAA + //8AAP//AAD//wAA//8NDf//qKj///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////+np//8pKf//AAD//wAA + //8AAP//AAD//wAA//8AAP//IiL//+np//////////////r6//+Skv//DQ3//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//BAT//3Jy///z8/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////IyP//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//39/ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////Pz//88PP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//ykp///p6f//////////////////s7P//w0N//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//Jib//8fH//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////s7P//wAA + //8AAP//AAD//wAA//8AAP//CAj///b2/////////////////////////////6Wl//8EBP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//+Dg/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////Pz//88PP//AAD//wAA + //8AAP//AAD//wAA//8AAP//FRX//9nZ/////////////////////////////+Hh//9NTf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//Hh7//7Cw//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////yMj//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //96ev////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//zg4///p6f/////////////////////////////Cwv//FRX//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//0RE//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////Dw + //8AAP//AAD//wAA//8AAP//AAD//wAA///Dw////////////////////////5OT//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//1lZ///z8/////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////r6//9QUP//AAD//wAA + //8AAP//AAD//wAA//8AAP//DQ3//8LC/////////////////////////////////////////////6io + //8aGv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//VVX//+Xl//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8jI///AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//YWH///////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//zw8///z8////////////////////////////////////////9nZ//8eHv//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//9ERP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////NDT//wAA//8AAP//AAD//wAA//8AAP//f3///////////////////5OT//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//NTX//+np//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9ra///AAD//wAA + //8AAP//AAD//wAA//8AAP//BAT//6ys//////////////////////////////////////////////// + ////////8PD//2Zm//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8REf//lpb///r6 + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////IyP//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//2Fh//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//zw8///z8///////////////////////////////////////////////////6en//ykp + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//FRX//8zM//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////3R0//8AAP//AAD//wAA//8AAP//AAD//0RE/////////////3h4//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//zMz///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////+IiP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//5OT//////////////////////////////////////////////// + ////////////////////////xcX//yoq//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //85Of//1NT///////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////wQE + //8AAP//AAD//wAA//8AAP//AAD//39///9/f///f3///39///9/f///f3///39///9/f///f3///39/ + //9/f///f3///39///9/f///f3///39///9/f///f3///39///9/f///f3///39///9RUf//AAD//wAA + //8AAP//AAD//wAA//9ISP////////////////////////////////////////////////////////// + /////////////////////////////////////////////+Hh//8pKf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//0hI///z8/////////////////////////////////////////////////////////// + ///z8///PDz//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8NDf//u7v///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////+7u///AAD//wAA//8AAP//AAD//wAA//8EBP//8/P//3R0//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//Ghr//7S0//8iIv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w0N + //+oqP////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////+hof//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//3h4//////////////////////////////////////////////// + ///////////////////////////////////29v//goL//wgI//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wQE//97e///9vb///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAP//AAD//wAA//8AAP//AAD//wAA//////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////r6///wAA + //8AAP//AAD//wAA//8AAP//RET///////////////////////////////////////////////////// + /////////////////////////////////////////////9nZ//8aGv//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//1VV///6+v////////////////////////////////////////////////////////// + //////////////b2//9VVf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wQE//+lpf////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////8/P//wQE//8AAP//AAD//wAA//8AAP//AAD//0BA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//Ghr//9nZ////////6en//zw8//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//4OD//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////+3t///BAT//wAA + //8AAP//AAD//wAA//8AAP//AAD//1lZ//////////////////////////////////////////////// + ///////////////////////////////////////////////////Z2f//PT3//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//yIi//+5uf////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAD//wAA//8AAP//AAD//wAA//8AAP////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////8TE + //8AAP//AAD//wAA//8AAP//AAD//zAw//////////////////////////////////////////////// + /////////////////////////////////////////////9nZ//8aGv//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//1VV///6+v////////////////////////////////////////////////////////// + ////////////////////////xMT//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//4+P + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////87O///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//KSn//9nZ///////////////////6+v//YmL//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//WVn///Pz//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////MzP//DQ3//wAA + //8AAP//AAD//wAA//8AAP//AAD//0FB///6+v////////////////////////////////////////// + //////////////////////////////////////////////////////////////////+dnf//ERH//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//11d///s7P////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAA//8AAP//AAD//wAA//8AAP//AAD///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///ExP//AAD//wAA//8AAP//AAD//wAA//8jI/////////////////////////////////////////// + /////////////////////////////////////////////9nZ//8aGv//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//1lZ///6+v////////////////////////////////////////////////////////// + /////////////////////////////7Oz//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//dHT///r6//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////eHj//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//KSn//+np//////////////////////////////////+Li///BAT//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//81Nf//6en///////////////////////////////////// + ///////////////////////////////////////////////////////////////////d3f//Ghr//wAA + //8AAP//AAD//wAA//8AAP//AAD//ykp///z8/////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////+np + //9VVf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//ERH//52d//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAP//AAD//wAA//8AAP//AAD//wAA//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////4eH//wAA//8AAP//AAD//wAA//8AAP//Fhb///////////////////////////////////// + /////////////////////////////////////////////8LC//8aGv//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//3R0//////////////////////////////////////////////////////////////// + //////////////////////////////////+jo///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//9VVf//+vr///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////7u7//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//MTH//+np/////////////////////////////////////////////7Oz + //8NDf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//xoa///MzP////////////////////////// + ///////////////////////////////////////////////////////////////////p6f//KSn//wAA + //8AAP//AAD//wAA//8AAP//AAD//xoa///p6f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////7S0//8iIv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//a2v///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAD//wAA//8AAP//AAD//wAA//8AAP////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////+Hh//8AAP//AAD//wAA//8AAP//AAD//wAA//////////////////////////////// + /////////////////////////////////////////////8LC//8NDf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//3R0//////////////////////////////////////////////////////////////// + ////////////////////////////////////////o6P//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//zw8///z8/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////z8///BAT//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//PDz///Pz//////////////////////////////////////////////// + ////////1NT//yIi//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//DQ3//6io//////////////// + ///////////////////////////////////////////////////////////////////z8///PDz//wAA + //8AAP//AAD//wAA//8AAP//AAD//w0N///Z2f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////8/P//3Jy//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//ERH//93d + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAA//8AAP//AAD//wAA//8AAP//Hh7///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////29v//AAD//wAA//8AAP//AAD//wAA//8AAP//9vb///////////////////// + /////////////////////////////////////////////8LC//8NDf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//3R0//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////6Oj//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//KSn//+np//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////9ra//+zs///iIj//7e3//////////////////////////////// + ////////////////////////////////////////////////////////6en//xER//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//PDz///Pz//////////////////////////////////////////////// + ///////////////////p6f//PDz//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//g4P///// + ///////////////////////////////////////////////////////////////////6+v//UFD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wQE//+/v/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+Dg///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//7e3 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAP//AAD//wAA//8AAP//AAD//yMj//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAA//8AAP//AAD//wAA//8AAP//AAD//+Hh//////////////// + /////////////////////////////////////////////8LC//8NDf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//5OT//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////+jo///AAD//wAA//8AAP//AAD//wAA + //9RUf//Ghr//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//2dn///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///g4P//t7f//4yM//9hYf//ODj//w0N//8AAP//AAD//wAA//9aWv////////////////////////// + ////////////////////////////////////////////////////////6en//ykp//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//VVX///b2//////////////////////////////////////////////// + //////////////////////////////r6//9iYv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //9ZWf//8/P/////////////////////////////////////////////////////////////b2///wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//+oqP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+3t///BAT//wAA//8AAP//AAD//wAA//8AAP//AAD//4OD + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAD//wAA//8AAP//AAD//wAA//8jI/////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8REf//AAD//wAA//8AAP//AAD//wAA///h4f////////// + /////////////////////////////////////////////6ys//8ICP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//5OT//////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////o6P//wAA//8AAP//AAD//wAA + //8AAP//f3///+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//xER///Cwv////////// + ////////////////////////////////////////////////////////5+f//7y8//+Rkf//ZGT//zg4 + //8NDf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//FRX///////////////////// + ////////////////////////////////////////////////////////3d3//ykp//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//+vr//////////////////////////////////////////////// + /////////////////////////////////////////////4uL//8EBP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//zU1///p6f//////////////////////////////////////////////////i4v//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//+Pj/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////h4f//FRX//wAA//8AAP//AAD//wAA//8AAP//AAD//0hI + ///6+v////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAA//8AAP//AAD//wAA//8AAP//IyP///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////IyP//wAA//8AAP//AAD//wAA//8AAP//xMT///// + /////////////////////////////////////////////6ys//8EBP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//5OT//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////6Oj//8AAP//AAD//wAA + //8AAP//AAD//39/////////8PD//zw8//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//CAj//6ys + /////////////////////////////+vr//+/v///kZH//2ho//88PP//ERH//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA///S0v////////// + ////////////////////////////////////////////////////////2dn//xoa//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//+zs/////////////////////////////////////////// + ////////////////////////////////////////////////////////s7P//w0N//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//Ghr//8zM////////////////////////////////////////paX//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//9vb/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////29v//MTH//wAA//8AAP//AAD//wAA//8AAP//AAD//yIi + ///w8P////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8AAP//AAD//wAA//8AAP//AAD//yMj + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////ycn//8AAP//AAD//wAA//8AAP//AAD//8TE + /////////////////////////////////////////////6ys//8EBP//AAD//wAA//8AAP//AAD//wAA + //8AAP//BAT//6Wl//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////+env//AAD//wAA + //8AAP//AAD//wAA//9/f//////////////z8///UFD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8EBP//lpb////////Z2f//RET//xYW//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//kZH///// + ////////////////////////////////////////////////////////2dn//xoa//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//cHD///////////////////////////////////// + ///////////////////////////////////////////////////////////////////U1P//IiL//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8NDf//qKj/////////////////////////////u7v//wQE + //8AAP//AAD//wAA//8AAP//AAD//wAA//9VVf//+vr///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////YmL//wAA//8AAP//AAD//wAA//8AAP//AAD//w0N + ///Q0P////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////r6///AAD//wAA//8AAP//AAD//wAA + //8jI/////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////9ERP//AAD//wAA//8AAP//AAD//wAA + //+rq////////////////////////////////////////6Wl//8EBP//AAD//wAA//8AAP//AAD//wAA + //8AAP//BAT//6ys//////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////f3///wAA + //8AAP//AAD//wAA//8AAP//f3////////////////////r6//9nZ///AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//98fP//4eH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//1NT + ////////////////////////////////////////////////////////wsL//w0N//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//zQ0//////////////////////////////// + /////////////////////////////////////////////////////////////////////////////+zs + //9BQf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+Dg///////////////////0ND//w0N + //8AAP//AAD//wAA//8AAP//AAD//wAA//88PP//8/P///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////nZ3//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //+hof////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////4eH//wAA//8AAP//AAD//wAA + //8AAP//IyP///////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////RET//wAA//8AAP//AAD//wAA + //8AAP//o6P//////////////////////////////////5OT//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//BAT//6ys//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + //8AAP//AAD//wAA//8AAP//AAD//39//////////////////////////////0tL//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//15e//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8NDf//+vr/////////////////////////////////////////////wsL//w0N//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//8PD///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////+vr//2dn//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//1lZ///z8///4eH//xoa + //8AAP//AAD//wAA//8AAP//AAD//wAA//8pKf//7Oz///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////zMz//wgI//8AAP//AAD//wAA//8AAP//AAD//wAA + //9ra/////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////+Hh//8AAP//AAD//wAA + //8AAP//AAD//yMj//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////15e//8AAP//AAD//wAA + //8AAP//AAD//5GR/////////////////////////////5OT//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//DQ3//7Oz//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9/f///AAD//wAA//8AAP//AAD//wAA//9/f///////////////////6en//1VV//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8ICP//CAj//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8EBP//MDD//1pa//+IiP//q6v//wAA//8AAP//AAD//wAA + //8AAP//AAD//8vL////////////////////////////////////////r6///w0N//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//i4v//wgI//8AAP//AAD//wAA//8AAP//AAD//7Oz//////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////k5P//wQE//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//NTX//ykp + //8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//3d3///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////7Oz//x4e//8AAP//AAD//wAA//8AAP//AAD//wAA + //84OP//+vr///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////h4f//AAD//wAA + //8AAP//AAD//wAA//8jI/////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9hYf//AAD//wAA + //8AAP//AAD//wAA//9/f////////////////////////5OT//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//DQ3//8LC//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////f3///wAA//8AAP//AAD//wAA//8AAP//jIz/////////////nZ3//xER//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//9FRf//4eH//zg4//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//zAw//9WVv//f3///6+v///W1v//+vr///////////////////////80NP//AAD//wAA + //8AAP//AAD//wAA//+Hh////////////////////////////////////////8LC//8NDf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//5OT//9ERP//AAD//wAA//8AAP//AAD//wAA//9tbf////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+3t///DQ3//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8NDf//zMz///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////+vr//0VF//8AAP//AAD//wAA//8AAP//AAD//wAA + //8aGv//5eX///////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////4eH//wAA + //8AAP//AAD//wAA//8AAP//IyP///////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////c3P//wAA + //8AAP//AAD//wAA//8AAP//d3f//////////////////4OD//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//DQ3//8LC//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////39///8AAP//AAD//wAA//8AAP//AAD//6Oj///Z2f//QUH//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//xER//+hof////////////9TU///AAD//wAA//8AAP//AAD//wAA + //9wcP//0tL///b2////////////////////////////////////////////////////////cHD//wAA + //8AAP//AAD//wAA//8AAP//R0f/////////////////////////////////////////////wsL//w0N + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//IiL//wAA//8AAP//AAD//wAA//8AAP//Kyv///// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////9nZ//8mJv//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8EBP//t7f///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////4CA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8EBP//v7////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////+Hh + //8AAP//AAD//wAA//8AAP//AAD//yMj//////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + //8AAP//AAD//wAA//8AAP//AAD//2Fh/////////////3R0//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//Ghr//8LC//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////9/f///AAD//wAA//8AAP//AAD//wAA//9CQv//CAj//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//1VV///s7P//////////////////aGj//wAA//8AAP//AAD//wAA + //8AAP//f3///////////////////////////////////////////////////////////////////7u7 + //8AAP//AAD//wAA//8AAP//AAD//wgI///29v////////////////////////////////////////// + ///Cwv//DQ3//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + ///n5/////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////7Oz//0FB//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//oaH///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////6+v//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//j4////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///h4f//AAD//wAA//8AAP//AAD//wAA//88PP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //+IiP//AAD//wAA//8AAP//AAD//wAA//9hYf///////3R0//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//Ghr//9nZ//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////f3///wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//Hh7//7S0/////////////////////////////4OD//8AAP//AAD//wAA + //8AAP//AAD//2Rk//////////////////////////////////////////////////////////////// + ///z8///BAT//wAA//8AAP//AAD//wAA//8AAP//w8P///////////////////////////////////// + /////////////8LC//8aGv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//q6v///////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////6+v//Z2f//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//g4P///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////93d//8NDf//AAD//wAA//8AAP//AAD//wAA + //8AAP//WVn///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////4eH//wAA//8AAP//AAD//wAA//8AAP//RET///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////o6P//wAA//8AAP//AAD//wAA//8AAP//RET//3R0//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//Ghr//9nZ//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////2ho//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//b2////Pz//////////////////////////////////+jo///AAD//wAA + //8AAP//AAD//wAA//9MTP////////////////////////////////////////////////////////// + /////////////zs7//8AAP//AAD//wAA//8AAP//AAD//39///////////////////////////////// + ////////////////////////2dn//xoa//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//2ho//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //+Tk///BAT//wAA//8AAP//AAD//wAA//8AAP//Z2f///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////Pz//8uLv//AAD//wAA//8AAP//AAD//wAA + //8AAP//Li7///Pz//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////+Hh//8AAP//AAD//wAA//8AAP//AAD//0RE//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////6Oj//8AAP//AAD//wAA//8AAP//AAD//wQE//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//Hh7//9nZ//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9hYf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8qKv//yMj/////////////////////////////////////////////xMT//wAA + //8AAP//AAD//wAA//8AAP//MDD///////////////////////////////////////////////////// + /////////////8zM//8aGv//AAD//wAA//8AAP//AAD//wAA//8/P/////////////////////////// + ///////////////////////////////////Z2f//Ghr//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8rK/////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////7e3//8NDf//AAD//wAA//8AAP//TEz///r6//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////9ZWf//AAD//wAA//8AAP//AAD//wAA + //8AAP//DQ3//9nZ//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////h4f//AAD//wAA//8AAP//AAD//wAA//9ERP////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////ExP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//KSn//+np//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////p6f//NTX//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wQE//+Cgv//+vr//////////////////////////////////////////////////93d + //8AAP//AAD//wAA//8AAP//AAD//xER//////////////////////////////////////////////// + /////////////52d//8ICP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT///Pz//////////////// + /////////////////////////////////////////////9nZ//8aGv//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//+fn//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////2dn//yYm//8AAP//NTX///Pz//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////+Skv//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//6+v//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////4eH//wAA//8AAP//AAD//wAA//8AAP//RET///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////xMT//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//KSn//+np//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+dnf//ERH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//zk5///Z2f////////////////////////////////////////////////////////// + ///29v//AAD//wAA//8AAP//AAD//wAA//8AAP//8/P///////////////////////////////////// + ////////+vr//2dn//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//x4e///p6f////////// + ////////////////////////////////////////////////////////2dn//xoa//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//+rq/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////s7P//YmL//+np//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////+/v///BAT//wAA//8AAP//AAD//wAA + //8AAP//AAD//4CA//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////9ra//8AAP//AAD//wAA//8AAP//AAD//0RE//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////9ra//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//KSn//+np//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////9nZ//9BQf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//DQ3//5aW///6+v////////////////////////////////////////////////////////// + /////////////xYW//8AAP//AAD//wAA//8AAP//AAD//9ra//////////////////////////////// + ////////6en//zg4//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//0FB///p6f////////// + ///////////////////////////////////////////////////////////////////Z2f//KSn//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//YWH///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////p6f//Ghr//wAA//8AAP//AAD//wAA + //8AAP//AAD//0VF///6+v////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////ExP//AAD//wAA//8AAP//AAD//wAA//9ERP////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////h4f//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//PDz///Pz//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////+vr//4aG//8ICP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//SEj//+Xl//////////////////////////////////////////////////////////////// + //////////////////8wMP//AAD//wAA//8AAP//AAD//wAA//9VVf//kZH//7y8///g4P////////// + ////////v7///xoa//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//3Bw///6+v////////// + /////////////////////////////////////////////////////////////////////////////+np + //8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//yMj///6+v////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////6+v//PDz//wAA//8AAP//AAD//wAA + //8AAP//AAD//x4e///s7P////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////xMT//wAA//8AAP//AAD//wAA//8AAP//RET///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////6+v//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//PDz///Pz//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////yMj//y4u//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//8TE//////////////////////////////////////////////////////////////// + ////////////////////////TEz//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wgI + //80NP//U1P//wQE//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//CAj//6Gh//////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////6en//ykp//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//VVX///r6//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////c3P//wAA//8AAP//AAD//wAA + //8AAP//AAD//wgI///MzP////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////8TE//8AAP//AAD//wAA//8AAP//AAD//0RE + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//PDz///Pz//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////z8///b2///wQE//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA///ExP////////////////////////////////////////////////////////// + /////////////////////////////2Rk//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//Hh7//8zM//////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////p6f//KSn//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//9VVf//+vr///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////paX//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//+dnf////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////ExP//AAD//wAA//8AAP//AAD//wAA + //9ERP////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////BAT//wAA//8AAP//AAD//wAA + //8AAP//VVX///Pz//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////+0tP//Hh7//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//xMT///////////////////////////////////////////////////// + //////////////////////////////////9/f///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//RUX//+zs//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+np//8mJv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//0xM + ///z8/////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////1NT//w0N//8AAP//AAD//wAA + //8AAP//AAD//wAA//9nZ/////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////xMT//wAA//8AAP//AAD//wAA + //8AAP//RET///////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////yMj//8AAP//AAD//wAA + //8AAP//VVX///r6//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////+np//9VVf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//w0N + //8AAP//AAD//wAA//8AAP//AAD//8TE//////////////////////////////////////////////// + ////////////////////////////////////////o6P//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//d3f///r6//////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////kZH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//PDz///Pz//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////8/P//yYm//8AAP//AAD//wAA + //8AAP//AAD//wAA//81Nf//9vb///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////8TE//8AAP//AAD//wAA + //8AAP//AAD//1NT//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8jI///AAD//wAA + //8AAP//VVX///r6//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////52d//8REf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//MTH//8zM + //9ERP//AAD//wAA//8AAP//AAD//wAA///ExP////////////////////////////////////////// + /////////////////////////////////////////////87O//8nJ///AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8NDf//paX///////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////8TE//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//88PP//8/P///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////0xM//8AAP//AAD//wAA + //8AAP//AAD//wAA//8VFf//5eX///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////ExP//AAD//wAA + //8AAP//AAD//wAA//9hYf////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////QED//wAA + //8AAP//a2v///r6//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////2dn//0FB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8ICP//ior///r6 + ////////RET//wAA//8AAP//AAD//wAA//8AAP//4eH///////////////////////////////////// + //////////////////////////////////////////////////////////////r6///a2v//t7f//5GR + //9ra///TEz//x4e//8AAP//AAD//wAA//8AAP//AAD//wAA//8iIv//0ND///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////8/P//4KC//8NDf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//zw8///z8/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////4iI//8AAP//AAD//wAA + //8AAP//AAD//wAA//8EBP//u7v///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////xMT//wAA + //8AAP//AAD//wAA//8AAP//YWH///////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////0RE + //8AAP//dHT///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///6+v//hob//wgI//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//9BQf//3Nz///// + /////////////0RE//8AAP//AAD//wAA//8AAP//AAD//+Hh//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////9vb//9bW//+zs///jIz//2ho//9eXv//7Oz///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////6+v//nZ3//xoa//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//PDz//+np//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////7u7//8EBP//AAD//wAA + //8AAP//AAD//wAA//8AAP//iIj///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////8TE + //8AAP//AAD//wAA//8AAP//AAD//2Fh//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9TU///dHT///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///IyP//Li7//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//xER//+dnf////////// + //////////////////9ERP//AAD//wAA//8AAP//AAD//wAA///h4f////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+ysv//Kir//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8pKf//6en///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////+Hh//8VFf//AAD//wAA + //8AAP//AAD//wAA//8AAP//UVH///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///ExP//AAD//wAA//8AAP//AAD//wAA//9hYf////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////xcX///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////Pz + //9vb///BAT//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//1VV///l5f////////// + ////////////////////////RET//wAA//8AAP//AAD//wAA//8AAP//4eH///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////8jI//9CQv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8nJ///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//ykp///p6f////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////b2//81Nf//AAD//wAA + //8AAP//AAD//wAA//8AAP//KSn///Pz//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////xMT//wAA//8AAP//AAD//wAA//8AAP//YWH///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////7S0 + //8eHv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//FRX//7Cw//////////////// + /////////////////////////////ycn//8AAP//AAD//wAA//8AAP//AAD//+Hh//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////3Nz//1lZ//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//0JC///IyP//+vr//1VV//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//KSn//+np + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9nZ///AAD//wAA + //8AAP//AAD//wAA//8AAP//DQ3//9TU//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////6Oj//8AAP//AAD//wAA//8AAP//AAD//2Fh//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////+np + //9FRf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//9dXf//4eH///// + //////////////////////////////////8jI///AAD//wAA//8AAP//AAD//wAA///h4f////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////s7P//cnL//wQE//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//MjL//7m5///////////////////6+v//VVX//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8pKf//5eX///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////+hof//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//6io//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////+jo///AAD//wAA//8AAP//AAD//wAA//9hYf////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////729//8yMv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wgI + //92dv//8PD/////////////////////////////IyP//wAA//8AAP//AAD//wAA//8AAP//4eH///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////b2//+Kiv//ERH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8mJv//paX///////////////////////////////////r6//9VVf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//xoa///Z2f////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////MzP//CAj//wAA + //8AAP//AAD//wAA//8AAP//AAD//3d3//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////o6P//wAA//8AAP//AAD//wAA//8AAP//YWH///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////6Gh//8iIv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//xER//+Ojv//9vb//////////////////yMj//8AAP//AAD//wAA//8AAP//AAD///b2 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////9zc//8eHv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//xER + //+Zmf//+vr/////////////////////////////////////////////+vr//1VV//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//Ghr//9nZ//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////s7P//IiL//wAA + //8AAP//AAD//wAA//8AAP//AAD//0FB///6+v////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////6Oj//8AAP//AAD//wAA//8AAP//AAD//2Fh//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9vb//46O//8REf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//yYm//+lpf////////////8jI///AAD//wAA//8AAP//AAD//wAA + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////yMj//zY2//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8EBP//amr///Dw////////////////////////////////////////////////////////dHT//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//2dn///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////6+v//SEj//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//+QkP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+jo///AAD//wAA//8AAP//AAD//wAA//9hYf////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////8PD//3Z2//8ICP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//zY2///Cwv//IyP//wAA//8AAP//AAD//wAA + //8AAP////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////6+v//mZn//xER//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8VFf//nZ3///////////////////////////////////////////////////// + //90dP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//xoa///Z2f////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////4CA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//3x8///6+v////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////o6P//wAA//8AAP//AAD//wAA//8AAP//a2v///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////4eH//2Fh + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////s7P//Zmb//wQE//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//85Of//3d3///////////////////////////////////// + ////////+vr//ycn//8AAP//AAD//wAA//8AAP//AAD//wAA//8NDf//wsL///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////oaH//wQE//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//TEz///Pz//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////6Oj//8AAP//AAD//wAA//8AAP//AAD//39/ + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////o6P//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//9mZv//8PD///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////0dH//0VF//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////MzP//OTn//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//9nZ//////////////////////////////// + /////////////3R0//8AAP//AAD//wAA//8AAP//AAD//wAA//8EBP//rKz///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////Cwv//FRX//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8uLv//4eH///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////+jo///AAD//wAA//8AAP//AAD//wAA + //9/f/////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////6Oj//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//xUV//+oqP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////vb3//zIy//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //+dnf//FRX//wAA//8AAP//AAD//wAA//8AAP//AAD//yMj//////////////////////////////// + /////////////5OT//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//j4////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////93d//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//xoa + ///Cwv////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////o6P//wAA//8AAP//AAD//wAA + //8AAP//f3////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////AwP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//0lJ///h4f////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////oaH//yIi//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//5mZ///6+v////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////Dw//8yMv//AAD//wAA//8AAP//AAD//wAA//9tbf////////////////////////// + /////////////6ys//8EBP//AAD//wAA//8AAP//AAD//wAA//8AAP//b2////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////8/P//0VF//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//BAT//6Gh//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////6Oj//8AAP//AAD//wAA + //8AAP//AAD//39///////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////xMT//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//CAj//4+P///6+v////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////29v//jo7//xER//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//g4P///////////////////////////////////// + /////////////////////////////////////////////7+///+Rkf//o6P//7e3///ExP//2tr//+Hh + ///29v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////Ghr//wAA//8AAP//AAD//wAA//8AAP//u7v///////////////////// + /////////////8LC//8NDf//AAD//wAA//8AAP//AAD//wAA//8AAP//UFD///r6//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////6+v//a2v//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//fHz///r6//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////+jo///AAD//wAA + //8AAP//AAD//wAA//9/f/////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////8TE//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//MTH//8jI + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////w8P//dnb//wgI + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//4OD//////////////////////////////// + //////////////////////////////////////////////////9oaP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8eHv//IyP//0BA//9ERP//YWH//2Rk//9/f///zc3///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////zs7//wAA//8AAP//AAD//wAA//8AAP//CAj///b2//////////////// + /////////////9nZ//8aGv//AAD//wAA//8AAP//AAD//wAA//8AAP//ODj///Pz//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////+Wlv//BAT//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//9QUP//8/P///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////iIj//wAA + //8AAP//AAD//wAA//8AAP//f3////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////ExP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8EBP//b2////Dw//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///h4f//YWH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+jo/////////////////////////// + ////////////////////////////////////////////////////////Vlb//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//9CQv//u7v///// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////39///8AAP//AAD//wAA//8AAP//AAD//0tL//////////////// + /////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//Jib//+np//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////7e3 + //8NDf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//zEx///l5f////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + //8AAP//AAD//wAA//8AAP//AAD//39///////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////2tr//wAA + //8AAP//AAD//wAA//8AAP//IyP/////////////wMD//yoq//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8eHv//sLD///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//o6P///////////////////// + /////////////////////////////////////////////////////////////0RE//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8yMv//qqr///r6//////////////////////////////////////////////////////////////// + //////////////////////////////////87O///AAD//wAA//8AAP//AAD//wAA//+Vlf////////// + //////////////Pz//88PP//AAD//wAA//8AAP//AAD//wAA//8AAP//ERH//9nZ//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////1NT//yIi//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//Ghr//8fH//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9/f///AAD//wAA//8AAP//AAD//wAA//9/f/////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////+Hh + //8AAP//AAD//wAA//8AAP//AAD//yMj///////////////////29v//fn7//wQE//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//9RUf//5eX///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////6+v//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//6Oj//////////////// + //////////////////////////////////////////////////////////////////8nJ///AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8mJv//lZX///b2//////////////////////////////////////////////// + ///////////////////////////////////s7P//AAD//wAA//8AAP//AAD//wAA//8AAP//3Nz///// + //////////////r6//9VVf//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//8LC//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////p6f//PDz//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8ICP//paX///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////f3///wAA//8AAP//AAD//wAA//8AAP//f3////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///h4f//AAD//wAA//8AAP//AAD//wAA//8AAP/////////////////////////////U1P//OTn//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w0N//+Wlv//+vr///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////4eH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+3t/////////// + ////////////////////////////////////////////////////////////////////////ERH//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//hYX///Dw//////////////////////////////// + ////////////////////////////////////////pqb//wAA//8AAP//AAD//wAA//8AAP//Jyf///// + //////////////////90dP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//6io//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////b2//9dXf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //+AgP////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////39///8AAP//AAD//wAA//8AAP//AAD//39///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////4eH//wAA//8AAP//AAD//wAA//8AAP//AAD///////////////////////////////////r6 + //+Wlv//DQ3//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//zk5///Q0P////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+Hh//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//xMT///// + /////////////////////////////////////////////////////////////////////////////wAA + //8AAP//AAD//wAA//8AAP//AAD//yMj//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8REf//i4v///////////////////// + /////////////////////////////////////////////1pa//8AAP//AAD//wAA//8AAP//AAD//3Fx + //////////////////+Tk///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//4uL//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////4iI//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//1BQ///z8/////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////9/f///AAD//wAA//8AAP//AAD//wAA//+Dg/////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////Pz//8AAP//AAD//wAA//8AAP//AAD//wAA//////////////////////////////// + /////////////+Xl//9NTf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//3d3 + ///29v////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////h4f//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//8TE + /////////////////////////////////////////////////////////////////////////////+Hh + //8AAP//AAD//wAA//8AAP//AAD//w0N///////////////////k5P//4eH//8fH///ExP//q6v//319 + //8REf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//7Cw//////////////// + //////////////////////////////////////////////r6//8REf//AAD//wAA//8AAP//AAD//wAA + //+/v/////////////+srP//BAT//wAA//8AAP//AAD//wAA//8AAP//AAD//2tr//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////qKj//w0N//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//MTH//+Xl//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////f3///wAA//8AAP//AAD//wAA//8AAP//o6P///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAD//wAA//8AAP//AAD//wAA//8AAP////////////////////////// + /////////////////////////////6ys//8aGv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//IiL//7y8//////////////////////////////////////////////////////////////// + ////////////////////////////////////////4eH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + ///Hx/////////////////////////////////////////////////////////////////////////// + ///Pz///AAD//wAA//8AAP//AAD//wAA//8jI/////////////////////////////////////////// + ////////8PD//4yM//8aGv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//1VV//////////////// + ///////////////////////////////////////////////////Hx///AAD//wAA//8AAP//AAD//wAA + //8NDf//9vb////////Cwv//DQ3//wAA//8AAP//AAD//wAA//8AAP//AAD//0hI///6+v////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////Hx///Ghr//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//x8f///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////39///8AAP//AAD//wAA//8AAP//AAD//6Oj//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAA//8AAP//AAD//wAA//8AAP//AAD//+Tk//////////////// + ////////////////////////////////////////8PD//2Zm//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//9WVv////////////////////////////////////////////////////////// + /////////////////////////////////////////////+Hh//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//4eH///////////////////////////////////////////////////////////////////// + ////////wMD//wAA//8AAP//AAD//wAA//8AAP//RET///////////////////////////////////// + ////////////////////////3Nz//wQE//8AAP//AAD//wAA//8AAP//AAD//xER///s7P////////// + ////////////////////////////////////////////////////////fHz//wAA//8AAP//AAD//wAA + //8AAP//T0/////////Z2f//Ghr//wAA//8AAP//AAD//wAA//8AAP//AAD//zEx///z8/////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////+Xl + //8xMf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wgI//+lpf////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9/f///AAD//wAA//8AAP//AAD//wAA//+jo/////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAP//AAD//wAA//8AAP//AAD//wAA///h4f////////// + ////////////////////////////////////////////////////////wMD//yoq//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//d3f///////////////////////////////////////////////////// + ///////////////////////////////////////////////////h4f//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//+Hh//////////////////////////////////////////////////////////////// + /////////////6Oj//8AAP//AAD//wAA//8AAP//AAD//1NT//////////////////////////////// + /////////////////////////////01N//8AAP//AAD//wAA//8AAP//AAD//wAA//+hof////////// + /////////////////////////////////////////////////////////////y8v//8AAP//AAD//wAA + //8AAP//AAD//5mZ///p6f//KSn//wAA//8AAP//AAD//wAA//8AAP//AAD//x4e///p6f////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////8/P//0xM//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//4CA//////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////f3///wAA//8AAP//AAD//wAA//8AAP//o6P///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////ERH//wAA//8AAP//AAD//wAA//8AAP//4eH///// + ///////////////////////////////////////////////////////////////////29v//fn7//wQE + //8AAP//AAD//wAA//8AAP//AAD//56e//////////////////////////////////////////////// + ////////////////////////////////////////////////////////4eH//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA///h4f////////////////////////////////////////////////////////// + //////////////////+MjP//AAD//wAA//8AAP//AAD//wAA//9kZP////////////////////////// + /////////////////////////////6Gh//8AAP//AAD//wAA//8AAP//AAD//wAA//9FRf////////// + /////////////////////////////////////////////////////////////+Tk//8AAP//AAD//wAA + //8AAP//AAD//wAA///U1P//PDz//wAA//8AAP//AAD//wAA//8AAP//AAD//w0N///Z2f////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////6+v//fHz//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//UFD///Pz + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////39///8AAP//AAD//wAA//8AAP//AAD//6Oj + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////yMj//8AAP//AAD//wAA//8AAP//AAD//+Hh + //////////////////////////////////////////////////////////////////////////////// + //80NP//AAD//wAA//8AAP//AAD//wAA///AwP////////////////////////////////////////// + /////////////////////////////////////////////////////////////8/P//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//8PD///////////////////////////////////////////////////// + ////////////////////////d3f//wAA//8AAP//AAD//wAA//8AAP//f3////////////////////// + /////////////////////////////+Xl//8REf//AAD//wAA//8AAP//AAD//wAA//8NDf//4eH///// + //////////////////////////////////////////////////////////////////+env//AAD//wAA + //8AAP//AAD//wAA//8nJ///VVX//wAA//8AAP//AAD//wAA//8AAP//AAD//wQE//+/v/////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+dnf//BAT//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8xMf//5eX///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////9wcP//AAD//wAA//8AAP//AAD//wAA + //+jo/////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8jI///AAD//wAA//8AAP//AAD//wAA + ///Ly/////////////////////////////////////////////////////////////////////////// + ////////DQ3//wAA//8AAP//AAD//wAA//8AAP//4eH///////////////////////////////////// + ///////////////////////////////////////////////////////////////////ExP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD///////////////////////////////////////////////////// + /////////////////////////////2Fh//8AAP//AAD//wAA//8AAP//AAD//5qa//////////////// + //////////////////////////////////9NTf//AAD//wAA//8AAP//AAD//wAA//8AAP//j4////// + ////////////////////////////////////////////////////////////////////////Vlb//wAA + //8AAP//AAD//wAA//8AAP//DQ3//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+lpf////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////7+///8REf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//xoa///Hx/////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////YWH//wAA//8AAP//AAD//wAA + //8AAP//o6P///////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////IyP//wAA//8AAP//AAD//wAA + //8AAP//xMT///////////////////////////////////////////////////////////////////// + ////////6+v//wAA//8AAP//AAD//wAA//8AAP//BAT///////////////////////////////////// + ////////////////////////////////////////////////////////////////////////xMT//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//////////////////////////////////////////////// + //////////////////////////////////9MTP//AAD//wAA//8AAP//AAD//wAA//8EBP//LCz//09P + //9wcP//lZX//7y8///d3f////////////+hof//AAD//wAA//8AAP//AAD//wAA//8AAP//OTn///r6 + ////////////////////////////////////////////////////////////////////////9vb//w0N + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+Dg/////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////2dn//ykp//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//CAj//6Wl//////////////////////////////////////////////// + /////////////////////////////////////////////////////////////2Fh//8AAP//AAD//wAA + //8AAP//AAD//6Oj//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////yws//8AAP//AAD//wAA + //8AAP//AAD//8TE//////////////////////////////////////////////////////////////// + /////////////8vL//8AAP//AAD//wAA//8AAP//AAD//yws//////////////////////////////// + /////////////////////////////////////////////////////////////////////////////8TE + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP////////////////////////////////////////// + ////////////////////////////////////////ODj//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wQE//8sLP//DQ3//wAA//8AAP//AAD//wAA//8AAP//BAT//9TU + /////////////////////////////////////////////////////////////////////////////7+/ + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//9iYv////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////r6//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////w8P//QUH//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//gID///////////////////////////////////// + //////////////////////////////////////////////////////////////////9hYf//AAD//wAA + //8AAP//AAD//wAA//+jo/////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9ERP//AAD//wAA + //8AAP//AAD//wAA///ExP////////////////////////////////////////////////////////// + //////////////////+rq///AAD//wAA//8AAP//AAD//wAA//9MTP////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///ExP//AAD//wAA//8AAP//AAD//wAA//8AAP//IyP///////////////////////////////////// + /////////////////////////////////////////////yMj//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//4KC + //////////////////////////////////////////////////////////////////////////////// + //90dP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//9FRf//+vr///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////7S0//88PP//8/P///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////r6 + //9nZ///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//9QUP//8/P///////////////////// + ////////////////////////////////////////////////////////////////////////YWH//wAA + //8AAP//AAD//wAA//8AAP//o6P///////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////RET//wAA + //8AAP//AAD//wAA//8AAP//q6v///////////////////////////////////////////////////// + ////////////////////////bW3//wAA//8AAP//AAD//wAA//8AAP//a2v///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////xMT//wAA//8AAP//AAD//wAA//8AAP//AAD//yMj//////////////////////////////// + //////////////////////////////////////////////////8EBP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//yoq + ///29v////////////////////////////////////////////////////////////////////////// + ////////Kyv//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8uLv//8/P///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////Dw//8eHv//AAD//zw8///z8/////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////4+P//8EBP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//zEx///l5f////////// + /////////////////////////////////////////////////////////////////////////////2Fh + //8AAP//AAD//wAA//8AAP//AAD//6Oj//////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////0RE + //8AAP//AAD//wAA//8AAP//AAD//6Oj//////////////////////////////////////////////// + ///////////////////6+v//d3f//wAA//8AAP//AAD//wAA//8AAP//AAD//4yM//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////8TE//8AAP//AAD//wAA//8AAP//AAD//wAA//8jI/////////////////////////// + ///////////////////////////////////////////////////w8P//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + ///IyP////////////////////////////////////////////////////////////////////////// + ////////3Nz//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//6en///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9vb///AAD//wAA//8AAP//PDz///Pz//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////s7P//w0N//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//Ghr//8fH + //////////////////////////////////////////////////////////////////////////////// + //9hYf//AAD//wAA//8AAP//AAD//wAA///ExP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9ISP//AAD//wAA//8AAP//AAD//wAA//+jo/////////////////////////////////////////// + ///////////////////z8///SEj//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+zs/////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////+8vP//AAD//wAA//8AAP//AAD//wAA//8AAP//NDT///////////////////// + ////////////////////////////////////////////////////////9vb//6+v//+IiP//ZGT//0hI + //8eHv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //9vb/////////////////////////////////////////////////////////////////////////// + /////////////5WV//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8NDf//0ND///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////AwP//AAD//wAA//8AAP//AAD//wAA//8uLv//6en///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////Q0P//Hh7//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8ICP//paX///////////////////////////////////////////////////////////////////// + ////////YWH//wAA//8AAP//AAD//wAA//8AAP//xMT///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////YWH//wAA//8AAP//AAD//wAA//8AAP//o6P///////////////////////////////////// + ///////////////////Z2f//KSn//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//2dn///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////o6P//wAA//8AAP//AAD//wAA//8AAP//AAD//0RE//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////b2///a2v//t7f//5GR//9wcP//T0///yws//8ICP//AAD//wAA//8AAP//AAD//wAA + //8iIv//8/P///////////////////////////////////////////////////////////////////// + //////////////////9LS///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8EBP//t7f///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////z8///IiL//wAA//8AAP//AAD//wAA//8AAP//AAD//ykp + ///p6f////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////+np//84OP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//+AgP////////////////////////////////////////////////////////// + /////////////2Fh//8AAP//AAD//wAA//8AAP//AAD//8TE//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////2Fh//8AAP//AAD//wAA//8AAP//AAD//4yM//////////////////////////////// + //////////////////+7u///ERH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8EBP//nZ3///// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////6Oj//8AAP//AAD//wAA//8AAP//AAD//wAA//9ERP////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////+Tk///AwP//np7//3d3 + //9WVv//t7f///////////////////////////////////////////////////////////////////// + ///////////////////29v//CAj//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//nZ3///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////cnL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//KSn//+np//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////8/P//1VV//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//6Ki//////////////////////////////////////////////// + //////////////////9hYf//AAD//wAA//8AAP//AAD//wAA///ExP////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////9hYf//AAD//wAA//8AAP//AAD//wAA//9/f/////////////////////////// + //////////////////+Tk///BAT//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//wsL///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////+jo///AAD//wAA//8AAP//AAD//wAA//8AAP//RET///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////t7f//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//gID///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////yMj//wQE//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8iIv//2dn///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////Pz//88PP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//3R0//////////////////////////////////////////////// + ////////////////////////YWH//wAA//8AAP//AAD//wAA//8AAP//xMT///////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////YWH//wAA//8AAP//AAD//wAA//8AAP//f3////////////////////// + //////////////r6//9nZ///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8xMf//5eX///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////o6P//wAA//8AAP//AAD//wAA//8AAP//AAD//2Fh + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////2ho//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//XV3///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9vb//yoq//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//xoa///Z2f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////Pz//88PP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//3R0//////////////////////////////////////////////// + /////////////////////////////1pa//8AAP//AAD//wAA//8AAP//AAD//8TE//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////39///8AAP//AAD//wAA//8AAP//AAD//39///////////////// + /////////////+np//9BQf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//9ZWf//8/P///// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////6Oj//8AAP//AAD//wAA//8AAP//AAD//wAA + //9hYf////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////8LC//8NDf//AAD//wAA//8AAP//AAD//wAA//8AAP//PDz///r6 + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////3d3//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//Ghr//9nZ//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////Pz//88PP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//1VV///6+v////////////////////////////////////////// + //////////////////////////////////9ERP//AAD//wAA//8AAP//AAD//wAA///ExP////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////9/f///AAD//wAA//8AAP//AAD//wAA//9wcP////////// + /////////////9TU//8iIv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+IiP////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////+jo///AAD//wAA//8AAP//AAD//wAA + //8AAP//YWH///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////9nZ//8aGv//AAD//wAA//8AAP//AAD//wAA//8AAP//KSn///Dw + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////9DQ//8EBP//AAD//wAA//8AAP//AAD//wAA + //8ICP//Xl7//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//x8f///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////r6//88PP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//1VV///6+v////////////////////////////////////////// + ////////////////////////////////////////RET//wAA//8AAP//AAD//wAA//8AAP//xMT///// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////f3///wAA//8AAP//AAD//wAA//8AAP//YWH///// + /////////////6+v//8NDf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w0N//+zs/////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////o6P//wAA//8AAP//AAD//wAA + //8AAP//AAD//3Bw//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//2Nj + ///29v////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////r6//8xMf//AAD//wAA//8AAP//AAD//wAA + //8AAP//j4////////+Li///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w0N///Cwv////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////r6//9VVf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//1VV///6+v////////////////////////////////////////// + /////////////////////////////////////////////0RE//8AAP//AAD//wAA//8AAP//AAD//8TE + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////39///8AAP//AAD//wAA//8AAP//AAD//zAw + //9eXv//PDz//xYW//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//yYm///U1P////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////4OD//8AAP//AAD//wAA + //8AAP//AAD//wAA//9/f/////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//MTH//9nZ//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////+Cgv//AAD//wAA//8AAP//AAD//wAA + //8AAP//OTn///r6/////////////5OT//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//DQ3//8LC + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////r6//9VVf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//0hI///6+v////////////////////////////////////////// + //////////////////////////////////////////////////9ERP//AAD//wAA//8AAP//AAD//wAA + ///ExP////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////+env//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//0VF///s7P////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9/f///AAD//wAA + //8AAP//AAD//wAA//8AAP//f3////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8NDf//np7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////Q0P//BAT//wAA//8AAP//AAD//wAA + //8AAP//CAj//9nZ////////////////////////k5P//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8NDf//t7f///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////r6//9VVf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//zw8///z8/////////////////////////////////////////// + ////////////////////////////////////////////////////////RET//wAA//8AAP//AAD//wAA + //8AAP//xMT///////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////o6P//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//3Bw///6+v////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////f3///wAA + //8AAP//AAD//wAA//8AAP//AAD//39///////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//9ZWf//8PD///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////6+v//OTn//wAA//8AAP//AAD//wAA + //8AAP//AAD//4+P//////////////////////////////////+Tk///AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wQE//+srP////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9ZWf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//zw8///z8/////////////////////////////////////////// + /////////////////////////////////////////////////////////////0RE//8AAP//AAD//wAA + //8AAP//AAD//9ra//////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////6Oj//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//52d//////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////39/ + //8AAP//AAD//wAA//8AAP//AAD//wAA//+jo/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//xER + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//yIi///IyP////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////j4///wAA//8AAP//AAD//wAA + //8AAP//AAD//zY2///6+v///////////////////////////////////////6Wl//8EBP//AAD//wAA + //8AAP//AAD//wAA//8AAP//BAT//6ys//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////90dP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//zw8///z8/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9ERP//AAD//wAA + //8AAP//AAD//wAA///h4f////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////+jo///AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//Ghr//8LC//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9/f///AAD//wAA//8AAP//AAD//wAA//8AAP//o6P///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//5OT + ///s7P//SEj//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//4uL//////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////2dn//wgI//8AAP//AAD//wAA + //8AAP//AAD//wQE///Q0P//////////////////////////////////////////////////rKz//wQE + //8AAP//AAD//wAA//8AAP//AAD//wAA//8EBP//qKj///////////////////////////////////// + //////////////////////////////////////////////////////////////////90dP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//ykp///z8/////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////RET//wAA + //8AAP//AAD//wAA//8AAP//4eH///////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////vLz//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8aGv//S0v//+Xl//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////f3///wAA//8AAP//AAD//wAA//8AAP//AAD//6Oj//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//5OT + //////////////////+Skv//CAj//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//RUX//+np + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////zk5//8AAP//AAD//wAA + //8AAP//AAD//wAA//+Cgv////////////////////////////////////////////////////////// + //+srP//BAT//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+Tk/////////////////////////// + //////////////////////////////////////////////////////////////////90dP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//ykp///p6f////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////0RE + //8AAP//AAD//wAA//8AAP//AAD//+Hh//////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////8TE + //8AAP//AAD//wAA//8nJ///TEz//2ho//+MjP//s7P//9bW///z8/////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////39///8AAP//AAD//wAA//8AAP//AAD//wAA//8WFv//PDz//1NT//9oaP//f3///56e + //+3t///z8///+Tk//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//5OT + /////////////////////////////9DQ//8qKv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8VFf//t7f///////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////5aW//8AAP//AAD//wAA + //8AAP//AAD//wAA//8xMf//+vr///////////////////////////////////////////////////// + /////////////6ys//8EBP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//5OT//////////////// + //////////////////////////////////////////////////////////////////+AgP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//ykp///p6f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //9ERP//AAD//wAA//8AAP//AAD//wAA///h4f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///p6f//vLz//93d//////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////9iYv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//x4e//84OP//T0///2Rk//9/f///mpr//7Oz///Ly///4eH///// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//5OT + ////////////////////////////////////////8/P//2tr//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//9zc///+vr///////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////+Hh//8NDf//AAD//wAA + //8AAP//AAD//wAA//8EBP//0ND///////////////////////////////////////////////////// + ////////////////////////t7f//w0N//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//k5P///// + //////////////////////////////////////////////////////////////////+Tk///AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//ykp///p6f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////RET//wAA//8AAP//AAD//wAA//8AAP//4eH///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////0tL//3Fx//8eHv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//Ghr//zQ0//9MTP//YWH//3p6//+Vlf//r6///8fH///h4f//+vr///////////////////// + /////////////////////////////+np//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//5OT + ////////////////////////////////////////////////////////rKz//xER//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//zEx///d3f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////9BQf//AAD//wAA + //8AAP//AAD//wAA//8AAP//goL///////////////////////////////////////////////////// + ///////////////////////////////////Cwv//DQ3//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //94eP////////////////////////////////////////////////////////////+Tk///AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//xoa///d3f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////ycn//8AAP//AAD//wAA//8AAP//AAD//+Hh//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////9zc + //+EhP//Jyf//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8WFv//MDD//0hI + //9hYf//d3f//5GR//+rq///xMT//9bW//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//6Gh + ///////////////////////////////////////////////////////////////////h4f//PDz//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//DQ3//6Gh//////////////////////////////// + //////////////////////////////////////////////////////////////////+Zmf//AAD//wAA + //8AAP//AAD//wAA//8AAP//Kir///b2//////////////////////////////////////////////// + /////////////////////////////////////////////8LC//8NDf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//3R0//////////////////////////////////////////////////+Tk///AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//xoa///Z2f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8jI///AAD//wAA//8AAP//AAD//wAA///h4f////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////s7P//kJD//zs7 + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//6ys + //////////////////////////////////////////////////////////////////////////////r6 + //+Dg///BAT//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//WVn///Pz//////////////// + ///////////////////////////////////////////////////////////////////l5f//ERH//wAA + //8AAP//AAD//wAA//8AAP//BAT//8jI//////////////////////////////////////////////// + ////////////////////////////////////////////////////////wsL//w0N//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//dHT///////////////////////////////////////+dnf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//xoa///Z2f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////IyP//wAA//8AAP//AAD//wAA//8AAP//4eH///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////8/P//6am//9HR///BAT//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//wQE + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//6ys + //////////////////////////////////////////////////////////////////////////////// + /////////////8PD//8iIv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8iIv//zMz///// + ////////////////////////////////////////////////////////////////////////TU3//wAA + //8AAP//AAD//wAA//8AAP//AAD//3d3//////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////MzP//Ghr//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//9dXf//+vr///////////////////////+srP//BAT//wAA + //8AAP//AAD//wAA//8AAP//AAD//xER///Z2f////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////yMj//8AAP//AAD//wAA//8AAP//AAD//+Hh//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////b2//+ysv//WVn//wgI//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8/P///lZX//+zs + ////////6+v//9bW///AwP//o6P//4OD//9ra///Vlb//0BA//8jI///BAT//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//6ys + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////8PD//1VV//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wQE + //+Li///////////////////////////////////////////////////////////////////oaH//wAA + //8AAP//AAD//wAA//8AAP//AAD//yoq///29v////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////9nZ + //8aGv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//1VV///6+v////////////+srP//BAT//wAA + //8AAP//AAD//wAA//8AAP//AAD//w0N///Cwv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8jI///AAD//wAA//8AAP//AAD//wAA///h4f////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////wsL//2Rk//8VFf//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//MzP//4SE///k5P////////// + ///////////////////////////////////////////////////////////////////r6///1tb//8DA + //+jo///g4P//2tr//9WVv//QED//yMj//8EBP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//6ys + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////mZn//w0N//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//0VF///p6f//////////////////////////////////////////////////7Oz//xER + //8AAP//AAD//wAA//8AAP//AAD//wQE///IyP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////2dn//xoa//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//VVX///r6//+srP//BAT//wAA + //8AAP//AAD//wAA//8AAP//AAD//w0N///Cwv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////IyP//wAA//8AAP//AAD//wAA//8AAP//8/P///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////9LS//95ef//Hh7//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//x4e//98fP//0tL///////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////+vr///W1v//wMD//6Oj//+Dg///a2v//1ZW + //9AQP//IyP//wQE//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//BAT//6ys + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////Z2f//MTH//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//Ghr//7e3/////////////////////////////////////////////1VV + //8AAP//AAD//wAA//8AAP//AAD//wAA//9vb/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////Z2f//Ghr//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//89Pf//BAT//wAA + //8AAP//AAD//wAA//8AAP//AAD//w0N///Cwv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////yMj//8AAP//AAD//wAA//8AAP//AAD///// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////g4P//hIT//y4u//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8VFf//aWn//8fH//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////6+v//9bW///AwP//o6P//4OD//9ra///Vlb//0BA//8jI///CAj//6ys + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////b2//9zc///AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//d3f///r6/////////////////////////////6ys + //8AAP//AAD//wAA//8AAP//AAD//wAA//8iIv//8/P///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////93d//8pKf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wQE//+7u/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8jI///AAD//wAA//8AAP//AAD//wAA + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////7Oz//5WV//8/P///AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//DQ3//11d//+2tv//+vr///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////7e3 + //8VFf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//81Nf//3d3//////////////////+zs + //8VFf//AAD//wAA//8AAP//AAD//wAA//8AAP//wMD///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////6en//ykp//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wQE//+srP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////IyP//wAA//8AAP//AAD//wAA + //8AAP////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////Pz + //+mpv//S0v//wQE//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wQE//9OTv//pqb///Pz//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////6en//0VF//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w0N//+lpf////////// + //9iYv//AAD//wAA//8AAP//AAD//wAA//8AAP//b2////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////p6f//KSn//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wQE//+srP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////yMj//8AAP//AAD//wAA + //8AAP//AAD///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////6+v//trb//11d + //8NDf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//Pz///56e///s7P////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////j4///wQE//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//15e + //+qqv//AAD//wAA//8AAP//AAD//wAA//8AAP//IiL///Pz//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////+np//8pKf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wQE//+srP////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8jI///AAD//wAA + //8AAP//AAD//wAA////////////////////////+vr//+Hh///h4f//4eH//+Hh///h4f//4eH//+Hh + ///h4f//4eH//9ra///ExP//xMT//8TE///ExP//xMT//8TE///ExP//xMT//8TE//+zs///o6P//6Oj + //+jo///o6P//6Oj//+jo///o6P//6Oj//+jo///jIz//39///9/f///f3///39///9kZP//FRX//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//zMz + //+IiP//5OT///////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////MzP//Jib//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//729//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////6en//zw8 + //8AAP//AAD//wAA//8AAP//AAD//wAA//+amv////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////DQ3//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8iIv//fHz//9XV + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////Pz//9iYv//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//2Ji//////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///z8///PDz//wAA//8AAP//AAD//wAA//+Tk/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//FRX//21t///Hx/////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////6io//8NDf//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//x4e///w8P////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////Pz//88PP//AAD//wAA//+Tk/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w0N//9dXf//u7v///r6//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////4eH//zk5 + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//+0tP////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////8/P//zw8//+Pj/////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8ICP//UlL//6qq///29v////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///6+v//e3v//wQE//8AAP//AAD//wAA//8AAP//AAD//wAA//9iYv////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////29v////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//wAA//8AAP//AAD//0ND//+env//7Oz///////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////AwP//Hh7//wAA//8AAP//AAD//wAA//8aGv//8PD///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAP//AAD//wAA//8AAP//AAD//wgI//8jI///IyP//yMj//8jI///IyP//yMj + //8jI///IyP//yMj//8jI///IyP//zg4//9ERP//RET//0RE//9ERP//RET//0RE//9ERP//RET//0RE + //9ERP//RET//2Fh//9hYf//YWH//2Fh//9hYf//YWH//2Fh//9hYf//YWH//2Fh//9hYf//a2v//39/ + //9/f///f3///39///9/f///lZX//+Tk//////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////+zs//9RUf//AAD//wAA//8AAP//rKz///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////5aW//8ICP//VVX///////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////1NT//+zs//////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/RBXLegacyLauncher/RBXLegacyLauncher/GlobalVars.cs b/RBXLegacyLauncher/RBXLegacyLauncher/GlobalVars.cs index 4487e61..3b9bf18 100644 --- a/RBXLegacyLauncher/RBXLegacyLauncher/GlobalVars.cs +++ b/RBXLegacyLauncher/RBXLegacyLauncher/GlobalVars.cs @@ -40,6 +40,10 @@ public static string Custom_Hat1ID_Offline = "NoHat.rbxm"; public static string Custom_Hat2ID_Offline = "NoHat.rbxm"; public static string Custom_Hat3ID_Offline = "NoHat.rbxm"; + public static int Custom_TShirt = 0; + public static int Custom_Shirt = 0; + public static int Custom_Pants = 0; + public static int Custom_Face = 0; public static int HeadColorID = 24; public static int TorsoColorID = 23; public static int LeftArmColorID = 24; diff --git a/RBXLegacyLauncher/RBXLegacyLauncher/LauncherFuncs.cs b/RBXLegacyLauncher/RBXLegacyLauncher/LauncherFuncs.cs index 92286ba..35ebd61 100644 --- a/RBXLegacyLauncher/RBXLegacyLauncher/LauncherFuncs.cs +++ b/RBXLegacyLauncher/RBXLegacyLauncher/LauncherFuncs.cs @@ -31,7 +31,7 @@ namespace RBXLegacyLauncher public static void ReadConfigValues(string cfgpath) { string line1; - string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6, Decryptline7, Decryptline8, Decryptline9, Decryptline10, Decryptline11, Decryptline12, Decryptline13, Decryptline14, Decryptline15, Decryptline16, Decryptline17, Decryptline18, Decryptline19, Decryptline20, Decryptline21, Decryptline22; + string Decryptline1, Decryptline2, Decryptline3, Decryptline4, Decryptline5, Decryptline6, Decryptline7, Decryptline8, Decryptline9, Decryptline10, Decryptline11, Decryptline12, Decryptline13, Decryptline14, Decryptline15, Decryptline16, Decryptline17, Decryptline18, Decryptline19, Decryptline20, Decryptline21, Decryptline22, Decryptline23, Decryptline24, Decryptline25, Decryptline26; using(StreamReader reader = new StreamReader(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\config.txt")) { @@ -65,6 +65,10 @@ namespace RBXLegacyLauncher Decryptline20 = SecurityFuncs.Base64Decode(result[19]); Decryptline21 = SecurityFuncs.Base64Decode(result[20]); Decryptline22 = SecurityFuncs.Base64Decode(result[21]); + Decryptline23 = SecurityFuncs.Base64Decode(result[22]); + Decryptline24 = SecurityFuncs.Base64Decode(result[23]); + Decryptline25 = SecurityFuncs.Base64Decode(result[24]); + Decryptline26 = SecurityFuncs.Base64Decode(result[25]); bool bline1 = Convert.ToBoolean(Decryptline1); GlobalVars.CloseOnLaunch = bline1; @@ -112,6 +116,15 @@ namespace RBXLegacyLauncher int iline22 = Convert.ToInt32(Decryptline22); GlobalVars.PlayerLimit = iline22; + + int iline23 = Convert.ToInt32(Decryptline23); + GlobalVars.Custom_TShirt = iline23; + int iline24 = Convert.ToInt32(Decryptline24); + GlobalVars.Custom_Shirt = iline24; + int iline25 = Convert.ToInt32(Decryptline25); + GlobalVars.Custom_Pants = iline25; + int iline26 = Convert.ToInt32(Decryptline26); + GlobalVars.Custom_Face = iline26; } public static void WriteConfigValues(string cfgpath) @@ -138,7 +151,11 @@ namespace RBXLegacyLauncher SecurityFuncs.Base64Encode(GlobalVars.ColorMenu_RightArmColor.ToString()), SecurityFuncs.Base64Encode(GlobalVars.ColorMenu_LeftLegColor.ToString()), SecurityFuncs.Base64Encode(GlobalVars.ColorMenu_RightLegColor.ToString()), - SecurityFuncs.Base64Encode(GlobalVars.PlayerLimit.ToString()) + SecurityFuncs.Base64Encode(GlobalVars.PlayerLimit.ToString()), + SecurityFuncs.Base64Encode(GlobalVars.Custom_TShirt.ToString()), + SecurityFuncs.Base64Encode(GlobalVars.Custom_Shirt .ToString()), + SecurityFuncs.Base64Encode(GlobalVars.Custom_Pants.ToString()), + SecurityFuncs.Base64Encode(GlobalVars.Custom_Face.ToString()) }; File.WriteAllText(cfgpath, SecurityFuncs.Base64Encode(string.Join("|",lines))); } @@ -167,6 +184,10 @@ namespace RBXLegacyLauncher GlobalVars.ColorMenu_LeftLegColor = "Color [A=255, R=164, G=189, B=71]"; GlobalVars.ColorMenu_RightLegColor = "Color [A=255, R=164, G=189, B=71]"; GlobalVars.PlayerLimit = 12; + GlobalVars.Custom_TShirt = 0; + GlobalVars.Custom_Shirt = 0; + GlobalVars.Custom_Pants = 0; + GlobalVars.Custom_Face = 0; } public static void ReadClientValues(string clientpath) @@ -250,5 +271,18 @@ namespace RBXLegacyLauncher //2147483647 is max id. GlobalVars.UserID = randomID; } + + public static bool IsProcessOpen(string name) + { + foreach (Process clsProcess in Process.GetProcesses()) + { + if (clsProcess.ProcessName.Contains(name)) + { + return true; + } + } + + return false; + } } } diff --git a/RBXLegacyLauncher/RBXLegacyLauncher/LoaderForm.cs b/RBXLegacyLauncher/RBXLegacyLauncher/LoaderForm.cs index ed09648..410dbdd 100644 --- a/RBXLegacyLauncher/RBXLegacyLauncher/LoaderForm.cs +++ b/RBXLegacyLauncher/RBXLegacyLauncher/LoaderForm.cs @@ -69,19 +69,19 @@ namespace RBXLegacyLauncher string HatIDOffline3 = GlobalVars.Custom_Hat3ID_Offline; if (GlobalVars.UsesPlayerName == true && GlobalVars.UsesID == true) { - args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(" + GlobalVars.UserID + ",'" + ip + "'," + port + ",'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(" + GlobalVars.UserID + ",'" + GlobalVars.IP + "'," + GlobalVars.RobloxPort + ",'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } else if (GlobalVars.UsesPlayerName == false && GlobalVars.UsesID == true) { - args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(" + GlobalVars.UserID + ",'" + ip + "'," + port + ",'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(" + GlobalVars.UserID + ",'" + GlobalVars.IP + "'," + GlobalVars.RobloxPort + ",'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } else if (GlobalVars.UsesPlayerName == true && GlobalVars.UsesID == false) { - args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(0,'" + ip + "'," + port + ",'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(0,'" + GlobalVars.IP + "'," + GlobalVars.RobloxPort + ",'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } else if (GlobalVars.UsesPlayerName == false && GlobalVars.UsesID == false) { - args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(0,'" + ip + "'," + port + ",'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(0,'" + GlobalVars.IP + "'," + GlobalVars.RobloxPort + ",'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } try { @@ -109,7 +109,14 @@ namespace RBXLegacyLauncher } else { - label1.Text = "Launching Game..."; + string ExtractedArg = GlobalVars.SharedArgs.Replace("rbxlegacy://", "").Replace("rbxlegacy", "").Replace(":", "").Replace("/", "").Replace("?", ""); + string ConvertedArg = SecurityFuncs.Base64Decode(ExtractedArg); + string[] SplitArg = ConvertedArg.Split('|'); + string ip = SecurityFuncs.Base64Decode(SplitArg[0]); + string port = SecurityFuncs.Base64Decode(SplitArg[1]); + string client = SecurityFuncs.Base64Decode(SplitArg[2]); + label1.Text = "Launching " + client + " Game..."; + Process.Start("sudppipe.exe", "-p " + ip + " " + port + " " + port); StartGame(); } } diff --git a/RBXLegacyLauncher/RBXLegacyLauncher/MainForm.cs b/RBXLegacyLauncher/RBXLegacyLauncher/MainForm.cs index 7fc6074..82293ef 100644 --- a/RBXLegacyLauncher/RBXLegacyLauncher/MainForm.cs +++ b/RBXLegacyLauncher/RBXLegacyLauncher/MainForm.cs @@ -87,6 +87,7 @@ namespace RBXLegacyLauncher } WriteConfigValues(); + Process.Start("sudppipe.exe", "-p " + GlobalVars.IP + " " + GlobalVars.RobloxPort + " " + GlobalVars.RobloxPort); StartClient(); if (GlobalVars.CloseOnLaunch == true) @@ -497,6 +498,7 @@ namespace RBXLegacyLauncher void Button19Click(object sender, EventArgs e) { + DialogResult result = MessageBox.Show("Note: If the health bar or scoreboard don't appear, just reset your character. If your character does not move or your character lags after the client window is loaded, just open the server window then minimize it.","RBXLegacy Launcher - Play Solo", MessageBoxButtons.OK, MessageBoxIcon.Information); WriteConfigValues(); StartSolo(); @@ -619,19 +621,19 @@ namespace RBXLegacyLauncher string HatIDOffline3 = GlobalVars.Custom_Hat3ID_Offline; if (GlobalVars.UsesPlayerName == true && GlobalVars.UsesID == true) { - args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(" + GlobalVars.UserID + ",'" + GlobalVars.IP + "'," + GlobalVars.RobloxPort + ",'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(" + GlobalVars.UserID + ",'localhost'," + GlobalVars.RobloxPort + ",'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } else if (GlobalVars.UsesPlayerName == false && GlobalVars.UsesID == true) { - args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(" + GlobalVars.UserID + ",'" + GlobalVars.IP + "'," + GlobalVars.RobloxPort + ",'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(" + GlobalVars.UserID + ",'localhost'," + GlobalVars.RobloxPort + ",'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } else if (GlobalVars.UsesPlayerName == true && GlobalVars.UsesID == false) { - args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(0,'" + GlobalVars.IP + "'," + GlobalVars.RobloxPort + ",'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(0,'localhost'," + GlobalVars.RobloxPort + ",'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } else if (GlobalVars.UsesPlayerName == false && GlobalVars.UsesID == false) { - args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(0,'" + GlobalVars.IP + "'," + GlobalVars.RobloxPort + ",'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = "-script " + quote + "dofile('" + luafile + "'); _G.CSConnect(0,'localhost'," + GlobalVars.RobloxPort + ",'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } try { @@ -660,19 +662,19 @@ namespace RBXLegacyLauncher string HatIDOffline3 = GlobalVars.Custom_Hat3ID_Offline; if (GlobalVars.UsesPlayerName == true && GlobalVars.UsesID == true) { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CSSolo(" + GlobalVars.UserID + ",'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CSSolo(" + GlobalVars.UserID + ",'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } else if (GlobalVars.UsesPlayerName == false && GlobalVars.UsesID == true) { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CSSolo(" + GlobalVars.UserID + ",'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CSSolo(" + GlobalVars.UserID + ",'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } else if (GlobalVars.UsesPlayerName == true && GlobalVars.UsesID == false) { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CSSolo(0,'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CSSolo(0,'" + GlobalVars.PlayerName + "','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } else if (GlobalVars.UsesPlayerName == false && GlobalVars.UsesID == false ) { - args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CSSolo(0,'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ");" + quote; + args = quote + mapfile + "\" -script \"dofile('" + luafile + "'); _G.CSSolo(0,'Player','" + HatIDOffline1 + "','" + HatIDOffline2 + "','" + HatIDOffline3 + "'," + GlobalVars.HeadColorID + "," + GlobalVars.TorsoColorID + "," + GlobalVars.LeftArmColorID + "," + GlobalVars.RightArmColorID + "," + GlobalVars.LeftLegColorID + "," + GlobalVars.RightLegColorID + ",'" + GlobalVars.Custom_TShirt + "','" + GlobalVars.Custom_Shirt + "','" + GlobalVars.Custom_Pants + "','" + GlobalVars.Custom_Face + "');" + quote; } try { @@ -763,6 +765,7 @@ namespace RBXLegacyLauncher } else if (command.Equals("rbxlegacy client")) { + Process.Start("sudppipe.exe", "-p " + GlobalVars.IP + " " + GlobalVars.RobloxPort + " " + GlobalVars.RobloxPort); StartClient(); } else if (command.Equals("rbxlegacy client solo")) diff --git a/RBXLegacyLauncher/RBXLegacyLauncher/RBXLegacyLauncher.csproj b/RBXLegacyLauncher/RBXLegacyLauncher/RBXLegacyLauncher.csproj index a3add37..da19dfc 100644 --- a/RBXLegacyLauncher/RBXLegacyLauncher/RBXLegacyLauncher.csproj +++ b/RBXLegacyLauncher/RBXLegacyLauncher/RBXLegacyLauncher.csproj @@ -59,6 +59,10 @@ CharacterCustomization.cs + + + CharacterCustomization_ClothingMenu.cs + CharacterCustomization_HatMenu.cs @@ -99,6 +103,9 @@ CharacterCustomization.cs + + CharacterCustomization_ClothingMenu.cs + CharacterCustomization_HatMenu.cs diff --git a/RBXLegacySetup.iss b/RBXLegacySetup.iss index 743784c..380656b 100644 --- a/RBXLegacySetup.iss +++ b/RBXLegacySetup.iss @@ -1,7 +1,7 @@ ; Script generated by the Inno Script Studio Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! -#define AppVer "1.17_Final" +#define AppVer "1.18_Final" [Setup] ; NOTE: The value of AppId uniquely identifies this application. @@ -38,6 +38,7 @@ Source: "RBXLegacy\clients\*"; DestDir: "{app}\clients"; Flags: ignoreversion re Source: "RBXLegacy\maps\*"; DestDir: "{app}\maps"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "RBXLegacy\models\*"; DestDir: "{app}\models"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "RBXLegacy\charcustom\*"; DestDir: "{app}\charcustom"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "RBXLegacy\sudppipe.exe"; DestDir: "{app}"; Flags: ignoreversion [Icons] Name: "{group}\RBXLegacy"; Filename: "{app}\RBXLegacyLauncher.exe" diff --git a/RBXLegacy_site/games.php b/RBXLegacy_site/games.php index 4cdccd2..5b2a378 100644 --- a/RBXLegacy_site/games.php +++ b/RBXLegacy_site/games.php @@ -15,7 +15,7 @@
+
+
+
+ +
+

Games

@@ -57,9 +63,7 @@ echo "

".noHTML($row['name'])."

"; echo "

Map: ".noHTML($row['map'])."

"; echo "

Client: ".noHTML(base64_decode($row['client']))."

"; echo "

Player Limit: ".noHTML($row['playerlimit'])."

"; -date_default_timezone_set('America/Phoenix'); -$date = date('m/d/Y h:i:s a', time()); -echo "

Creation Time: ".$date."

"; +echo "

Creation Time: ".noHTML($row['date'])."

"; $stringbuild = $row['ip']."|".$row['port']."|".$row['client']; $encryptstring = base64_encode($stringbuild); $url = "RBXLegacy://".$encryptstring; diff --git a/RBXLegacy_site/getservercode.php b/RBXLegacy_site/getservercode.php index efe0b99..75d984d 100644 --- a/RBXLegacy_site/getservercode.php +++ b/RBXLegacy_site/getservercode.php @@ -24,12 +24,14 @@ $namefixed = mysqli_real_escape_string($con,$_POST['name']); $ipcrypt = base64_encode($_POST['ip']); $clientcrypt = base64_encode($_POST['client']); $portcrypt = base64_encode($_POST['port']); +date_default_timezone_set('America/Phoenix'); +$date = date('m/d/Y h:i:s a', time()); -$sql="INSERT INTO games (name, map, ip, port, client, playerlimit) +$sql="INSERT INTO games (name, map, ip, port, client, playerlimit, date) VALUES -('$namefixed','$_POST[map]','$ipcrypt','$portcrypt','$clientcrypt','$_POST[playerlimit]')"; +('$namefixed','$_POST[map]','$ipcrypt','$portcrypt','$clientcrypt','$_POST[playerlimit]','$date')"; if (!$con->query($sql)) { @@ -44,7 +46,7 @@ $playerlimit=$_POST['playerlimit'];