diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index cc10e646dd6..47781148d98 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -152,3 +152,66 @@ /obj/item/robot_parts/robot_component/radio name = "radio" + +// +//Robotic Component Analyser, basically a health analyser for robots +// +/obj/item/device/robotanalyzer + name = "cyborg analyzer" + icon_state = "robotanalyzer" + item_state = "analyzer" + desc = "A hand-held scanner able to diagnose robotic injuries." + flags = FPRINT | TABLEPASS | CONDUCT + slot_flags = SLOT_BELT + throwforce = 3 + w_class = 1.0 + throw_speed = 5 + throw_range = 10 + m_amt = 200 + origin_tech = "magnets=1;biotech=1" + var/mode = 1; + +/obj/item/device/robotanalyzer/attack(mob/living/M as mob, mob/living/user as mob) + if(( (CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50)) + user << text("\red You try to analyze the floor's vitals!") + for(var/mob/O in viewers(M, null)) + O.show_message(text("\red [user] has analyzed the floor's vitals!"), 1) + user.show_message(text("\blue Analyzing Results for The floor:\n\t Overall Status: Healthy"), 1) + user.show_message(text("\blue \t Damage Specifics: [0]-[0]-[0]-[0]"), 1) + user.show_message("\blue Key: Suffocation/Toxin/Burns/Brute", 1) + user.show_message("\blue Body Temperature: ???", 1) + return + if(!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") + user << "\red You don't have the dexterity to do this!" + return + if(!istype(M, /mob/living/silicon/robot)) + user << "\red You can't analyze non-robotic things!" + return + + user.visible_message(" [user] has analyzed [M]'s components."," You have analyzed [M]'s components.") + var/BU = M.getFireLoss() > 50 ? "[M.getFireLoss()]" : M.getFireLoss() + var/BR = M.getBruteLoss() > 50 ? "[M.getBruteLoss()]" : M.getBruteLoss() + user.show_message("\blue Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "fully disabled" : "[M.health - M.halloss]% functional"]") + user.show_message("\t Key: Electronics/Brute", 1) + user.show_message("\t Damage Specifics: [BU] - [BR]") + if(M.tod && M.stat == DEAD) + user.show_message("\blue Time of Disable: [M.tod]") + + var/mob/living/silicon/robot/H = M + var/list/damaged = H.get_damaged_components(1,1,1) + user.show_message("\blue Localized Damage:",1) + if(length(damaged)>0) + for(var/datum/robot_component/org in damaged) + user.show_message(text("\blue \t []: [][] - [] - [] - []", \ + capitalize(org.name), \ + (org.installed == -1) ? "DESTROYED " :"",\ + (org.electronics_damage > 0) ? "[org.electronics_damage]" :0, \ + (org.brute_damage > 0) ? "[org.brute_damage]" :0, \ + (org.toggled) ? "Toggled ON" : "Toggled OFF",\ + (org.powered) ? "Power ON" : "Power OFF"),1) + else + user.show_message("\blue \t Components are OK.",1) + if(H.emagged && prob(5)) + user.show_message("\red \t ERROR: INTERNAL SYSTEMS COMPROMISED",1) + src.add_fingerprint(user) + return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 492a64d04c2..71f83cf03ad 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -777,7 +777,8 @@ else - spark_system.start() + if( !(istype(W, /obj/item/device/robotanalyzer) || istype(W, /obj/item/device/healthanalyzer)) ) + spark_system.start() return ..() /mob/living/silicon/robot/attack_alien(mob/living/carbon/alien/humanoid/M as mob) diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm index 7387b20b792..58f2042826a 100644 --- a/code/modules/mob/living/silicon/robot/robot_damage.dm +++ b/code/modules/mob/living/silicon/robot/robot_damage.dm @@ -32,12 +32,13 @@ else heal_overall_damage(0, -amount) -/mob/living/silicon/robot/proc/get_damaged_components(var/brute, var/burn) +/mob/living/silicon/robot/proc/get_damaged_components(var/brute, var/burn, var/destroyed = 0) var/list/datum/robot_component/parts = list() for(var/V in components) var/datum/robot_component/C = components[V] - if(C.installed == 1) if((brute && C.brute_damage) || (burn && C.electronics_damage)) - parts += C + if(C.installed == 1 || (C.installed == -1 && destroyed)) + if((brute && C.brute_damage) || (burn && C.electronics_damage) || (!C.toggled) || (!C.powered && C.toggled)) + parts += C return parts /mob/living/silicon/robot/proc/get_damageable_components() diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index dff59246963..0152c2cd2b7 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index d9ddd78a292..1d9ede66474 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -3042,7 +3042,7 @@ "bgz" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bgA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bgB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/crew_quarters/captain) -"bgC" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/megaphone,/turf/simulated/floor,/area/quartermaster/qm) +"bgC" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/item/device/megaphone,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bgD" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/captain,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bgE" = (/obj/structure/table/woodentable,/obj/machinery/computer/skills{icon_state = "medlaptop"},/obj/item/weapon/hand_tele,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bgF" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/wood,/area/crew_quarters/captain) @@ -3568,7 +3568,7 @@ "bqF" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bqG" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 30; pixel_y = 0; pixel_z = 0},/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/computer/crew,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bqH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/cmo) -"bqI" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/megaphone,/turf/simulated/floor,/area/crew_quarters/heads) +"bqI" = (/obj/structure/table,/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/megaphone,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bqJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bqK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bqL" = (/obj/structure/closet/secure_closet/CMO,/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) @@ -3732,7 +3732,7 @@ "btN" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/assembly/chargebay) "btO" = (/obj/machinery/power/apc{dir = 4; name = "Mech Bay APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/assembly/chargebay) "btP" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/scalpel{pixel_y = 12},/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/assembly/robotics) -"btQ" = (/obj/structure/table,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/item/device/mmi/posibrain,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/assembly/robotics) +"btQ" = (/obj/structure/table,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/item/device/flash/synthetic,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/item/device/mmi/posibrain,/obj/item/device/robotanalyzer,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/assembly/robotics) "btR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "warnwhite"},/area/assembly/robotics) "btS" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/obj/item/device/multitool{pixel_x = 3},/obj/item/device/multitool{pixel_x = 3},/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "btT" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) @@ -3844,7 +3844,7 @@ "bvV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/quartermaster/office) "bvW" = (/obj/structure/closet/secure_closet/hop2,/turf/simulated/floor,/area/crew_quarters/heads) "bvX" = (/turf/simulated/floor,/area/crew_quarters/heads) -"bvY" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/item/device/megaphone,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"bvY" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/megaphone,/turf/simulated/floor,/area/crew_quarters/heads) "bvZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/crew_quarters/heads) "bwa" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/crew_quarters/heads) "bwb" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/server) @@ -4219,7 +4219,7 @@ "bDg" = (/obj/machinery/portable_atmospherics/scrubber/huge,/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor{icon_state = "bot"},/area/toxins/storage) "bDh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bDi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/hor) -"bDj" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/item/device/megaphone,/turf/simulated/floor/wood,/area/crew_quarters/captain) +"bDj" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/item/device/megaphone,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bDk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bDl" = (/obj/machinery/computer/mecha,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bDm" = (/obj/structure/table,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) @@ -4231,7 +4231,7 @@ "bDs" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/quartermaster/miningdock) "bDt" = (/obj/structure/rack{dir = 1},/obj/item/weapon/pickaxe{pixel_x = 5},/obj/item/weapon/shovel{pixel_x = -5},/turf/simulated/floor,/area/quartermaster/miningdock) "bDu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/qm) -"bDv" = (/obj/structure/table,/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/megaphone,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bDv" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/device/megaphone,/turf/simulated/floor,/area/quartermaster/qm) "bDw" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/turf/simulated/floor,/area/quartermaster/qm) "bDx" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/stamp{name = "Quartermaster's stamp"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/quartermaster/qm) "bDy" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Quartermaster's Office"; dir = 8},/turf/simulated/floor,/area/quartermaster/qm) @@ -10171,7 +10171,7 @@ "dNE" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dNF" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/mineral/input,/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/mine/production) "dNG" = (/turf/space,/area/vox_station/mining) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10301,22 +10301,22 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTasPbcubcvbcwatEatEatEatEatEatEbcxbbfaTSaTQaTQaTQaTQaTQaTQaTQaTQaTQbcyaRbaYpaYqaZRbczbcAbcBaYrbcCbcDbcEaPBaZYaZZbcFbcGaPBbbwbadbaebbybcHbcHbbybcHbaebbAbcIbcJbcJbcKbcLbcMbakbcNaIRaYObcObcPbcQbcRbcSbcSbcRbcTbcUbatbaubcVbcWbcXbcYbcZbdabdbbdcbddbdebdfbccbdgbdhbdibccbdjbawaZhbdkaIRaNsbdlbdmaZyaZyaZyaZyaZyaZyaZybdnaZyaZyaZyaZybdoaZyaZyaZyaZyaZyaZyaZyaZybdpaZyaZyaZyaZyaZyaZyaZyaZybdqbdrbdsbdtbdubdtbdvbdtbdwbdxbdybdtbdzbdtbdAbdBbdtbdtbdtbdtbdtbdtbdCbdDbdEbdFbctaTIaTIaTIaVibdGaVhaViaJJaJJaJJaJJaJJaJJaJJaJJaJJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdHbdHbdHbdHbdHbdHbdHbdHbdHbdHaaaaafbdIazWayabdJbdKbdLbdLbdLbdLbdLbdLbdMbdNaPyaXeaRbaYpaYqaYraYrbdObdPaYraPBaPBbdQaPBaZYbdRbcFbdSaPBbbwbadbaebdTbdUbbybcHbdVbaebbAbdWbcJbcJbcJbdXbdYbakbdZaIRaYObeabebbecbedbeebefbegbcTbehbatbaubeibejbekbekbekbelbembaubenbeobccbccbdgbepbdibccbeqbawberaIRaIRaNsbdlbdmaZyaZyaZyaZyaZyaZyaZybesaZyaZyaZyaZyaZyaZybetbdtbdtbdtbdtbdtbdtbeubdtbdtbdtbdtbdtbdtbdtbevbewbexbeyaZyaZyaZyaZyaZyaZxaZyaZyaZyaZyaZyaZyaZyaZyaZyaZyaZyaZybezbdqbeAaTIaTIbctaTIaTIbeBaWyaQSaQSaTLaJJaJJaJJaJJaJJaJJaJJaJJaJJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdHbdHbdHbdHbdHbdHbdHbdHbdHbdHbdHaWAaWBaWCazabeCbeDbeEbeEbeFbeEbeEbeEbeGaPyaPyaPyaPyaYpaYqaZRbeHbeIbeJaYrbeKbeLbeMaPBaPBaPBaPBbeNaPBbbwbadbaebeObbybcHbePbeQbaebbAbakbeRbcJbcJbeSbeTbakbeUaIRaYObeVbeWbecbedbeXbeYbegbcTbeZbatbfabfbbfcbekbfdbekbcWbfebffbenbfgbfhbfibfjbfjbfkbccbflbawaZhbfmaIRaNsbdlbdmaZybfnaZybfobfpbfpbfpbfqbfpbfpbfpbfraZyaZyaZyaZybfsaZybfnbftbfubfvaZyaZyaZybfwbfxbfybfzbfAbfBbfCaZyaZyaZyaZyaZybfDbfEbfsaZyaZyaZyaZyaZyaZyaZyaZyaZyaZyaZyaZybdqbfFbfGbfHbfIbfJbfKbfLbfMaafaaaaafaJJaJJaJJaJJaJJaJJaJJaJJaJJaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdHbdHbdHbdHbdHbdHbdHbdHbdHbdHbdHaYgavtaYgaxYbfNbeEbfObfPbfQbfQbfRbfSbfTbfUbfUbfUbfUbfVbfWbfXbfXbfYbfZbfXbgabgabgbbgabgcbgdbgdbgebgdbgfbggbghbgibgjbgjbgkbglbghbgmbgnbgobcJbcJbeSbgpbgqbeUaIRaYObgrbgsbgtbcRbcRbcRbcRbcTbgubatbaubgvbgwbgxbgybgzbgwbgAbaubenbgBbDjbgDbgEbgFbgGbgHbgIbawbgJaHiaHibgKbgKbgKbgKbgKbgKbgKbgLbgMbgMbgNbgObgPbgLbgQbgQbgQbgQbgQbgQbgRbgRbgRbgSbgRbgRbgRbgTbgUbfDbgVbgWbgXbgYbgZaZyaZybhabhabhbbhbbhbbhbbhbbhcbhdbhdbhebhdaZybhdbhebhdbhdbhfbhgbhgbhgbhgbhhbgWaPtaPtaPtaaaaaaaaaaJJaJJaJJaJJaJJaJJaJJaJJaJJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdHbdHbdHbdHbdHbdHbdHbdHbdHbdHbdHaYgavtaYgaxYbfNbeEbfObfPbfQbfQbfRbfSbfTbfUbfUbfUbfUbfVbfWbfXbfXbfYbfZbfXbgabgabgbbgabgcbgdbgdbgebgdbgfbggbghbgibgjbgjbgkbglbghbgmbgnbgobcJbcJbeSbgpbgqbeUaIRaYObgrbgsbgtbcRbcRbcRbcRbcTbgubatbaubgvbgwbgxbgybgzbgwbgAbaubenbgBbgCbgDbgEbgFbgGbgHbgIbawbgJaHiaHibgKbgKbgKbgKbgKbgKbgKbgLbgMbgMbgNbgObgPbgLbgQbgQbgQbgQbgQbgQbgRbgRbgRbgSbgRbgRbgRbgTbgUbfDbgVbgWbgXbgYbgZaZyaZybhabhabhbbhbbhbbhbbhbbhcbhdbhdbhebhdaZybhdbhebhdbhdbhfbhgbhgbhgbhgbhhbgWaPtaPtaPtaaaaaaaaaaJJaJJaJJaJJaJJaJJaJJaJJaJJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdHbdHbdHbdHbdHbdHbdHbdHbdHbdHbdHaZEaZFaWCazabhibeEbhjbeEbhkbhlbeEbeEbeEaRbbhmbhnbhnbhoaYraZRbhpbcAbhqaYrbhrbhsbhtbhubhvbhwbhxbhybhzbhxbhAbhBbhCbhDbhCbhCbhEbhFbhGbhHbhIbcJbcJbhJbhKbhLbeUaIRbhMbgrbhNbhObhPbhQbhRbhSbhTbatbatbaubhUbhVbhWbhXbhYbhZbiabaubenbibbicbidbiebifbgGbccbigbawaZhaIRbihbgKbiibijbikbilbimbinbiobipbipbiqbirbirbisbgQbitbiubivbiwbgQbixbiybizbiAbiBbiCbiDbiEbiFbiEbiEbiEbiGbiHbiIbiJbiIbiKbiKbhbbiLbiMbiNbhbbiObiPbiObhbbhcbhdbhfbhgbiQbiRbiQbhgbiSbiTbhgbiUbiVbiWbgWaaaaaaaaaaaaaJJaJJaJJaJJaJJaJJaJJaJJaJJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdHbdHbdHbdHbdHbdHbdHbdHbdHbdHaaaaaaazVbbeaPvbiXbeEbiYbeEbiZbjabjbbjcbeEbjdaRbbjeaRbbjfaYraYraYraYraYraYrbjgbjhbjiaRbbjjbaebaebaebjkbaebaebaebjlbaebaebaebaebjmbjnbjobjpbcJbcJbeSbjqbgqbeUaIRbjrbgrbjsbhObatbatbatbatbjtbatbjubjvbjwbjxbbObjybbObjzbjAbjBbjCbibbjDbccbjEbjFbgGbjGbjHbjIbjJbjKbjLbgKbjMbjNbjObjPbjQbjRbjSbjTbipbjUbipbipbjVbjWbjXbjYbjZbkabgQbkbbkcbkdbkcbkebkfbgRbkgbkhbkibkjbgWbkkbklbkmbknbkobkpbkqbkrbksbktbksbkubkvbkwbkxbhbbkybkzbkAbhgbkBbkCbkDbkEbkFbkGbhgbkHbkIbkJbgWaaaaaaaaaaaeaJJaJJaJJaJJaJJaJJaJJaJJaJJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazTasPbcubcvaZFaTNaTNaTNaAIaTNbkKazaaxYaxYbeEbkLbkMbkNbkObkPbkQbkRbkSbkSbkSbkSbkTbkUbkUbkUbhxbhxbhxbkVbkWbkWbkWbkXbaebkYbkZblablbblcbldbleblfblgblhblibljblkbllblmblnbloblpblqblqblrbjKblsbltblublvblwblxblyblzblAblBblCbjBbjBbjBbjBblDbjBbjBbjBbjBblEblFblGblHblIblJblKblLblMblNblOaIRaIRbgKblPblQblRbjPblSblTbjSblUblVblWblVblVblXblYblZbmabmbbmcbgQbmdbkcbmebkcbkebmfbgRbiWbmgbmhbmibgWbkkbmjbmkbmlbmlbmmbmnbmobmpbmpbmpbmqbmrbmsbmtbmubmvbmwbmxbmybmzbmAbkFbmBbmCbmDbhgbmEbkIbmhbgWaaaaaaaaaaaaaaaaJJaJJaJJaJJaJJaJJaJJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmFbmGavtaYgaxbaxbaxbaPvaxYaxYbeEbmHbmIbkObmJbeEbeEbeEaPybmKbmLbmMbmNbmMbmMbmMbmNbmMaPyaPybaebaebaebmObaebleblebmPblebleblebleblebmQbmRbmSbmTbmUbmVbmVbmVbmWbmXbmYbmZbnabnbbncbndbnebnebnfbngbnhbnibnjbnkbnlbnmbnnbnobnpbnqbnrbnobnsbnmbntbibbnubnvbnubawbawbawbnwbenbnxaIRaIRbgKbnybnzbnAbjPbnBbnCbjSbjUbipbnDbnEbnFbnGbgQbnHbnIbnJbnKbgQbmdbnLbkcbkcbkebkfbgRbgWbgWbgWbgWbgWbkkbklbnMbnNbnObnPbnQbnRbnSbnTbnUbnUbnVbksbnWbhbbnXbnYbnZbhgboabobbocbodboebofbhgbmEbkIbogbgWaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaabmFavtavtaYgaxXaxXaxXbohaxXaxXbeEboibojbokbkObeEaaaaaaaaaaafaafbolbolbolbolbolbolbolaaaaaabombonboobopboqblebleblebleblebleblebleborbjpbcJbosbotboubakbakbovblkbakbakbowboxboybozboAboBboBboCboBboDboEboBabRboFboGbnoboHbnqboHbnoboIboFbntboJboKbfjboLboMboNboOboPboQboRaIRboSboTboUboVbnAbjPboWbinboXbjUbipboYboZbipbpabgQbjXbpbbpcbpdbgQbpebpfbpgbphbpibphbpjbpkbpkbpkbpkbpkbplbklbpmbknbknbnPbpnbpobppbpqbprbprbpsbptbpubhbbpvbnYbpwbhgbpxbpybpzbodbkFbpAbhgbkHbkIbpBbgWaaaaaaaaaaaaaafbpCbpDbpEbpDbpEbpDbpFaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxWaYgaYgbpGaTNbpHazTasPbpIbpHbeEbpJbpKbpLbhlbeEaaaaaaaaaaaaaaabolbolbolbolbolbolbolaaaaaabpMbpNblebpObpPbpPbpPbpPbpPbpQbpPbpPbpPbpRbpSbpTbpUbpVbpWbakbpXbeSbpYbpZbqabeUbqbbqcbozbozboBbqdbqebqfbqgbqhboBbqibqjbqkbqlbqmbqnbqmbqobqpbqqbqrboJbqsbfjbqtbawbqubnubqvbqwboRaIRaIRbgKbqxbqybnAbqzbqAbinbqBbqCbqDbqEbqFbipbqGbqHbDvbqJbqKbqLbgQbgRbqMbgRbgRbqNbqNbqNbqNbqNbqNbqNbqNbkkbklbnMbnNbnObqObqPbqQbqRbqSbqSbqSbpsbksbqTbqUbqVbkzbqWbhgbqXbqYbqZbrabkFbrbbhgbmEbmgbgWbgWaaaaaaaaaaaaaafbrcbrdbrebrfbrfbrgbrcaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxWaYgaYgbpGaTNbpHazTasPbpIbpHbeEbpJbpKbpLbhlbeEaaaaaaaaaaaaaaabolbolbolbolbolbolbolaaaaaabpMbpNblebpObpPbpPbpPbpPbpPbpQbpPbpPbpPbpRbpSbpTbpUbpVbpWbakbpXbeSbpYbpZbqabeUbqbbqcbozbozboBbqdbqebqfbqgbqhboBbqibqjbqkbqlbqmbqnbqmbqobqpbqqbqrboJbqsbfjbqtbawbqubnubqvbqwboRaIRaIRbgKbqxbqybnAbqzbqAbinbqBbqCbqDbqEbqFbipbqGbqHbqIbqJbqKbqLbgQbgRbqMbgRbgRbqNbqNbqNbqNbqNbqNbqNbqNbkkbklbnMbnNbnObqObqPbqQbqRbqSbqSbqSbpsbksbqTbqUbqVbkzbqWbhgbqXbqYbqZbrabkFbrbbhgbmEbmgbgWbgWaaaaaaaaaaaaaafbrcbrdbrebrfbrfbrgbrcaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolbribrjbrkbrlblebleblebrmbrmbrmbrmbopblebleblebmQbrnbcJbrobrpbrqbrrbrsbeSbcJbrtbrubeUbqbbrvbrwbrxbrybrzbrAbrBbrCbrDboBabRbrEbrFbnobqmbrGbqmbnobrHbrIbntbrJbrKbrLbrMbawbrNbnubrObqwboRaIRbrPbgKbrQbrRbnAbrSbrTbinbrUbjUbipbrVbrWbqDbrXbgQbrYbrZbsabsbbgQbscbsdbsebsfbsgbshbsibsjbskbslbsmbsnbiGbiHbsobspbsqbsrbssbkrbstbqSbqSbqSbsubksbsvbhbbswbswbsxbhgbsybszbsAbsBbkFbsCbhgbmEbsDbgWaaaaaaaaaaaaaaaaafbsEbsFbrebrfbrebsGbpEaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolbsHbsIbsHbsJbsKbleblebleblebleblebopblebsLbaebaebsMbcJbcJbsNbsObsPbsQbeSbcJbcJbsRaIRbqbbsSbsTbsUbsVbsWbsXbsYbsZbtaboBabRbrIbrIbtbbtcbtdbnobtebtfbtgbthbtibtjbtjbtjbtjbtjbtjbtkbtlbtmaHibtnbtobtpbtqbtrbtsbinbinbttbjUbipbipbipbipbtubtvbipbtwbipbtxbtybtzbtAbipbtBbtCbtDbtEbtFbtGbtHbtIbqNbtJbtKbtLbtLbtMbtNbtObkrbtPbksbksbtQbtRbksbtSbkrbtTbtUbtVbtWbtXbtYbtZbuabubbhgbhgbucbgWbgWbudbuebuebuebufbkybrcbrfbrebrfbrfbrgbrcaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaeaaaaaaaaabolbolbolbolbolbolbolbugbuhbugbuiblebleblebrmbrmbrmbrmbopblebujbukbaebulbcJbcJbsNbumbunbsQbuobupbpTbuqburbusboRbutbsUbuubuvbuwbuxbuybuzbuAbuBbuCbuDbuEbuFbrGbuFbtfbuGbuHbuHbtibuIbuJbuKbuLbuMbuNbuObuPbuQaIRbuRbuSbuTbuUbuVbuWbuXbuYbuZbvabuZbvbbuZbuZbvcbvdbuZbvdbuZbuZbuZbvebvfbvgbvhbtCbvibtEbvjbvjbvkbvlbqNbkkbklbvmbvnbvobvpbvpbkrbvqbvrbvsbkrbvtbksbvubvvbvwbvxbvybvzbvAbvBbvCbvDbvEbswbkzbvFbvGbvHbvIbvJbvJbvJbvJbvKbvLbpDbpEbvMbpEbpDbvNaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolbvObrjbvPbvQblebleblebleblebleblebopblebujbvRbaebvSbdXbcJbvTbpTbvUbpTbvVbcJbrtbqabeUaIRboRbutbsUboBbvWbvXbqIbvZbwaboCbwbbwcbwdbwebtgbwfbwgbwhbwibwjbwkbtibwlbwmbwnbwobwpbwpbwqbwrbwsaIRbuRbwtbuTbwubipbwvbwwbwxbwybwzbwybwAbwybwBbwCbtzbwDbtzbtzbwEbwFbwGbwGbwHbwIbwJbwKbtEbwLbwMbtHbwNbqNbwObklbiIbwPbwQbwPbwPbkrbkrbkrbkrbkrbwRbwSbwTbwUbwVbwWbwXbwYbwYbwZbxabnYbxbbxcbxdbvFbnYbvHbxebnYbxfbnYbxgbkybudbuebufbxhbkyaaaaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolbvObrjbvPbvQblebleblebleblebleblebopblebujbvRbaebvSbdXbcJbvTbpTbvUbpTbvVbcJbrtbqabeUaIRboRbutbsUboBbvWbvXbvYbvZbwaboCbwbbwcbwdbwebtgbwfbwgbwhbwibwjbwkbtibwlbwmbwnbwobwpbwpbwqbwrbwsaIRbuRbwtbuTbwubipbwvbwwbwxbwybwzbwybwAbwybwBbwCbtzbwDbtzbtzbwEbwFbwGbwGbwHbwIbwJbwKbtEbwLbwMbtHbwNbqNbwObklbiIbwPbwQbwPbwPbkrbkrbkrbkrbkrbwRbwSbwTbwUbwVbwWbwXbwYbwYbwZbxabnYbxbbxcbxdbvFbnYbvHbxebnYbxfbnYbxgbkybudbuebufbxhbkyaaaaaaaafaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolbugbuhbugbxibxjbleblebxkbxlbxmbxlbxnbxlbxobxpbghbxqbxrblnbxsblnbxtblobxrbxubxvbrubeUaIRbxwbxxbxyboBbxzbxAbxBbxCbxDboCbxEbxFbxGbxHbxIbxJbxKbxLbxMbxNbxObxPbxQbxRbxRbxSbxTbxUbxVbtlbxWaIRbxXbgLbqBbxYbipbxZbyabybbycbydbyebyfbygbybbycbyhbyhbycbybbyibgMbwGbyjbvjbvjbykbtCbtEbylbymbynbyobqNbypbyqbyrbysbytbwYbwYbyubyvbwYbywbyxbyybyzbyAbwYbyBbyCbyDbyEbyFbyGbyHbyHbyHbyHbyHbyIbyJbyKbudbufbkybnYbvJbyLbyMbyNbyObyPbyQaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolbyRbySbyRbyTbyUbyVbyVbyVbyVbyVbyWbyXblebujbyYbaebyZbzabzbbzcbzdbotbzebzfbzgbakbakbzhaIRbzibzjbsUboBbzkbzlbzmbvXbznboCbzobzpbzqbzrbzsbztbzubzvbzwbzxbzybtibzzbzAbzBbzCbxTbxUbxVbtlbzDaIRbzEbzFbzGbzHbipbxZbzIbybbzJbzKbzLbzMbzNbybbzObzPbzPbzQbybbzRbipbwGbzSbvjbzTbzUbzVbzWbzXbzYbzYbzZbAabAbbAcbAdbAebAfbvAbvAbAgbvAbAhbvAbvBbvAbvAbvAbvAbAibAjbAkbAlbAmbAnbAobApbAqbArbyHbAsbAtbAuaafaafbkybAvbvJbyMbyMbvKbAwbAxbAyaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolbAzbAAbABbaebaebACbrjbrjbrjbADbaebaebAEbAFbAGbaebAHbAHbAHbAIbAHbAJbAKbALbAMbANbAJbeUaIRbAObAPaUlboBbuAbAQbARbARbASbATbAUbAVbAWbAUbAXbAYbAZbBabBbbBbbBbbBcbtjbtjbtjbtjbtjbtjbtjbtlbBdaXJbBebybbybbBfbBgbBhbybbybbBibBjbBkbBlbBlbBmbBnbBobBpbBnbBqbzRbipbwGbBrbBsbBtbBubBvbBwbBxbBubBubBybBzbBAbBBbBCbBCbBCbBCbBCbBDbBCbBCbBEbBFbBGbBHbBHbBIbBJbvFbBKbAlbBLbBMbBNbBObBPbBQbyHbAsbAtbBRaaaaaabkybBSbBTbkybvKbkybkybvKbkyaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBUaafaaaaaaaaaaaabAHbBVbBWbBXbBYbAJbBZbCabCbbCcbAJbeUaIRbCdbCebCfbCebCgbChbCibCjbCkbClaXJbCmaXJbCnbCobCpbCqbCrbCsaIRaMjbCtaMkaNsbCibCubCvaIRbCwbCxbzDaIRbCybybbCzbCAbCBbCCbCDbCEbCFbCGbCHbBlbBlbCIbBnbCJbCKbCLbBqbzRbCMbwGbCNbCObCPbCQbCRbCSbCTbCUbCVbqNbqNbwObCWbBCbCXbCYbCZbDabDbbDcbDdbBEbDebDfbDgbBHbBHbDhbvFbBKbDibvYbDkbDlbDmbDnbDobyHbAsbDpbyKbyKbyKbyKbyKbkybkyaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGyaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAHbDqbDrbDsbDtbDubgCbDwbDxbDybAJbeUbDzbDAaIRaIRaIRaIRaNsbCibCubDBaIRaIRbDCaIRaIRbDDbDEbDFaIRaIRaIRaIRbCtaIRaNsbCibCubDGaXJbDHbDIbDJbDKbDLbDMbDNbDObDPbDQbDRbDSbDTbDUbDVbDWbzNbybbDXbDYbDZbEabybbzRbipbwGbwGbwGbwGbwGbqNbqNbqNbqNbqNbqNbEbbEcbEdbBCbEebEfbEgbEhbEibEjbEkbBEbElbEmbEnbEnbBHbEobEpbEqbErbEsbEtbDnbEubEvbEwbyHbAsbAtbyKbExbEybEybyKaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEzbEAbEAbEBbECbECbEDbEDbEDbEDbEEaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBUaafaaaaaaaaaaaabAHbBVbBWbBXbBYbAJbBZbCabCbbCcbAJbeUaIRbCdbCebCfbCebCgbChbCibCjbCkbClaXJbCmaXJbCnbCobCpbCqbCrbCsaIRaMjbCtaMkaNsbCibCubCvaIRbCwbCxbzDaIRbCybybbCzbCAbCBbCCbCDbCEbCFbCGbCHbBlbBlbCIbBnbCJbCKbCLbBqbzRbCMbwGbCNbCObCPbCQbCRbCSbCTbCUbCVbqNbqNbwObCWbBCbCXbCYbCZbDabDbbDcbDdbBEbDebDfbDgbBHbBHbDhbvFbBKbDibDjbDkbDlbDmbDnbDobyHbAsbDpbyKbyKbyKbyKbyKbkybkyaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGyaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolbolbolaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAHbDqbDrbDsbDtbDubDvbDwbDxbDybAJbeUbDzbDAaIRaIRaIRaIRaNsbCibCubDBaIRaIRbDCaIRaIRbDDbDEbDFaIRaIRaIRaIRbCtaIRaNsbCibCubDGaXJbDHbDIbDJbDKbDLbDMbDNbDObDPbDQbDRbDSbDTbDUbDVbDWbzNbybbDXbDYbDZbEabybbzRbipbwGbwGbwGbwGbwGbqNbqNbqNbqNbqNbqNbEbbEcbEdbBCbEebEfbEgbEhbEibEjbEkbBEbElbEmbEnbEnbBHbEobEpbEqbErbEsbEtbDnbEubEvbEwbyHbAsbAtbyKbExbEybEybyKaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEzbEAbEAbEBbECbECbEDbEDbEDbEDbEEaafaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabolbolbolbolbolaaaaaaaaaaaaaaaaaaaaaaaabEFbEGbEHbEGbEIaaaaaaaaabAHbAHbEJbEKbDsbEKbELbEMbENbEObEPbAJbEQbeUbERbESburbETburbEUbEVbEWbusaIRbEXbEYbjKbjKbEZaXJaXJaXJaXJaXJaXJbFabFbbFcbFdbFebFfbFgbFhbFibFjbFkbFfbFlbFmbFnbFobFpbybbybbycbFqbycbybbybbybbybbybbybbybbybbzRbipbFrbFsbFtbzIbFubqBbFvbFwbFxbFybFzbFAbFBbFCbBCbFDbFEbCZbFFbFGbFHbFIbBEbFJbEmbEnbEnbBHbFKbFLbFMbFNbFObFPbFQbFRbFSbFTbFUbFVbFWbFWbFWbFWbFXbAuaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbFYbFZbGabFZbECbEDbEDbGbbGcbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGdbGebGfbGebGdbGgbGhbGibAHbGjbEKbGkbGlbGmbGnbGobGobGpbGqbAJbGrbGrbGsbGraUlaUlaUlaUlbGtbGtbGtbGtbGtbGtbGtbGtbGubcebcebGvbGvbGvbGvbGwbGxbGvbGvbGvbGvbGybGzbGAaIXbGBbGCbGDbGEbGFbGGbGHbGIbybbGJbGKbGLbycbGMbGMbGNbGObGPbGQbGRbGSbipbipbipbipbipbzRbqEbGTbGUbGVbGWbqBbGXbGYbGZbGZbGZbGZbGZbGZbGZbGZbGZbBEbHabHbbHcbHcbBHbHdbHebHfbHgbHgbHgbHgbHhbHibHjbHkbHgbHgbHgbHgbAtbHlbHmaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagbHnbFZbFZbHobEDbEDbGbbGbbHpbGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhbrhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEHbHqbHrbHqbEHbHsbHtbHubAHbHvbHwbEKbHxbHybAJbHzbHAbHBbHCbAJbHDbHDbHEbGraaaaaaaaaaaabGtbHFbHGbHHbHIbHJbHKbGtbHLbHMbHNbGvbHObHPbHQbHRbHSbHTbHUbHVbHWbHXbHYbHZbIabIbbGybybbIcbGKbCHbIdbIebybbIfbIgbIhbIibBlbBlbBlbBlbBlbIjbIkbIlbtzbtzbtzbtzbwEbzRbImbGTbGUbGVbInbIobIpbGYbGZbIqbIrbIrbIsbItbIubIvbIwbBEbIxbIybIzbIzbBHbIAbIBbBKbICbIDbIEbIFbIGbIHbIIbIJbIKbILbIMbHgbyKbINbyKbIObIObIObIObIOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabIPbEDbHnbEDbEDbGbbGbbGbbGbbGbbGbbGbbEDbEDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11719,4 +11719,3 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} -