diff --git a/code/WorkInProgress/computer3/computers/communications.dm b/code/WorkInProgress/computer3/computers/communications.dm index 20c29aaec43..68a1020a750 100644 --- a/code/WorkInProgress/computer3/computers/communications.dm +++ b/code/WorkInProgress/computer3/computers/communications.dm @@ -317,6 +317,7 @@ if(STATE_CANCELSHUTTLE) dat = confirm_menu("cancel the shuttle","cancelshuttle2") if(STATE_MESSAGELIST) + dat += "\[ Back \]
" dat += "Messages:" for(var/i = 1; i<=messagetitle.len; i++) dat += "
[messagetitle[i]]" diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index 18666b56217..fc32220b6d4 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -40,13 +40,14 @@ face_atom(A) // change direction to face what you clicked on - if(aiCamera.in_camera_mode) - aiCamera.camera_mode_off() - if(is_component_functioning("camera")) - aiCamera.captureimage(A, usr) - else - src << "Your camera isn't functional." - return + if(aiCamera) + if(aiCamera.in_camera_mode) + aiCamera.camera_mode_off() + if(is_component_functioning("camera")) + aiCamera.captureimage(A, usr) + else + src << "Your camera isn't functional." + return /* cyborg restrained() currently does nothing diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index e94f02efcf9..6748ea23b39 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -1103,11 +1103,28 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/autodrobe name = "Autodrobe Supply crate" contains = list(/obj/item/weapon/vending_refill/autodrobe, + /obj/item/weapon/vending_refill/autodrobe, /obj/item/weapon/vending_refill/autodrobe) cost = 15 containertype = /obj/structure/closet/crate containername = "autodrobe supply crate" group = "Operations" + +/datum/supply_packs/clothingvendor + name = "Clothing Vendor Supply crate" + contains = list(/obj/item/weapon/vending_refill/hatdispenser, + /obj/item/weapon/vending_refill/hatdispenser, + /obj/item/weapon/vending_refill/hatdispenser, + /obj/item/weapon/vending_refill/suitdispenser, + /obj/item/weapon/vending_refill/suitdispenser, + /obj/item/weapon/vending_refill/suitdispenser, + /obj/item/weapon/vending_refill/shoedispenser, + /obj/item/weapon/vending_refill/shoedispenser, + /obj/item/weapon/vending_refill/shoedispenser) + cost = 30 + containertype = /obj/structure/closet/crate + containername = "clothing vendor supply crate" + group = "Operations" /datum/supply_packs/mafia name = "Mafia Supply crate" diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 1d6d00a32a3..c108e02822c 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -265,7 +265,10 @@ to destroy them and players will be able to make replacements. /obj/machinery/vending/snack = "Getmore Chocolate Corp", /obj/machinery/vending/cola = "Robust Softdrinks", /obj/machinery/vending/cigarette = "ShadyCigs Deluxe", - /obj/machinery/vending/autodrobe = "AutoDrobe") + /obj/machinery/vending/autodrobe = "AutoDrobe", + /obj/machinery/vending/hatdispenser = "Hatlord 9000", + /obj/machinery/vending/suitdispenser = "Suitlord 9000", + /obj/machinery/vending/shoedispenser = "Shoelord 9000") /obj/item/weapon/circuitboard/vendor/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/weapon/screwdriver)) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 95e98055cff..4305d639d80 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -718,6 +718,17 @@ /obj/item/weapon/reagent_containers/food/snacks/sosjerky = 30,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 20,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 30, /obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 25) refill_canister = /obj/item/weapon/vending_refill/snack + +/obj/machinery/vending/snack/New() + ..() + component_parts = list() + var/obj/item/weapon/circuitboard/vendor/V = new(null) + V.set_type(type) + component_parts += V + component_parts += new /obj/item/weapon/vending_refill/snack(0) + component_parts += new /obj/item/weapon/vending_refill/snack(0) + component_parts += new /obj/item/weapon/vending_refill/snack(0) + /obj/machinery/vending/chinese name = "Mr. Chang" desc = "A self-serving chinese food machine, for all your chinese food needs." @@ -728,16 +739,6 @@ prices = list(/obj/item/weapon/reagent_containers/food/snacks/chinese/chowmein = 50, /obj/item/weapon/reagent_containers/food/snacks/chinese/tao = 50, /obj/item/weapon/reagent_containers/food/snacks/chinese/newdles = 50, /obj/item/weapon/reagent_containers/food/snacks/chinese/rice = 50, /obj/item/weapon/reagent_containers/food/snacks/wingfangchu = 50) -/obj/machinery/vending/snack/New() - ..() - component_parts = list() - var/obj/item/weapon/circuitboard/vendor/V = new(null) - V.set_type(type) - component_parts += V - component_parts += new /obj/item/weapon/vending_refill/snack(0) - component_parts += new /obj/item/weapon/vending_refill/snack(0) - component_parts += new /obj/item/weapon/vending_refill/snack(0) - /obj/machinery/vending/cola name = "Robust Softdrinks" desc = "A softdrink vendor provided by Robust Industries, LLC." @@ -752,6 +753,17 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb = 20,/obj/item/weapon/reagent_containers/food/drinks/cans/starkist = 20, /obj/item/weapon/reagent_containers/food/drinks/cans/space_up = 20) refill_canister = /obj/item/weapon/vending_refill/cola + +/obj/machinery/vending/cola/New() + ..() + component_parts = list() + var/obj/item/weapon/circuitboard/vendor/V = new(null) + V.set_type(type) + component_parts += V + component_parts += new /obj/item/weapon/vending_refill/cola(0) + component_parts += new /obj/item/weapon/vending_refill/cola(0) + component_parts += new /obj/item/weapon/vending_refill/cola(0) + //This one's from bay12 /obj/machinery/vending/cart name = "PTech" @@ -763,16 +775,6 @@ /obj/item/weapon/cartridge/janitor = 10,/obj/item/weapon/cartridge/signal/toxins = 10,/obj/item/device/pda/heads = 10, /obj/item/weapon/cartridge/captain = 3,/obj/item/weapon/cartridge/quartermaster = 10) -/obj/machinery/vending/cola/New() - ..() - component_parts = list() - var/obj/item/weapon/circuitboard/vendor/V = new(null) - V.set_type(type) - component_parts += V - component_parts += new /obj/item/weapon/vending_refill/cola(0) - component_parts += new /obj/item/weapon/vending_refill/cola(0) - component_parts += new /obj/item/weapon/vending_refill/cola(0) - /obj/machinery/vending/cigarette name = "Cigarette machine" //OCD had to be uppercase to look nice with the new formating desc = "If you want to get cancer, might as well do it in style" @@ -933,16 +935,6 @@ premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1) refill_canister = /obj/item/weapon/vending_refill/autodrobe -/obj/machinery/vending/cigarette/New() - ..() - component_parts = list() - var/obj/item/weapon/circuitboard/vendor/V = new(null) - V.set_type(type) - component_parts += V - component_parts += new /obj/item/weapon/vending_refill/cigarette(0) - component_parts += new /obj/item/weapon/vending_refill/cigarette(0) - component_parts += new /obj/item/weapon/vending_refill/cigarette(0) - /obj/machinery/vending/dinnerware name = "Dinnerware" desc = "A kitchen and restaurant equipment vendor" @@ -1036,6 +1028,7 @@ products = list(/obj/item/clothing/head/bowlerhat = 10,/obj/item/clothing/head/beaverhat = 10,/obj/item/clothing/head/boaterhat = 10,/obj/item/clothing/head/fedora = 10,/obj/item/clothing/head/fez = 10) contraband = list(/obj/item/clothing/head/bearpelt = 5) premium = list(/obj/item/clothing/head/soft/rainbow = 1) + refill_canister = /obj/item/weapon/vending_refill/hatdispenser /obj/machinery/vending/suitdispenser name = "Suitlord 9000" @@ -1047,6 +1040,7 @@ /obj/item/clothing/under/lightblue = 10,/obj/item/clothing/under/lightbrown = 10,/obj/item/clothing/under/brown = 10,/obj/item/clothing/under/yellowgreen = 10,/obj/item/clothing/under/darkblue = 10,/obj/item/clothing/under/lightred = 10, /obj/item/clothing/under/darkred = 10) contraband = list(/obj/item/clothing/under/syndicate/tacticool = 5,/obj/item/clothing/under/color/orange = 5,/obj/item/clothing/under/psyche = 5) premium = list(/obj/item/clothing/under/rainbow = 1) + refill_canister = /obj/item/weapon/vending_refill/suitdispenser /obj/machinery/vending/shoedispenser name = "Shoelord 9000" @@ -1056,6 +1050,7 @@ products = list(/obj/item/clothing/shoes/black = 10,/obj/item/clothing/shoes/brown = 10,/obj/item/clothing/shoes/blue = 10,/obj/item/clothing/shoes/green = 10,/obj/item/clothing/shoes/yellow = 10,/obj/item/clothing/shoes/purple = 10,/obj/item/clothing/shoes/red = 10,/obj/item/clothing/shoes/white = 10) contraband = list(/obj/item/clothing/shoes/jackboots = 5,/obj/item/clothing/shoes/orange = 5) premium = list(/obj/item/clothing/shoes/rainbow = 1) + refill_canister = /obj/item/weapon/vending_refill/shoedispenser /obj/machinery/vending/syndicigs name = "Suspicious Cigarette Machine" diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index 684c01bc226..f42ea800745 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -95,7 +95,8 @@ item_state = "syringe_kit" w_class = 3 max_w_class = 2 - storage_slots = 6 + max_combined_w_class = 20 + storage_slots = 12 req_access = list(access_captain) icon_locked = "medalbox+l" icon_closed = "medalbox" diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm index 3877094138f..84b688d5a4e 100644 --- a/code/game/objects/items/weapons/vending_items.dm +++ b/code/game/objects/items/weapons/vending_items.dm @@ -57,3 +57,18 @@ machine_name = "AutoDrobe" icon_state = "refill_costume" charges = 19// of 58 + +/obj/item/weapon/vending_refill/hatdispenser + machine_name = "hat" + icon_state = "refill_costume" + charges = 18// of 56 + +/obj/item/weapon/vending_refill/suitdispenser + machine_name = "suit" + icon_state = "refill_costume" + charges = 68// of 206 + +/obj/item/weapon/vending_refill/shoedispenser + machine_name = "shoe" + icon_state = "refill_costume" + charges = 30// of 91 \ No newline at end of file diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 3061098705a..220f70ac6e5 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -171,77 +171,6 @@ else src.DB_species_unlock("Slime People",45) return - if(href_list["KarmaBuy3"]) - var/karma=verify_karma() - switch(href_list["KarmaBuy3"]) - if("1") - if(karma <30) - usr << "You do not have enough karma!" - return - else - src.DB_job_unlock("Tajaran Ambassador",30) - return - if("2") - if(karma <30) - usr << "You do not have enough karma!" - return - else - src.DB_job_unlock("Unathi Ambassador",30) - return - if("3") - if(karma <30) - usr << "You do not have enough karma!" - return - else - src.DB_job_unlock("Skrell Ambassador",30) - return - if("4") - if(karma <30) - usr << "You do not have enough karma!" - return - else - src.DB_job_unlock("Diona Ambassador",30) - return - if("5") - if(!is_alien_whitelisted(usr,"Kidan")) - usr << "You need to have unlocked Kidan first!" - return - if(karma <30) - usr << "You do not have enough karma!" - return - else - src.DB_job_unlock("Kidan Ambassador",30) - return - if("6") - if(!is_alien_whitelisted(usr,"Slime People")) - usr << "You need to have unlocked Slime People first!" - return - if(karma <30) - usr << "You do not have enough karma!" - return - else - src.DB_job_unlock("Slime People Ambassador",30) - return - if("7") - if(!is_alien_whitelisted(usr,"Grey")) - usr << "You need to have unlocked Grey first!" - return - if(karma <30) - usr << "You do not have enough karma!" - return - else - src.DB_job_unlock("Grey Ambassador",30) - return - if("8") - if(!is_alien_whitelisted(usr,"Vox")) - usr << "You need to have unlocked Vox first!" - return - if(karma <30) - usr << "You do not have enough karma!" - return - else - src.DB_job_unlock("Vox Ambassador",30) - return switch(href_list["_src_"]) diff --git a/code/unused/computer3/computers/communications.dm b/code/unused/computer3/computers/communications.dm index 23b2540ade3..d0ca19b73ec 100644 --- a/code/unused/computer3/computers/communications.dm +++ b/code/unused/computer3/computers/communications.dm @@ -317,6 +317,7 @@ if(STATE_CANCELSHUTTLE) dat = confirm_menu("cancel the shuttle","cancelshuttle2") if(STATE_MESSAGELIST) + dat += "\[ Back \]
" dat += "Messages:" for(var/i = 1; i<=messagetitle.len; i++) dat += "
[messagetitle[i]]" diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm index 9050acacb72..896a98be190 100644 --- a/maps/cyberiad.dmm +++ b/maps/cyberiad.dmm @@ -909,10 +909,10 @@ "ary" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "arz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area) "arA" = (/obj/machinery/light{dir = 1},/obj/structure/closet/wardrobe/grey,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) -"arB" = (/obj/structure/closet/wardrobe/black,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) +"arB" = (/obj/machinery/camera{c_tag = "Locker Room"; network = list("SS13")},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/closet/wardrobe/black,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) "arC" = (/obj/structure/closet/wardrobe/xenos,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) "arD" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) -"arE" = (/obj/machinery/washing_machine,/obj/machinery/camera{c_tag = "Locker Room"; network = list("SS13")},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) +"arE" = (/obj/machinery/vending/autodrobe,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) "arF" = (/obj/machinery/washing_machine,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) "arG" = (/obj/machinery/washing_machine,/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/crew_quarters/locker) "arH" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/window/brigdoor{dir = 1; req_access_txt = "63"},/turf/simulated/floor,/area/security/prisonershuttle) @@ -10246,7 +10246,7 @@ "dPb" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) "dPc" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/research_outpost/power) "dPd" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/power) -"dPe" = (/turf/simulated/floor,/area/research_outpost/longtermstorage) +"dPe" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet,/turf/simulated/floor,/area/research_outpost/longtermstorage) "dPf" = (/turf/simulated/mineral,/area/research_outpost/power) "dPg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned) "dPh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned) @@ -12546,6 +12546,7 @@ "eHn" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/decal/cleanable/dirt,/obj/machinery/light,/turf/simulated/floor,/area/engiestation) "eHo" = (/turf/simulated/floor{dir = 4; icon_state = "yellow"},/area/engiestation) "eHp" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor,/area/engiestation) +"eHq" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/power) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -12633,7 +12634,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFaaaaaaaaaaaaaaaaaaaaaafoaabaiNaiOaiOaiOaiOaiPaiQaiRaiSaiSaiSaiSaiTaaaafoaaaafpamaanGanGanGamaaaaaaaaaiaaqaoqaoraaJaaJamLamLaaqaaqaaqaaqaosaotaaqaaqaaqaouaovaowaouaaqaaqaaqaoxaoyaaqaozaoAaaqaoBaoyaaqaaqaaqaoCaoDaaqaaJaoEaoFaoGaoHaaqamwaokaoIaaiaaiaaiaoJaoKaoLaaiaoMaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafpaabaoNaoOaoOaoOaoOaoPaoQaoRaoSaoSaoSaoSaoTaabafpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZalZalZaaaalZalZalZalZalZalZalZalZalZaaaalZalZalZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFaaaaaaaaaaaaaaaaaaafoaabajrajrajrajrajraabaoUaabajrajrajrajrajraabafoaaaafXaoVaoWanGanGamaaaaaaaaaiaoXaoYaoZaiZapbamLapcaaqapdapeapfapgaphapiapjapkaplapmapnapoappapqapiaprapsaptapuapvapwapxapsaaqapyapzapAapBaaqapCapDapEapFapGapHamwaokapIapJapKapLapMapMapNaaiapOaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafpaabapPapPapPapPapPaabapQaabapPapPapPapPapPaabafpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZalZalZaaaalZalZalZalZalZalZalZalZalZaaaalZalZalZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFaaaaaaaaaaaaaaaaaaafoaaaaabaabaabaabaabaaaapRapSapSapSapSapSapTaabafoaaaafpamaapUapVapWapXaaaaaaaaiapYapZaqaaqbaaJaqcamLaaqaqdaqeaqfaqgaqhaqiaqjaqkaqlaqmaqnaqoaqkaqpaqqaqraqsaqtaquaqvaqwaqxaqyaqzaqAaqBaqCaqDaaqaqEaqFaqFaqGaqFaqHamwaokanAanAanAanAaqIanAaqJaqKaqLaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaafoaaaaaaaaaaabaaaaaaaabapQaaaaaaaaaaabaaaaaaaaaafoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFaaaaaaaaaaaaaaaaaaafoafoafoafoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqMaaaafoaaaafpaqNaqOaqPaqPamaaaaaaaaaiapYaqQaqRaqSaaJaqTaqUaaqaqVaqWaqXaqYaqZaraarbarcardarearfargarhariaraarjaqyarkarlarmarkaqxaqyaaqarnaroarparqaaqarrarsaqFaqGaqFartamwaruarvarwarxarwarvaryacfarzaaqaaiarBarAarDarCarEarFarGarFarFaaiaaaaaaaaaafpaabaooaooaooaooaooaabapQaabaooaooaooaooaooaabafpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFaaaaaaaaaaaaaaaaaaafoafoafoafoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqMaaaafoaaaafpaqNaqOaqPaqPamaaaaaaaaaiapYaqQaqRaqSaaJaqTaqUaaqaqVaqWaqXaqYaqZaraarbarcardarearfargarhariaraarjaqyarkarlarmarkaqxaqyaaqarnaroarparqaaqarrarsaqFaqGaqFartamwaruarvarwarxarwarvaryacfarzaaqaaiarEarAarDarCarBarFarGarFarFaaiaaaaaaaaaafpaabaooaooaooaooaooaabapQaabaooaooaooaooaooaabafpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqMaaaaaaaaaafpamaaqPaqPaqPamaaaaaaaaaiaaiabnaaiaaiafjaaiarHaaiaaqaaqaaqarIarJaaqaaqaaqaaqarKarLaaqaaqaaqaaiarMarNarOarParQarRaqxarSaaqarTarUarVadEabIarXarYarZadzaqFasaamwasbascasdaseasfasganAaaiashasiaaiasjaskaslasmasmasmasmasmasnaaiaaaaaaaaaafpaabaoNaoOaoOaoOaoOaoPaoQaoRaoSaoSaoSaoSaoTaabafpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanFanFanFanFanFanFanFanFanFanFanFanFanFanFanFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaqMaaaaaaaaaafoamaaqPaqPaqPamaaaiaaiaaiasoaspasqasrassastasuaaiasvapeapfapgaphapiaswapkasxasyaszasAasBasCapiasDasEasFasGasHasHasIasJaaqasKasLasMasNaaqasOasPasQaqGaqFasRamwasbaqIascascascasSasTasUasVasWaaiasXasYahwataatbatcatdatdateaaiaaaaaaaaaafpaabapPapPapPapPapPaabapQaabapPapPapPapPapPaabafpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanFanFanFanFanFanFanFanFanFanFanFanFanFanFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiatfatgathatiatjaaiaaaaaaaaaaaaaaaaqMaaaaaaaabafpamaaqPaqPaqPatkamIatlamKatmatnatoatpatqatoatraaiaqdatsattatuatvatwatxatyatzatAatBatCatDatEatFatGatHatHatIatHatHatJatKatLatMatNatOatPaaqatQatRatSatTatUatVamwasbatWatXatXatXatYatZauaaubaucaaiaudaueaufataataataataataataaaiaaaaaaaaaamFaaaaaaaaaaabaaaaaaaaaapQaaaaaaaaaaabaaaaaaaaaafoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZalZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -13635,7 +13636,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadMKdMLdMMdMNdMOdMPdMQaabaabdKkdKkdJadJadKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdMRdMRdMSaabdJQaaaaabaabaabaabaabdJadJLdJLdJLdJLdJLdMTdMUdJLdKEdKEdMVdMWdMXdMadMYdMZdNadNbdNcdNddMadNedNfdNgdNhdNidNjdNkdKLdNldNmaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJbdJbdJbdJbdJbaaadJbdJbdJbdJbdJbaaadJbdJbdJbdJbdJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadNndMjdNodNpdNqdMmdNrdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdMRdMRdMRaaaaaadJQdNsdNsdNsdNsdNsdNsdNsdKbdNtdNudNvdNwdNxdNydNzdNAdNBdNCdNDdNEdMadNFdNGdNHdNIdNJdNKdNLdNMdNNdNOdNOdNOdNPdNQdNRdNSdNTdNTdNUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJbdJbdJbdJbdJbaaadJbdJbdJbdJbdJbaaadJbdJbdJbdJbdJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdNVdNWdNXdNrdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdMRaaaaaadJQdNsdNsdNsdNsdNsdNsdNsdNYdNZdOadObdOcdOddOedOfdOgdOhdOidOjdOkdOldOmdOndOodOpdOqdOrdOsdOtdOudNOdZqdOwdOxdOydNOdOzdNmdNmdNmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadJbdJbdJbdJbdJbaaaaaaaaaaaaaaaaaaaaadJbdJbdJbdJbdJbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdOAdOBdOCdODdNrdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkaaaaaaaaaaaadJQdNsdNsdNsdNsdNsdNsdNsdOEdOFdNudOGdOHdOIdOJdOKdOLdOMdJLdONdOOdOPdOQdORdSFdOTdSDdOVdMadOWdOXdOYdOZdOZdPadPbdPcdPddPDdPfdPfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdOAdOBdOCdODdNrdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkaaaaaaaaaaaadJQdNsdNsdNsdNsdNsdNsdNsdOEdOFdNudOGdOHdOIdOJdOKdOLdOMdJLdONdOOdOPdOQdORdSFdOTdSDdOVdMadOWdOXdOYdOZdOZdPadPbdPcdPdeHqdPfdPfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdPgdPhdPidNrdPjdPkdNrdNrdNrdNrdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkaaaaaaaaaaaaaaaaaadJQdNsdNsdNsdNsdNsdNsdNsdPldOFdNudOGdOHdPmdPndOKdPodPpdJLdPqdPrdMadPsdMadMadMadMadPtdMadPudPvdNOdPwdPxdPydPzdPAdPBdPCdPDdPDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdPEdPFdPGdPHdPIdPJdKPdMPdPKdNrdPLdPMdNrdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkaaaaaaaaaaaaaaaaaadJQdNsdNsdNsdNsdNsdNsdNsdKbdOFdNudTRdOHdPNdPOdOKdPQdPRdJLdPSdPTdTTdPVeGHdPXdPYdMadPZdQadQbdQcdQddQedQfdQgdQhdQidPBdPfdPfdPfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdQjdQkdPFdQldQmdQndQodQpdPKdQqdPMdQrdPLdNrdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkdKkaaaaaaaaaaaaaaaaaadQsdQtdQudQvdQwdQxdQudQydQzdQAdQBdKbdQCdQDdJLdJLdJLdJLdJLdQEdQFdQGdPVdQHdPXdQIdMadQJdQKdQLdQMdQNdQOdQPdSGdQRdQSdQTdQUdJLdQVdKzdJAdJAdJAdJAdJAdJAdJBdQWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa