From 02791f79d21ddd25431610a6a9d541dbf5a95e98 Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Sat, 19 May 2018 11:40:00 -0400 Subject: [PATCH 01/16] Update development --- Wrapper.py | Bin 661580 -> 661579 bytes build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 4 +- docs/Wrapper.py.md5 | 2 +- stable-plugins/vanillaclaims.py | 900 ++++++++++++++++++++++++++++++++ wrapper/core/buildinfo.py | 2 +- 7 files changed, 906 insertions(+), 6 deletions(-) create mode 100644 stable-plugins/vanillaclaims.py diff --git a/Wrapper.py b/Wrapper.py index b391a46b5e1a90512fa674e75485c2d965b3f237..90e1d94bd71be04680eb89f5aeff8a2a89bc5dbc 100644 GIT binary patch delta 794 zcmZ8fX-Je&6#d@3neY4Nj*c_VI3t>7Ns!tKQ&2={Q6`q@sBJn{1`-r)klJEXIF{|2 z)*&hiTWLX~z>GALB4_~>X`dE?Qm8D0q@v|o|N3#?h5PO~_uTW|{f6Q98isEPh=3s= z1IB>qiaPN|XfXfstc!0P+cqhRQiIeRYK-4LUCHa6s^qOJwJ5^aEfwYOG4gIYwT*Gk zc)fn^=V_WqJ04-oI?`mRuA29u!jte|_RV14?VbsXw6gY3!!kGf+Dp6Mt+K~_G&PMW zj8o_2jP>q(Wq9<~l$W1$Aiw@`|772ZTMc{etvGajcF)MbSbtH-%F+;OZd)DctvV07 z^Q+0x`1JjmV^u>|dN(PV>C%V-Ns-%~ttyAcp*K2P&EKZ}w?dSpB!hiAs$Uu$uzfXK zu}o5w=tsGvTv3821F0ONjg%v&^r`UmscsxKQnGlC7hE*_PJqWmUSY&`6J?8TJTpk=kyU88LrjtihlRXyZ-<5p9a=Op z1P#S03&qO1P8QOs#iPfKDN;Ab$RE1KZY)jPf zDp8My&C0Nc$gGZ@HuM~tBY4$au(>E( u`m@bAnr(KY%*6m3T3md07|NS3evjWWk delta 835 zcmZ8gVN6?96n?k2eed-YTFNW!C{lGK*dc602|s4QiV0{+w$cI07$g-4o8XwZAxkh2 zctTP%o8$xxZ?L`|F+1Y$@~SQfL4nPmjR%(j@t6ZX#^=iZ!i?m6H2 zzLWdQL~wQ@*kcOQVoK9$+9uV#@#Jr6FO;{G9vpm2QIro+7FRR7*GrVzo?@l;M5jX$ z)-|ap+ehA&%Vc@nQ+n;v{*9SjGxCwWH@JMq>;80T@zAk?E&tX(HIqd*GREHY7tehV zc%qedhHav*QoUuUhMpqFqWPEUl=Mv}3?XsB9XWe$hzS@0I+I zL%O6VE$by1zG^WrW+x|_CHci&^h&DIJO5UdhPL)52q)#kWu<^HvD-?OB7{CG)rb|W zuxC+n@U)Gh!iIhu9S}FMY@>)A4Qn_T*1WhQ=n*6Y5ss+bdtHNUYmcoFV3*<0s-KFCf)HQTg7yhO_fp23$_siO(Dq zkf#=Sv;{2-YYqyDBJ4_{I?;uJB*q-VGGCV8eW-9!8lF$4u%$8cp>sN!%H>Rsj;lHP zcE6BVLc~cik&E+As*vpkI)(~#KOS>&AH$dY|J>i2Q^`zaKX zr>k{buGW3H#h!Qvd2S{Om~I|?wL{1K4m}J1x;gh9ic+agE{yBAJ", + "Allow player full access to your claim.", user), + ("/breaktrust ", + "Allow player to break blocks on your claim.", user), + ("/placetrust ", + "Allow player to place blocks / operate things.", user), + ("/accesstrust ", + "Allow player interaction (place lava, eat, throw pearls, etc)", # noqa + user), + ("/untrust ", + "remove a player from your claim.", user), + ("/trustlist", + "Display the claim's player information.", user), + ("/show", + "Show the claim you are standing in.", user), + ("/spade", + "Gives the land claim gold shovel", user), + ("/adjustclaimblocks ", + "Adjust player claim blocks.", admin), + ("/transferclaim ", + "re-creates the same claim in another's name", + admin), + ("/deleteclaim", + "Delete the claim you are standing in", admin), + ("/deleteallclaims ", + "Delete all a players claims.", admin) + ]) + + self.api.registerCommand( + "show", self._show_comm, user) + self.api.registerCommand( + ("spade", "wand", "shovel"), self._spade, user) + self.api.registerCommand( + ("abandonclaim", "abandonclaims"), self._abandonclaim_comm, user) + self.api.registerCommand( + "abandonallclaims", self._abandonallclaims_comm, user) + self.api.registerCommand( + "deleteclaim", self._deleteclaim_comm, admin) + self.api.registerCommand( + "deleteallclaims", self._deleteallclaims_comm, admin) + self.api.registerCommand( + "adjustclaimblocks", self._adjustclaimblocks_comm, admin) + self.api.registerCommand( + "transferclaim", self._transferclaim_comm, admin) + self.api.registerCommand( + ("claimblocks", "claimblock", "claimsblock", "claimsblocks"), + self._claimblocks_comm, user) + self.api.registerCommand( + "trust", self._trust_comm, user) + self.api.registerCommand( + "breaktrust", self._breaktrust_comm, user) + self.api.registerCommand( + "placetrust", self._placetrust_comm, user) + self.api.registerCommand( + "accesstrust", self._accesstrust_comm, user) + self.api.registerCommand( + "untrust", self._untrust_comm, user) + # self.api.registerCommand("trustlist", self._trustlist_comm, user) + + self.run = True + self.action_queue = [] + tr = threading.Thread(target=self._track_activity, + name="trackblocks", args=()) + tr.daemon = True + tr.start() + + def onDisable(self): + self.run = False + self.data_storageobject.close() + + def get_claim_data(self, playerobj): + """ + Get the player's claim data. + + :param playerobj: + :returns: A dictionary of player claim data. + + """ + try: + return self.data[playerobj.uuid] + except KeyError: + self.data[playerobj.uuid] = { + "blocks": self.defaultclaimblocks, + "blocksused": 0, + "activity": 0, + "playername": playerobj.username, + "claimlist": [], + "claiminfo": {}, + "laston": time.time(), + "admin": playerobj.hasPermission("vclaims.admin") + } + return self.data[playerobj.uuid] + + def get_player_data(self, name): + """ + Get the player's selection data. Selection data is not saved + between reboots. + + :param name: player name. + + :returns: A dictionary of player selection data. + { + "point1" + "point2" + "dim1" + "dim2" + "mode" # selection modes ... + "point" # which point is being selected + "proposed" # cubic tuple (a set of hi/low coords) + "rgedit" name of region being edited/resized + } + """ + try: + return self.player_dat[name] + except KeyError: + self.player_dat[name] = {} + self._finishwithselectionmode(name) + return self.player_dat[name] + + def _track_activity(self): + """ + Each item is a playeruuid, player object entry. + """ + + while self.run: + time.sleep(.4) + self._on_timer() + time.sleep(.4) + self._on_timer() + while len(self.action_queue) > 0: + # grab next change + player = self.action_queue.pop(0) + p = self.get_claim_data(player) + # block increaser + p["activity"] += 1 + activities = p["activity"] + if activities % self.actionsperblock is not 0: + continue + p["activity"] = 0 + if p["blocks"] < self.maxclaimblocks: + p["blocks"] += 1 + + def _on_timer(self): + """ + Puts each player in or out of claims mode. + Modes: + None: has no shovel + Idle: has shovel, no action taken yet + + """ + while self.run: + time.sleep(.5) + for players in self.api.minecraft.getPlayers(): + player = self.api.minecraft.getPlayer(players) + try: + itemid = player.getHeldItem()["id"] + except AttributeError: + # probably a bad player object + continue + + p = self.get_player_data(player.username) + + # "mode" = selection mode + if itemid == 284 and p["mode"] is None: + player.message( + "&2Claims shovel active... Click an area to edit " + "or to claim." + ) + p["mode"] = "idle" + + if itemid != 284 and p["mode"]: + player.message( + "&2Shovel put away... Switching out of claims " + "mode" + ) + self._finishwithselectionmode(player.username) + + def playerSpawned(self, payload): + try: + player = payload["player"] + except AttributeError: + self.log.error("VanillaClaims player spawn not successful. " + "Payload: %s" % payload) + return + cl = self.get_claim_data(player) + cl["laston"] = time.time() + cl["admin"] = player.hasPermission("vclaims.admin") + + def action_dig(self, payload): + try: + player = payload["player"] + action = payload["action"] + itemid = player.getHeldItem()["id"] + except AttributeError: + # probably a bad player object + return False + if itemid == 284: + if action == "begin_break": + try: + position = payload["position"] + dim = player.getDimension() + except AttributeError: + return False + self.wand_use(player, player.uuid, position, dim) + return False + + # update activity + if action == "end_break": + self.action_queue.append(player) + + def action_place(self, payload): + try: + player = payload["player"] + itemid = player.getHeldItem()["id"] + except AttributeError: + return False + + if itemid == 284: + try: + dim = int(player.getDimension()) + clickposition = payload["clickposition"] + except AttributeError: + return False + self.wand_use(player, player.uuid, clickposition, dim) + # never allow gold shovel use - reserved for claims + return False + self.action_queue.append(player) + + def wand_use(self, player, playeruuid, position, dim): + """ + + :param player: + :param playeruuid: + :param position: + :param dim: + :return: + """ + + p = self.get_player_data(player.username) + cl = self.get_claim_data(player) + + # point = self.data[playeruuid]["point"] + # mode = p["mode"] + anyregion = self.regions.regionname(position, dim) + if anyregion: + region_owner_uuid = self.regions.getregioninfo( + anyregion, "ownerUuid" + ) + else: + region_owner_uuid = False + + # find the selection mode + # first click point1 determines the selection mode + if p["point"] == "point1": + # If not your claim, draw it and go back to idle mode + if region_owner_uuid and region_owner_uuid != playeruuid: + # TODO draw the claim you are in, message with "not your claim" + otheruuid = self.regions.getregioninfo( + anyregion, "ownerUuid" + ) + othername = self.api.minecraft.lookupbyUUID(otheruuid) + player.message("&cThis area is claimed by %s..." % othername) + point1 = self.regions.getregioninfo( + anyregion, "pos1" + ) + point2 = self.regions.getregioninfo( + anyregion, "pos2" + ) + x = int(position[0]) + y = int(position[1]) - 1 + z = int(position[2]) + self._show(player, (x, y, z), point1, point2) + self._reset_selections(playeruuid) + p["mode"] = "idle" + return + # if unclaimed, go to 'new' mode + elif not anyregion and p["mode"] == "idle": + p["mode"] = "new" + return + # If your claim, then go to 'edit' mode (but don't make first point) + elif region_owner_uuid == playeruuid and p["mode"] == "idle": + p["mode"] = "edit" + p["rgedit"] = anyregion + # TODO STUFF to draw claim, place edit markers + player.sendBlock(cl["claiminfo"][anyregion]["handle1"], + LITREDSTONEORE, 0) + player.sendBlock(cl["claiminfo"][anyregion]["handle2"], + LITREDSTONEORE, 0) + player.message( + { + "text": + "You are now editing the claim marked by the " + "restone corners. Select a new corner (to cancel, " + "put shovel away).", + "color": "gold" + } + ) + return + else: + # -we know it is not claimed (or is owned by player) + # only successful selection as point1 enables point2 + p["point1"] = position + p["dim1"] = dim + p["point"] = "point2" + # re-draw new point1 as point1 color (diamond) + player.sendBlock(p["point1"], DIAMONDBLOCK, 0) + return + elif p["point"] == "point2": + # If not your claim, draw the conflicting claim + if region_owner_uuid and region_owner_uuid != playeruuid: + # TODO draw the claim you are in, message with "not your claim" + return + p["point2"] = position + p["dim2"] = dim + # Stay at point two until successful (unless user cycles wand) + p["point"] = "point2" + # UNLESS, they re-select point1: + if p["point2"] == p["point1"]: + p["point"] = "point1" + # TODO tell player to continue with selecting first point. + return + # or dimensions don't match: + if p["dim1"] != p["dim2"]: + self._reset_selections(playeruuid) + p["mode"] = "idle" + return + # We now have a 'tentative' claim we can validate: + # We know it's corner points were not claimed... but: + p["proposed"] = self.regions.stat_normalize_selection( + p["point1"], p["point2"] + ) + newclaim = self._claim(player) + if newclaim: + # player.sendBlock(position, GOLDBLOCK, 0) + player.message("&6Second Corner selected.") + player.message("&6Claim action successful.") + + pos1 = cl["claiminfo"][newclaim]["handle1"] + pos2 = cl["claiminfo"][newclaim]["handle2"] + + player.sendBlock(pos1, DIAMONDBLOCK, 0) + player.sendBlock(pos2, GOLDBLOCK, 0) + + low = self.regions.getregioninfo(newclaim, "pos1") + high = self.regions.getregioninfo(newclaim, "pos2") + x = int(pos2[0]) + y = int(pos2[1]) - 1 + z = int(pos2[2]) + self._show(player, (x, y, z), low, high) + p["mode"] = None + p["point"] = "point1" + return + if newclaim is False: + player.message("&cClaim action failed.") + player.message( + { + "text": "Change or edit selection area by selecting" + " a restone corner and then selecting a " + "new spot", "color": "yellow" + } + ) + player.sendBlock( + p["point1"], + LITREDSTONEORE, 0 + ) + player.sendBlock( + p["point2"], + LITREDSTONEORE, 0 + ) + self.data[playeruuid]["point"] = "error" + return + + def _claim(self, player): + playerid = player.uuid + p = self.get_player_data(player.username) + cl = self.get_claim_data(player) + # 1) calculate the claim size parameters + lowcoord = p["proposed"][0] + highcoord = p["proposed"][1] + blocks, length, width = self._getsizeclaim(lowcoord, highcoord) + playersblocks = cl["blocks"] + usedblocks = cl["blocksused"] + if p["mode"] == "edit": + # credit back blocks used by an existing claim being edited. + pos1 = self.regions.getregioninfo(p["rgedit"], "pos1") + pos2 = self.regions.getregioninfo(p["rgedit"], "pos2") + x_dia = pos2[0] - pos1[0] + z_dia = pos2[2] - pos1[2] + usedblocks -= (x_dia * z_dia) + + if blocks < self.minclaimsize: + player.message( + "&cClaim (%d) is not minimum size of at least %d blocks." % ( + blocks, self.minclaimsize + ) + ) + return False + + if length < self.minclaimwidth or width < self.minclaimwidth: + player.message( + "&cClaim has to be at least %d blocks wide all " + "around." % self.minclaimwidth + ) + return False + + if blocks > playersblocks - usedblocks: + player.message( + "&cYou do not have enough blocks to make this claim." + ) + player.message("&eYou have: %d" % playersblocks) + player.message("&eYou need: %d" % blocks) + return False + + # 2) look for intersecting regions + collisions = self.regions.intersecting_regions( + p["dim1"], lowcoord, highcoord, rect=True + ) + if collisions: + if p["mode"] == "edit" and len( + collisions) < 2 and p["rgedit"] in collisions: + collisions.remove(p["rgedit"]) + if len(collisions) > 0: + player.message("&cArea overlaps region(s):") + player.message("&5%s" % str(collisions).replace("u'", "'")) + return False + + if p["mode"] == "edit": + self._delete_claim(player, p["rgedit"], playerid) + + # get a new claims region name + thisclaimname, humanname = self._get_claimname( + playerid, cl["admin"] + ) + if not thisclaimname: + player.message( + "&cyou have claimed the maximum number of areas " + "(%s)" % self.maxclaims + ) + return False + # 3) inspections passed, claim allowed. + lowcorner = (lowcoord[0], 5, lowcoord[2]) + highcorner = (highcoord[0], 255, highcoord[2]) + handle1 = p["point1"] + handle2 = p["point2"] + self.regions.rgdefine( + thisclaimname, playerid, p["dim1"], lowcorner, highcorner + ) + self.regions.protection_on(thisclaimname) + player.message( + "&2Region &5%s&2 created and protected." % thisclaimname + ) + + cl["claimlist"].append(thisclaimname) + cl["claiminfo"][thisclaimname] = {} + cl["claiminfo"][thisclaimname]["handle1"] = handle1 + cl["claiminfo"][thisclaimname]["handle2"] = handle2 + cl["blocksused"] += blocks + + self._reset_selections(player.username) + + p["mode"] = None + return thisclaimname + + def _check_username(self, playerobj, args, usage_msg, arg_count=1): + if len(args) < arg_count: + playerobj.message("&cUsage: %s" % usage_msg) + return False + targetuuid = str(self.api.minecraft.lookupbyName(args[0])) + targetname = self.api.minecraft.lookupbyUUID(targetuuid) + if not targetuuid or targetname.lower() != args[0].lower(): + playerobj.message("&cinvalid username.") + return False + return targetname, targetuuid + + def _check_regionname(self, player): + try: + position = player.getPosition() + dim = player.getDimension() + except AttributeError: + return False + regionname = self.regions.regionname(position, dim) + if regionname: + return regionname, position, dim + else: + player.message("&cYou are not standing in a claim.") + return False + + def _trust_comm(self, *args): + player = args[0] + try: + targetname, targetuuid = self._check_username( + player, args[1], "&/trust ") + regionname, position, dim = self._check_regionname(player) + except TypeError: + return + + owner = self.regions.getregioninfo(regionname, "ownerUuid") + playeruuid = str(player.mojangUuid) + if playeruuid != owner: + player.message("&cThis is not your claim.") + return + self.regions.rgedit( + regionname, playername=targetname, + addbreak=True, addplace=True, addaccess=True + ) + player.message( + "&e%s has been granted full access to this claim." % targetname + ) + + def _untrust_comm(self, *args): + player = args[0] + try: + targetname, targetuuid = self._check_username( + player, args[1], "/untrust ") + regionname, position, dim = self._check_regionname(player) + except TypeError: + return + + owner = self.regions.getregioninfo(regionname, "ownerUuid") + playeruuid = str(player.mojangUuid) + if playeruuid != owner: + player.message("&cThis is not your claim.") + return + self.regions.rgedit( + regionname, playername=targetname, remove=True + ) + player.message("&e%s has been removed from this claim." % targetname) + + def _breaktrust_comm(self, *args): + player = args[0] + try: + targetname, targetuuid = self._check_username( + player, args[1], "/breaktrust ") + regionname, position, dim = self._check_regionname(player) + except TypeError: + return + + owner = self.regions.getregioninfo(regionname, "ownerUuid") + playeruuid = str(player.mojangUuid) + if playeruuid != owner: + player.message("&cThis is not your claim.") + return + self.regions.rgedit( + regionname, playername=targetname, addbreak=True + ) + player.message( + "&e%s added to this claim. Player can now break items " + "here." % targetname + ) + + def _placetrust_comm(self, *args): + player = args[0] + try: + targetname, targetuuid = self._check_username( + player, args[1], "/placetrust ") + regionname, position, dim = self._check_regionname(player) + except TypeError: + return + + owner = self.regions.getregioninfo(regionname, "ownerUuid") + playeruuid = str(player.mojangUuid) + if playeruuid != owner: + player.message("&cThis is not your claim.") + return + self.regions.rgedit( + regionname, playername=targetname, addplace=True + ) + player.message( + "&e%s added to this claim. Player can now access/place items" + " here." % targetname) + + def _accesstrust_comm(self, *args): + player = args[0] + try: + targetname, targetuuid = self._check_username( + player, args[1], "/accesstrust ") + regionname, position, dim = self._check_regionname(player) + except TypeError: + return + + owner = self.regions.getregioninfo(regionname, "ownerUuid") + playeruuid = str(player.mojangUuid) + if playeruuid != owner: + player.message("&cThis is not your claim.") + return + self.regions.rgedit( + regionname, playername=targetname, addaccess=True + ) + player.message( + "&e%s added to this claim. Player can now access/place items" + " here." % targetname + ) + + def _claimblocks_comm(self, *args): + player = args[0] + self._claimblocks(player, player.uuid, player.username) + + def _adjustclaimblocks_comm(self, player, args): + player = args[0] + try: + targetname, targetuuid = self._check_username( + player, args[1], + "/adjustclaimblocks ", 3 + ) + except TypeError: + return + + amount = int(args[2]) + subcommmand = str(args[1]).lower() + blocksinuse = self.data[targetuuid]["blocksused"] + if subcommmand == "add": + self.data[targetuuid]["blocks"] += amount + player.message( + "&eAdded %s blocks to player %s" % (amount, targetname) + ) + if subcommmand == "sub": + self.data[targetuuid]["blocks"] -= amount + player.message( + "&eremoved %s blocks from player %s" % (amount, targetname) + ) + if subcommmand == "set": + self.data[targetuuid]["blocks"] = amount + player.message("&eset %s's blocks to %s" % (targetname, amount)) + if subcommmand == "info": + self._claimblocks(player, targetuuid, targetname) + return + amount = self.data[targetuuid]["blocks"] + player.message("&2%s has %s blocks." % (targetname, amount)) + + def _spade(self, *args): + player = args[0] + self.api.minecraft.console( + "give %s minecraft:golden_shovel 1 32" % player.username + ) + + def _abandonclaim_comm(self, *args): + player = args[0] + try: + regionname, position, dim = self._check_regionname(player) + except TypeError: + return + + owner = self.regions.getregioninfo(regionname, "ownerUuid") + if player.uuid != owner: + player.message("&cThis is not your claim.") + return + self._abandonclaim(player, regionname, player.uuid) + + def _deleteclaim_comm(self, *args): + player = args[0] + try: + regionname, position, dim = self._check_regionname(player) + except TypeError: + return + owneruuid = self.regions.getregioninfo(regionname, "ownerUuid") + self._abandonclaim(player, regionname, owneruuid) + + def _abandonallclaims_comm(self, *args): + player = args[0] + playerid = str(player.mojangUuid) + claimlist = list(self.data[playerid]["claimlist"]) + for thisclaimname in claimlist: + self._abandonclaim(player, str(thisclaimname), playerid) + return + + def _deleteallclaims_comm(self, *args): + player = args[0] + try: + targetname, targetuuid = self._check_username( + player, args[1], "/deleteallclaims ", + ) + except TypeError: + return + + claimlist = list(self.data[targetuuid]["claimlist"]) + for thisclaimname in claimlist: + self._abandonclaim(player, str(thisclaimname), targetuuid) + return + + def _transferclaim_comm(self, *args): + player = args[0] + try: + regionname, position, dim = self._check_regionname(player) + targetname, targetuuid = self._check_username( + player, args[1], "/transferclaim " + ) + except TypeError: + return + + oldowneruuid = self.regions.getregioninfo(regionname, "ownerUuid") + pos1 = self.regions.getregioninfo(regionname, "pos1") + pos2 = self.regions.getregioninfo(regionname, "pos2") + if targetuuid not in self.data: + self._init_player_record(targetuuid, targetname) + self._abandonclaim(player, regionname, oldowneruuid) + self._quick_claim( + player, targetuuid, dim, pos1, pos2, ycoords_of_feet=position[1] + ) + + def _show_comm(self, *args): + player = args[0] + pos5 = player.getPosition() + pos = (int(pos5[0]), int(pos5[1]), int(pos5[2])) + dim = player.getDimension() + regionname = self.regions.regionname(pos, dim) + if regionname is False: + player.message("ðis is unclaimed") + return + point1 = self.regions.getregioninfo( + regionname, "pos1" + ) + point2 = self.regions.getregioninfo( + regionname, "pos2" + ) + x = int(pos[0]) + y = int(pos[1]) - 1 + z = int(pos[2]) + self._show(player, (x, y, z), point1, point2) + player.message("&eRegion: &5%s" % regionname) + + def _claimblocks(self, playerobject, playerid, playername): + totalblocks = self.data[playerid]["blocks"] + blocksinuse = self.data[playerid]["blocksused"] + blocksavailable = totalblocks - blocksinuse + + claimlist = self.data[playerid]["claimlist"] + totalclaims = len(claimlist) + playerobject.message("") + playerobject.message("&6Claims information for &e%s&6:" % playername) + playerobject.message("&6Total claim blocks &5%s&6" % totalblocks) + playerobject.message( + "&6Blocks used: &5%s &6Blocks available: &5%s" % ( + blocksinuse, blocksavailable + ) + ) + playerobject.message("&6Using &5%s&6 claims." % totalclaims) + + def _delete_claim(self, player, claimname, ownerid): + cl = self.get_claim_data(player) + handle1 = cl["claiminfo"][claimname]["handle1"] + handle2 = cl["claiminfo"][claimname]["handle2"] + blocksize, length, width = self._getsizeclaim(handle1, handle2) + if claimname in cl["claiminfo"]: + del cl["claiminfo"][claimname] + if claimname in cl["claimlist"]: + cl["claimlist"].remove(claimname) + self.regions.clicks_queue.append(["break", player, handle1]) + self.regions.clicks_queue.append(["break", player, handle2]) + self.regions.rgdelete(claimname) + cl["blocksused"] -= blocksize + + def _abandonclaim(self, player, thisclaimname, playerid): + self._delete_claim(player, thisclaimname, playerid) + player.message("&eClaim %s deleted!" % thisclaimname) + + def _get_claimname(self, playerid, admin): + x = 0 + humanname = self.data[playerid]["playername"] + + while True: + claimname = "%s-%d" % (humanname, x) + if claimname not in self.data[playerid]["claimlist"]: + break + else: + x += 1 + if x > self.maxclaims and not admin: + return False, False + return claimname, humanname + + def _show(self, player, position, low, high): + """ + + :param player: + :param position: + :param low: + :param high: + :return: + """ + lowcorner = low[0], position[1] + 1, low[2] + highcorner = (high[0], position[1] + 4, high[2]) + self.regions.client_show_cube( + player, lowcorner, highcorner, sendblock=False + ) + + def _finishwithselectionmode(self, playername): + self._reset_selections(playername) + p = self.player_dat[playername] + p["mode"] = None + + def _reset_selections(self, playername): + p = self.player_dat[playername] + p["point1"] = [0, 0, 0] + p["point2"] = [0, 0, 0] + p["dim1"] = 0 + p["dim2"] = 0 + p["point"] = "point1" + p["proposed"] = [0, 0, 0], [0, 0, 0] + p["rgedit"] = None + + def _quick_claim(self, player_msg_object, owneruuid, + dim, pos1, pos2, ycoords_of_feet=62): + data = self.data[owneruuid] + + data["point"] = "point2" + data["dim1"] = dim + data["dim2"] = dim + data["point1"] = pos1 + data["point2"] = pos2 + low, high = self.regions.stat_normalize_selection( + data["point1"], + data["point2"] + ) + highcorner = high[0], ycoords_of_feet + 1, high[2] + lowcorner = low[0], ycoords_of_feet + 5, low[2] + data["point3"] = lowcorner + data["point4"] = highcorner + self.data_storageobject.save() + claimed = self._claim(player_msg_object, owneruuid) + if claimed: + player_msg_object.message("&6Claim action successful.") + data["mode"] = "none" + + @staticmethod + def _getsizeclaim(coord1, coord2): + # size is including boundary + width = abs(coord2[0] - coord1[0]) + 1 + length = abs(coord2[2] - coord1[2]) + 1 + blocks = length * width + return blocks, length, width diff --git a/wrapper/core/buildinfo.py b/wrapper/core/buildinfo.py index c6b6fc19..cbeb8d17 100644 --- a/wrapper/core/buildinfo.py +++ b/wrapper/core/buildinfo.py @@ -2,4 +2,4 @@ # Do not edit this file to bump versions; it is built automatically __version__ = [1, 0, 15, 'rc', 20] -__branch__ = 'stable' +__branch__ = 'dev' From 8598a389e0a926d34841e6ddeb62c7cbf59e5fde Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Sat, 19 May 2018 15:38:07 -0400 Subject: [PATCH 02/16] refactor proxy as integrated with wrapper again: --- Wrapper.py | Bin 661579 -> 659435 bytes build/CHANGELOG.DEV.md | 4 +- build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 4 +- docs/Wrapper.py.md5 | 2 +- wrapper/api/minecraft.py | 18 +-- wrapper/api/player.py | 24 +-- wrapper/api/world.py | 4 +- wrapper/core/backups.py | 2 +- wrapper/core/buildinfo.py | 2 +- wrapper/core/commands.py | 20 +-- wrapper/core/events.py | 6 +- wrapper/core/mcserver.py | 185 +++++++++++----------- wrapper/core/servervitals.py | 53 ------- wrapper/core/wrapper.py | 56 +++---- wrapper/management/web.py | 18 +-- wrapper/proxy/base.py | 192 +++++++---------------- wrapper/proxy/client/clientconnection.py | 61 ++++--- wrapper/proxy/client/parse_sb.py | 29 ++-- wrapper/proxy/entity/entitycontrol.py | 22 ++- wrapper/proxy/packets/packet.py | 5 +- wrapper/proxy/server/parse_cb.py | 12 +- wrapper/proxy/server/serverconnection.py | 17 +- 24 files changed, 307 insertions(+), 433 deletions(-) delete mode 100644 wrapper/core/servervitals.py diff --git a/Wrapper.py b/Wrapper.py index 90e1d94bd71be04680eb89f5aeff8a2a89bc5dbc..74f9c6e3a6afc27854e8e24fa99d2f8dfd4daeff 100644 GIT binary patch delta 110064 zcmZ^~b8zHc)Bhh%Y}>Z2jcq&G*mfp%vayYg&5do_wzDxd`R#Q--|M-be|}Rnr>0(~ zyQgcar}|yz^k<@u`XY}SK}i-I0v6<-m$GML0s;wO+!aK3(lyP99U24Xe>Ttz8WU6~ z0UDAZy84p;*$7N(P6Dlz0yAh#6P5;L{?C?%WUIS0Xes1BkVp}f=Kt8^gEQmeJ7fjM`L7G8HJGZ~KTu-_jN|{ow1gcn{C`;O4jA|UVHhyzf765p`I}D~+%A~t zzcJKy!F*`{v7dtlm;4tJ!hxp{`~#b*!NvZCU)11%r2oJmS#b4#;g&2oKEyxpUGaY{ z)0le!7_B-=;Kt1V>~sZyYyNAF8wfrO`VZU>0vG;&@P9Lw2nLt+t!Snxp=qy4RA zIgP2s(MAFg5QHEQ5EKynw0KZhbQl;A@P7)N)2($V2!MhOG;g)T2JF0}2L`sBaUOz# zxrQSMTs95VT_K}~b$EuR4Z>VPFfc!CQK=+X5vkNCaT2uXMXi&{E2GPg9hT}JiJ#p9 z`IG8W$_4I=GXhl7W3}4wP13EwpiMCYy5FIDyG@OzDAz>Dwqs(ID*)g@%&q3`LXf(~ zcmUbTieW$C^1>CoqsCm{Z|P2Ndf6!VEUqI(YV)u^RY&cP?gX11d&A(bc@DQEiDSY> z>9QOx-l;5bG^8Bj(WqU9Bv!EsE@m2DfZ3Y2{yAx$QYpvrQdK6#*Cpeu=*ly;bVLKj^|E7>g~FJ8Ubf zD*-M*3h_`?u`KmM4BRF5&mb%R;N=Gz1tQ-D68%_(Go5joX4%OAfLX{k?TYI;{z3HyhIY-$4hL`%wH}g(wtK0(!&Rm;fJT&<|{piyTYf9 ziPQOK$hlG7hTpB+>GOQW&4gYpf`Vmm)57s8F)VUthf(#O-}CU0bb8!9{s5W=4|MQC z@=JpcFC2z=A#LorBBoqi#1?3bJ2?%Sdn!uZ0Y6tIr?Jm$v1-kh*?R$S(s!+<)~7Km z0lJmH%KWAAMO9SmdH-@iu|w#_i?VDd$I z^&(tiGOjj*s^<2<;=vVgr6BB&gUtpVqyLmXY$EYEO`W{R>Xr9^My_;1V;%Vsr}j$L zH8*^`00+!7R4s>Wxxh{@B2t~xz_=hOU^vPu9kwb(^AwglEGUGug4u` zJQ;G>a>-&d>`9;$rnWu%-%Df;5RST6&O1x;l-xBy9ZQEp#kvk(E6UFKskVqY_lW)x zFaOm9dHDd6f7`%tKEM}>oYS{a?myb*|1FRp_#mbZ&Sp&NYJVF6mM@4dmhV4;2Jb&@ zB%};L@vnbv82}QRQRiro$*uL%}({H5hl4RBU6(hqS=)!u#jjKvq+_(>0I+u(j1~k|oX=$1m5p^fGL}d^Q zzM9hDvboA^v=$z{z#Dh5v3dTz?q`IFbl^U_kvSykrB!BX&yP?r1Mkhm@yTv4cRq4r zfnO`2qSysfeY!g~K1|ItfXw%f@Q24~8`dwB%T&yndslAM`%{o$kr8lw=8*mgu=jn&Tmf6(DdZbS=FIVyug(a9k*Y__u*=vyc#hWlA$+OmYe&yg)j- z1RG!+qiSsUbtgEeD1MKGzkrbCn`-Yzd;SKz$^3x1huLvp-YOq~nQa<8V{h!%ql9-t zP*)o~*0G0QH1uK@PtVeX zS_@>L(he+$yo7vt65E@fp%JEVO{^Wv`l2wd+EKk(9Jsheh^PGGC%P z3E>&Q$9`Gx*<8nglM*+ba0ioYk5B%z@E=Wni6UoCVmtF;j(4Sg_#2%h=+-%ix2L;6p-r^}9GDY4%VL}~ zomymlrW#k>0_Tx4L$@ajdVJ-vDf0OMFq0q3MP0bIG(2J;`CLm~8(PZvW>EjvKgV^6n zzu?A*hjgmZyJ zouf&FR*C&gL(PWznG1~WprN)EtIrR^uks2C1LVHb-hjGcRiR`kb`rd`W0g#V*m^;( zF%A^sQ|y#_JsO9FN{_ZCL*@oa+iMr7VX%2M>md+_&q6>8$nHji6a_GdwnK1IhZCXr zi+zt(Ot0`jkrDx8s$2AlvMzzmrAUopyRADBEi*a8p_|DLp8#Gy=-es4OUcyDg^eATWMwXy zQ=5B_PUyO5id+3<-J{4c*boS}%2;Jeh9C??H8{E}=Ty}v=)X|>HI`}jtY&04^xPhk z$)s%+4MxjP?+H{kzA3=Sb6W=4o6UM0$JM8?q9r0udx6@m8#(a)q?HHPwk=TJV;by5v;d;1l(kYK#r>` z9m@8zyu57#so8RMK30eBjrW!Xn!{2Os@hy~zr)QnD;5}dX(D)x-K9}^fD3w0UJt1# z%_Z0Vx~OHvcKjw$0Z6GuM#S%(a2=pm`lzvH1-ZoxlNVo>k9GA7AtWMiQbAD?u(d%> z$Hr+__#Pn*Pk#T7y5PRHtR#-`OS|Iad->j>Jh#_LbFmXr)?9A>oKm(uoMG&TMSx%1 zM|HLLqdBmCEB`mE)J)+H>WA_p?52sK2~uji60;OB*($L}e9xy$XFk&)=18wq@x$f| zbA@#Mt5%zWK0p3i+dL0F^*-y=*oC|-C!s2iUt|EG3bsHmd{14$AAuCHpwbAs2yv3s z&`l^q5q?Y-^>sa4lBz}hww!|Vg`cTz0vzJ~g*L$6Wrry9YekBTA2pfRQoaUdf}Bu2 zcBi#y0Qk3(s(@lEm83;voeBtZb}N6iM6-}123nV#gddAVM2RFDGgoyWS9(lRB{c%mBXf{35|MiU6w_l6an} zgI|54_0b4FRZpVreuAL!lFT4)<{Q%1*ttX$CXWnU=uEgb{c+df9TIK@aS0NCv>&xv zMAoiS#-U+G+FQ%wR#_C}pHSf@%Cy>BD%S-1v#1adP1gd-8d{ag^UoU4WG0Zc0jSKK z?i9wJkCD&$PX-&n)dM!^lncsFaBo}vjqtSkZ%-%7g$2Lr0f+2^9_j=+n#~e zCg*#|t06aDneWYru0dNw-LHYO+yEqFBu0@aC?T_P=1I-)6qSHtc z$YlVUTpp-0%YAbGtZ@!SN~Qhx-_#q|lpPvrSrJQ-@j>n(YDc!coM2V<16_dGsBU#r zFuQ^(Qa9h3I0`MQnvF#Um!~@&OK@%kssKbzQJU=qE=ED2w$VbkajWb+c+H>Bt&GeP zef_-ey`*lbE)vusd^SzxEv)a!Q_(<4I)A3oaw9U6jqeVyewbX1Z{4R_SWISbSv(_U z7aa9?ZV22)9AAZ)Srl}4^0M~pWqqgFRH`Z>x6zTYKI;n(MlG5Jf~nc2Sq(0Fi#I>F zdYdSBY(Yid$`y#vbljH8!{g&^;^W&LL~i+t4zs09zN|`Y?JO#~S*qs{;=+J-3-)ej zW#bq8*JaX7(Lt_C8`hpH*mk~^EF&v#HDq0;i5tlFY9>hI;fQ0Q=i|FC@=WqcXS8{e*B^#m|=eyvsj&VjO4Hv)!BhNe)Q@4$! zEd|OuWKW%f$)E495fwu`7#Bc)ls2Foe8*LV>f34s#FOD^l5#J?6E7@IHs#b-X&fcfsD%K8}aG4;5bO&P{W$a-XV&j zTQr@y#5`{s>|;OjJ=!;jiTk*4pGY}57H zSBkKGoHS5ark}}DfA)aN_mYYNQr=DkGzjsawLi6jyA=r5+*{aaC4bn=?Q$qt&Anga ze+Nd^6bVjqUFF%{7!;jghesIS_Z~;&tbfM35ScVx=1nSqIigye{7JYaZ?lWrDroJM zAQq#tO$~%X4<6;;%_cQ~OmSwi5FJ}Ggm69K=2+IrYFREq2&{zl6qmcfaPsCr94U^?D zMo$Y40wR-!*bBf1FuDEbkmm0(Tss;Ns-?ZsGFOlB0BI|dj`lZa>O)uFgZt*UBx_>4 zF%hpGY?%}xWtSbJ!mE(1RBTK-cM_O01chd^PBP$JSzKDh+tkJq5jbWbVwamm!)P!*;rh5k>Fy%`L&Unj#MG2Q-D!VehFY_h3aBgVq|F zSw)W^=h5z%BCYSL9vSa$-SJLAGOD#P=~N}PUFH_N5C@B-u#8K5Yi>-{QH=>hmLMMP zIV(^vE#{yv{HpDv?alYNXZK?QO3`Kyz-D{gHXNK}DHm>rp({26&^8aACWu+)9OZ1B zcYcsHQ4_WFaC->DFcA2LB#m0FejlN9~z(MK*T^*& z3aeW(s(w~+S_+;*0j}g92R>41KKIoVzqW!~!Yx(CmJDZ~PdKL;J_4Jd0>P6Jy4 z1|2 zpCBAx382tV}8r>31=j2Ly4A3cs7 z+#B*g{*st_sGtPM0uSI?y@OdTTeN_mUD!s-{g#U3HZK`mBr2Mr5rm*6E$ z51?gR{pCH+Z3#2H{7sM2UWq5_TztMwI!%iNS7miY&UK~VlxRR1E1Q;W4L)@j^KxBt z63u1U4jU%!wpR3KLOm8dpPh$P#a9S=qOIRS;yit6Yitb#fxO8}hFMTwaL`XMI7CQ) zJ8(6Gql;=z7Gbl_Z0C8f|3fKdwueC{9rqOpsCxg009i_|fLyW4W5teia0RzJB#mqW zg8qrI;zK#cmX(u4gCUgwx4-fYam@l8yhn5oT&(cl#gNM{{VnZ3Y4%lr}7t^v+oBZrTu z29h|Ky{i}YdP4~o*v(BVBNri9x4x&4<$)1`dho=3&j8<7eC<~tPYe&WG3fvg-mCQD zK|~&PX1e|^b2K)8{fe`qdIJipZP>u_zScVWP#@% zFhCGlbIxJY81(Wd~7g3wo@ zqC7oBlIP+HJ{y&y3H-1~NVV!zw@}&S^5Y;JcPKm3GqE0mjL)|)&TqKO6roY44rCs@ zYD%zmTw$?2$EY(1ze-IrwT|psFh>+UfV-*KoX%+9$p}l zONc!J6FX--=Fpfu*wAj>Q84Nl*3~##pG=ogm$tXo{7tEjZ^b;Acz}|;A?)+|di%r$-mHFEpV||!Fd$hT4HiB)2)1=hj{9%0;;eu>3A7S52 zt&$^f_b})bfplcI%x{+)2@t18K|7E*mXJ0Yv4_!M2%K*_Cl=lEvlO!e!A!$Tp=~y1 zeWjUTq4gyV;SK4CY9WoR;lnqmZZV66owAbK38q@K8|JWgA>^a_36tQaw#_XRu$OCW z=>u6h9Q4bnMV8Wld^%*NUS~N32DZxtJC6T&sGLnT-}CjHXr{;Kwc7LX;~nb?z|H4o zKBQwZ4~*#M%n!_-dp&ZN*xX)r;m;cNa;*;YLj`&7{l+R8UYO*XvAFI^A`~-6lImdh z*n+DVF7soEZvG1{kSkv-n&DmVt3R#3yqGznz{Xk=q;&DL+g}u7}rs6gypJERr%}Yk!6s@K5;!Uzx8K~xil9STbE7;yjIieYJH5v;B{pP6W zA$-S}{Q(|{&Djc z-`sGldOvnamMq!X0ctO>ds)vc@#ZMwsOXy*O3^f&v$|9d#4G5k<2hTN6V{fT4olKU z`X>>ZxIbY^=9xBF%9b6M;!EM)l92L1SgpOM9Dkz^WTKlQcvqDKl5{>9vPy2VyaG8g zW53JMs!BhIX(yjH2hc-{Ne~xZg^oGcRjH|2#QE z_svW{p2o=k3dxNl(CdGmeg)DC^nr!T-65EJkip1%xu9a1WQL1I5SWE^&ffQgX zKfqe8!>}7Yrj_@}7}&4YaW%=L5adus{G;jOq6t@T zFqFy=4-RjPkPfFx{PvsqmUhvk9=EXjgFvQ`#&`FV9VmYSSMnQow=Vxk1?Wyr)3mAO z)CWiG53vj`1-%>M`B1h}r#W-rIqt4n`l+LEvvy!Bv->=Q))X^Ol=N#s6Kp|U(X73Y z7g|jDI-1=?hjd9?`{{rUWhhH|AccGgzbdF%ALwAEF<&6%T79AMvz3)>h7u{JM>ERE>w zs6}!b;?7=bX`RY1i_FW#mK@tR_#^eb!$#wA7+=2}Mm<`i};=V^`~%qy48CdSdB*YbNQ0cUL% z^8t5F`Vxa5_)i_OS5&#q)e@YcOh6!gE#-b(WFP+_XbY?rZE74474IpNyWY0DiKTZ5 z0zY*2{D^aZ{Yh@oYiw)`{hY+T%(jz{Y)he_EAgzsNUTe z#XGdu4R1k6@Bx%i@EM1%d8}3bEk@2@0;FW3KUS?t%;p`i74s@qDARkjJU}M|#$&}4 zAI|66DHI@oQ~x3zB_8%`^a!fGl9jPbz`N6>kX&M-H^5FsP@A!!LdUX4ywQD3N`5)t z=ex}gN}+$v7NzyUc(0B^sTS#BxR5;M|ND_=-zUqkBRi)pI<+lNZVb5A^G#bKwv!-`~O| zuIqK*z*?lV9GO4?t}pL&N3gZe&)->0v}!swNBtK+qu9&0g5Gi_^iN4CbSG}8GXNU| z6S8rDVmj^nN%eiIEPb5bnV=lp}}o8_Z*WE{iW{P(!KCa4G!XJ3;2G z2az7YvZHyvn{@~&yG1%NB;fX9)^kE{8u*9^YUd9K4hdZ5kNnU1yc~(YcguNqGaWIw zKhhOKw5djD)M!0w7SPhi1ci~cf(~r_0I&qX=V@K}H2s7XJ+RcTnY49$^&$?03*@UX z?NfLh>(JU=mn*_EDVK)~SAIjD-%8F`zH!-{14DZ z+c+v2T7)QGk--e)Ot#eOfnJeA;$LJ2xCr?Kq%bI^eQkX9dN&LEfB_s~db1I=10!GH zUXiG3_kHhtqp*}TA4>d=H4Co$NyTe~)(@P7-AI^Pn3VpxL(izjgOF)}+G`_Ta3HZG4vEibA>nhDn1;e#GZ z$73bU3m5L`aHA~drw%r!R(Ln=pVps1c#Av^a{gJxo$uCje2Mp-?9D1ob-xxcUtG)F z&_;cBHXRH&aohFh8n`-_BMb4eDh`&f*pZZvq@8F5h0c=7%X+e$^4*{O}Ha*j(>{czy08#ykVEvK(F1)_&YlVJlXR{ z5ZEXvAh4%f+WlIE=`J0AJMy5VDU>mLdBwo{t#5-~;hU7#$W3rfjVd`MQ`_a4quy$$ z7oT^5CEI8PONI9ll=$%*+9k8>K0>TG!PH#uX)fu+LF9+ft(&dFLen_&4cs;de@0W~ zc$jj=O)aS=3_vh2)wa2DAXO^`nAxk^IFSvxA4g|#0BcePGl8w)9+y5}eR-J$lm3`P zDJ7hujA0MyCc3uhk0gs<5J- z;`^0;rgBiL>iux3qF$%J(Knl1EeR)57U9h6jRjo+Y4>XP7b6uey}hn1VB07En?$pg z?Xe5Z+3zs{bZ^dunFrU7x(`+viQfSR?ynu6Z1CJe&-9siuN^5R@Zf#BbS~nyQ<9q# z_Ny-WneeqVdv1|ai;4G|&0W{h9u(}E(nPuJdFjjRGbiyrlB`_m0miyArYC|qa?RXQP@?j%Ur+Ak3PE2Dp;nqz%N^MNP0B4XL6ggn`J8V@| z3<^t&%*TvJ-@QnSe1Cp8_tuH_>=;;Gn%V3L4lAS=UQ$)wNH&N8wzAwQ%xIyJc%$0} z?Bf)v}%?u3Lo(Hyq_yzE!{UxsX`xo#@h<(ja{n$eRP=w>ykVvYZG zp?%4Me)&txD}Nsf7Z@_Pq=q2v|1%AvN&#S@%*7u{+)=sfcpFT8{-#eS>_PbCOs0 za~NPKD)?z2%B8n2t_!TT>C~NUCo8NB44ZHfjN@S1U|Ss@`WgIrDJAll+K)ez*GyH- zK5^a2D*Wu|HSOSqV7&wY@YEA=}|15+2e_S@&>U%C~h0n&M+LJ8b6F0ZYN;^-u+ZPuG?*^wQE?oF|qe94YX%Z<$ zN89B-pIbXXq~akcO0Sx7IY)pC6ke6vclZ=PP;Y&)#a3G(IET;1PQ;_~J02bnMZ5S9$+Hy!}&nSJGDM_p! zIqI-wWZKxjrac?Vz zFCCRlIFoRqKRZwQrB8mx8qN(mGHT?kZ0G+vFQbg!%9 zu0-$j%weXsBpawEI$s9TM~Bsx*g6ctU5~eG#Ivurg(tc@I^xA+B;he^lR%Zxy8rg4 zxswABl2L1D&?&@a@ur=w5np>`=LRqyErcfHHkg3$QrVWm&KDzeXJkRvQbsqXwrAH5lJ`^Gy)Lj{{nngY-#iCbU+v5u$5RJHpW& zYyOA{G#G4*g0gV6hzPr|=xE}!)nVy`> z@BNxp>D3)%g=yR9=;rYOx;VY!4(E(#tyKe6`t)=IpMj0CZNAH@$M98a zoSjsdRUpxlx6iPdo>Z9%v~5*O%T4t;gbB0${8Wk{Ey&>NCU<-4K$W%HF2kdCjj zJ=eK#r_pfb z3~&TPRzmu#AfO+!g$`AAF~n9UaV}|~`+#`D6IVGs897~fGuvHO{eBXKbwu+)!MSlF z%bB+ZEqf>>oasi=j*#MDjGAn#(bs-XAK7H~EQY zSN68CpL_D;K5%!=8KVEj!iab-G9gL^VMvIZmOp$8JUjxvb#Zj~BHe{qf>5`x9yrp+ z!$M*{!3^%f4l$|BK_gE{t`{&ig8-tu4{3`W`n-#izowB~*iivRl3B7g?=OBuQOLDq zkOg=AiJ%8|_GcX98tFonTtcPMj9FVJt*={|asT`V2g-=P5tqLRCEs>*tahf&EqUQ` zbBotI!ezw>!fJJKV#SAYLgavW5@>XhWV-?Z#tCj7T%yFfs}|#oTTBzorQQ-psTDqH zyn=^4Mw5u^fN}?N%lz~y;HeRHH?Cc=T|GCO-;em94I&=Hc;DvgI%m(`A`+L)dJ<~d zTZnBA7Y46Do89sq?klKl$g+q%OS~2_N{+E+wm6cWDN&4U7{j>vj5Yu)7f4*;vo}g& zioX!j0N_8tV+=|DSpR4(xOL)MF(djhjM1?ImIUpIg@AkVyVj@>Ty2Lj0AZ~<=Y z-qL|-KBD&z;EwFebf^q5ua>A0=z9Ho+t&4C%%hW{jCv2nve2k&zjzm}2BLSLrC2&S zwNM$AJ!Xq#L~)Fgxj4#lfOW=xhubO07_K9eI1I4%4MBML6^oQffxl0X&6X!hl0e&C z>d6cx>!V1D_>G9edgjGNLi6Z;B1)H20-whzVjzF&=N{&l3`n{Ou#xt!_fiP;yE3>D zM@{6Tjn1OiAXx>BlqUWJ4O=HB9qbgDu#ihO2BUu+7lTo{a0Vx#akdQV;8jJ#BD|$7 zLV^Vi_*-&jV56%eL>X+3%8}B3OL5Hso7N3ElIQWQxjU(CTk<+8bHmEzsQd^#;%U3b z@W=~$t-mGjBcL*6fno6N);S_4Y9AYl(~d|uuEX)Fap0b!uE7>xC^6SM&4+>&h`|+p z)B$w*1jr_!S`=r32x5Eh`D1C~gF(oP^4s#0{*+DZcK0(i%Q5$UM@QZK)6(bx;I#@q z-I$Y3&0c&Oui`O;KWH|EG$N5%!G9vey=urmvkIOC>@6-r0QpCI3)v|)5-OlJquz|e z7Is(T^IyF<>jv7?D>o4~DnO}6TKV|LrQ2QZ@`8& zZ8ClEuBkp~0!Hg2#t}};@d|AHwnhlBejMpb3TCJYBd7?aIv3C~dk}QX6u57xk!vpU zC`mr)tMa)LYkJBas22!1CU<{RhiMAM2an4&CgAu7+TH0139?hk@|qJD%0{ zj>O>~BaFU)6OLnYNNPUq&JF#WZLetl^XxKQw8W?UU zb}?KLFql4sVmPS>WrR)}jM1wm$6Z%&m{c=W)6Aqr+Tk|mjj3uNvfk{S<3-kj45!{# zP0T3p>(1EbG{XKt1QouReo||bo{Xf+JUOL`-Wdd~>QY8GU`n<%6v=?0OlmsPAb3^= z%%UQE)hC8Vj=5nrVKbD;V2v#J9mgm;E{scNaeIZ!UZRGTli3WR3kDfY!W{!k0-iIE z%Q0#zr^1n3UX!(mr4d?OUPH2$$`CER&=B_>?!5A2#^0!!LLj^ooRYK`<8fKoU8rG(tJ(ImylLp8u zAMf0268s<(C+!Mk#?5H?*ul*196*_M+fh0HUb2)?u6?W#r+K;d@0;K0kB>wy-D!Dh z{p@AbU|RI?p5%HCkVraJGQ5NX=ijj>n%RKpQf-u|$BY@Y+YLnWb~lp5THvz3rwhA~ zkZRzA2z46bBU+j3OhBID#tUdU1Jn8vT6B7g-YCBvfiZG7M6Qc|Q^eoxXI)1zt2|d$>tl+rIx{}Jg2l|wZT*<1MP{5SlRI|Fu z156XN8}JgaT7<{`U4UVb7nnxr9c>ce6K!8`evYgn=2<7XV-wF=RT0RDo6ReTo<>t? z&+(|1qq1_W=J(_}>vH#rZ%W9_rha9jf_XfYxest06lm7b9WD+9;|>O_7pVY_)cs`V zpws?nUL)uu)ES1Ks3N36LzN2ZMxGh1rr!Vvca##!Q-jlP4tcgkfvpKw@9yoOT5CLe zKc6dqUAv%ORVhz&tFamC>*e+Eba?Xl>?BYohIM9wNFl9f`=WC>@kV(-aUnT1O{?Eq z@qsEAwTr&*5?zCyX3Kx;BH9zClCY1DYk<(ujygp;S-YDbD2n@qD{iRJh`%1p@kUOpG)JErt6)Q0L7L zWxtZyQa-6)x7YjIwea3yP=4)N^YRR(##W2mtZu%gFV}-kg=b`psERS38Ay{WikU@6 zg!BgS4oRYAVe|(;L zq+xyW4L>ytKR&@mH;UY@4ke<40}Oe8E#wMVog(|x38T;ti6H{xm64q$W?l8js9Y{-K^WQ#jRPx z?R<=wIm%%{fcrI!cPy^!KqYk-gFPSTS}>GYEgt8MGsp%aSH z*TUncTo_yX&R!nzpqmNs_VXg^yXBX<7f!md;?{c0^iD(BZ;ckx1z3Sl#HKKp>oM5z zxO>1+_~2)8$fA&)?(dLl!04?HS*wjdH@T%+54IoyMi%jhaTskzF}uo#E+p-e!U{uW z+ZhncfKA$xFVxT0m{6=&vHVyi8e85ij&Y|LC?{vTUVjj@D9Y2I5Z&QV;&8kxp=(fl zCq`(y@ya?bqF1oexQbAL!az^Q;i=0%8`iMypjji$cV~SQ@cX4We#^+X1ae1M$V*}o z`%Xf0^ZxJ$#A{LOAX7&b*WX$4^|1|i^l-4Ff&A6Xsd;*f#>UOX!%DjoyL@Wrl%k;c zWzN18QKLj=3Bm9z?xekcA7aoHxw8#XH;U*o4Z9L^szzkUm$!l~P-|Ki1^*8?5eIrQMfB@2g5~~Bv({8W{ zfXb9n=mdF)LT~~M)n$B^8Z2zfjRV;Gf0aR!CRa<9*avwDj zRgd_bax~vD<9{Ai& zCs<2!N9b#*)aIA&DM2)q&d`LvF-v#78d(_Jm1s(B6d=f;1?k!Kt0l2W;HWdG>;+84 zB94}*f@?cvN&FI^D>Or^jR`re!Ikc)HqpYlMX=qVw$WfrEk7a-t^TAut+q}l0J>#^ z-rqzQZP-v{`Wg1Q81&+NW2*f18b$c~)oA2n8Ma5MXBn=7l+dA)tTOj`9nGlraD-m^ z0}K&Qoj1`eBP3q;^g7Q1R5$T9NT2fEK=;_B3ts!9@G(k;e12`DK?&1@PLR^W-Rwzi z41e(86ZieNH%XKW+=o~yGQhUZ4=CHRQ?iYCpJ!(q)AcTXn4UE3P&u5uv*bH?PFg!1 z6q-Qsvdnn#gl}WtZxCP|<*-$FFosQCjK|}Yi>1BE4Z9AL#`EByB{joN#)D>phK;Q2 zZlye%XjdizW`a=ld(4x+|F5iL-j=Re&hQGprsq8)WB0&Gi%-uZ2=)Sh2IAmvRP==% zmU8L?l_a)U+a!iZ2AK!uO%cV4kyX4NVzuoAAKQvRpjQ^Ttv6g#E)}&b?cZ%BkF1H? z3=}G@0x5eRLIaES{mZ*{U#dYhVm3(K2ID5U#nbjurcwnskx46h(S}XEKRUcf11{7W`oFv#ovkp`q`+|aWG;dxNQd=Zf>mKjm@ujRM^BYKhriH2z0r2TB z%ko%yXQCcl<+?r7OA6w|UKgwHPc^*xJ$_2I?ElJ$Zbgr0N}W_nOS`dGn{TjH$8P%j z1iImwoLVOc0~(j+01zzUQej|P%+cbyPg! zGUd&9l`6?-7!z|L2Qft*ZQNK4*sC`8AdvErscF4Z90PaAMB3bDnSw~A({OKHk-s6RRUTK= zzwt>()~OLueLd4LbwDkV=6-%$7XQ5@1r8si-(rn`ES)! zXJXs7{&6O@F|lnY6Wg|JJKwwe)$Uep)pk|i^iAJ&oj%Wbeh=0!sOZo>L!KD_M8#?d zZ!tTaVGiRXHQ(6Jz-A$kX@Y0rUE{EoVD8@q$oaUphsL!80%+swkWZjOV& zbAEO~k!?kOV?fO2_VSxC^8LHF+fP$qW-qpgQ+F3(H$OKJ_Yt9HHf>P#xmUw6@lTd8 zl|z4#_|cNzBcbam0~6ID(Ybs&)ZI%75abFpOe#?FVBR6$pz zDZSDD7SKAmy(Rcfq@`l%hM#Ch4Yl#q2O%hal8u4@lGqUhjqI8x$@kYiiytSZF*yx+ zmo>`;zFW%BGkP0^_=US^i}qVoa<1G|0_t?LW4rd=4T?|tVn~f`R#l64@6{NGde#r( z_+d$nqXj5I=Q;lpv+*Vve{u|LcN>B2r)XFB7MIaJNBSZ(WROD>djahegf{kDmED01 zu-Q$H$tOG}&ki}6A%%Bnyh7fW{X6*@%&N!dl4ql4NdL8&gBjZ^3i(?ZK?HasrGEYI zNm)H#{piOOt7;d>@QWJ@8!A|+n1c$zE+P?FX|(M3}mR!4n{rA@^!n2u%*dQmcg71OzBP7K(95Zg;(kv|9qa9 z-(=z8;b{Q*q5O)HWb><*g^%x=k8e|<1RQh(f0_6k)Xp)1R31c~bdj3BKA?!=KcW2T z*&C30WYq7)5m3n{chRE1WFH=>Ibfu_x9OsAao;5T9S-%w`hb}ZPcAH|HL%XSAjX={ z9R*WC1y4KwnF-8tRtGvywe%<@#v352@0Kh=+Nw-Jp|*|i=@~?1>1y=y#|nVF zm#@HgX4~zBf?2ZrBs~g{f-2m&V(z&Pk@=>&4@FgVWU)qjMLwgpesoG(Y z=oVY~qjs*`uFc7wg@~x0lTs!{HUcu$av!u0AC#BZiMi}D4Qm(xqiAzBk6#wF>%gnO z)l?&$=E&|fIyNMi&1#2lEyyPBXbb$__KDeM72!vxsPZyhukc$zT!j|_i!s_h+)Hq& z^Il#hyGCH>XcRVDAC3#_6$gxmc88z_edDKj8V$(7wH`Rc#~aGxBPn@cK1W5(gutiL7V}5u$sZdh(LCbujZUox`3-;<^O~%~WKbU!p7n!`G#(2V(NajJ^|sR3g%U=R>i61Px2t(3Ky39zp6>WG=yW&{Rus& zt@k+<1aDMVs5MY7t@6a?r&m!3^k2z73z^MBr+Cyt1TIqjv*E}0XCS0beTB6p*sL&R zmT>xpS@{@yR*QuSl+;M?tSd=QsNsEz|kgijkP7 zVcIXbvv7W79U^~%gt1e*x;PN2=R8tXFVG-b*@^cwzX%Q z{Bn3)*RE}=5za?nc3UO>q1HPu0a!LNZ(B$ra$``tyVjzc0+PwRZ~89@fg%B{;)TLo zhJMb#^C8HUxpj(4jRG>bEi~RN_XC*1i{$4Y0oCI@htV?4SY9{xt>*G-T)e1fhi3zS z_|oIOo>UdO!(_sn>9biDL9+())3Ajq(}UVZxn?EZ2@h+3z&_%!>Sk47H2~8EO~XQc&m@2@nB>;`BlKA z`fozI@|w$47i$E%=EGWix1!NxF^-EeMBP zCXrr^;v2YpW%BID>H8CHl(pmSeD?EJr=DCLofO>+%zPn}X%c>3^Xb2T+94r?$kS5! zQ(c+ry9>1ko(-n)51af!ruNt%M$4NUV_zxCDBwhGWK?wzDJ#0ky#iu<+o41&m90$j zabhYmJ!jxS#X~m3MkD5_htziyEVQ^$J@&W#F{|>kdz1h^NUV&Z&}L5|mGqBWGb;_8 z*sxFMDb$Q9W*kqJfwj6hWlV$06D`xGtZPv8NTb)Tg#wHDJG+pQ`Qiup6!Wvxd^)W2 z5J1T;BhC?HyY~zL$@YlU5ER2Cape3OzFq#wW^Ex>Am~pGzwcaeu2|2|p~u#-{9D^JtiLN|neqHG1DEII!~(liBY<&# zYZ|uW!Sz_Sl*PP|K^ACLDpt`f=0k9nU&s87UP-evZTdHM6)BHf4d@<)b=kPp@_H1{ zr(1P(UE#XJz?ch!-`@$_v!x^nUJA49#SsRluOy$VrW7pwbw)3?t!tQ`2ApMEclle> z3Eo6#%{=~cMxtY$o7;OBGMmQX3B7KJ9+B;106k^&ir)}p48&-zpz4@p(bwA(4Fhkj zB&%mD?Dr#Bf$79b2jh}=zF<7IQKIpV;xLF7)PQ>OUgdiTZ~B7}SY>4A3QEo!RW%d7 zKwlEALz*vF$?9{U`gZ-=1)z&8f1>n8swY7#4Km=gT**-@ICCWv^Wci@qiNJ7{1wx2 zN77|Ss2Wr%q~)q`1)cF`=XtG{xitKVmBDmxWF|Kh3<|XUi#2PDr#K#2wo}z=y1Cz!#+s;~3XFkTD0*FBINwQ$ zIL{m$7$sKgj51J(XV~Dda+C&)9r&vcFMaQNLh_~a(^2l5e59Hx6(2K3q$89azA{qP&rRBS+<$F7;!?A8;kAg{LQ2ZF% z=CgqrTr$Fdi?ML(1;``yB>JyeUuP?ng{wG12aY3_6#f=XDKAxy|G}LxsS7tk?a_uH zs9HTYTXh4usywgNb2y=>z<$|ERAU}D+)GQH7xv%HtPRzFDV;MAs=cOii@l96;=_nG z54JqQ%M}!Xw#ytMgHc+Bjf#ftKM`g~7G-#1M<$!Q#c;`;2Zq83`{}1#%8_D`z^JC0 zM++pM76RoJaNMUgV;Ij-wu`h2&sN4CF9agEx_(8V%>n^uB9j-F)5Xq)rQ_1mWG=m= z%I+1Wo|oEct6H{aVm==^Hd5Fh->@NwoLr}Fn3=h|kD(_ZcK31(b1|mcn$)fPP}xHH ze+Wkan3oU|fP08nb8QM6-%%x+}%^Uldzd$+4zh zo$V?P)TQ3+s+}qWbUixfG)aq!9Sc#Y6wTpk<^vMBKuUbk1{+&PYU62-Q3!pphE590 z`dD}RiX#gmi5Q!30ZEddtpWDIy-dl6 zmeImgV2>qyAN%lR{E~C;$*3v4XtA+{z&6XweIO0Q={Bh9J^S-%a2Xmpn=mzmAIX2d zVIOVF$iw{I*wTndxR`NRGdByh9rs|)hdshJvZif+f`Vzj$~b@^L^wMqMt zuWO9!Pu_PsBzR2CwdNRewPK$F%IDP21GL&F>btsTvD9}!#o4xVbwdUf70y3K1ok@; zW#^>CTnQDHAruibnN@1`Qf0Vb&viln&{?e(p|;0cAYe#P5-^@ir-Ga2!WFNI`N8uA zK;x4fc$>|&$aBI(XtKaSfD+e*V`T<~ z_kwz~gBJ&LXGi=#PbiLJEn&$Ys+L8~WZ+Goyt!p-^O_Qlm3Y~2X>q3aLW@C%mSWo% zJ-d>VJGAe6dn5DuyLK_3sZ8E_#3wJyO;IcFd zCIon=FK?GVL|Nr_iy&IW+bsVqJ$eLRoJ=7YP^)QM?X!{Ou;#ODdTADXxvVr$7v3l{ z(mfKIEUPedFksR77goqqZ#pj(SXVhZP%c(Trm;xG9f`ovC8co8SvFg6EX9(##$dqn3?942D{#2|(FZ&c%7MV8cU=cny{X5(%-$Lq(a<5eysXDHR?385s~35KEM1MiP#v8>CXb5W_a z`EC(n@97$a8a^{9gi7^{9v1m*%{U7q=Ul=tWmkw@z2ASfrXLpV`TNO)Ch4x4UE39H^W9LTAq!-_m{d#Ds z?elF2hgP`}P|tVI8K+W3q^B>9@P}gdq6pa*IE5BvPRBWm7_u$7aS)QWk&nH^$@fj1 z{@p~j(9$C>qA?gl>ayqpvp?L=6O0IE^0?pLD(alb z*tE4`9P-Z|=~uDjkF5nA86m|teyb1u_AN-I15=^!msd+{V{EN4aB0_@l?p3lx-q2u z`(W^)upg_cVB}X?j;DAlzF7=3CT&rwdfdf;HIfOp_?i-TyZ+PwW}6|ZhT7@AGL?R^ zxaxug%n@WN)mr}E#E4FFuEq`pe+xS_EYwq8Ex|US9$~gR5)E|2S7V57XI-v7vTD*P z9WS!0aF)BdIY*`EX$0d+`WLA}M=w6*?GD4XKT1@$_MWdd+z~ltY0hTNaGIhfGcB5# z(eh@KUBl+=#(;PZ2oAGt>N~ef#4uXQY-yXrY@)Tq+W2T#5N?nyA=PmGT{zMY=9WmYw1Nc>qRDSPKfS|ZtmU*~qve#-Qz$Y- zRz!lR5XC|1j-iydZEn{yrrCvU(9|bURV>^0aC*KmbauJ~VvL)tn-q^Z(H8Ke>>EP~ zUfM>>GhZxwxsraF>95}Vs~U7=AZriIw9NpJCu~W9svFWc&0rER8Hn;y_zJjNvrhu| z$txFJZ09G~tjIqAJ)QieGHoJR)_^tU?oolM2y5Lzmp_5@(~KitX(_u^Kh96Y?d3x6 z)vax$hi0c1Np$TawoIc zn14>PM0B|5em9VVRjtVAXuN5fNQo%)(kefsskCOo@ z==PubcMJKw!}m#UH>`Wc)v;_kOk1#B8kb*c=?(SJi>HI^-xixX5pheMmaA}#nhQeD z)<75}tBDDjWd~u_Y@gtwMJ3z=CO$;6`Jzj}qX=mjIw1$in6;a8F1^2HYy7-A7IL=0 zAIkK+Pu|F5u1mN0_z58tUr}EuZt$RgXnQ*Q$m(PIY|{Pg#^Ruv_|_vGzF0T3Vej$L z*L|48sKQl>egAP&8Fv^T0lL;r<%LsHPk)H|XZ7Q9%cAJW`~5a`!OX}EdLkH-tZ5l)O-sw~`)IO)!x1lAT~TB3h1FG$$WdX2KX+ zE=5vSF3<36#0hMu)R(D8ePcY31ALGxIvZ%&qYw*{jYDu3qkYVMf^H=CtVG^h%)!>u z$QU#`9I2_Lv{}I7E6GG&1pK~r%Z1B4{&aaF?#iqM=#P87*_;09thnH{ZFb@WFCfUa3FqKd_#ln#Vy$_!Fmx?Okl{nMG{uo| ztA-uA8#@P8O=ByhT7Gz{aEYELNf=DB3k=*(f1n_2X{{|voVjt#jSxT2qUiEqWp|9P z>sY>5Mn8OC^EBvXY~~S@5tji=&s1sn*`0mXp%5u7PLRKv&YL_)v)u#aZ7@}mmIcd} zb^$Aw^c?fpg-((uthCYHa%qRPzlqKKBW}9W7#OY% zt1rUIVdD6!7Pp~VJfHM_eW_t~jv{?+&0X9cL^9qfnthA}RYK1cU`qhF_Ic$?7(DDF zmfp-EI*B=T+PL8v5Cm{0j(2nvGfmR4Zg3#c#rYuTeRWJlNmJwk*oSY%y`#%Z0Re;I zJN!di{5`lXl%x$F^J{Y9ebUS;Vu8$%rKS$cj5gfsmWobY8rj68dVwKMh^7WVyu%-x zkOpa(iTwbi3V2@cTxo8>>- zHI_3(UHik8z7{z~du+5xWjXcn^0j$u$7r4aMS3=S0wPWg4ySJZy71iJI!w+_B^>tC z{wKiG=d=LAaK)oZysyshO?2&w95*lj?rhSRyJz_!&NHu69T%WE1TStK-XHTd*)BVS z9IHK`#+^>mD^sPT52PU4Zmq92U_P**eGB=GPz5$NYN>gtr^0qECdZ0HxUqIdywO3; z*qrB##d!=%unT9GI}HnueSNQ4#+DWeqkykDpNw^U>n3HFDo1_EBkM<~F@=i;9-A(g z4Jf3kJ62DoNHoB_=02T zlNWiD0)#0qXkP4215ADX0PDg{{guf-;r&}auu-Egz;eA+5Yj}_&GaHSTg)e0?1ZLV z&EE{Wamt^r)hO>V){L=TU(3Rs^fTD`#nhq&$`hL#l^c+TO2S0u5oiD7Nf=yMz3ld9 zU4gzC)Sk@!_KXGdydcqCV#+<*U3j&58k=PSRbN*GBBf$x8{C3CoQM`4^4vh8WR`ir?}M8;(9b{`v^Y|*_d>%Zi`8{&hL`N!gQ=0kp0=Ea5?O8iTPXHC(>1#C z4`u6a%nLAY{j2w>P#$^dktV_w<#GGQ_;GcNJr8@zh1Q$CGKypELkiEk9mEBZhFqkT zZIt1B%_~nDW3N$2ra+99)$d`*K`vu6198W}Su5mfSRfgIJIvL-3M=BLRE&dKwqFuN z_`M2UnwgX96BNE}8?^1zI$&NQT!VX0sYV`F_XyaQE;c%-Pb7=24dW#O6D5jHc3g7v z>PNf^ibCHv=L+AHVru==n&H{GAoeoVW>7(uJx4x19Bf-BV4rPVsW?b0i`byQC#k9h z1o~}B*&A67OldLD%MBq@W=?kJM{rtN)z7(XQ@rqWkF{gipv@nAtD)Z2;SFL_)CaBp zv(KR!_JcjSwrN+%JWdspoL*!HL2&v-6qWo-D=8`Yb>%pN_TGy|oPC(R@8)9_0437R zBlv}YNqx$O*xo74WP#v!i0)1lKz&~Qu7dv-%>ycF_m|&L*qjW^IELs?uYdM{OKu&* zCha!N&(t!VmMZUR|7aSrj+g6n2jZcZZY;neSQF%fQc5H@NyCa`gLCNDAAwh=*7@lw zQGVLqir{DbEU7{LfR;!hQ$7N52St&=5lY#a@z1>3uCFKmNPgSex8$2^m;Z{H3nd%Y zD2_8EO6i?jg0rAulf=DlkIO0u^ZNjlJXDt%4Rsr6le1}9tJH!LTkMEqG`kEvm^pxC z!=mwRJvR>zawKtSMKtzw!9&JE1$$@#9~EoCh1|bPAZhEBu@b6-bu9<0rpb^VGG>`y zhy#g%Uth(Em!#1Ef{9HFI;ijJUzm zS52p6e7xsCrC@_YedG=e{6A+&%NvlE-;zLSd_J)hIoM@H*4aA=p%KTBj{79_b+%7k zeL~xPyCyodkbWC!lgs% z(xp-suSCDc`{$AcbFr9R-$@Zu;?0`6ncBJhZ``b`5s0?(fBXM33{7e%*&j5c`fcko#W~hC1GTQHSU)1f2ua%X z=D=*7dUfNWhcz6ER&}2!lq8g!IfVY3gp`!dZ%iP>236j3NEz65c$u8w=j?L2qq&=}XP+fTghb8FsuBtQY8Z~WP0QOSxWs@sdK#fo@V z$t4u~oikv9}$P}ft- zcDvhGEdFE&VY;~@vbI)kdPlac+p1I(Ea>I4X{k?f>ySfCd8dV;riO(H>M`GC*>C~d zKUF3SrSZ#@MYli*Bh6dyxFz83x7a(@S7Tw(2Fn%8a8oR7aX;4^nOi1GyeRONu9|^v zi3N_vRnT~d0jqo0mLF}42N33q<5TJeuiuB5 z%qO^sqk4oF(FmL9k&?^;dc4iI6m@ihNaapKy#0Z@7gw(lbbQIu7#P<)d&qUPx1j|* zYqU}cU#qu9(Hc06<-*+TN;NYfA5x5HT^q%y6Iph#h(0$v4#lqu6=epsM&LKQrCQ7% zKdw-Nfe^G1LnKkKEM4>ZSsIR@vV;_f!_Q$;I-ZC*JWmH;cYs zeyESP`QL@D{WH7x*F|GAS;=*qq%4~psju|C2O9@iIt^;(gWS_mWb4<*^ypW<27W*$ z;EjromvEDj6Ed{$m-iP*iD087y7z*{F^&_m&+(pfDNBxK#t)cCI(8n}4n0P>&;_|P zDjr(#hVaNZ3wCKiqE1UaY4HN%wX0eT&)AX)g^c?X66X({r3^umVDptDcJ`|)pWDDd zgYy-H5{n^!O=QT^b?W!L(PkYBK84~$Al-bed=NF0H6{X7 z7?FbF73|q(8UGy(#%49e@`QZ8Qw#lny`yg%L1qxERx zGkJ2bo&8)Wgk~{)dsuZL3EZT$c+q0%NmYtA zamT6vy%y_Qt}2be(En(hJrnVt;qPm_*9VU}6JN%}VU^^JJV_6-9hA4>)~jJDON?w$&0w3+Jj+>I+% zZ+1o!pPn_B^CbJF9T>pLqg{VdFKR=53JQ-vaJ1D=*&z(U|OD3+YfR>PX)Qn zBAl}6BYb@bQgbl+_y-|^YI&}FgMBvX&Q7)agO66s*@!(`p$<-UR;|78^ye_m;QjdK z#ylI~gT*f%9oyVrt9phG&R|0T1$A2nCW1%Qt~)J~JY2sH4sm6U92@k`R20{ytA~=E z5YrNOpdeg-5_4Py9RA~zyNo*c3zjDJ0hM&R@PV;nF%cpLOzzBhiQ_}&kiE?$8pOh|DSr`e}tQ$GDB1R zFDg9`Gjt2&|8yHaazOuY);$3ybRhcwJk67V{{M4#{tM%ok%9hzLi!&bmahSu$)4LouL{Et7+?l$zFOuXAKWhC{OL{Foz=vvq zWu-gJuNLh)qeG>vSPJ}|zwsl5;dD5)rY9suKSDN%*HrzH3`l13rZkSHVKQ#XS7n}F zk)UJH9LqCjO{W|8=|8$R)m$hsdAwL}K_kYw9}hRL9A zWoB;xmtUyw48mv(XaBPf7ZL6e!q4dxW=vL!Er;Yj zEiw$Bx(xMKULf9)jR8_2%aX1Y4Qpb)BK0!TR}VjGiY`(J%#s``U9Gm`*q z8|vgIUKqGqJ+f*SBYKm<-4RlW!S%kC`ky1jD0TXKCu4wo?yuiQBV>1$Y`K#=zoA2V zNs*$b?vN1~|3H4}ij0?!W{PLo`YO~#VAoC=THIBfy*p7N}+e zj`4@ezUHr=^XJ`T>daN$m*XqshCskOhr0UPphP0}cIWH$__D+M?ZINE`E+*)4@Mqc zYWh!zTeOZfK3eA-9W=ii1GlDk_KIXly+bAiYR9o;BYgpYR@z{NQU3$tv-lWYm>*Tf zKrMaL3gAahmP}$gzv+b_I$c_HJ zy9e00WQ?HQOpNQ^bb}XyNd)9LKF)e5*e70~yt}7Zm~PZY^=~c< zjuydF>_Mvarm$uF5sP zA;9jLjLm4O{b|rw{*iQdY>Wtq+uVk^z@=6e2T*^#P zzR6rJPH?nrP>zE*eLE#}RhQI=SmPFp8DMrz`JSLgO4P4`)F`TwRcS^+_)Rt{s(V-x zUh3ZzzTM!}0746~p`VnGqPZt1r~>blUI@1*2Bx&lx&gSXxF>t*K zDJlGb&Jc8;<7O%T2j!j)HYn`uA`fmw1j~)}J&HuWga`rD?G~nVp`pQMhq|}1w+Lpk zK7f0n7=ab9RkSpCKJvUCOI{%@)$#$WO_KujOic$m730TWO2)QW+$InX^Cs!RjURAD zdBG+-CBGtP6Ilp|I+riCK>jABC;@+Ndmqv8Z}8)+KhsgKGmEi<{&bzo_Wj;*qnlC; z!suOt!ua8WLQYS0!sKb3@tO;RBemV{Lh++mQ{83u9Zz*)$5z!s3Z9Y3*VVpqL}z@4 zcNg=Tu`2Q?)W`W;-ILz0T8ut{>$O+}syPootris}9K;Q>O?M0#PrMexG6Fbq8^`>T zl4iYw-TI|mw`f0y?^D11CCtOvzEJZEF}SG^T9WWBJFTaplN$j^%AsPN)&X}0d8Vfs zExor>lNj>nA+z%$_XynBkkSVS3C#|yxHxWDS6$GueKo`Msx~=tmg*_&TPwBfyW_~O zgEJP66%nw9fV%oAhpa!k|LJm>c8hli+x0A71dusV8N2#sC+~^SY&)NtW^Qjn5CdB} zWz~~ffs&QSo_T#`_BOrQ_03R{V7(eSnq>AZ`fpN*n^R9^S;GwW@N(^nFBGiVi zbAs_41kI}3QB zJR?eA$T4p4n2Dqz9MPW|G6$Q39uSt8zTkWi+TwEE}QILRK zn&zbwa`k>iRuycpTz@8>_&8bTgSuO$7?ISlaY&SIScU@Yc6g=-ti_P?!WjZ{gvmv* z6(;*bGU?WpxQg)N+;<@153&4k{HHt}%50TJRzy@#{psl16G=|sur(!!5i>L=d79m` zVLM^(!VTLjwB!;e z+(CJa#j>MxSZ0o#8*ZfjE<)p&3PM8_V@(8RhhPJ{M&ZEMZ~tZ}Am-)G+ZVDE4EQ%< zENE~X8Q{Qrchnp>m2FTUSp!e0z^B=`sChQK$^KqRuAV?D>qB2*x)8soX$Gws7}&IV;2)XY z2E%C90t%qBeE+f5u6!&znp8^w=zsz}>qrtr`~$D{u>98q{E#6H;gY@{-_j*bWo7_F z=Dw4JFS6jNWK=jBo$Ci7ipg+on;s=A@lLm_x6anYaQNDrPK>;8p)zU2jnYHmv_}xU z8AC28iC!eAcqC{?GD#8E+QO|%8nIGizdwSqwIlFm1O!&qJWQEb?2)850tOG zRSvL{Oo9vLe<)E<=vwgDfY&!Yq-xm!V{4avBl=e{s86W(mWyeD4>w3Oli%0jSipoD zc@g$ZZ-W1j86ICR6Up)_hPBi4Hh&wAyu9)3aFv%t#LIGoX6a@C+A`ItnoX=`7EJa= zPF+N|MH(hK$^Ju%X4l_WS-_x1u_WN9vN*tS&=lwpS5OaL7uwU!a5|v--ZZ!WsrwG1U>sN18`wrgqV9}uH`|S}0`c|h9gGB%W8>vInCh4xC zvlFE}*rw~$y~i90#e>Wk5L)K0eTQJdNr2$Op>`2shWMzO*hwJyU#v;#>L`J(^8hg5 z5ATTJ0kZZB>iHRZq8jR-Kg6DCvv4M%gvl@}yX6pBmnl!Mk!&OK5j6413X1b3f{K2c zF>aFSg34adAL~9vZ{;*IM-n9;*vUIeYZm>@AI6;MmCw?jVQUF4Wbq<2Y({R_V-D{3 z?smPR5!-Osa?$SF*fv+&?637Twzfbpu1D=_muX~`(<~}3qoYN0hk50#2~r^@xJ0B8 zZvxr&Rb~78e6BfP+7`j%CKT%o=yaCXON@v6u~D!yL4Nuo^8`eLvZouU^0CqlexA5g z3E=}iY-ksXXFMFClJGoMvhaXY`1(IQeh)B))JY^r`_y?G@(DUM*%%XwgE_!IpRgbo zzwU%1C^PmGB5fSA{l+j9|6PQ@kkT2s%2i8XIT0LI=;+iYahFacx=;j0=U%o zMcDrdL#)4@Pj-)A_^~u!CrP;*9{8*ADml#J^ zGEbIPYrYQU=vacx1}3+uKKm3i)#@YxarsGD-A3PdBI}^3QByrrF_R{Wp(fcyi>;v` zC$H*+O)iq6odaPvTE}(^n7*eokgZ)E^+>fU!p0m#KKW_iCwz!6BnB`P8n33*^J`o> z@ncEystTAOm9tQp(YKRFym2se(Ik-` zR$hAuU0^;zU6T(thoa8wA$~*75{#@dkl{DsOk&RDu%)2&^^82-#B#MPdtH)hn1}GA=*!s? z{>G_0HV9dp>%bDLh`l&7v#1^rPoj+<>@f4zs5+0BTLDN2rMf5Ae5%JDS@LSx4YkMM zR`cnsH*5@(I5gZBRX*O#P`DXgj1H|)^dD#@V@o4RAqPSuOD#JqV=(k-=w=dx*VYN7JUiD;;*_iW zpJ1{{!Xr>+m2Wf8&R}nW-hTRVyv*<&DZPze>;?x<5F4K(fM{XXWnW%VF7%4smOwmI z4y_GJGUSM65cawS-q>sOoL2D@;fr#~Z$rbI;r4YDb=AZc?hVl}#j9*4sPSTwh-y;4 zNB9O` zlefbESJT)deN*~oAU;+?@zEu0)d5ASf_KK5dzMm@T6ITM4-HG26;rD;rSb!zu%>&` zE8(;({n%blzaV4Ox)OqZ1A{3F8@Dx70BJlNyWzXxaA0CHK1s2fnejE((+#>4(Ew!M zLJ2U%%?V^`a-6TDzm2hQ6w#(YN)N7+@9G*IXNW-|q1gCF2CYY6qLTbZ0B!GcR^QWj zwHz&`@5uXzvR!@^ySeT(ZvDG@bflr2NYW?);o_Mp71qc+n^s(EiEDj7wYt6C?O7$4 z!LQHSPwr@Yo62P>oKO+TNUQ4_2Xk1c{PiEfsWc<2Xsac>ElrPf_l&^$>$ zTD}LwFX=P6yfsX;^gi@(ok8Uc1IPB*usRz;#mj7J8>-KDtarN|XpgXvqF{I2aR;URksG-KTk zxA3jw;cy=@FS_BzRKQGW=0lT#1H8=NO$6PEb)rix0l{fvgq6c_h9BC(G@1n;E*dLu zJv>TvjP@=CWs#Rhzs2L36$~yj2-$&Ffo7KY{$E`6Wo?(ZpN=RQvL|f?lfcJ8%`Eu` zL+kihyCA~myY~-0Wqoyy=|ml zH;T%+bs(yrL`{%$degmvl(O8=ykCZTP{-_qSG1J(cqMRh7nQ)H_ATU#FlQA!aGOOy zqlSrQB}L@zE1;e1sp}I{*TU&c+d2u~gSE#p131!HV(&UX5n9petEZn`{(Yf0*B5AM z%X7pbyqT2cAHGC9HZLJ;_W@cD{u*;{5b;|i$YiI_h>{dyUj}F((4x)>)+Wst_;9W$eNCFOn@6)g;15jW3wZ|(SPgrC>pTT@5V z<1Fo;^}BC4E|J8Sj>0^CgmU>z7**8AVX~WZG`bJNJiMzgo|(Y=j8bGGr9BS%I_hz{ zAO!1D#N4a7+p~~QT)9&WnR0vSKgAMkrM4e@jHr`VR^lbBg=aLpycJ76gD`yRghrNp z;^lB0a&wKF)Nz_wOL}B^TE`JKdgypr0qq6G$u_zS6KVUFlT?bG&<(4>An!%h)B6%| zLgb6O;vD7{E`I^3W6NU`xobgDYVuEi-yrC1ugCl1mByc>4zu{;^?Wuq|54Nqu-neg z-edC>R-D%+I`@k58K8Hbsjy7_f-)V3oE*7PCfQv(p>*}z!>n#u>HMVOq1Nx1NqHY) zkmGDXlR|}ZW>jz{qHFaICwX!FdPKFpO2~8aqjgHOQzi~55}L&thwTIGF!(MSfH5dcpUnH1A)L>Bw3N_xuc|WDo3Zdhg_AYDxqEE#!_Qc)mP=A%n?FDd;5d? z+zbfSX@6p@w{cgnIK7X24p~0LehypWt4c{3c_-hq*Qn~CAYI2Sg@`V=o~qg)V6h|j z&Bjxv_eWV3k>zijA z!9$4n1)`*82iMoM`t?WXD~8clRz2el>m{I$0_wbR8b@!`4*lZ2vyV=4IaWZbQN+b+ zZ*cZz&8-AtCymrT9IZJ4yVq$a4}I27$wREHm?^)h$%?CEx}#wq^6qnHGq@R{f*>aO z4()=JV%Np}Be4Nzh5iN<6q!(e+IL!nA$4j+{&8l%4BP80q(48x&fotlK7a0}mk+4r z_~PO)z~SX)^|;s;zI&9cEw#5h=<4N&d#Y@<^&DsU!_$^n&ZaHIZG>04(Z)`kCMqL) z2=FM0q59U*%S1JCh~;FtBIU2%3DAK^Of}WjpXP2@k>uL=BytZv9kD1+2*eeS+hVUo zOK&OZi+Z4ydrNARvl}dhvsuEa$N+}1f!vFzN8T(k(qfgeB5{iXg^W%1FmIT%*(y#N zxS#GiV6y&e842Ja6%sjkUb&H?Wvtd!G7_~Hs1~7(HxolE6^>8$u)|c zwx?EG&n}$1XQ&x|4fK3@5%I9_bmR_nmv1N~hZ$_m|F>dms9Q$Yf+XWS8D(x-WZfy= zoHi6h?m1SllHgLks%2;2LvezlmZ#Kkk;;UUi%bgmQ-wX2Bbx65v;ParjU&cEeHNA)jL4s3vRyi<6uJ+JAvuCm`Z!H5oYTBL@<*a*c;@OK#Ra@yQ+P$l)D3;THzV zY|#6*!Au2uk|A{nk{2}aD-b!!Eo=%gtTw@P(VKaEQgF6gd!=pHpCMj`cf^$L)&Q=v z;C!eUSaxw>Qg^lVkSS#9vZtGxx5FAiJ8vohr8Ilp6V9I|7l|c+5Lbu9QRp?hzbxzq zO*oklIeWL`M~v8_FX|Y2jd5pAbqy|#oh4CSg+xgNE}b5HIqO*x1qLm|(h=2`g)r`{ zZ5O^_qsTc_pkR@?CH*!izw%|2G@AzrW>~TH1m<>Zaj=1SA#JO&-FA7K zap4C0f8p)0;`4NXv8AVlTgnzy0PN=>7*lhu~zuqBl#&#z}>HtT<7 z)|85WOXeZ@J8aI_34$5^KeEm-IFo=~)3G_RZDZnzC!W~0ZNIT?+qP}nwrywgovPh) zcDH|aKh@p;y6W!hxv!>4RTM(WD69afVKb@Wa(KV*Q;g~U6M~R`5m?R$%)Ds!ganDr z1#RO03I`NlweKW>CC!7p5LHL;z!(&cWNzxryatQiyrWj0NptqrjSz{vD01;mBME>4fFu6RQvNeP@r7x>j*O^R1pc6|;;3)WMZak-(pXA4=0+fB! zTeG@AD5~K@vG|Z!OxLnx7n+;$F2-k5FAVElR8=hh1lD{0cJW{PkF0r@$CoJwVoUNh*!wQ4U^t%D2&U#l+zHC z!%lTDm5fV;F)%4qGQCD=Wle zQKg4)UIurw&F8hb)b@PW(kA;f^yNn@Heqxq&XZZe101yV(W`mCE`YrhEBU0X_YPmQ zD0hc5Iww;83xW$$MSyq8QHSe5 z^}>34bo@^@VJ%XGwe+QuLiDxHX|xP~&iLuTM=vkajtLX23Qx%8ajMl&@YMkCt_d^Q z=tXU>`LzXXIEHIGG-ia zr^vIYQ(U1MT!;CsnJ~EeXPoGasfEzfbs5d9@3o=|Jnx@f|44Y&Km%x)>-LakTg zozhB&+OP-~)YrR)_2hyv6zW~PC)DXRB+cb7vGY`NU%2YLQp$PF23+ca-Z@*?6ur6K zIr7eFR3!93R}F%l=7-jOC`Br$lDPOtr*|PMNfffvHuJMWbsd21tx1N4PzKiBmsowP zbQyg1Mv7+R-(7n>;1KwGaVbHmCCU8={nvs_Itzbh>k&cJm zJ$PU&-0qK}-30(mg#G+PYM#4R*3f=$A`$85V zsySCMfx{VGvF5pe0OZMN(O+q*c6A;@-&pXO{dlg>pmVQ(eP|oh-*OLwsQcSOV}0*c zDLJGc3oWK~vv?xdnR|01usPv_B9&}k_Xo=fu#YiF-YfvX`)}#>*E+k=YPJ*9`SY>= zq}1|+yEYoA_#btq-|CXjB}nfdfHIU2@U25^)wJw8QUHG0qX_dO%WnaEyo2+n6mg5Z zw7jI*0pH->{rCXl(Woy6^;`R1OXIfmI%rjvmsBf(J*r>ZffP-H<7HYUD#1!TPub zl25@cZx?5^9s`=~tnZg2qnpX{ox4RulVd(@Z}5q+3aZ=>J(kRySjrxUQXu$C2x!f} zN6Rtka#g=+hZw8_VQ`r1?>ujt6OCIH529+9cy|G)_Q3nOviq=~-G7D3vI50bo7)fG z_pMnpiiuOP*99XmQ393{3M_WPv*~NlGn9a`&{AIYQ@^P7DR~Q+f^YdHbzsAHF>a6x zlwH0xRJRonH84aV_R4D zylT$C`ky@hQVKsEJK#=QWEbENW?+VV8ax3ex+2A*v#~6(yD-FIXaeDR*DPk64mKnQW-+6Cx=vyPHi5+*Jy}?OItv3eg(*Rr? z*+mK&tXYu4t8<6ayx_UFQTC<^3^pJa!g~l%?%b~LhrS-$Tm0>4sDbYxQawCo_xlXrdM%OITQRIA;0?64O-Yj(sszDdF6 zM2pFUH==`Hrwhr5KAgAzjUenl^0Cb+C0zazp*donx9!vC_Oz(~PU{OC zq6ijc@C{e5kn<liu2AQMy2CwR!fBZwWq?Vf{<$)NAXusjS~kV&EWv-Ucy& zhnvXdH7Y~|dOdIRy2CD~pv8Np-{4Z3U%HR!hrODlG4iI(Plpxu@_DwjtsV z6;_X}Cb!vY!YR3U}O&vH-*MF6vk}IYpXWgt4dXJC(untc4_~7xBXZ=mNrAaYj zHa;e9v_~8Cux~qQV?bEGN!(!O@U0Zfb-`w|5e~TJ%G{_5L(S>j7P8Zq{W99$8ep!m z)kEADmn38`(MN@L3_iRLZmvU(3~vp!X|mdVZrA3>paPYrUBKpwyS%aYk2z=_9d=!` zoa>i+#@D>t>m*uLehG7l>XYt9dCYTOu)%+fT6@e{hHdXWk`w-Ac3!i6<)W&587%rh z)Cy=@wRz_1?3atJF^6-ZxM;Nu)ArI_()`*iD-SdPO>{r;`m?rIuNR0mjSHwi}%7hmWzEdVC2 zYN&EZ#+vE0zk`NrsLuq#1QF+hO!J94!*S~9Kx6JtWs%Tblip#EdlKhORfQVEs0T86 zItqarQGNWgR-k4@_en!K_(px5(%r70RnV(6p}6Isu=2{gYB0KM$b|o;gX^4BNg_$Q z{;t3cDax)N6Xrq8`sZ@{jh-F0aRaDc5g2DLO55JrSGoSe2zon+-D43*;uo>vf<|}` z9FzzV^#ao~zC^RGT`l_NKt-%`1bZR8pih^luPVt2bMhe@dBdEMp_kB{6}886ZZ1`) zEunNsey5^H*VMs+zLX#Xo?T-nc8amh_v}8nIF9=wJ-w82oblX|M)Iz_aRmHQJee#w zdA|^Idr?h)qYXiD*;r+;TUjV3rY}$Q0Z#I#$!`4}xu5f1oXU^o0l1rWdy}K$#cszB zgjZoiqe5`R&g5bD$g_if)Bu1!d}lSj2i`>p>NTLC$+5KlWK?%uH%XgrpUjXa#nU*t z_tSvpB9H*>BVaKOp}7cxU~knbxB10aiYvvRu@0jjzayA-cDL~YsVkDz-#qMC6?jqa zjX~N`8c0q)TL2Qc>Q1sJ~5e{C4fp8qD&iZg6$ANOGv?!(zHHn(lDAckz1IY9w+r z3}_TEJF_Vwmki&)|2L3b4ft=!dJ6!F4-fJ~X@5ohH>FJ(37G@)Up)4B@_$p>cgc`X zsQ(!~tAND)FQ8jXG+FmYA@yIA)RmAV|C{nwsDzY&{?BA~(|_M|v&@lfs=ImadtT_Ag zz!_H{jeFPsT%t+dpoW4;uA7B?L-@HY)mMb*0D%YuRR24`Qo_!l2(qe6tuFXvZjtaum;crzRCgMgkqK;&;>9 z(SpOY;@@Ks3(&Q?8`4L<3HivpNeMu8cD`{X2A(y$$ObR}9gT9Q zbTi_KvElKvh9;53lwXo_5v)5{cg^&;65(Dg#&UoUKYhfcvkTp2#cdH55b!1WkX74J zw+xNmoeN?{n{qyR7ihcLUYcvFT*33{Ph%`fcW-R+)W!-e2y7fGi}(7L4Vb#&Kt?34 zHP-e!!?7VytvmPv-Q21X7mV+*h;C+QD(uRi; zg7Wlaqo~3W7T9b1*W2fo?yA?5SMbm8@i9hJmjzYOd(q=&-jucOdQSW-HFsKeE@fV2 zX(phzdr^xqH#f%iluP|K0PukFizOP|Mk+?cX2vB*!Jfq(dy6e(maL3!y_(Ihz?9gx zLD>om&hKwm8#!TwasB~NH_JMWyvc+eCsLw5%_&t1S*wr2V7MdMC?<8&j6K0x0@z#% zemuzdwnv&*6)$={XSBe)Vm9gap+gS39qGS*Tgfd`%$J*FFMqKKF+hRb2pEh=5-J+K z3L1EG)cQO`menje5(@}D4>nbvyp0`9QFuX%BZS0*Y7xzULoZ&AJ`{3EE8Y#>vZuQ}1^`pH>)D#iN!JVc?j`!9URjO?y`Q$+~u2C#=YLI_N zG!-8b+a*ooPI}c&#ef!)gYXP?P1I`$ix#X3NsymZcU+abUa1rdHmShE413}jH6QX) zQZ6(`KD^;X3i(}3NN#SNM`~~m9K`7N5qlU;58~n4`_+xJ{r2ZU!hmw?Lz=EP<@VgG z!gd3~AtdvZX~$oeI9LO`RZQ0TD}znRsL&d8_|l$9`yf)Z(blIctSf>M*aKQ?YH z$pI|0#@O>YF#uK5##HXM`K<`2NrTJR!s!pgchi{Vz1*|rF)jtER#Q+Zww5?LHpgF; zsiSH2LXa&@s>WCR=8YpI`1VHHLePw~hS_n6vJaBSMLc3vZ1kMy6+o}%tZ5LLp9xP0cKIb(wnD(1ilq`^sf5#X}PaQE_z9})5z zx0IW+q5}M?4IE|Ra7rOY%}4*vnO@tf{gW7yBT`T$hDA6;7SLx5erp%9h4{PcDrb?` z(xX+jePDe^W4GGrbR?HMQ(><#KqE&4PW890O8G3hOQnRCnO=(ct9%cR&o!?C>s0En znVb^T{<~4hJdwR`darGDtds&TyDpJunN>RVu^pgjIxmsPnQ4EsV$@OOZIdK0Lh3pp zCop@n!tEqHveFjHtudH>`&719(qu+DZfu7VzX^Ft-uBONFJ+i}1c>o$L_#4F@`H5? zdcUv8fThG0cy@^?Rvy@go43)=+{HvRbTwsUu}ae`Re&Wiiw!lM5aFcBPV5(DW}lc1 z+6F+`Xd5o$tPzARk~P)4Vj_h*+*uj~59wY&tv!JHWX7I5^I4KU`CW0|FYU+ZTl`V0 zqI|`^Ab7hjxS3Yo)3=;hm?+3MZ3-xWi5V1c6)YB{g&-sl7162@A;~coqQX5i z{eV{aBeuMyJx!R7s~bNqtt&^+b;J{NhUWUyYv=4S^{@H)H0*=IkFvyP#830m^QZ7> zp*au9W1ELNI!&fr-)mxJ#x2Qv$d^A!`bbSiZ%w|X)I;{f8~HsB?OCl@7|d3lEg0Z~ zuW@^q$Z`WEE7gQTpQ;WD89G2M7FVZ$iAxm9I(w_(?idT1AVMSC46(_e)V~lE!&y!A zj}15kj|KNDrpOXLc6P~B$Z3L*RTq-HEGnEpgB&lkM3#~phduIFmb>H;du2@}_L-PY z|FqdxP<9Y-IZ~+E$@yBc#>ZY}iw}U@+{MrO!>4&q^so};1D)@+I@k{rp-5C}r=0m- ze_ym;x?f@=FcRiRvVz3ZX1xI+SWHM;M zYc4k^81eg2@Iq(dX<n*QID( z!GUzFPGbD!R8fFPC0bZhb`pZ8)?F_0i|nhX{YJY0C))wqcWjhpR{W^trNH~O37>BX zJ`M8d7V%7Eg6yzRpfrpA?Oh7RQZ|gwXzEC|1v> z$DpeiCjgf;KETZo3_k%(iZ3Mr%9fTJoZr(U^h7+wGc8L$L2ps$Vae=56lKf~NS&mK zJo(_X6abL?63Lo~x0MnVl%X-K!Dgj~>MBN|i)hv}_x+VWgv~WPks_*)0b5gXI43ua zO2Ts#|3|Yja4Vxp?}{ebs<3FAL>EI*_blPSKP8<;(3;XjBBaY zkPDr+h&jWggyR94%-g@yQ>jst^0GB)fpia@}+1KZI7S71<%(Uno7PqrUAj_-)!Qxbd5^jZN zc6Ur63|3#Z7gqYgf%;?(cuU@iA}ANw@ooS{>nM{=q)7&fqNC4>kw~C<${;VNWaPCT z);(6w*8THU`@Dfnb~De)DUgpu1k9H?+I1noQx*+TS9FmVbay~e47CLWfjt(Z#yyR!|-(!z^5WDAJ*))iKl z+7GO&P6wn4*?`qK=<4|E#`)oum6MQ8^ol&hvuo8u`mcuZu76D7hyZdjmMehIw$%lq zInK8nqou%GTQbFlJ@tP(a8R^g4dO zOUu#rx`=v~-0@y+%<~Aq@y^)pKRIHoN6Y?%qA=mOl<5XK!gnkNn(-+XG2>1#uNRH6xVWmamHOJ=3=LKU=G7YsM7%tuPy_Jo=OI=-eB8FQPc# z-owtTOwZAmMh8L2^JoPduk4-jwGeq~6XiF{Km=jSJ5Yu4!D%uv;f z$X33j%xCnfX$s#zkf`02XYG_;~2>4&2`&*>H_C5BKWebNqADVMC;s6>=LyUy{2F}SpgO+W$QF7+AzVVCN<^!|YA|Z5K z`dr!e^$daQ(R;Qs+16W|J5%=S|I`|CXRmR}T2g?Z3X;;X$!+#UsXFh?WZ7AMgAX4O z0E>N*|LHjrm7LbT-GOgkg0*k>R=Ul*ry5D~b$m#j!&?XyIkA6EDuh`jww1pS>n; z|7EqTFAeh)=vI)c5h+JDUbiLM2SA-aCHZn~z&mEz3HPv@-knEj@}K6Z!H@16j%H^V zsguzt=>|vhoX&5x-C8d<-~~injAUB=IB207>K0s2%23Ro&5?2E;4zl` zfWtyU4H+E*nZVpg->|E}n%#gP!M3gG)rB{Sn1ID@jDdVMEpzli$YzGU2*OcQW;xhu zs7z}_>rfU^^4y4(nZ24x{t%LxI1yh%xIRdyOo;zFbLpDAqvztJ2Lj}I6dDT&)$7$_ zsW0vM+*#)m{liorV|WdofgG5R2H7POI(z!#)>L?LsWyNShQ@mwWtbw=MYq#V6t@G6 zi<#zCgCaG$m6h%nXS(wo!mxJOokjEQ)(4jZE<3t`{=l(H+e79kps5N5IlNcUxc z9rT-@u_Vt~79!j!r+N2_^2l%#r0r+ZrJ_Rkkt=U>2?g{^Qvg7NdssuoGhWk|FYe44 zu`}SNDnZZRcS~G;k7*?Icmpj(CmxY5XRJrbhbRVdG1h?Qt#rJ$x;QyAnX|mQt&cfv z8cz;&;wuz z%9Jkzdk}rwQ!eBL4|!o;=4|MuKNes=;09~`(nOI%(Egbxgr*rcP%91i?Uc zE}(eSjQ}Q+k*#IAx<;ZM37!pVcWykG8QW=8{wnZXG(p9tz8f919sbk)?C5>-Ie1mR z5NpNk6~^E5MRn+K+S79f2h1|XSx!S1ID7GIjTm|-QGcZEpbmT_k&L0_&@;!Xh?6AZ zu~BWmCOc-QPz~u&EGX^0Ys^g*pcX=yko1&x>j1I!zgxm)tg%Z*B7YM5}cP<$uGl2fmIa-|fnuGu<-c#J;hk}uL0ow(%T@fFCclCHW~ zp97#;`05Q3LLIIZOalfK=?Jcd_m^3*gL=GJ*YaTJIOMwCs!7k-%+R&dk+I#gSa=xe z;0R;@^d1g4=rb^nd(a3scZg?dH=2)XSRl|0_iMB`*W$FOwZr{QbE$;Rc(nv=vlUNW z;tuDiXogrWa+!65MO;WC1-N`hD8*svhyhSwqLQQX+(G?LeRGF%Kaiw)R-jIw-nQW& zxHP~Od2y+)1O-ye3E3W*3$`OKco z7iqnIaa8sU%;$69mWB#Lgqu+@J@Ra%MDOUrQCN`UIDo*l?c|+fj=D5BBQC=c5DZW^ zlkyK@63XqtpudFFQQ}jyLxkK3XL7;4lI@JTly{3Z_fU&joss8l{UEbQ7hB^>?kFCfr76NOco5LjQsJ;C zcb4mYOVm@X{}PFBmrmEC%b%=z>yO>q0fmhCq@?5D!z>dF4N>@H7K#QsZA9MH5WoGi zLxgZ7tO5SZ+c!yAGYO>!+v%_LbjSO?i6cBsBEWiRMzw z9??q`CthA||1lk_Hn0a0@T9CU{z{jndwK=Op5^XShHCL%Bzelw@NOKqxW1q(28LC8Db?MuCM zb0n#5fDe^}OoidGYFM>7Loa;PGVWWbh%qXe(ehs10A||ymr&`Ky1<(*()EkJS<;94>iHyq+$fMjW`a!AQ(YR$on5rV zmjs5pv`kgGSdWuQQ@4!N4u^4Yx^j;Bl=*SiWJ+hQ9dj1|gHI3VWiEt5XNnhviXYVv1}*gzoe301pD<07FJC!qS6*fgKk|VnP-m%+E!7 z%NQ~+{kmQW%^i)18AT-f@4o8ZC~&gDa9Gc^9K&+AkZk`u^tZA3ol$H`ka!4;U7&{g zVG=F0JBYjtLQ9zN4<_I&o;HQNC&$9BXW26QB2mwxU*z|wxDz@pn-X*Z9fd=TCuaxU zXabQ3I10d0An&cN_o9fI{^r=yk*%fWvwl#8(dzF%!$brv=JCD3iPKO!Ol@&m2q@4) z9Ha2tj+qJ(#wD=ca`*gUbubsAgnttHf?}`NeVTv=q1G`>c6~R>u5xLo5z(1RU%6em z*Hk8D;<2Tu8712sH4Rt_Kx7EONCL>P5@NTG=$3*X5my zK6k*fhs{XMqdUtTj8Q|shZtjZ=W|EV&lQdM(8w$nw|LK8u@0AOJM z01QbdRWmRN8Kdw}B;WnFo!R)wC#)vL7)=lzk_rfi$3>A!C!$pGu!OoyyvEV}aT6}w z85kJ5QtrC$MLiSbOI4{llno--UTd%hAuxbZNbej|c#dnz-rTIw!T3uZUnQc4v60V9 z;MECY862vnLN9~TYk@Lvtw$=c;3(wkR42||hQF++Y>)&F>D4qfMGQ+DQY`l%e6wK; z5xmB}4Rdhc%5mA_aoIg=Nv*h7c^E=BAXflIa_><(#r|C_F{q>V8Bb}hNf7^UixHq* zjlxvrbq(XL^t=K;@OpW;`^RA?S|?a~C=0)VpV{XfFc1wugQt-LU_50|`S^jcuB+JlPsFnac6t!3mBW@?7(Dh{Ga^s+Ujpi1vS(t& z1OeIf346W6g1C1Pn53mxDmRZhLNEgMq+-)EP-0hy(d1x02Y6SSC)YLI!FK>dSac~> zwtIRW)0%FZD!t#4asqyqk{FCee)Tn)NjZ2?CY-mp|JtNeS%#Yp zf0T@@j-p8qf4gOF_dR{uV{UD>l->KXoy;cjWdQ{`A?Ybxt$2(Li0M<|gIWGyb&I{Q z4+p=-kw9fp-8aYeH(~nF0C@lgCp76+Jjk8aH&nAT?@H7u?7S77OAn1&vcWZ7CnHP^ zsHoo4 z3jgQi<4?IX$+SHcaCP`Rnb@%X2HaFsr&~B>@2J+-1DX%9f(NrMl{!FrD@RGt^gnNS zv}FfAeX9Uz0`^0ML;KvUsA4RrM9To`>x-~}8)6r;Ga;PDu|F})b@6V`bJ!s*?z%oH zQtd*bM;S-(|MDlXi=8<@Oi5gzUt|3=YGbX$-!HS)>fLdyv9hs2zfa@lju|v*_VtHj zIpmZH2S}ZS1}n6e+BgCKtfb}yx_9b++akz46xA|V-C<~k@y3>7J;u?5#TlG%98k01 zKsWA`$n*3d^fV~-d+H;I=ZcQ_H|L^k>_ipB1;4UhmCMyd^d&SD&Kr+*bnBDK>Kz@D z=TwJ~Q+gn*Neob~o}8JIdu-T|oL(t*(2`Xxy*Xt{F>j7Mb?^Y>G4iz~C=<@K9-%N+ z4)jn}>Iz-4J0dFSL*K&a=}1V-2;sABW#kLyM|*gzGPyu`usiT-v|8WFInn;C#oH_7 zb(uvrUksknZ5;hE-wa$w^={Otf($8WsCE#{6SW=|z`}THcWwX#M z{oZ*$d-_KF(@X;pTH-Vl5_V?8-R#OOY%AN#Fn?R=!ENC<>0N8f|8*j9UuzWd&6oo}6Q^gelRZRtG6 zMh}*3nI`}bPhB?(4>2O*JYNCCC}ghyq{k&0ukY}G>Ii~@xabs>M6y~?%9k}~b(8b2)tvex3Nc~_6fLglSo zgHncZ{q%VWZ6T!vyr|_ zpg1p^Y!ACN%X@FlWW^nv^k_}Ndn~v*yw2<3+^VQ&K(H zWfkAUsRZ9>yE}2)fxk)Z&K&=WE4m@dS1sr%R&~HNa=T0G)ge$Hd%IR|f#`cDJA_;qcH%b597U9(aV|$wexbq#5 zJ^XR41JnJjQjBdzy+^H9+&yTDvt7y9d~L=FmiOdn6yB##TNY&B?nK<((!o|#AwO*> zkUvtVm+MP`cBZKgy^kNKMpGsyDk#zuxJ)<#`8IAu-L{#K@-H84>vVu%0av?zd*}7b zN@cZ%{L|dR(OeS93O;a6++;q7`BE8>e)TQ1^>WpugoE2jIIT+YlN94_FHj|{)JLiF ziBrj%+^VY|1Y&k)aC(>FeePQxJVKD9ehjjN>ul)`$uy=!M-sET`!O)p8%lPLk*33m z`b!4QuC5MpJFj)0xv;C_`U}ut=8Ez>ENk7244Lk^1$F2)S4Rf57qKNydiVn31F3#X z4r#AJF+ZKJ>KhCA%KUBmAmS-KrC3O%FdOcr7gNbmZtJNsn1NgBA2g8t^{WwToht%r zP7@G3MWaAEkSQHJIS5+p-v&jXLrm+tgE@*!+v)hK$wv~){DOs9GB#@JRhA)jH#5hLGeA{(Pel1+ zqV@Cl;_7|WqOiGSzdE2!quG?TswXh;{5Ly2TF!oGK>(%t#wFd9LfM0DzpcgxWb8_O zbY8uTb%agv7Y@q!<)>t<`(DngYT+0FV+>_DP!P$2FaC#1TL58|Ha8XEp@f7aAUGx? zx^I6qSzT9u=Zu6jp>(Bau=U2LB$`*ZocNj=K8ykIdU{btQFT85H#Vi=SZlwpOpa z(Tmh(UH(YcL}J({G;2AaV|!@dnL}mWZ3I6*dBAaPH{{L1@eb?F#MMl}FC|yRT#)p8 z?x^@o+fN)gxS+s|e{oZ*AGYroEvyX?vG*~;imckC6QgW`*HK@-4$s(=(}qKcGf~Zq zJO0KPJM`oxbeCk@TM<*)g;va|;lWvbV5?d})78%7>$*z_+<6n=X2(c#T$v@8&Xhx= z-@+rirJJG^JB}-JMQ0~(1Qt(7JeTj0Lt;(NZrL91q+*oc3rd*sL@GOIKgqR{+dfpq zZFqStKG}7V$4mSljdVAqczlpNK83928eEZn!8GS{9LVTYH{4AixV;yP5@QjqwS2m$ z*b7(1Pk@t(7$pR_CL_=Afol+gD5`w0p!lO1&8=%|$KP%95lZ`ZaRoN&tq(#(BpI<4x$Orp2U&cubP~0@L{m|&NBPt zU4Hs}q|1(|cWo&){P~o8zE^*aKfZ5X=**&gw% z?XCq=T{Z#^wP8$(&@Y}ct;M{zb`+?vy&XtkL3~RRpIEm1X=K;!jirvt795H{_)Xbj zDjX~Pv}1Zy*x_xUo@$y(u6%Pk_pi)AGdx^yVzK`Iqrvgs^E|bKcn$;@S`tbZ&S%D9vo;LMF31Y2d&pc3 zEJxgGD2f$gh4Z8i6|SJVuI7(PzWY%e=Qi{e7%HTx9GzGoBTLoS0mA{Ob{a>X#O&z{ ze9t{Z7cVZ`DN;=(m%~;T%C{TlFG+05mT9Y{*Ty_=tf-!eE;)3^n$Yhs+|nLKSBS1Z zT3`S&Lcvz1yFSDb)JM8YPlQG5ia6xlA6fWn{)ZjlKb$869ixX71`v?C5fBjk|KU9K z^&E`oZQcG4?n(WFeEvUjfJ-e8hjq55@9k_5BXX27mAp$<_Dj>Hb#dI{^VJ2w?TR!v z-g3V@s$p%B7(GGL?@jM#4}2hKzk&)L=d~?(78G$(1Y28Md_G*C8xp2hd*VJve6nQ) zxy0~Mc2^UV<5&)2FYFgsDb&;&trW*0$Ki!gwb(An*2Oe0cH%oBY~vRjqxRY zdK;sRKE!5BH`(zz+Is!Ab`Ly2;<))y;HkL_c{~=%byc2lkXsEUg^MP*tR`)~prM<4 zCL|58&ao_Gw6PM^ah}8xGsdBOnEX+>U;*sg?dB*q;fFLiGorqo`s5xZs!g6Oc_41M zMk_8R99A*%sO`aPrPE`iS zp)8on+%ACbCW+M_DR}SkBLLDv9-Nu3VD_fXGrSTFm4Snc9jAp)_D+2pVHR_vt)Y2a zCR9@tUcIc><()Q?vn>U{tT5<)WP2CF8d-E#fr{LFU)rTI{tIIk8*6J~aG4OCc`jKX zkZqcnS54;0OAq!$DWr^N)bS_xEs?vNK>g z4apAe^5R66ppFu_9#=e25>(0{-qztrYs^1j8=E%-2l24^LVzbXrxBNzy#cClKo;nS zr4*0*RqjatS4m6;uJ+x(OaOimHxi?PI|(>sr?eUJ8yEL?g+gisrFBj`ais+7VZ#`_ z3iBnx>SQCL5ZoX@Pz^5XU%BGuXA!f|Y99wkYbl~Eo2>{b%iMa;zm!NI;Z8Dce!#+eBqw# z+={D_qg*3^G>*pV&b7DM;$66{`-iBP)t!eRuE7VesG>mVBPd$x%q{{Dl&z-n&Ye6a zxLr%a?*Ag|o`N%r+O<)~w#`n`v27*z{<@UBRL7Of*~S5@yvU;vy?DEfBhkUXMR`VH%+!@4{-d5H?+G-!4{`(TvlmQGmGS?QyRe@NsfsURL7m9AEsraDnXWb09j}UH_ z@B|Yv(VD0Ho`B2@UBZz*qQKD`wv&v8i|wxk%2Es?Zf=bj4$}Mio%DuM!9l_eF%a}Q zWQE`0+=ed^$-kwi4lCA}U zFJ6MiW@2X)1pO~w4jwmJpt-CZW@B{S=>$6ZN7W+b7icW%_6w|@L6iCU1#uLys@HB1Y|kmq+Z2pd|?uBH^{O~B3wZ&ge(W? z<013VMs?Ehgm4TrV*F|nUJ%S^gMrX7Y4Zc$HOs`p_e`E3?3>n5Nb|8W=CkazUISn+L3ov^u`XkVLVs}paNSJIhj@Qt5eoYS=)-{5Mf1G`fJ=E z31%bzDLrjC+$N-wzWkk87jYrrM5-dFcP<+0;mlA%lS&Hp$Ym*$-Ic4vRJ3@WnMc=V~@!>M?HUfO57_7I=wp3Nj6wKGG12(!dEO+6YX%VK3f_&w~*~ zXWr@eCyC8^o0R~~uYg+#A#(I*KvFL+t;jtkh#*Q!n}RJJd=R*)pd;wK-rjRQ=!C! z5v_lGkYcvTNRzZ_FQ+~*KfG0ig`!6&J!=2<3KR9#bg*PXDUTb=Ky`2dV z)=~cAdQ)5BR?tABWw;M#1xSC05r~2hmw`wSC$^CjVT-hdhC8xCD|q#UI>g%mo;_aa#%sbaBCjF?8*LWyM49u}3;Y@EDlK7Qm8(N2nj zTXxgz>&fz__M{D?+3E>Kn8Nlg*jJQR80ozq)0cD$)0D7%T20Se5flh7ScX(=!INS zM`#gG85mj9uM{~!ZT`?iaI`<2%s;DrYc@!R7)otVAT)M zpj=Jy{`kOfhFbq(1jcUXHFQaWNahur{P*NG$Yrrp|SfP*bE-W(sp?k@{&iZ^g^z=dhsUCI(n0|_W#jMy@K&{o{N?xgM>iHhZ_td#x zRp_8y1$%hE5Za=b+pEI1csi-|CY^mBZ4_?KSQT_;`JRV=KuMEkp?excI_JQZ|1sUT zzuLUMj2S*eW}Jyt5Q3X^PUDOl?z{)O_=C26zO3kUEkf1OIs?TGbh~&tJ07IEBH@+;KO2K@JK3iUx$NGiIpyIkqj|gsN{q=<)FW!u zSALah^g?yLX+fsoo`{egHj~AQI1h`iB-CEC_Y~N#E6#NE&duC~Nw(v6&AEM#)iw*A zO&sC+4SdNl67r~Q9$njx$|vBhJRq&JQV)h0$w%O2mXdB(<^Hv0h+>L^ss8GoNn@-C zRx&tu%xsV+-6auR)2@ahjX5SrShQXLj%LE5Q;2TjLj=2cL@n#$ASr#HOY@x) zz&^n9`U#JM3I#z01&4*Y9`b|=DteBA%kM3O2>>dN0n${>HvwWED-2a{hFE^ei>@2R zu9EE@C@E?v=N2DVo42&dNHzD9ikOUr?UfHJB<)0Nm<>2n%S+V)WjBH1#hg6tW5rfk zqrx9TNRr)Pkkl{1Nj`Kcj90rI_-0(U@R4ayIuZ5dFc}*eni0*UNZ0WLp1KzT42E!I zz^nu*uV^t zR|(IbhtyK6ETRP=ca?EGYj>H4sy?iK+c;#~=c0Ne974OFEup7)HC6S0>wd9V&8Pbz zm#QW|`jPbripgDbNh(W&OzxtoG1<6H0;@}q6!PGn*rCo0L43OMkhG8|wKCCcJ7E2u ztcT3Ukm`||OBI8OLDXpC+yS_Z>QT9Jqqo?Ro+7sPS?ryh638mht5 zI~FY7FOq~@Y+{iwd04AL6D7?99@3HU#>7|RrC5Yn^tr0$R7XzgdYv+$g@<2FIWAm^wg74|Wrt#yfYrJ#LXKzvdWee4{Bnef1;+9~f> z*&ue_IQTIIl~SKCH0)88kzMvtx3zkg+J2uB{vs20Ocw51Q1D(e%w{ z>F6UO9bLCzj&1PWhP3|IMyOf=Z7&i)|J-32I2`-apZ16OyRPw!$cJ*twtbGGy02pp z++UfVOfzy-b<>}HE&-uEkX@E7TFhiq@|lyKhmzqd2}7>e?`2FaKuCm^S_=Wz#4d+a zA2^g-plzVeHdUOH9ju2xgiz#JPi(}`76(JBZu9+GAE zaPbI~N0E2@S4I+7&^t4Pk+y!TmMF5?7*bAc;*@d#PEnO4UJ|f(r~fpB-L^l zS}AlyEQu6;ZENy!P1uFa?(Qva{-RnyPDK*V?8^iZHs>0j+Xb#Hn#AR3Lgm;WJkmr? z;al`%Jm6U{g-dDR{%&O!v*{C7Okd_#@Cuxh1{$RxeN5urP7UO*COtnA zQ#9hB3^33?D8!uytU@!5-;JO}GvAEPM$0)4Yb{jN0rRapqLcC*47nlL=@_fAnc&>H zW%H&-T-)7$zYp=*WhzJ+SGE^~v`=0C@pa+QRj8Ox$6Ze%DwRti0e^K45DF+JcCS-) zuCY}rFgcVg9^1^*EJ5(l$Of;VOfR|5p!fwz{}M5RT)3qchd2cwjqiLXD}y`wSxfJ& z7QqQ18sU@5UyWy2685 zjBIUrW=Ur~I)2@p!V3}g(5BR25#wy@dMChd(fnr6KO!N3!lWhgPW-PH5zOB;Jj~%y z*$-jSBuG_iWrFF3O%$~GoC~31An(sxS=p9FGi26BYIchZZS5~`WQnZL+H~t&=i6&o zDejP1K#!7D04_YcCK8?8799iM?sU~G=M@!VN;~mXH^c5?OZ+j!-x0pWZc`ZR{Q$t= z(=?1s?Q`<}c^8Ztta4^4T4S?4)8NT8w2m6A6dXINU^vlag>+H0MI-vFUv{sQ@<&6% zWM!~(^HXL%IF#OwP3(H(nPXVq>xR)X8t|Dn%M6+Qcd634@4$QiFEFuw>o266;Munt zX8l)FhqI+}g_l-v-(asa#KcFMY3O|F&MM6G-}&p!A$+E&ci$&k?U(K5%&6=}t2;wfNnEBe4RK_?98t;d zP0s6lS31b%#lRB{H3P+!ZR?8lca>X zer>!1mHUY;hQy2;AY7L(L=3RC({|-cI)m(%_ovRX*9)!}{6nr3!jk~|uJYEq`V;df zEF(F8d%x1|Pi|VQ&r&y450X>Fo?)3$>8E4nhq=|JDdlbU6*z-~l@xw_`@*&}0-`Ng z$zxQl4cp&~m1Wg<@$~sGXm-96^*p;dBYlbn)`#=EBPTH)+NfIQ4entHUdM|*TGf6t zgikMnwy_5U{Hh|vGi$(I&mtOyC;Gm}Z~ZcBLa2%eIgw2YS@NaJF)f{^=X^negco-#Pvt&`ZgtO&{GM(%b@Z|S(hQ|Js zg~N#29A41-)xHgE_a1#)$|_*{8it+v-k#~@C{19{Y!evgTLqV^Pd+qAeA&ni<`~HMrzTqSmg-%4`Z=D|9mD_-!xW;;`)u#tN<9gom+`B4ul3{ zKYYah!V8eD|6i%$|4Hyu>#$)Ep(6hkLW=DF!!Z!I?qS13L8AWW0m_3B;R^&1kP2E5 z5W>`3S{N+A#NN)u$=>F_k^g_5<8%K1MgE)G=l>%A|KJQ@$)o6}G;=BURxV045lL=* zsU0~Z-J>3Sc;OHfi{JXeiZJylUpMTrL5Oz-)py$< zi6am_P<4uTt~vGo2hx4t##^FIWk({z6~FHHhiipi$Ys)iBGmS&71ZZ(@2f_!dg^u) zWygg0Q86hrrMw3uBoS)k#M?AfqEZnvG4beP=%-v8T3qp@G*^=8(E$_bk;Xd{Im~A@ z>Ay(VjwLW^N8SmT)GFS}UtOOuuj!N=28hgWB&d8!)PF=E8KPuT{M?02Fs9{|aWS*`1y^FGjt?)I$3+Ur7C2!F0nx=d6~2z;dH+6`;-> z6ceaH&pb8qm4}KPE>#eCK>`9xVU%NG61X$MJoMcLfSo$Z3)&)7O^#+tRto>#3>mWm z*}ixMfy_eqevEB?4fwvxtBjHCDse`$az6b@1H5u0j(Gp`<6f%It z)+u_FRc3&GKJYiOF*ZN+xo2S0Fl&Hdt1%IKx^<(u!7yw1Ira zK&8c$@8}gG3VtgB!hrA>SKIP<-4ml&n)My}sGoI9uRs-hJ1e)16NaHeu1=f31Xt#3+ z;Acik&r;LDm#@=^!{=&b(iGS;irdEqt}LA`(D524US@O7XJ`;s&)S}A9$J}KQRNGY zL3sv$syU|fJalV_n6wND_1)mgk&bg(ap$y!X&piS8U`ViaiVZu_A2q^&Os;(Mlwtm zn89=FZ2htRWJ4T+NAp40LZl4))FVmlb5^!gZoefZ_2^FQo3a;kR##OK$T{2z+_yfB znetf>r2T9TT46*Wp;hW&Gkpx05irvP{S+eS>S!+~aI`0K>XU1%+jIO(fe0)=P?A`c z>?5z`xLZ3nsGR|Nn1;(F>LkeGF(XeQ=unuy`_Xyc+8Q7iUHUWoDI#=DyOR#9!Ru82@o=$V#r?PfMI`F0MGAP`1vTM5bQ${OpLJ-gO{LIT zHtDm$4i1-4iNdUXDIoHj6S(@lA#|=oiS;JGq-AoH6Ymd{2i3G{P5~x>;wl+QBw)uV zR79)x{@c)k8Z=)r!Q|f(OAHg&rrg1GiMmc&?8p(zMJHr^;XmrKvR_b&tC~ zcW3uZKOU5_{Md*0YYT4pke8nsdQYt`Jg>TMf9~4n-_h)Y{Ea!}dKrpYyvEk7h;QAg z{p13x-5YoD-8XCHuFV<)DzJoB-)UVN}m&A>_-&RToa;H`sttz)lHwj zegTFiDkSL)lxEtN6P%Tyxj_#9`Wuc}k15^K59HZe$fgCeLdl7=gVo@2$r;u*BW|b5 zc~Hte@Tami94}tr0MwK-PI!&lg10DaEWi8~Z!^(EfdtBAMj;n*6~7TC+u7`a&}ov9 zK&JeCljTRqJPO!k=-eZ-?%;R#x4j(mZGO+KICoK_f@9Ng1DwBj?o}Bdcl*lmAE)E~ ze!A%+SNSJX&O~WsQpoxw<;Po5_T#FYm9ufHV`Jz@dI%gqW(nHaHb#1WkjTW5g8Y$! zxo}_3bWUB;apR-PlM7ak0Pyy*7B%|&^d7qqDe5;p&I|aVa^;hls&ifQ-0nKwnXB1x z@^ukLLnl%FGJIXrt?0-k=9r~LhZyE9<_^_9U2G` z3+!?~zK$#mDQRK8poWFSI36b7qQ!KD<1HQ@p~g96c-?o&5Y30k;3f%EFRkK>f;-Fu zk{KsFJjiIU#490OTLR8ta#9e5@!wwl)Cbif$F?9qqbU-!9*G~?d8<%SX#;NCgm`}l z$JGErG|6w-c#NZXkP!4h=<JvkT%rpddNzaM|nCQoG8 z&qqr)$;d5Wn?DMGG%s}_X&9{RY*Y+I`cwBds|S6`IbW}9tY8wo{GZ7 zGnzg<90dEks<1gii<+I#-4|h4{z0psn{+h;xGrZJ@GMhptBWn-V#9L`>iY1Pmir|L z!j6r;S#SuH6BDEu1){I(DzsOachZL;*db5*dzV<3-1_{GFFhC+6D2H>Sn=W?e4~$H z8RmRLuP>>Gn4#0kt*>SnEW5c(^l)w^98NVhu@|r$j?s$43^A>r1$RK(|ic6=?YQf9Ug^=W9lcT)uen2@vv^pi5ypWc$K zNp`(KL8LiNrS`UQEelXVAdsEn({l(C-a375+5%m&$(5y`^1b2MPGz0Zp$iD2OPHNU z>Ks-_vCx|KM`%b9h(Kt_nsVH?KlNdN`y|{F(NVr?i=xG>`%h}~df#N_Lg!%;DD~!p zkLhCp*8Zm@>Ya?#N(-9#`Wmr1i1QxZ#gTb$L{`~yWdmdaKZx$akr?no%EHeUI#P)#F&0>OjdM!6Y?X!V1-KhjQBrbv1t;{NIVV$yacwYeS6 zhQ4me=yGjJCd6cT*8zah4E^hX;VLD{jLd^&r{-Q0=#Mi@n-1 z`t+M}SReK*6Y&06=BQ){mHOhvY(1$XeRDMGFDfZ>m{B;NB=7|{FmIM~7$5o^YNBP_ zYa*r2R{>0p^~zdAp@U}C6!;|!GCk1gJFd0rNnx^QDluDJCFsF+AT$_RFi?qTx=fEo;-+pjf>x@og6NPeDp?uHxtSFv|T#v#0Z#2x3w8B;9pTignG z(Da=Mmf05tu6u#)5!6O70ddkoSeJgIkNA-{kLyoAKG0)%v?_$~tK;#fT^0&*&h96# zID^SQc4g1sQFO$s82G&x>lvkKx#?Mhn;Oz5K+Qrab>@L(iL=|#hdPv}aZ&K{viU_O- zUewYXle|y?AuUYt5+s8jU0}jkZRUeXuQw~ovZ_GTAU>Y$dYz-~FqnJv^u$%!o11sggs!6jI*Qe5qeJ^}GqR z>690|DMxfiO!Ja|v3@EY1&+I>9EEtbj4iOkgMF~UOgX20$nRMYFaxw8S~-#+UOD$Z zDlzQ7qIqc_`c+Q-2^CA=?O0Fm=8z!M&zKsOnlq1oX%OwjjgGNAk!X)5_>lf(qp4B7 z$s+v+b#?b_5M4TzplE(;FF#354x_$JaSA!*f%#Vg{0j?bH9ro7Xzo!)1DkTjoMyB0X zlyS1e_3Kd#NIA9X3te=(@8WhhpIb3D zM9tUe?0mLRk*)rU?zNY@(OU{{*7hE*$F##ZR^tN^GHDXs6>?>YC=56CqFg4Dp9yHB z(KhqCIcU;Fe89qi2^}Qmir7 z%@NJSjX~E%C>vnFGVF^+W9ak@C)ck*@K<%4G5?EdB1$CjMq?Zzi*u1U&!~tv!)0Bnz`Sn+p#2ns!NA9|; zQ*IoaSt-j+MGZkZ^_GFPxvirW`B%8SH2Jj>}f!a4vhzRA5;mU_>f8 z`8z!(8AiW6`E&F<>C5-ca!-S7XE%e$&$w)mzyZtDsA)AXS~MIT;-1e$1gv=VJZl63 z?Z~`7{U9umZj%}L*68KwfM_UDzLNmeApVAfCvArt zQ>vIW-8!+poHY3D>jmoN79Oi>A5(*bf!o)@tKBJ>ilkIWBNv{+eK(;Af+O|}FpOHe zD}X}0gnKRL-#J-F4*_vQRfz$MK6DGKkrQOBnZajTm;J<;`yyJvGWH+uu)Z!Nx%`)T zG@RT@G}S6`#)yr#|EzefUA&sZ#(}XfAt5xeuseFwL8WS(K#8ArEIB1yLI$KHR==|! zA=vjM@j)GC)txyji*66nK2}186J);t24G3U7vo`KaT`MN^2$JjXh+e1G^-GHOGJUs~NkR$#$-2t(ySu3{oZw^OMb3SrG-U8^~Z# z<9g$nMPJh8FX6@)7)`cON!;mYZ*KHEYB2c$CAOh)vSJaiZ%R-f#b!AzMH`&rK8pP> zJs%Z}*13acAX$~!A;#kZC7Krg>8X48bAQ$Yx-u+BJZGfF1%oV>wtMhOBd>TI=bIf9 z6S}{;1x4x&8>kEsr}`wzULC?4G@yxRIEn-BFFqH)Md8e zY#M@AMfbDFBDIWcIHYh}@1TxQ6&)*{bYun(3(Q|sd3P<2Z&=;U7cq=|E#mxvHBI)y z!|Uj|x+`?ShJBT-lv)keY@j3uD$~)4mi?QQ1w->uA}(k-5yuRmTWS2BH*I35r5#uV z(!BbPE>a+C{D7m3vFQ!_8<-nShCj6lxO{ue7laO0$H{PbCuwHUCFKdP!20V_FEmva zw%y1IMkXN>^;a*&P3?WRsVkJs@IIyyQxTN*VQ{x{zn-TLLB2^7rvkP4ua0B2*%OFe zH8D!?qzSgR@*E`nL4rCNDYGL3OsMTBZgzsX?8aRJkw`ajBkhqEM^z8n;hegZglnF-neN4y$cv+FE=>h0{r$wn_4g zTOqqp@>=>g^c#p5Q=rXHQ3D=@q+ivZO0&11Vq}aX`Qa|r+ibP5VCABmOdmcyxXg9! zKIoZ_=CjuJtSBBq8vuqa%%Aopo0FGsv%X4{M|87hBO(Vo_#_%_;NlB|aN0@C8AuE| zc!`peWcdb8Lr^E!$z=@F39yYBZNZI#vZ``yKgY;qBUfU)v*j!w!@t{LHBMALT}a<@ zWQ`7n9qhj+6<>*sc-^#>fc2Y+09fQ38YhvVX6 z6{!EtLt$my}mN`{uen zLUOS)FkHt}ea2J28vqNtGlELsvW8SkkJ2!ztv>+8Vh2=GfL)U?Z~ZK_tdA$k+0N?h!Rf4DZXRe7J$co{ey#WS-`xKF${yCF^Pbu@RF6P*MTcvv;vNwRhfiG4$|7TVscO>-hRnP z;y3ZrBGMYPGtsj3bziys5MF4wk26^O@}gO}9sIHssTOofln`SO1D9Z{yBC z;%5CC!RV~?MG^v5sUmuUftoKw6$)m#NE^)`n~z$Mz4dbtXoh~V13e|0n)w&8mGmyC zx3+liO@>Hxm;qt2+9n|M=XuL{GBz*o!?Z)GVBIzMs%i-{8LMFzA$P0rGIdIfC=Nl) zz$iK7I! zZDK~sayT)4wh`R_+Nz-MuAwc&OCpLOoGijSHI$QfKiR-|bs2(aoOjJ6Qn_=_Yrz|& z5+Cfl#zz=W#_Mkn-kH^j9_ZH`V+Xm^MjS73K0g`^Sy>Rh)_b{cj$7=x?U=>3fkZPi zr|vA!+~c3>LzzaYLcJ!aCU13*7`~G`<4|m@OffFkXh}OK6qa%JIg~yCY5&<0JK^T; zvj~;`7&LSZ{K&Nu!MwO2-j2&Fg!N8$-A|}T8fF?Ok$?KjC5PkABW=#x?{{iYId-d( z@jkW90v#gZDfJuMXnAm$AF6A=fxRf0@>S?*C&$tKL@;`sdWq(QV7>0@Rz}+}&>tW1 zBcF>=e^OrVRiIZ*calca^PW&MbBF;xpXJdv8iFEt;TbCX-wgWd!VXL!aOdXK9BoNm z&=O%}%2b!${?;RVDsv$shPc0 zv)hMqI8p^7N-h>g@9m7gR9;3t_Ua3w?hcoe84eYjV_j4+5gq8L&Xw6BEu>vAk*ADB zj{*Msf*4(w*hG86IX1B6?TRwcx0we1=6hoQxmVU4;plSp*<8hve(X?}u3HSe{f$UW zp9c=!sbTQ1H9CHFQXFMjVE&5ZIZe;-^3b)l9X60n!hLqFChlu%ES#~9{+pFQOjJt8 zjg4SM=EA7MuL6`SEt}`RqsCge6tP;fEwZ}KtLi+rOmr(0CBK#0T(wZ8Ax>(P75x=# zPD~|D=cPh17Tph6s4rs6=c##Wpn2sjL2P~tzU=Eix~NJ{<;z^g0S@Yznt_(#kkUW$ z^gyAJ<3Q&f8~W3L*c|5hKYRY&4v3f}Ts?j3VCSX|a6JGe*{Bexpr-O6t~gT|lucIP zX<8$DFZ-|>J6&{IpgD2A@hjckMhx;v*Sg8G+8>@6NCM?P{vUd<)GTBdV3eK8qGkD`Tc%ynv9g|23iap~`pQ`*k#rCrrRZ4hevjJ6DF{HR zJu55_*VuJ<166p%N(eTApzxN)^#{8pv<@?Lz2JZ4+ZOJv>x6@z_t!37E`$1PEt7JG z50xqVm%oqNPfIpd?pL0#fd?;UgZ=p(C#JjtuEabq|1HMN15Xuw;)N=Ys2vtrn)C_Q zKR7i`JSou=G=$4-uZ%Q~QJx`a^45l@J&j)->JdS66|k`CTVKNeVqE-oZNtf|utjL# zJIwMznTN8soZP08m7Dz+#fPhtE8E9o4}*EtJ3!u=k8Sv6k0vdqw#HCqI)@K_?U-_- zQHL|;w?a^3Vzn3nq=id{@?o~h2NRJ((EfcRF|i=*G7glg>5KmjAwXaN zWj{mJ2VlQAviKn{dgIaXkovze?kFbDc~3Q!n%i#+h+IF)V~-!+8L=xYWGPSz`YaJ> zO5UcymL#pMEv+5wRZ`Y_u1U&2ERFT?#SI^Od3pJ;Bbk}o_aYUuM3u$sFu0qrXT~b* zym;>|=UYpI08}UEYiS(E3qnD*GMRU|LPmmN0Qk*xW?aj_kFYgUV?L9sUxEcI8WbRN z(}$F7OVJ{zZP2m)KvBVK7|P|>&P&C;DrMuBZYHITmk&3-!OSW`Fb+qr<%U|Hnl~?h zr~{|mL%XV-TkFsH>$}Qs8DC^N<6{CNm4i4q@6|q!<{f6(hh?<%6q+rB=BOu;*R;`d z!0WVA)I7TrB&O_WXJ^v*_Od@UDCjMBIXo;VMz7WrTH2jknd+%VZjbV1x;WH8j()y2 z4dSm_>MspnGcRQ0fkCssOqmqlDCW&gg-o(nxwZW@g+nlgUEJtZkIa~L?)ZeC;ai{9 ze*NX5*~25ph@@NPcZXL$agwQ@2iBf5s;B2Czhh3sm{>E4Y7hn!oZI|!dayOm zs%fuR!Dsr&V)h^OODQ(8=ZGE67QKThhphcQfWcqA#_ZYDSqnKnYWT~Oj2$|&Qx8U6 zVAn!^Z?`XZ7kgF^C;i78sGT|8nYsh^AAd(8;JB65w{L}K?bfn5_T3Gz9Kl|F0at5? zJGFNa9pDu2(O2)8{QyhJ&>l`P?%M8bO_+qIJGQEDEe1@Bt3&kMr#$jLK{6Qur`B;u z6;3%gZ1RVsrqi#xqXc6xJf1`S=I}Nkc|G5ne$UE@XKrcz)R&W@#t^7PkT=EJ-;8&e zqvyAP`t-+bD7y~1GEPzOh2ByC@?yG-thK5KB(o2Mllx6adVVrNe2Ry@>4d{AP_M3m zS7^xx$4;@yTWTRxz93$GVCCU%RxOr;%cd%icNkmuyL? zq@GeWyzfa*u)4G6Rc&Rbciv7Fslx1XI`{-dacqPe9vJC7?(uS;4Q<6GMLPwa-di2* za6CUj8t+AibMful+PGWzSA@+cCDD&xh>Nm(g$ z+eh|M3-3!O{+~%An1og!2*qo2)0&Yp+gsMm4X^p5gJP!rt3shG?fP8;mHI>^5z!Ai zu0FEcm9w*6tn{b?8~M6o<`$231M3js;_QSvwDY)Ll@=B8!w#!}_SE6ILO->2U>CGA&7D3_2Ye{eDK&2|cuzX3^zIf`^g7RDk zLFb{^i~o3fcwptk!i}sC`6bWH|8(5r{Qf&8Hg*4=sNF(k_&qJfyDsUTB_BV44-{N8 zS*rxSiDoxlyLdS0kz6P&@>TPJ<1f_o;T0KiUsuSB=)l+XKbSa95|7&swf4%Rt2KRb zbjL>ece2XsP0TX@L5F_?qXkxNGI8*60*U$~SK;lFaHMW{AqYvpHBS6!HR$3(AgIV! z>5Zr=yuo^ebKT%OSIP1wNl>Sq6X^q>-qD=lQ9IWrJy(HYYsaT zI&B(sR=Ptrd!mRtqp7c`0}U=FiJqIcXU2H0i#cYwBL9`43GyUj5TB7BN2BkV_$x0;f4DUf4>$zvm z+q_{Kp-5Oo={VM=fS{S5Vd2fi_{}>43B)nnAVWB3Ly5{_JFd_0Z z74hml_ZniL9UGxw{EzOz5q+OXi67-K-3R zRlB{X`5d-PmYQ(1hl8hEx&PWbu5|nnORW0JEwwl>q#s^yI0T)k!cH?m0Kaf>jGjh= zkO@y&Z1GN5f@?M{+)O`Ce@>&~O$JgcCOVqGv3kdn^|f?VbTDXXrE8@dv|uJ{1p5pq zLUf@KI%#x|r#kXtZLh%CK=&`9RD+Y*?_#$_fKFKOx}ZHo+LVw9h$}&Y;p(Za)De$U zv2}2ErLgFgxYdF$>R;5D-##u;$tZ|rd({ZRK;dB`3~=h(2E;fk)`_D8{RJ?(laqAA zf{##^pTTvT=qe#c5RTDxQ2|ve>Kh(aCi3ELTFCp73{XD=UHVTH*d`g)dJeH}DEPU) zhdbt*K#KYwn!h?AN|*7QD?!N+|HgK1VU(sDm#I;;0XE~ANdC`W!>+Z%XNq0mLzXe{ z>_E^Sfe@k#8$@H6HI;w{2OuYwhLa@2+Od*|2sV{}Lx4S>0Gp&FUJ>#1C*ZwEAW^q- zU!}Yr|6zYmF0;SB< zCNrVhOe1hFn!-cqw;NGih7!c~G)7Sv>wGRD!(9<7zZr(zXvOSX1(-RgU+5t=BQ-4| z|3SP}JOPbE3=DIdb0zj>m!l#!x2Jh6)j&eHbzr>5*)*>IjhhpT3PHV^$1i>Meo$ zU`h4WP?Gt#R{@HCbb!AiJIdDi?0WX;hO>RO>_o)QhR~x73{E9Vv2jrzk4FCyp0GU_ zZVj%*DG2hx=pT+7Ag8>Nglzsh*6;K6L^QWHsGBkP8&;04H9K8~3q!hN9h*A#A1BqF z+K;5%SOxEu?swlDY!4k?kKR2_ZHxMs+Li^jsCyKD=fTzoJYXA)3Mt6bU5%H&-jj`| zYUFmYlpx<#yK?wvDqp{@XBE0910}=LYVvjwNes{Fm`>f~-g#LU2<=vJVPrNoj)$i{ zXtT4{F#c@3L;{4g++ACiKG{}i+ErJXH}p30Z|Ln#@Y$P#rKwR^HVF2vtukSKO&i7N zFc{F)I|L+-Zs6l!1k7kMKUFf|W@CpFg$y%;Y@XxO{cJSL&38rv>8+x_lQKLiKC%d9 z5xdI>>}&ytP9iOc~?s%Vpk zbmL5qB6#Kp_7aS5F^+zF7RUOBjuzccnl~z{0B6=4GSJu5JP6+BnSJ5ZJJbA}&{K0- z(~c4ZX3FE1By##=14%spnGz$6`HjsO|IL8=9nKN-xfiijmwbVL%~`eNjm=Pi|Q1@C|%^9I3hi z5d&025%3ccGCVZ=_Jj# z$neY9k8GhJ5Wfi!4G_iX1w!~S9xy~dKeYm!2TdcS<^Q%k_`&)($>t+fF~O4-5dkni2XldD9Xks z0c}7`B9Y_Ckm`p9GtZBqKcA=zsXT0ezJtTxs#Q!0R0E6+#plu2C9Z@<5uHkO_=Fb7 zA=_Pg(AWxVu{6g5mLS=&iRF$pT})6PEr=g2NXEJT6SM4MV357@wOjSSn#}toH`riy zc&*0zjANPi)1uvMAn@@}VF|?8m#J|H|E`7a^pecl%~dvd4N z6fdO?xbph`l)$(U{zLGhzm5mEH^`2G@NBdC>ogm&=e019Y<#nS!pBOC%SFR~*yAtGX_*XWz zaI$Gk4(yF%96Apssi$q-?B6ePhI^_hFY4g2`f&y{TvqlE>{pbhEz++1K`lt??6FSg zznxx9DlywRRXM8vd91xX6t?=A4OD^1BhpfDS1)y;2AQ~CEp7a3Gta802l%Xq4*wqj zlt630MKLuYJGZi5)Y3r-^~)(Pk4=Ms9*{}Mh?vT|_VHqzmv?-&@0nCE$&?~1nqNYj z0N3`#RDiFd7c=Hdaco#~gFokHbP?Y|@Qud098~kU(y6QSh8rJwn{!*I9aXQT_Qy?s zHT$wFy0Qy*;PquS9<_|am1{C(6x+in`W<|rwYWDESN#}2jhlNDx|6SUA#4kZ3*OUb zXZ_>1uTOq{c6zEKYIiaY^nu@?3lWcb`9|H#Gu=ZqWcbcqd_@u@s4?G1`;Lp&x`{gp zcmLh-vFdr+lSIcVc~6s?wr4r=9kDcj4}-v6XLxYsC(_z@h{vf!H3$*}{|Vh>-Z%Mb z>X;*jGY-cq!-j_T5&gKBc~??_(}j3d%Kt(Z@m(?E04w2z9&~RfE2od(I(G--c<|R$ z#2_``q%f3WwyFf4!{9kHL4SDXcF{l?VYJVzq+51z8(AumD|=Ps*9AluA#jy{M0OjD z^T`*licKUzG&9OXk~;lD34TmS$>mh>1{f(x5O8;nt$;1H>lcPj98x+f=j9O~W_wr9 zHt2Ftj?4MdAUG?z+2(DMPEHoKZL%aEw$dakkl3hb`J#M@0tXo#!u1Q#8OD1*OckaT zqF`zl8W3ihk=hvG7)0c}oKWt6g2=s_*+8*`KS7cpO=d)4j^$oT-R!+VXB2E(^bRxl zOqTScFnuAWpq5wyWVdUw6fun@oEcYTUA=gC-S4iXKov6janz|ws7%{6z zLp#S#nM5##mH2|Q5nc)RHPjB?O>`sf^vhIJT_#uX4o^!QZsrW%`zuYq&0X*u!n)F7 za#G!Z*AIn|f@7UkF$DmBzOX@ER7_Ci#MOCtk;&OM!~8f`(|nG(a#365*DJ|kTF!Mq zBL}ofFBBvym;%`M<`{r**t@m;|NY4ajF1gb0U{F#_ts$Url4uNEJ?!j-;avpigljS@P!AH1S@7?32yNF%}GPx=DE&3 z$Dxitn~YN$e3kty0Y_gue3+(g2*G?_Z?lnM@K3I&)?dliR^FHC7Mqf_TnDr;o zK-YsxapN#^C5tqjP&}8Tj}M+*6r(85&fH1;Ct7;#`96k!>hfd~b8(?$>jJJymKYpX zQOfot2xpvn*Ar?btt3Y3<##Yzo|EVSmA!-e5BB#H<3&Y`bv;U^!`9?*_?Vqm=S{KJ z7OMlwO!t`ft|aFH%A_Syu0Y~cE^Bv{12eA5V@$xfIG@KAJI0c6bhWrnXSGL!ut0E8 zwZ`yAt&=8yg3Lw^j%s!73aK5H<32`t1DyuvH30v!iKtGXxF{A2`Yj<=aE>Q4N%>?O zVI5|Wa!dG+RpXIK6^nEs)5pqE<>Xoy2@@Qt=O*bb9Ub&19}|$?R{RQ?ZacEBOwJtP zyi!w#o=nqaOUD953cqJ7FfuS>_l{K|p%5G1Q;xuYBKz0u1Uh#&cD>G@a@3CZCSthf zkDLEwEhDsd-h!8zGck^>3RUs7I9lr!51%A_Nc-CDO0|JyVLW>9ys9I+6iz1_eMFiy z;fcUYEwl1YG4T@2Ye#7f89z%L4QO?T66rEd9Nv^;D z_TX6J;3zt7YaoR-Hj9p_^xOWYxY?wN8QPe9=9o<_<;-u*F|l?3&XLGT|J9AE&R`Zu zeKBMbS^4oGfej@Z;;}MsQF$(3-uonE2>lIzAc1SSsyRWC@y-&}BX?p=*$rHccS@Xx zec=wt%TX`dj`t$jj;mjL)L|1%1(Qg$qRmlZ|Kz*fai>|G9vG*k8s)Pu{pn%`p}^p6 z0+$==>$%!1tzZ3BR%+y&LSYCjHk{1Ob`*U0tl?9~rG_az@G$s-W06XEN2Dn!^9|B} zxfzyObvja2D&@Km5(LO@Db~y&toYp%@)TyD)_O6(jdVxt zvtLqM&2)@M5-kwk(M2YBqucESN{bMGmmGk#Tgyy1w9Vxv__*u3mAx<69sY&_x!DB* zlKYf^QH7w3k)w>YZyth{U_b$f3`e}v*$s*BE>@jq>Mc!jh8g&|U-D5XrudTI>sSp@1fN!2pzA+Gg(`K5GFF1QZaFOuv(I~fmy5w? zn8h_)Gfi;X8&#dom=y^?{49qqHC%xX2Tg;)iQuykU{Nc9^>Q+l_lz+7wpx(bJ%Vn= zWA-Q?5``dU-4wilr{rhu92K3&W=do99KU$?=BNJCqq8G@DgX1)d-a3c3Jiynkq@Wt zU8qn-QKdnuVUai)Qsas~LHyc((fc=v=<#rHZlzTCxcs!8&0u5;ovwKW$N-ks8KJqd z&F363L9#ob$<_QP%;moBbVN|X*Pa!>?pl*W^|`Zw^*`}CU0lhpf6jUvRXJGe4Un7K z3WE3-XcYT9S?}OGchYeS&4s6sP0acH-AiXnQHCh(cw=g8w1>dEMa^%23hp32c(3L< z3j-g>h>d;T@p}9bzx^a9;@0+&72{x`PZ?Qtm4~LZ=V~(o)JY+fA#b&=D!{M`G-Xbz$!>(Lti_7u@|;^yF(;_~s6>l{!` z*-QyNfdowB(7BE~8CfuX5>>QTo^_DXqyPNq^)t9nIg8y{#XikVti5x4kjOp&uXd@U z_4{x4fB$X#0^Hl`d8wwRO9pU+{(#l3?SDTL)q<8`5bJ+t$HqLr9n+3N&e z2ik>(a6v7_SsFuUb|54UxvOTn5<-VNqm2lYNc^s)iA?9NBZ&UV+(rJ`qa^EfyNSQdEnHG z+k`4M5Yoyw!th&vpF+n?Rt)h?|K)x8(e}+o-GErE5x8)H#JVwq3bw365$#>1_9*(M zRaSbdlt5W{x98H*|Ev7y_U=C;K!SUTQgf$lojX}RnN|77xO+9?|1f?^}Yni!Y$JYYhy6qwZG?~1=q=0|8~uAWC2Ry3`s_Zo!KgV>E) zHW}2~$^fc=?`Z+SEtqIj`;{rWE+-Ifq)2T5WM4RBFF(E;83LvS_}EO0aR{-^0-4*+BJ*{aq}fH*QYN}kKev| z^XxdKBYgxqh<&en{i)Mc2@9ibng*bH%+aXnRnae0Ehp0{xK3ihVesHS>=nXQV5jlNGM;A6-T{&-W{SA%9xg^?l$3*F7 zM-XX?Xe+G7p*MWX>qwY0Ys-MLVQMB)icAO?7fIwX6WPrEhwChje96w3zGXt@Np`$8 zh1%do@imw>&d_HMPR)A{*e18Xd+$CRL%r^QUzEIk30ZJD*q4RXVN{8>DtE6#1;58Z z4~lVhlh*c1PthwU*Zq22&Fjb!C#-9qQ0l|b+1=i+?qXoz)i|%`h~sZ}eIoYC)>#p( z2d}=V0^x3C`8vt&@OAmA|pCE{LhAyUixU*ygj*|Py3w=-kCC)hS++MAJ zh44LgV`Hin>qzx(E|=gyJuA*3STA!*Gnq7{v4&oOd^P0ZLQ=mI`ZeMv?3?XyG_v+^ zgW68!Zlj6udLEs;Jq2Xuf~wR$ zqREf;ph5K(za1RbVfIS>sL^2x@afy&`bTX*lA3b}Ac2B)Ct6=5!V%wo7yb5L@GVZ> zVb-ot2+qeHbgfdP2RxFY4$*NNqx^c^|L*qovr51-7Wqsq^UM%+bOFF47GLClaEq@1 z#cyv+oM%h<%yXOhmwa~cDda$#Ig*=djfr0)Vm7(ylXt%3vLF8$LuV%H`BxKxcba7C z|I6X()V{YF=Q=yN5fh897kZt{^}gpE zZFP20@y3-f=&AjQByn9t@=Eo3ffWVtwv5{UIP2~2Hz+EJ7&hz!E{Ju1Pywa9fFoVC z2#Yn#m2NVtQ@Tm}E<(N!^1*nSL4eYiQZ4PMCIPp_owdUtMmdEki?av?QC6V~1LY zFO%w~&MpD{y)vm(ISp-pPDMb2gtJZh!NWsFD&sc^W9p~^Cwy?y(}!Q4*)$hi4|45s z@RQnqS5pXc!k|XGl>sh;x?n)jFg}33)I;pfm0DAe(SD?4cyN$))_@Oc9Sf5I_fT5U zaE>0hVaCHiL^&;r%{UN$_TiYNwZTF7R#*M$!L_2=0_fF+#%7a$S`O1hqTdb%2^twm z%}g&;kPjgLLrHl_M|9yv?naR5GM~j+*Xrv_ZwEBlva)2&wJtc4yG5v(7AXs&S^4y! zGR=CX)oYrNLSYMPO?u>{&^}+xA(Rs@r!OJifI9*efKal+3$3Lq?p^6beS1nU{#ymc?jJPIe3S<6(e3<+ zVV6gb;;5H)-U6pnN<6txS`lDqLHfzqk+&6rqoW8|(t%qK6^8;8zf7?KwRB1*nLUnJ zSGf)YW2suS3*qmE;?{1VDuw7ZCKNZ>Ni$LU#h{KTnu!^IfV~=+Ne}x9n8Xk6F=I;i z*3`rdrSO)p_Fqv6f{1)@t5^W1%066NjAnUVjxpN{Vs&Rug{ zrM**)&{hp;(WyrC2bB{zSWf8(Sd&RrW;&2iLe1!Z{S71M#i`q18ka=ufW4hEQWpW! zWO!}5R)*UbXJ;om%jGff{<}(Chs34wK-eJpE1h~yPDDTL5fj;9iJN{k&oJ;%SrNfOJ)mg#saxMLSn7I6e}p2IG;{Yvg8><5&n z`xGdDyC);Snk=#*Ta3;_NE%ISSWvrO2A@lMOC9d? z@Qop1#O!=g+5*d2L;(ul;a3c*tUg9;qs`}pXlb?FyZ$Ng?I%D3_qSu)N%QoGyuSi} z9siGKSOi|8*%N(xxNYW-Jtp=>{obzIjLTh^*wNa$M2?7tyZe*H++gfYtZ5z;iEhSvGn?EDUO0jw znHIqQIs4ViWbax^WOs>JV8S+*Yl-NVdDe8|88KmpG%{(m;ZL+3Vx1 z*X)Z zr`1D6-CE+2f~ z(AKiZX9BPc$f2CkRW4n#;rIxD2~X|dX+A9H%Vc{vCex|DT8-?_GJZmSnzf@XbEN@c z=D=EROtd!T9=2mQeQjv%)!R4E(Vqwcv*z{2BS;W|5@QroQ<98y|3|J~#(@cL>reR8 zvu7v$qgOBgzUodTQD@a{%ExfvzVEE_hBbZ3VvNcp1Irb|xHhw9Icr9LhMpLgv!Go} z1&b*x|9AVEcbUL0Cl{gqG;pH8$L+CdbtCI7MWu|g(E>?wjF1cG>l$z^IqTl9vfdhj z0^cgdPV&Xn9a*afE$(it9~;(Td4aff(`*=*q_uxiaBa7iiIdJmwk)7w-2I(=yFe69++^3A#-YOcTJ> z1wccXBz3gp14uoRc?o(6K8$iwV@j4f5#}0rySvhpmmMVVIY}4wfIC^v;witwkU1%5 z>UA1){D%EzHcN71Ry~Reu}a<(Y+cvs3R=+Xg=pGJmesO6P={%Mh!7mvJCy{6<0rVN zeS$X8m)ELg4@R=15fMigO%a@?$8{x~7HB)@{z1n;4!KbsnzNUq0W&9e*L)Q+|Ud#l~WUZs{gxsf7GxUcG$w<_z+3oV|SWJeJu)e*h0;CrdnRN5-(@T{&}f z($QQgeQM8AoLB6B2%@+?&}jg*C|dyfUN$Uda|jb3mb2mFiu~zo;t{#OeQi@Rd@vu( z7E>jMhr%mZ!36I@GDeJMP0R+(8=UVNwKgDWAP%gq`UNS3kmM$6OW6RVVZLxs25pxZ zLklEm^q#2!o=^#l0#V!$7UI|oy21zBo?pys?O@RV5r_1DLbtOm<{t8_(^li2Yi+YC zC=L$=MC!9z92$rq1>nJCox}i7Toz4~2=F+o78jRlUY;z}<|~e?nGhv)cmzP27sK+r z9O8~A{tu2sxOGudrBG2;QfvzvND2ITuc{H89>6Y?pu#oyOHVQ zymJ3zJzd#F>fiqYmvJ-*8kgKE2nv@*5(*TTuYm^U4e4~VOhYMCw}l-50DG6{uLvZ6 zRc`=WWp4mmb$AN^0R-p+000E&0{{T*J!^B@wzA*-D^PkmmQH2Huk_&?XU2Bj)Kkay z*v`qx^>}nB5t0~F1P>ok)F%J^?k)flBtc0|oHo64*p4L;zyet8djVvfZT@4E4TT>> z<9(KAqs<@j&Dz>JI~MUg3C5F*b&k7#Y-elxd$x%mP=Ous=*Ww+AkCN;`RsM##W7FZ zc+PzOj)ww%bkeR1P$pRxr~6NyjDu{F58R=cJ{j<6AR9lK1`!`7-YDCgNf6NDW)h?< zPQ*CzrVPINP%#MxdB%N~M?OzjHsLJe$uwnRL_c1fzk-G@c*GMgWS99M42JBN3b65BBnT=_j5PTf-r?SL}}(lS;|zsf2<+C zA`wJs%!e8Fbvb{@vx)Fudh;WGoq1U>TpNa7nzBnTN%{3rM-1LV-R}MxgU4|k`c#E1 z#?O?cJb}Tpfq;3#yWu^DPP2&zSWh^te;S}~%xHXwg<%-*D03?SeLiCSeh>v&zu!rD zIO?ftJq1q<03R%NWhpyQ)vASrg`!OUtkwv{xGaYswf58{RFGe4h4&fE{JhUk*y{~e1;P*e~Nh6f`QxXo2%3F7d>{@h1peRtQ$rmV?kuDWWvWF z9(cn2zN(Z~r@qc+oVW$sdc!RD!f?)XGvptUC%S`_%|J{MGrc@k+*gB!;tt9I;4BD3 zHbB6{t^{ht1Qr(X+)8VO&YL9X*6G25Ixmku93{|+Q=P^F%29ZeSZl00fAFB|^FcoD zRLW?jI^U*U#j8yB3!QwMI=u?XHlCwpa6nB6`+5k8aOr*$<)i5 z1PkINTaDSPM1(>KIy@ll3>577X-C8BF&;^C=>7}D z)wHV#2GHXKvBQk&?W#f&zUF?SciqT*y`()Xd6?&cPwfrStq9DW4zaW;p31ID2wfL# z!DzgsOPFDGu=rxFf4x!MtX!ih+h9oXJ56#jK~Ke7FB)V0hfTf}0j-nJ>#@ornQ~gc z18rp^g+=;<942ZsTa*$~@YTP{Hgx?A*=Oh)a9!fTiW;DLCd%^Y_@LsU%A<0JR- z?A43Y^Zv_|>+8c8V21v7bJt^q%vJ_R&q}rW=_mw9qoLb1?MH9k$3HxQB~3#i?$t8l zEM)O4+FGXVX>rUf@z9~!^A@lI6^s|B``TuW`;`CFmag-y#9Rg z>gepG*ZTR(*~Q^a@o{u%>i=?6O_d_0M%e&W>f*Q2^(6NH&?DFd3 z=HmF`tiRp=@%rZQ>ZV;!7PNZ6I?6edRDZjzzw9iK+(;Bf(_P(S&zzE7Hm~0O?yBAI z=@w7#e;RIJY1Uh~m_}fc#%z)gSj4#xX8LfLCn&0l0h{vjv#H_q=JewH)5!tM;(IUz zBu6W$Gebd?h)fJc$mWD7FBzu_SLT|2#(FHpt|1`5IA(8~g5;BM*>N5yMp`M-K;9}i z1Fe&_g(g;UqU(Vc)S%~}Tdb2d>=Zfe7d#_{f1?6jI2i2~fU=G3F>)?R8))p1CngvY(sK#HjfT5daHGF_=F)k@F<)(2MWF7k$)}_TD zmz}o=4S&%FV*{)T91shGdoCAd5RB%I>skTAD4};1u#?Lu#S1JQ6m&t?Y}*Hok6Jy1 zuzlBB>*1)z$4Gt4QZ7ad0q!cDx{OUbQHkNr{ULw{8vXKLRb9kbPky7Eh{R0#zrRy0`@ ze=OGvg**+=7sE>PXDB}7=NJ@tKi9vi{_QiLr(pHRs12U8D{ofFA<7phix_B2Mmejb zdkmt=3nCe9aGn4%fGA>c=ZgG-wVT=qyn#qE4~)v^>A;UCt5&@@&`Dv_`8kDNT!+E zNKVvk8BxWfHT0Xz&3Q@2fOo`95{UNLWPcQj2$oqm3YNe%L?lv_!X&_?1#RbQ?Arxp zji@jcY^O;T-Nty~e+t;6TL?=Lds#3DKmp8w6h!D3Lr;x{B>24y)-qOH0utL(SYrd| z-JD1^k9kMUhSV_BBi$$xVx0g?0WZ=s0xtl}=6M)smqf%#0A_JGHwUNH*uN$AyM>@fe+>k>R-wupRHssc}d z3I=<;ZfQ8ovG`vLRZ=tBra3B)j(_Dq8ak?0Rmz9OHp4<4R)e=9tOuy~mhKdy7xbqw z4U2fYz2620eYI790E9-Rk3ClCtAnON+Fh#=i4GRVGET2UgqkE>q@uCl7>;A3Ji!2C zRaUp@dVE&U_f)N-^8;`<0L|ejkK~?&1-hDA8~VCYcrIMk`zGQ|&nu-Al7E+HV(L+V zF`O3)8(Agco07Cif4{EBOD$bn#${KZ^t{H@prFFb%9iM0{-t=?fZJz)7T`JJ$eGs83*1X+=uJ#v;IlGl0O$0SCh%L0tj}Y)%SeGJmiD6oUuH#hb<< z@5wDaXiScRFq2yZG7Be^#NI5k8jSeVjYerRS{&R}Ek~+bh+&q7UOFjOyMuWi7(L<_ z(UEf6m7yfyM%sV`mhvb7(n%|>^)OFTk#w6lP;#3pCw!`GY!cN^uxJ5d8Y0yepJ;V^ ztCj)yJtV`H?Fy=!3x8-M#^Bx4Rx*V;0G^W@;=ypD%_=@wZ5tAytgwXipioJfX5htZ zOw6NUMz$%?Z6_As>kL2y12qHRcNqx%((f^B?@HVo17?}%%UVS+sUB)8%y3#dFBSIL;D|keTio3fKe3F(Pw-A9_o8pYSkttiC`!%zuG3JI=&Rkc@13XcEkF8LsT#GzY_qey^Mktu|7|-)XLT1yj=mbgpucj| zRZb{Iio8h0mYoj9h@0SUsr}upgVmg-P1FeQRHn2HXd|sob6ynJS&A_`*6>-n#KoL& z>zm&A>E6({PJaeshGz#gHi^buaY?#3^-1#dz`;mgj}it4ognTJ^1DXQuJ7?Fr3tEO zF&89Dl6AUPR-ze5KANDbRb?W2C7Gy3t2UOGKbx*bi&v5H_Zf&~=hs(9?0OCc!ITlJ z_E1%X0@aT*28X&CX#QBUoxjk)Hrt=CXOI{G1|#}P5`SnWjVAC@rx;sOqQhx*jMNN3 z@7(vt3FpyYJCA3QFp=J$!=$cb5A4?|xO4R!=GY?WR zCEw1z9N!)m^Fa<)n(?dQi@y`|V*F3DZXzgIqWHELs2$Fy5;}SkV66|q)2Z%%HZ|?y zooLHu-hV#(CI-Gm9(h5VrM?BWVBa!3JpIU_FIJju=7Vet_5(&QEEa@*y6xasV^DlP zHr}@ETk?Z3SiR$VhWXPs!#rrW!_TKLUYwr4Xl`~`xTodWvOO(o44Ce&*}1h14aT+> z%Z7%gMP>j{?Z3{P;W{|yQIJl+e^(1^V%9i!v47J@#23rHQlb%{TcfuR%`zHoS~88Y zhTizLUo3^CmN!&&9B?T610cV9i^g+Cz>iQ#Z5OJPf3$3_uKSN^CSskw0lcviBdTg@ z$^S2mj_PN{C}~l>5-qJp5>@6WMF|HZqo|+`#%vWS30{{qb zwSPe^82hTZ)k>oUfmHRZkaIm38JB0!%AJ+1@Gy&(X7Zp6)O;sT5ez^k-cukg5%++0 z3@8maCD!PLB_^bwQyFu^*mgwwKWV5074X`_Fi1L~Fdt0A$33B5`{>_(+Ld@HO}4aVTb*1D^#czd1J zsG@!z5;Ux}S(wJI)-OfW`yQM3*zbx=bU}O5LT(w$iGkJvbF3rtw(UD%v{2jHe9Afl zk!51qgLMa|Jp%HY;FjtfKW6d-ikD{Xuv(&#MOVf~taT|Rma3brhPp9T!x$C<4}a$1 zc?8Q&qDNCsH2P0aP)5628@pCtz!R(I5LZ%pRI^ljrZ{M+yg>QkV^e_mJbYu@f0t~f zC0k^vP}Rp=uqsnN-Phsp(!2!&d8^0p|E|rbg^G2%)+XH^y!@2v1*H5{Hl?22LZedJ zKz+)C*zC%Q%ryb>0Id^w6m^Sr7=I>!=(i=EC6f;b-R2)vHRdwobajLClhW}j)j2~u z)35^2s+6ZLM?(0$rY?{3Fw}dF*g(wEo=PPRa=H%y)KNCHBobFo_AfOc7Z{F@WiZ+e zMM*rc_#kW|4%opYH6@vwN3-!Edy6*zV5(8%V|kWanqGe36I)4W+N5v57=LQ(5wn)L z-aDv01D8zD5-9FFl5@8#9bOa>;Qlh&E;QoYHv>nC06L!Dlh*^g^WL(*0QcJk!;q_` zZnD8=C5>0h1+Qq%nNoo!DH-y*6p@?Syz4PK5dc5D*~(&rc4OkH#y)PdY+A&H5CPdy z$c-M`hM!_Il2WAuju;PpTYuuY5GOz5iAS>Kaql~xq@yi$k;<^iwV!#Z%9J=m@!zbsX!suY z=gFl=|Mj6x9Pk+BZ_LX7+gOr1RwX_GwVP$)j5hk>e5LBP-hZe>0)Yi6MDvp(F>eK!m$U5L8ZGkuydel`CBw2tD}nYy8i{E0O~G zQ?7aWca=4N=Ori&Xw}ts6wQye?n>|*e3Ym1B=$hsY-tP{MGS{|97u!ELE>{(UW9e9 z8;6|ys!LsszkkPkEasKLzSAqB4`zY|mKmG%3P7-a!+WErhO31*(j(X{UBikt^wNy9 z=TNAP-GygbxiHC8ToNn>ZE!NjVhYw~iia~%hN+mAR>+Lt1`!metx{KiC&^p<*uKLP z-o}fayIN9N4`jPF8Pg8>yVXGNJREcdEKZ>X^zP?^{(r6&^xjIKYv`?kZvp*uHPGKJ z23^4T8j@oMXV$5=nh#kor;C?kkfj{)nQDcb-;JtO?hH~RF;LvnMRj=PbjfOQkv9Lu zrJ-Ab4}W}8kZgIBWYwUSQ$Yuw3N(M)8Yo9c`ZrSb?iVV#9_skhq8VzB0&WtAVf;5J zfzSWXpnn9h>fbORp=64o$A=yb$M9yqSzmSlSQs@f(IW(NNL0lzQ5fF{0+PqYja!5QmSnk zwIN*4>cV3toh=MnY+KfPd6)tpYoxV3exXA=#(%{?FkHOQ2Hn*pz`u=K&L|8{YK_jH zr1F4%2<`}(lQX>f6}a{OKFCTXR=XYT@we~XN^`z?(Vbx!EKCQ`ZK;N(2}a2R`_#N5 zK;C13t=K5RGdXlCk~%91+zv)*PM64%VT;GOq^L_cBFsGJ4OoF;JY#OVakFSlTVLsB zpMS^8vOMzL0832=y`TbX_Uq0mmnjug`#;<|P|9T}uGy=upwxwVP3x9Sj z1-n?VYbn^nf;~gYn1Ka#cv@aFL8o|8(lI<|oYbywkazJ~E{|vnTF~)G@^Lsg$EgX+ zdRIkbua&|?>#Y^|5H%N%g8OJo)176aO;1KMc;w7Ue*ZXM8W3!uFvfcENu_6$Ie zcSlim2d?ADbJ8AQp07Y+u@I8NatD=TL-7_NumZL{m-Nn zn~;k`Qm+(EVA z8c7Vb^k+fjibF_Rb=I|aWbLWINb(c>M*x_t&=S@vZo^aak(laq@{A#cMTVsn)bC*DKB~B)9OEO^U)O3x+eGt ze>jB8&Fzm(0;DR{-G65f4l^Q7k8y}juON?AB69!N-1Yq=5(D9XrAkaN5zc$KvXpVB6X0Ogrs-{pQ0Wama!|Tr39i z{XcQH>ft-u4OkW^Zfa6XlyK1-%Cb;iWK&YMp>S5Fj8rHhP=6W!Rua#H0^I981Kf&8 zGZ^Hu|GwF0U-#3!ee+-Z(V6Kfk--VoP4bld+~%T9zx1^p3_)AIN@&lNF6U=b!ze>Y zm}=BEG{4)RvYXK)5w_7WtJ6+NYUN@Kvx?g-=5>ee^2K^QV{c&=IqwXDAZnBfenvi( z=`pywj5(D!4Sz`}%ypvG=qkGRk%=w!0t|RA^${O5sGjKZOGfX@6&$R;lBH){@+9`t z@h!-|nJqhJi`RK9P*!L|zcyCVRezXO3YG2HTQC<)iyYY^7T67;TP)8bDiao&`u6n% zPa0osBOWoId^tZ6MzzzD79=y9V&ja2RPM>oB}sCR+$ zSdSl7-0@tsOXE0Y+CwUviEUKO1;>24SodZh{azMHs2cZ&KG&xEvM9mZz`xd2LF@HLr7Il33p$cwx+wD@08_qkP@zezH z74=JV6m8;T%Mq6QfUJ-VrG}fQ@Afaai)VR?6=O;)F7wQmP1Nj|xDlP0MW=}r+A+|0 zaDR(!(O?;s5ae9@T|zn`Yi)v5T0Hgn51=uka3z~@72Gs~SI08+h9MJ_s70(5$|DQ1 z+J7XSKn}n?><@!53PPzjjZkSV@G!-$T1!{3jj(M4G|o{$h%Rc@I8HZ>$sN( zVpQ4Kto`qoeKs?tw5d>m+Nd$j?ZKUSS%0oXA}jXoZU53;d5@!b9y8B|!$2=8dQ8lS zQ0@p6?@{&rGcKh(;8ubgnz0aOu|`TKD_~2L0aaxMM&Gc&|38o)OX5W!S_jxb@F9LnvJg2ktJP?hL=Ni#K{X7fD^d z;6tR3ZQlh1ziR^f>R1;$1MGou!QZPmm%mU;0|W{H00000-FmZ^wao}529kLITbX&6 zU^ECD0~21em;KEMGX_>i09#f^w>HiQRS*LcUbB~u-Uu@WR!0C^R!6tT-U!bL4&8dQ zOtIfNhO`<00QPs6r057D29kLITbX&6%;*Rm9qCC*WLdJE#P*BRu^p$)T^jphr=3oo zN1;SWVojF@=?GT=bC+J}2v`UAZ{I`3?|GNK=?GGPFT2@?U*j;yenT(QNs_&N^1X3h zvO@CY%Ox-)n7uy7*8One_@ZfG*!`-XCY~PylLMqH$%%M`z!$6Ct(^^MoE;&?zGTbD z3#K7^!8*IW?#6~UMe+_e7(+^f&SvoI7rK2d$r^o}WMwf!#+=Fynxf{$fi! za0PRJ6*iw{G<^}H8>k+gp1(YMcL^ZB6G^R@nAAFCgP!<+jE2{td`-uzgv0xee3!4g z^3@9xc-xb2@f>&v?@zMI*@vg{gC9~`&*ZBcf&e1AefeSPhYrFYWUYmvkHloe-8zwI zaX3`yaiYjs;l~~G<0vCwm=U}TV-E)jzvX0q`ys(dvNy$-Q4qd8xx()mb!qCk_@4D< z!4t=I5(mFMGrkS`2lzSbh+uO@=uXz3h{x33{N1^u*Ns1P;n*li*pED!hwhKg>V#h= zPU1~^7ps#fblkK1311=*d^k>L3mzoLaqP_k{IxOhoj7I}&g6zCopAgs;Ohz*cKMWl zjX+quWHjo;+@JPX98PX}44@(`_buc=xD)yr)b{Dl6O8_cU3Nb@&J4% z--dp|A2tOC1KP#V|2gCabX23Ww}z$4p5b935+hXfo>si07L)et<-2M**b=>TPc21b zr58U@i^*2$H(qRngOBmx&g_FuNjY`2esoNNUa_ZDz6!j zj1i^rP?Tv&2Atv0Z6kcO9$oz7>hkRE%hIT6(qZe4CLS0R)aY4S9`@aOHQlRK!zT?& ztm#>50eDug$NNosdeETgx^iKZQm0%ZYB3;oOa@sbZ&>1@64e->8b`B#D93=&`3f

azj9@GcXnK@ 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

Kv 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 PROTOCOL_1_7_9: + if self.wrapper.javaserver.protocolVersion > PROTOCOL_1_7_9: self.wrapper.javaserver.console( "execute %s ~ ~ ~ %s" % (self.username, string)) else: @@ -398,7 +398,7 @@ def getClient(self): """ if self.client is None: - for client in self.wrapper.servervitals.clients: + for client in self.wrapper.proxy.clients: if client.username == self.username: self.client = client return client @@ -506,7 +506,7 @@ def setResourcePack(self, url, hashrp=""): """ try: - version = self.wrapper.proxy.srv_data.protocolVersion + version = self.wrapper.javaserver.protocolVersion except AttributeError: # Non proxy mode return False @@ -550,10 +550,10 @@ def isOp(self, strict=False): """ - if self.wrapper.servervitals.operator_list in (False, None): + if self.wrapper.javaserver.operator_list in (False, None): return False # no ops in file # each op item is a dictionary - for ops in self.wrapper.servervitals.operator_list: + for ops in self.wrapper.javaserver.operator_list: if ops["uuid"] == self.serverUuid.string: return ops["level"] if ops["name"] == self.username and not strict: @@ -603,7 +603,7 @@ def setVisualXP(self, progress, level, total): """ try: - version = self.wrapper.proxy.srv_data.protocolVersion + version = self.wrapper.javaserver.protocolVersion except AttributeError: # Non proxy mode return False @@ -662,7 +662,7 @@ def openWindow(self, windowtype, title, slots): """ try: - version = self.wrapper.proxy.srv_data.protocolVersion + version = self.wrapper.javaserver.protocolVersion except AttributeError: # Non proxy mode return False diff --git a/wrapper/api/world.py b/wrapper/api/world.py index fae97200..9f0d66a0 100644 --- a/wrapper/api/world.py +++ b/wrapper/api/world.py @@ -64,7 +64,7 @@ def fill(self, position1, position2, tilename, damage=0, mode="destroy", data=No x1, y1, z1 = position1 x2, y2, z2 = position2 - if self.javaserver.vitals.protocolVersion < 6: + if self.javaserver.protocolVersion < 6: raise Exception("Must be running Minecraft 1.8 or above" " to use the world.fill() method.") else: @@ -82,7 +82,7 @@ def replace(self, position1, position2, tilename1, damage1, tilename2, damage2=0 """ x1, y1, z1 = position1 x2, y2, z2 = position2 - if self.javaserver.vitals.protocolVersion < 6: + if self.javaserver.protocolVersion < 6: raise Exception( "Must be running Minecraft 1.8 or above" " to use the world.replace() method.") diff --git a/wrapper/core/backups.py b/wrapper/core/backups.py index 62b0f260..181078fc 100644 --- a/wrapper/core/backups.py +++ b/wrapper/core/backups.py @@ -63,7 +63,7 @@ def _bu_process(self): while not self.wrapper.haltsig.halt: time.sleep(1) # only run backups in server running/starting states - if self.wrapper.javaserver.vitals.state in (1, 2) and not self.idle: + if self.wrapper.javaserver.state in (1, 2) and not self.idle: if time.time() - self.timer > self.backup_interval and self.enabled: # noqa self.dobackup() else: diff --git a/wrapper/core/buildinfo.py b/wrapper/core/buildinfo.py index cbeb8d17..c92fd1e1 100644 --- a/wrapper/core/buildinfo.py +++ b/wrapper/core/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 15, 'rc', 20] +__version__ = [1, 0, 15, 'rc', 21] __branch__ = 'dev' diff --git a/wrapper/core/commands.py b/wrapper/core/commands.py index 5c6f48f2..76ac0e35 100644 --- a/wrapper/core/commands.py +++ b/wrapper/core/commands.py @@ -521,7 +521,7 @@ def command_help(self, player, payload): "clickEvent": { "action": "run_command", "value": "%shelp Minecraft %d" % ( - self.wrapper.servervitals.command_prefix, + self.wrapper.proxy.command_prefix, page + 2) } }, { @@ -579,7 +579,7 @@ def command_help(self, player, payload): "clickEvent": { "action": "suggest_command", "value": "%s%s" % ( - self.wrapper.servervitals.command_prefix, # noqa + self.wrapper.proxy.command_prefix, # noqa command[1:]) }, "hoverEvent": { @@ -607,7 +607,7 @@ def command_help(self, player, payload): _showpage( player, page, items, "help %s" % groupname, 4, - command_prefix=self.wrapper.servervitals.command_prefix) # noqa + command_prefix=self.wrapper.proxy.command_prefix) # noqa return player.message("&cThe help group '%s' does not exist." % group) @@ -638,13 +638,13 @@ def command_help(self, player, payload): "clickEvent": { "action": "run_command", "value": "%shelp %s" % ( - self.wrapper.servervitals.command_prefix, + self.wrapper.proxy.command_prefix, v["name"]) }, "hoverEvent": { "action": "show_text", "value": "%shelp %s" % ( - self.wrapper.servervitals.command_prefix, + self.wrapper.proxy.command_prefix, v["name"]) } }, @@ -653,7 +653,7 @@ def command_help(self, player, payload): }] }) _showpage(player, page, items, "help", 8, - command_prefix=self.wrapper.servervitals.command_prefix) + command_prefix=self.wrapper.proxy.command_prefix) return False def command_password(self, player, payload): @@ -913,13 +913,13 @@ def command_deop(self, player, payload): if not self._superop(player, 9): return False operator_name = getargs(payload["args"], 0) - if self.wrapper.servervitals.state == 2: + if self.wrapper.javaserver.state == 2: # deop from server self.wrapper.javaserver.console("deop %s" % operator_name) # deop from superops.txt file_text = "" - owner_names = self.wrapper.servervitals.ownernames + owner_names = self.wrapper.javaserver.ownernames for eachname in owner_names: if eachname != operator_name: if eachname not in ("", ""): @@ -977,13 +977,13 @@ def command_op(self, player, payload): if superop and superlevel > 4: superlevel = max(5, superlevel) # 2 = make sure server STARTED - if self.wrapper.servervitals.state == 2: + if self.wrapper.javaserver.state == 2: self.wrapper.javaserver.console("op %s" % name) # if not, wrapper makes ops.json edits else: self.wrapper.javaserver.refresh_ops(read_super_ops=False) - oplist = self.wrapper.servervitals.operator_list + oplist = self.wrapper.javaserver.operator_list newop_item = { "uuid": uuid, "name": name, diff --git a/wrapper/core/events.py b/wrapper/core/events.py index ea91d094..89923106 100644 --- a/wrapper/core/events.py +++ b/wrapper/core/events.py @@ -87,10 +87,10 @@ def _callevent(self, event, payload, abortable=True): # create reference player object for payload, if needed. if payload and ("playername" in payload) and ("player" not in payload): - for client in self.wrapper.servervitals.clients: + for client in self.wrapper.proxy.clients: if client.username == payload["playername"]: - if client.username not in self.wrapper.servervitals.players: - self.wrapper.servervitals.players[ + if client.username not in self.wrapper.players: + self.wrapper.players[ client.username] = Player(client.username, self.wrapper) payload["player"] = self.wrapper.api.minecraft.getPlayer( diff --git a/wrapper/core/mcserver.py b/wrapper/core/mcserver.py index 487426f8..db528fb2 100644 --- a/wrapper/core/mcserver.py +++ b/wrapper/core/mcserver.py @@ -41,11 +41,28 @@ # noinspection PyBroadException,PyUnusedLocal class MCServer(object): - def __init__(self, wrapper, servervitals): + def __init__(self, wrapper): self.log = wrapper.log self.config = wrapper.config - self.vitals = servervitals - + self.serverpath = self.config["General"]["server-directory"] + self.state = OFF + self.properties = {} + self.worldname = None + self.worldsize = 0 + # owner/op info + self.ownernames = {} + self.operator_list = [] + self.spammy_stuff = ["found nothing", "vehicle of", "Wrong location!", + "Tried to add entity", ] + # this is string name of the version, collected by console output + self.version = "" + self.version_compute = 0 + self.servericon = None + self.motd = None + self.timeofday = -1 + self.protocolVersion = -1 + self.server_port = "25564" + self.encoding = self.config["General"]["encoding"] self.stop_message = self.config["Misc"]["stop-message"] self.reboot_message = self.config["Misc"]["reboot-message"] @@ -64,7 +81,7 @@ def __init__(self, wrapper, servervitals): for part in commargs: if part[-4:] == ".jar": - self.args.append("%s/%s" % (self.vitals.serverpath, part)) + self.args.append("%s/%s" % (self.serverpath, part)) else: self.args.append(part) @@ -137,13 +154,13 @@ def init(self): capturethread.start() def __del__(self): - self.vitals.state = 0 + self.state = 0 def accepteula(self): - if os.path.isfile("%s/eula.txt" % self.vitals.serverpath): + if os.path.isfile("%s/eula.txt" % self.serverpath): self.log.debug("Checking EULA agreement...") - with open("%s/eula.txt" % self.vitals.serverpath) as f: + with open("%s/eula.txt" % self.serverpath) as f: eula = f.read() # if forced, should be at info level since acceptance @@ -152,7 +169,7 @@ def accepteula(self): self.log.warning( "EULA agreement was not accepted, accepting on" " your behalf...") - set_item("eula", "true", "eula.txt", self.vitals.serverpath) + set_item("eula", "true", "eula.txt", self.serverpath) self.log.debug("EULA agreement has been accepted.") return True @@ -181,7 +198,7 @@ def handle_server(self): command = self.args self.proc = subprocess.Popen( - command, cwd=self.vitals.serverpath, stdout=subprocess.PIPE, + command, cwd=self.serverpath, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE, universal_newlines=True) self.wrapper.players = {} @@ -230,7 +247,7 @@ def start(self): Start the Minecraft server """ self.server_autorestart = self.config["General"]["auto-restart"] - if self.vitals.state in (STARTED, STARTING): + if self.state in (STARTED, STARTING): self.log.warning("The server is already running!") return if not self.boot_server: @@ -247,21 +264,21 @@ def restart(self, reason=""): if reason == "": reason = self.restart_message - if self.vitals.state in (STOPPING, OFF): + if self.state in (STOPPING, OFF): self.start() return self.doserversaving() self.stop(reason) def kick_players(self, reasontext): - playerlist = copy.copy(self.vitals.players) + playerlist = copy.copy(self.wrapper.players) for player in playerlist: self.kick_player(player, reasontext) def kick_player(self, player, reasontext): if self.wrapper.proxymode: try: - playerclient = self.vitals.players[player].client + playerclient = self.wrapper.players[player].client playerclient.notify_disconnect(reasontext) except AttributeError: self.log.warning( @@ -302,10 +319,10 @@ def stop_server_command(self, reason="", restart_the_server=False): """ if reason == "": reason = self.stop_message - if self.vitals.state == OFF: + if self.state == OFF: self.log.warning("The server is not running... :?") return - if self.vitals.state == FROZEN: + if self.state == FROZEN: self.log.warning("The server is currently frozen.\n" "To stop it, you must /unfreeze it first") return @@ -317,7 +334,7 @@ def kill(self, reason="Killing Server"): """Forcefully kill the server. It will auto-restart if set in the configuration file. """ - if self.vitals.state in (STOPPING, OFF): + if self.state in (STOPPING, OFF): self.log.warning("The server is already dead, my friend...") return self.log.info("Killing Minecraft server with reason: %s", reason) @@ -334,7 +351,7 @@ def freeze(self, reason="Server is now frozen. You may disconnect."): specify None. This command currently only works for *NIX based systems. """ - if self.vitals.state != OFF: + if self.state != OFF: if os.name == "posix": self.log.info("Freezing server with reason: %s", reason) self.broadcast("&c%s" % reason) @@ -354,7 +371,7 @@ def unfreeze(self): to .freeze(reason) This command currently only works for *NIX based systems. """ - if self.vitals.state != OFF: + if self.state != OFF: if os.name == "posix": self.log.info("Unfreezing server (ignore any" " messages to type /start)...") @@ -375,7 +392,7 @@ def broadcast(self, message, who="@a"): string with formatting codes using the § as a prefix. """ if isinstance(message, dict): - if self.vitals.version_compute < 10700: + if self.version_compute < 10700: self.console("say %s %s" % (who, chattocolorcodes(message))) else: encoding = self.wrapper.encoding @@ -383,7 +400,7 @@ def broadcast(self, message, who="@a"): who, json.dumps(message, ensure_ascii=False))) else: temp = processcolorcodes(message) - if self.vitals.version_compute < 10700: + if self.version_compute < 10700: temp = processcolorcodes(message) self.console("say %s %s" % ( who, chattocolorcodes(temp))) @@ -394,17 +411,17 @@ def broadcast(self, message, who="@a"): def login(self, username, servereid, position, ipaddr): """Called when a player logs in.""" - if username not in self.vitals.players: - self.vitals.players[username] = Player(username, self.wrapper) + if username not in self.wrapper.players: + self.wrapper.players[username] = Player(username, self.wrapper) # store EID if proxy is not fully connected yet (or is not enabled). - self.vitals.players[username].playereid = servereid - self.vitals.players[username].loginposition = position - if self.vitals.players[username].ipaddress == "127.0.0.0": - self.vitals.players[username].ipaddress = ipaddr + self.wrapper.players[username].playereid = servereid + self.wrapper.players[username].loginposition = position + if self.wrapper.players[username].ipaddress == "127.0.0.0": + self.wrapper.players[username].ipaddress = ipaddr - if self.wrapper.proxy and self.vitals.players[username].client: - self.vitals.players[username].client.server_eid = servereid - self.vitals.players[username].client.position = position + if self.wrapper.proxy and self.wrapper.players[username].client: + self.wrapper.players[username].client.server_eid = servereid + self.wrapper.players[username].client.position = position # activate backup status self.wrapper.backups.idle = False @@ -441,8 +458,8 @@ def login(self, username, servereid, position, ipaddr): def logout(self, players_name): """Called when a player logs out.""" - if players_name in self.vitals.players: - player = self.vitals.players[players_name] + if players_name in self.wrapper.players: + player = self.wrapper.players[players_name] self.wrapper.events.callevent( "player.logout", {"player": player, "playername": players_name}, @@ -470,14 +487,14 @@ def logout(self, players_name): if player.client is None: player.abort = True - del self.vitals.players[players_name] + del self.wrapper.players[players_name] elif player.client.state != LOBBY and player.client.local: player.abort = True - del self.vitals.players[players_name] + del self.wrapper.players[players_name] self.wrapper.proxy.removestaleclients() - if len(self.vitals.players) == 0: + if len(self.wrapper.players) == 0: self.wrapper.backups.idle = True def getplayer(self, username): @@ -488,8 +505,8 @@ def getplayer(self, username): api.minecraft.getPlayer will deal in all players, including those in proxy and/or other hub servers. """ - if username in self.vitals.players: - player = self.vitals.players[username] + if username in self.wrapper.players: + player = self.wrapper.players[username] if player.client and player.client.state != LOBBY and player.client.local: # noqa return player return False @@ -500,38 +517,30 @@ def reloadproperties(self): # straightforward and works in both PY2 and PY3 # Load server icon - if os.path.exists("%s/server-icon.png" % self.vitals.serverpath): - with open("%s/server-icon.png" % self.vitals.serverpath, "rb") as f: + if os.path.exists("%s/server-icon.png" % self.serverpath): + with open("%s/server-icon.png" % self.serverpath, "rb") as f: theicon = f.read() iconencoded = base64.standard_b64encode(theicon) - self.vitals.serverIcon = b"data:image/png;base64," + iconencoded + self.servericon = b"data:image/png;base64," + iconencoded - self.vitals.properties = config_to_dict_read( - "server.properties", self.vitals.serverpath) + self.properties = config_to_dict_read( + "server.properties", self.serverpath) - if self.vitals.properties == {}: + if self.properties == {}: self.log.warning("File 'server.properties' not found.") return False - if "level-name" in self.vitals.properties: - self.vitals.worldname = self.vitals.properties["level-name"] + if "level-name" in self.properties: + self.worldname = self.properties["level-name"] else: self.log.warning("No 'level-name=(worldname)' was" " found in the server.properties.") return False - self.vitals.motd = self.vitals.properties["motd"] - if "max-players" in self.vitals.properties: - self.vitals.maxPlayers = self.vitals.properties["max-players"] - else: - self.log.warning( - "No 'max-players=(count)' was found in the" - " server.properties. The default of '20' will be used.") - self.vitals.maxPlayers = 20 - self.vitals.onlineMode = self.vitals.properties["online-mode"] + self.motd = self.properties["motd"] def console(self, command): """Execute a console command on the server.""" - if self.vitals.state in (STARTING, STARTED, STOPPING) and self.proc: + if self.state in (STARTING, STARTED, STOPPING) and self.proc: self.proc.stdin.write("%s\n" % command) self.proc.stdin.flush() else: @@ -542,17 +551,17 @@ def changestate(self, state, reason=None): """Change the boot state indicator of the server, with a reason message. """ - self.vitals.state = state - if self.vitals.state == OFF: + self.state = state + if self.state == OFF: self.wrapper.events.callevent( "server.stopped", {"reason": reason}, abortable=False) - elif self.vitals.state == STARTING: + elif self.state == STARTING: self.wrapper.events.callevent( "server.starting", {"reason": reason}, abortable=False) - elif self.vitals.state == STARTED: + elif self.state == STARTED: self.wrapper.events.callevent( "server.started", {"reason": reason}, abortable=False) - elif self.vitals.state == STOPPING: + elif self.state == STOPPING: self.wrapper.events.callevent( "server.stopping", {"reason": reason}, abortable=False) self.wrapper.events.callevent( @@ -592,7 +601,7 @@ def server_reload(self): is in proxy mode, it will reconnect all clients to the serverconnection. """ - if self.vitals.state in (STOPPING, OFF): + if self.state in (STOPPING, OFF): self.log.warning( "The server is not already running... Just use '/start'.") return @@ -657,14 +666,14 @@ def read_ops_file(self, read_super_ops=True): """ ops = False # (4 = PROTOCOL_1_7 ) - 1.7.6 or greater use ops.json - if self.vitals.protocolVersion > 4: + if self.version_compute > 10700: ops = getjsonfile( - "ops", self.vitals.serverpath, encodedas=self.encoding + "ops", self.serverpath, encodedas=self.encoding ) if not ops: # try for an old "ops.txt" file instead. ops = [] - opstext = getfileaslines("ops.txt", self.vitals.serverpath) + opstext = getfileaslines("ops.txt", self.serverpath) if not opstext: return False for op in opstext: @@ -681,17 +690,17 @@ def read_ops_file(self, read_super_ops=True): # Grant "owner" an op level above 4. required for some wrapper commands if read_super_ops: for eachop in ops: - if eachop["name"] in self.vitals.ownernames: - eachop["level"] = self.vitals.ownernames[eachop["name"]] + if eachop["name"] in self.ownernames: + eachop["level"] = self.ownernames[eachop["name"]] return ops def refresh_ops(self, read_super_ops=True): - self.vitals.ownernames = config_to_dict_read("superops.txt", ".") - if self.vitals.ownernames == {}: + self.ownernames = config_to_dict_read("superops.txt", ".") + if self.ownernames == {}: sample = "=10\n=9" with open("superops.txt", "w") as f: f.write(sample) - self.vitals.operator_list = self.read_ops_file(read_super_ops) + self.operator_list = self.read_ops_file(read_super_ops) def getmemoryusage(self): """Returns allocated memory in bytes. This command @@ -767,21 +776,21 @@ def readconsole(self, buff): break line_words = buff.split(' ')[self.prepends_offset:] - self.vitals.version = getargs(line_words, 4) - semantics = self.vitals.version.split(".") + self.version = getargs(line_words, 4) + semantics = self.version.split(".") release = get_int(getargs(semantics, 0)) major = get_int(getargs(semantics, 1)) minor = get_int(getargs(semantics, 2)) - self.vitals.version_compute = minor + (major * 100) + (release * 10000) # noqa + self.version_compute = minor + (major * 100) + (release * 10000) # noqa - if len(self.vitals.version.split("w")) > 1: + if len(self.version.split("w")) > 1: # It is a snap shot - self.vitals.version_compute = 10800 + self.version_compute = 10800 # 1.7.6 (protocol 5) is the cutoff where ops.txt became ops.json - if self.vitals.version_compute > 10705 and self.vitals.protocolVersion < 0: # noqa - self.vitals.protocolVersion = 5 + if self.version_compute > 10705 and self.protocolVersion < 0: # noqa + self.protocolVersion = 5 self.wrapper.api.registerPermission("mc1.7.6", value=True) - if self.vitals.version_compute < 10702 and self.wrapper.proxymode: + if self.version_compute < 10702 and self.wrapper.proxymode: self.log.warning("\nProxy mode cannot run because the " "server is a pre-Netty version:\n\n" "http://wiki.vg/Protocol_version_numbers" @@ -826,25 +835,25 @@ def readconsole(self, buff): " (I.e., this wrapper is a multiworld for a hub server, or" " you are doing your own authorization via a plugin)." % ( prefix, prefix, prefix, - self.vitals.server_port, self.wrapper.proxy.proxy_port)) + self.server_port, self.wrapper.proxy.proxy_port)) else: message = ( "%s Since you are running Wrapper in proxy mode, this" " should be ok because Wrapper is handling the" " authentication, PROVIDED no one can access port" " %s from outside your network." % ( - prefix, self.vitals.server_port)) + prefix, self.server_port)) if self.wrapper.proxymode: buff = message # read port of server and display proxy port, if applicable if "Starting Minecraft server on" in buff: - self.vitals.server_port = get_int(buff.split(':')[-1:][0]) + self.server_port = get_int(buff.split(':')[-1:][0]) # check for server console spam before printing to wrapper console server_spaming = False - for things in self.vitals.spammy_stuff: + for things in self.spammy_stuff: if things in buff: server_spaming = True @@ -868,8 +877,8 @@ def readconsole(self, buff): # Getting world name elif "Preparing level" in buff: - self.vitals.worldname = getargs(line_words, 2).replace('"', "") - self.world = World(self.vitals.worldname, self) + self.worldname = getargs(line_words, 2).replace('"', "") + self.world = World(self.worldname, self) # Player Message elif first_word[0] == "<": @@ -988,7 +997,7 @@ def readconsole(self, buff): elif second_word == "Teleported" and getargs(line_words, 3) == "to": playername = getargs(line_words, 2) # [SurestTexas00: Teleported SapperLeader to 48.49417131908783, 77.67081086259394, -279.88880690937475] # noqa - if playername in self.wrapper.servervitals.players: + if playername in self.wrapper.players: playerobj = self.getplayer(playername) playerobj._position = [ get_int(float(getargs(line_words, 4).split(",")[0])), @@ -1018,7 +1027,7 @@ def readconsole(self, buff): elif first_word == "Teleported" and getargs(line_words, 2) == "to": playername = second_word # Teleported SurestTexas00 to 48.49417131908783, 77.67081086259394, -279.88880690937475 # noqa - if playername in self.wrapper.servervitals.players: + if playername in self.wrapper.players: playerobj = self.getplayer(playername) playerobj._position = [ get_int(float(getargs(line_words, 3).split(",")[0])), @@ -1052,7 +1061,7 @@ def reboot_timer(self): while not self.wrapper.haltsig.halt: time.sleep(1) timer = rb_mins - rb_mins_warn - while self.vitals.state in (STARTED, STARTING): + while self.state in (STARTED, STARTING): timer -= 1 time.sleep(60) if timer > 0: @@ -1094,17 +1103,17 @@ def reboot_timer(self): def eachsecond_web(self): if time.time() - self.lastsizepoll > 120: - if self.vitals.worldname is None: + if self.worldname is None: return True self.lastsizepoll = time.time() size = 0 # os.scandir not in standard library on early py2.7.x systems for i in os.walk( - "%s/%s" % (self.vitals.serverpath, self.vitals.worldname) + "%s/%s" % (self.serverpath, self.worldname) ): for f in os.listdir(i[0]): size += os.path.getsize(os.path.join(i[0], f)) - self.vitals.worldsize = size + self.worldsize = size def _console_event(self, payload): """This function is used in conjunction with event handlers to diff --git a/wrapper/core/servervitals.py b/wrapper/core/servervitals.py deleted file mode 100644 index e8108536..00000000 --- a/wrapper/core/servervitals.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (C) 2016, 2017 - BenBaptist and Wrapper.py developer(s). -# https://github.com/benbaptist/minecraft-wrapper -# This program is distributed under the terms of the GNU -# General Public License, version 3 or later. - - -class ServerVitals(object): - """ Centralized location for server information. This class also - permits sharing of server information between the caller (such as - a Wrapper instance) and proxy.""" - def __init__(self, playerobjects): - - # operational info - self.serverpath = "" - self.state = 0 - self.server_port = "25564" - self.command_prefix = "/" - - # Shared data structures and run-time - self.players = playerobjects - - # TODO - I don't think this is used or needed (same name as proxy.entity_control!) - self.entity_control = None - # -1 until a player logs on and server sends a time update - self.timeofday = -1 - self.spammy_stuff = ["found nothing", "vehicle of", "Wrong location!", - "Tried to add entity", ] - - # PROPOSE - self.clients = [] - - # owner/op info - self.ownernames = {} - self.operator_list = [] - - # server properties and folder infos - self.properties = {} - self.worldname = None - self.worldsize = 0 - self.maxplayers = 20 - self.motd = None - self.serverIcon = None - - # # Version information - # -1 until proxy mode checks the server's MOTD on boot - self.protocolVersion = -1 - # this is string name of the version, collected by console output - self.version = "" - # a comparable number = x0y0z, where x, y, z = release, - # major, minor, of version. - self.version_compute = 0 diff --git a/wrapper/core/wrapper.py b/wrapper/core/wrapper.py index 829f61a0..183c1348 100644 --- a/wrapper/core/wrapper.py +++ b/wrapper/core/wrapper.py @@ -51,7 +51,7 @@ from core.irc import IRC from core.scripts import Scripts import core.buildinfo as buildinfo -from proxy.utils.mcuuid import UUIDS +from proxy.utils.mcuuid import UUIDS, MCUUID from core.config import Config from core.backups import Backups from core.consoleuser import ConsolePlayer @@ -60,8 +60,7 @@ from utils.crypt import Crypt, phrase_to_url_safebytes, gensalt # optional API type stuff -from core.servervitals import ServerVitals -from proxy.base import Proxy, ProxyConfig, HaltSig +from proxy.base import Proxy from api.base import API import management.web as manageweb @@ -188,9 +187,8 @@ def __init__(self, secret_passphrase): # the value of self.haltsig would not necessarily change the value of # the passed parameter (unless it was specifically referenced back as # `wrapper.haltsig`). Since the halt signal needs to be passed, possibly - # several layers deep, and into modules that it may be desireable to - # not have direct access to wrapper, using a HaltSig object is - # required to ensure we are actually sharing the same value between + # several layers deep, and into other modules , using a HaltSig object + # is required to ensure we are actually sharing the same value between # different objects. self.haltsig = HaltSig() @@ -207,6 +205,7 @@ def __init__(self, secret_passphrase): # core functions and datasets self.perms = Permissions(self) self.uuids = UUIDS(self.log, self.usercache) + self.mcuuid = MCUUID self.plugins = Plugins(self) self.commands = Commands(self) self.events = Events(self) @@ -237,24 +236,6 @@ def __init__(self, secret_passphrase): " console functioning. Press to acknowledge...") sys.stdin.readline() - # create server/proxy vitals and config objects - self.servervitals = ServerVitals(self.players) - - # LETS TAKE A SECOND TO DISCUSS PLAYER OBJECTS: - # The ServerVitals class gets passed the player object list now, but - # player objects are now housed in wrapper. This is how we are - # passing information between proxy and wrapper. - - self.servervitals.serverpath = self.config[ - "General"]["server-directory"] - self.servervitals.state = OFF - self.servervitals.command_prefix = self.config[ - "Proxy"]["command-prefix"] - - self.proxyconfig = ProxyConfig() - self.proxyconfig.proxy = self.config["Proxy"] - self.proxyconfig.entity = self.config["Entities"] - def __del__(self): """prevent error message on very first wrapper starts when wrapper exits after creating new wrapper.properties file. @@ -281,7 +262,7 @@ def start(self): self._registerwrappershelp() # The MCServerclass is a console wherein the server is started - self.javaserver = MCServer(self, self.servervitals) + self.javaserver = MCServer(self) self.javaserver.init() # load plugins @@ -403,7 +384,7 @@ def sigtstp(*args): self._halt() def _halt(self): - if self.servervitals.state in (1, 2): + if self.javaserver.state in (1, 2): self.javaserver.stop(self.halt_message, restart_the_server=False) self.haltsig.halt = True @@ -812,7 +793,7 @@ def isonlinemode(self): return self.config["Proxy"]["online-mode"] if self.javaserver: try: - return self.servervitals.properties["online-mode"] + return self.javaserver.properties["online-mode"] except KeyError: pass return False @@ -844,9 +825,7 @@ def _start_emailer(self): def _startproxy(self): try: - self.proxy = Proxy(self.haltsig, self.proxyconfig, self.servervitals, - self.log, self.wrapper_usercache, self.events, - self.encoding) + self.proxy = Proxy(self) except ImportError: self.log.error("Proxy mode not started because of missing " "dependencies for encryption!") @@ -855,7 +834,7 @@ def _startproxy(self): # wait for server to start timer = 0 - while self.servervitals.state < STARTED: + while self.javaserver.state < STARTED: timer += 1 time.sleep(.1) if timer > 1200: @@ -866,7 +845,7 @@ def _startproxy(self): self.disable_proxymode() return - if self.proxy.proxy_port == self.servervitals.server_port: + if self.proxy.proxy_port == self.javaserver.server_port: self.log.warning("Proxy mode cannot start because the wrapper" " port is identical to the server port.") self.disable_proxymode() @@ -1340,3 +1319,16 @@ def _show_help_bans(self, player): " displays on single page!)", separator="[players|ips] [searchtext] ", pad=12, usereadline=self.use_readline, player=player) + + +class HaltSig(object): + """ + HaltSig is simply a sort of dummy class created for the + proxy. proxy expects this object with a self.halt property + that tells proxy to shutdown. The caller maintains control + of the Haltsig object and uses it to signal the proxy to + shut down. The caller will import this class, instantiate + it, and then pass the object to proxy as the argument for + termsignal.""" + def __init__(self): + self.halt = False diff --git a/wrapper/management/web.py b/wrapper/management/web.py index 4d4e4983..afdc390d 100644 --- a/wrapper/management/web.py +++ b/wrapper/management/web.py @@ -696,8 +696,8 @@ def run_action(self, request): last_refresh = time.time() players = [] refresh_time = time.time() - for i in self.wrapper.servervitals.players: - player = self.wrapper.servervitals.players[i] + for i in self.wrapper.players: + player = self.wrapper.players[i] players.append({ "name": i, "loggedIn": player.loggedIn, @@ -743,17 +743,17 @@ def run_action(self, request): mem_use = self.wrapper.memory_usage() wrapper_peak_mem = mem_use["peak"] * 1000 wrapper_rss_mem = mem_use["rss"] * 1000 - stats = {"playerCount": (len(self.wrapper.servervitals.players), - self.wrapper.servervitals.maxplayers), + stats = {"playerCount": (len(self.wrapper.players), + self.wrapper.proxy.maxplayers), "players": players, "plugins": plugins, - "server_state": self.wrapper.servervitals.state, + "server_state": self.wrapper.javaserver.state, "wrapper_build": self.wrapper.getbuildstring(), "console": console_scrollback, "chat": chat_scrollback, - "level_name": self.wrapper.servervitals.worldname, - "server_version": self.wrapper.servervitals.version, - "motd": self.wrapper.servervitals.motd, + "level_name": self.wrapper.javaserver.worldname, + "server_version": self.wrapper.javaserver.version, + "motd": self.wrapper.javaserver.motd, "last_refresh": refresh_time, "disk_avail": self.web.getdisk_usage(), "server_name": self.config["Web"]["server-name"], @@ -761,7 +761,7 @@ def run_action(self, request): "wrapper_memory_rss": wrapper_rss_mem, "wrapper_memory_peak": wrapper_peak_mem, "server_memory_graph": memory_graph, - "world_size": self.wrapper.servervitals.worldsize + "world_size": self.wrapper.javaserver.worldsize } return stats diff --git a/wrapper/proxy/base.py b/wrapper/proxy/base.py index 82762651..e6f61bbe 100644 --- a/wrapper/proxy/base.py +++ b/wrapper/proxy/base.py @@ -20,11 +20,9 @@ from utils.py23 import py_str from proxy.utils.constants import * -from proxy.utils import mcuuid from proxy.entity.entitycontrol import EntityControl # encryption requires 'cryptography' package. - try: import proxy.utils.encryption as encryption except ImportError: @@ -50,101 +48,20 @@ Client = False Packet = False -""" The whole point of what follows was originally intended to -support making proxy an independent thing that does not need -a wrapper or server instance to function. Not sure it was a -great idea, but... We shall see.""" - -class NullEventHandler(object): - def __init__(self): - pass +class Proxy(object): + def __init__(self, wrapper): + self.wrapper = wrapper + self.javaserver = self.wrapper.javaserver + self.encoding = self.wrapper.encoding + self.config = self.wrapper.config["Proxy"] + self.ent_config = self.wrapper.config["Entities"] + self.log = self.wrapper.log - def callevent(self, event, payload): - """ - An event handler must have this method that expects - two positional arguments: - :event: The string name of the event. - :payload: A dictionary of items describing the event (varies - with event. - """ - pass - - -class HaltSig(object): - """ - HaltSig is simply a sort of dummy class created for the - proxy. proxy expects this object with a self.halt property - that tells proxy to shutdown. The caller maintains control - of the Haltsig object and uses it to signal the proxy to - shut down. The caller will import this class, instantiate - it, and then pass the object to proxy as the argument for - termsignal.""" - def __init__(self): - self.halt = False - - -class ProxyConfig(object): - def __init__(self): - self.proxy = { - "auto-name-changes": True, - "hidden-ops": [], - "max-players": 1024, - "online-mode": True, - "proxy-bind": "0.0.0.0", - "proxy-enabled": True, - "proxy-port": 25570, - "silent-ipban": True, - } - self.entity = { - "enable-entity-controls": False, - "entity-update-frequency": 4, - "thin-chicken": 30, - "thin-cow": 40, - "thin-sheep": 40, - "thin-zombie_pigman": 200, - "thinning-activation-threshhold": 100, - "thinning-frequency": 30 - } - - -""" -class ServerVitals(object): - def __init__(self, playerobjects): - self.serverpath = "" - self.state = 0 - self.server_port = "25564" - self.command_prefix = "/" - self.players = playerobjects - self.entity_control = None - self.timeofday = -1 - self.spammy_stuff = ["found nothing", "vehicle of", "Wrong location!", - "Tried to add entity", ] self.clients = [] - self.ownernames = {} - self.operator_list = [] - self.properties = {} - self.worldname = None - self.worldsize = 0 self.maxplayers = 20 - self.motd = None - self.serverIcon = None - self.protocolVersion = -1 - self.version = "" - self.version_compute = 0 -""" - - -class Proxy(object): - def __init__(self, termsignal, config, servervitals, loginstance, - usercache_object, eventhandler, encoding="utf-8"): + self.command_prefix = self.config["command-prefix"] - self.encoding = encoding - self.srv_data = servervitals - self.config = config.proxy - self.ent_config = config.entity - - self.log = loginstance # encryption = False if proxy.utils.encryption does not import if not encryption and self.config["proxy-enabled"]: self.log.error(importerror) @@ -157,22 +74,19 @@ def __init__(self, termsignal, config, servervitals, loginstance, "esources for possible solutions") raise ImportError() - self.usercache = usercache_object.Data - self.usercache_obj = usercache_object - self.eventhandler = eventhandler - self.uuids = mcuuid.UUIDS(self.log, self.usercache) + self.usercache_obj = self.wrapper.wrapper_usercache + self.usercache = self.usercache_obj.Data + self.eventhandler = self.wrapper.events + self.uuids = self.wrapper.uuids - # termsignal is an object with a `halt` property set to True/False - # it represents the calling program's run status - self.caller = termsignal - # Proxy's run status (set True to shutdown/ end `host()` while loop + # Proxy's run status (set True to shutdown/ end `host()` while loop) self.abort = False # self assignments (gets specific values) self.proxy_bind = self.config["proxy-bind"] self.proxy_port = int(self.config["proxy-port"]) self.silent_ip_banning = self.config["silent-ipban"] - self.srv_data.maxPlayers = self.config["max-players"] + self.maxlayers = self.config["max-players"] self.proxy_worlds = self.config["worlds"] self.usehub = self.config["built-in-hub"] self.onlinemode = self.config["online-mode"] @@ -212,7 +126,7 @@ def host(self): server is fully up and running.""" # loops while server is not started (STARTED = 2) - while not self.srv_data.state == 2: + while not self.javaserver.state == 2: time.sleep(1) # get the protocol version from the server @@ -223,8 +137,8 @@ def host(self): "check server/wrapper configs? (%s)", e) args = [-1, "none", False] - self.srv_data.protocolVersion = args[0] - self.srv_data.version = args[1] + self.javaserver.protocolVersion = args[0] + self.javaserver.version = args[1] self.forge = args[2] if self.forge: self.mod_info["modinfo"] = args[3] @@ -247,7 +161,7 @@ def host(self): self.entity_control = EntityControl(self) # accept clients and start their threads - while not (self.abort or self.caller.halt): + while not (self.abort or self.wrapper.haltsig.halt): try: sock, addr = self.proxy_socket.accept() except Exception as e: @@ -272,11 +186,11 @@ def host(self): def removestaleclients(self): """removes aborted client and player objects""" - for i, client in enumerate(self.srv_data.clients): - if self.srv_data.clients[i].abort: - if self.srv_data.clients[i].username in self.srv_data.players: - del self.srv_data.players[self.srv_data.clients[i].username] - self.srv_data.clients.pop(i) + for i, client in enumerate(self.clients): + if self.clients[i].abort: + if self.clients[i].username in self.wrapper.players: + del self.wrapper.players[self.clients[i].username] + self.clients.pop(i) def pollserver(self, host="localhost", port=None): """ @@ -289,7 +203,7 @@ def pollserver(self, host="localhost", port=None): modinfo (if Forge) ] """ if port is None: - port = self.srv_data.server_port + port = self.javaserver.server_port server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) @@ -303,7 +217,7 @@ def pollserver(self, host="localhost", port=None): # Disconnect packet.sendpkt(0x00, [NULL, ], ["", ]) packet.flush() - self.srv_data.protocolVersion = -1 + self.javaserver.protocolVersion = -1 container = [] while True: pkid, packet_tuple = packet.grabpacket() @@ -352,7 +266,9 @@ def use_newname(self, oldname, newname, realuuid, client): old_local_uuid = self.uuids.getuuidfromname(oldname) new_local_uuid = self.uuids.getuuidfromname(newname) cwd = "%s/%s" % ( - self.srv_data.serverpath, self.srv_data.worldname) + self.javaserver.serverpath, + self.javaserver.worldname + ) self.uuids.convert_files(old_local_uuid, new_local_uuid, cwd) self.usercache[realuuid]["localname"] = newname client.info["username"] = newname @@ -366,7 +282,7 @@ def getclientbyofflineserveruuid(self, uuid): :return: the matching client """ attempts = ["Search: %s" % str(uuid)] - for client in self.srv_data.clients: + for client in self.clients: attempts.append("try: client-%s uuid-%s serveruuid-%s name-%s" % (client, client.wrapper_uuid.string, client.local_uuid.string, client.username)) @@ -375,7 +291,7 @@ def getclientbyofflineserveruuid(self, uuid): return client self.log.debug("getclientbyofflineserveruuid failed: \n %s", attempts) - self.log.debug("POSSIBLE CLIENTS: \n %s", self.srv_data.clients) + self.log.debug("POSSIBLE CLIENTS: \n %s", self.clients) return False # no client def banplayer(self, playername, reason="Banned by an operator", @@ -398,7 +314,9 @@ def getuuidbanreason(self, uuid): :param uuid: uuid of player as string :return: string representing ban reason """ - banlist = getjsonfile("banned-players", self.srv_data.serverpath) + banlist = getjsonfile( + "banned-players", self.javaserver.serverpath + ) if banlist: banrecord = find_in_json(banlist, "uuid", uuid) return "%s by %s" % (banrecord["reason"], banrecord["source"]) @@ -418,7 +336,9 @@ def banuuid(self, uuid, reason="The Ban Hammer has spoken!", This probably only works on 1.7.10 servers or later """ - banlist = getjsonfile("banned-players", self.srv_data.serverpath) + banlist = getjsonfile( + "banned-players", self.javaserver.serverpath + ) if banlist is not False: # file and directory exist. if banlist is None: # file was empty or not valid banlist = dict() # ensure valid dict before operating on it @@ -442,7 +362,7 @@ def banuuid(self, uuid, reason="The Ban Hammer has spoken!", "reason": reason}) if putjsonfile(banlist, "banned-players", - self.srv_data.serverpath): + self.javaserver.serverpath): # this actually is not needed. Commands now handle the kick. console_command = "kick %s %s" % (name, reason) self.run_command(console_command) @@ -467,7 +387,9 @@ def banuuidraw(self, uuid, username, reason="The Ban Hammer has spoken!", This probably only works on 1.7.10 servers or later """ - banlist = getjsonfile("banned-players", self.srv_data.serverpath) + banlist = getjsonfile( + "banned-players", self.javaserver.serverpath + ) if banlist is not False: # file and directory exist. if banlist is None: # file was empty or not valid banlist = dict() # ensure valid dict before operating on it @@ -490,7 +412,7 @@ def banuuidraw(self, uuid, username, reason="The Ban Hammer has spoken!", "reason": reason}) if putjsonfile(banlist, "banned-players", - self.srv_data.serverpath): + self.javaserver.serverpath): self.log.info("kicking %s... %s", username, reason) console_command = "kick %s Banned: %s" % (username, reason) @@ -517,7 +439,7 @@ def banip(self, ipaddress, reason="The Ban Hammer has spoken!", """ if not isipv4address(ipaddress): return "Invalid IPV4 address: %s" % ipaddress - banlist = getjsonfile("banned-ips", self.srv_data.serverpath) + banlist = getjsonfile("banned-ips", self.javaserver.serverpath) if banlist is not False: # file and directory exist. if banlist is None: # file was empty or not valid banlist = dict() # ensure valid dict before operating on it @@ -537,9 +459,10 @@ def banip(self, ipaddress, reason="The Ban Hammer has spoken!", "source": source, "expires": expiration, "reason": reason}) - if putjsonfile(banlist, "banned-ips", self.srv_data.serverpath): + if putjsonfile(banlist, "banned-ips", + self.javaserver.serverpath): banned = "" - for client in self.srv_data.clients: + for client in self.clients: if client.ip == str(ipaddress): console_command = "kick %s Your IP is Banned!" % client.username # noqa @@ -555,7 +478,7 @@ def banip(self, ipaddress, reason="The Ban Hammer has spoken!", def pardonip(self, ipaddress): if not isipv4address(ipaddress): return "Invalid IPV4 address: %s" % ipaddress - banlist = getjsonfile("banned-ips", self.srv_data.serverpath) + banlist = getjsonfile("banned-ips", self.javaserver.serverpath) if banlist is not False: # file and directory exist. if banlist is None: # file was empty or not valid return "No IP bans have ever been recorded." @@ -564,7 +487,8 @@ def pardonip(self, ipaddress): for x in banlist: if x == banrecord: banlist.remove(x) - if putjsonfile(banlist, "banned-ips", self.srv_data.serverpath): + if putjsonfile(banlist, "banned-ips", + self.javaserver.serverpath): return "pardoned %s" % ipaddress return "Could not write banlist to disk" else: @@ -574,7 +498,9 @@ def pardonip(self, ipaddress): return "Banlist not found on disk" # error text def pardonuuid(self, uuid): - banlist = getjsonfile("banned-players", self.srv_data.serverpath) + banlist = getjsonfile( + "banned-players", self.javaserver.serverpath + ) if banlist is not False: # file and directory exist. if banlist is None: # file was empty or not valid return "No bans have ever been recorded..?" @@ -585,7 +511,7 @@ def pardonuuid(self, uuid): banlist.remove(x) if putjsonfile(banlist, "banned-players", - self.srv_data.serverpath): + self.javaserver.serverpath): name = self.uuids.getusernamebyuuid(str(uuid)) return "pardoned %s" % name return "Could not write banlist to disk" @@ -595,7 +521,9 @@ def pardonuuid(self, uuid): return "Banlist not found on disk" # error text def pardonname(self, username): - banlist = getjsonfile("banned-players", self.srv_data.serverpath) + banlist = getjsonfile( + "banned-players", self.javaserver.serverpath + ) if banlist is not False: # file and directory exist. if banlist is None: # file was empty or not valid return "No bans have ever been recorded..?" @@ -606,7 +534,7 @@ def pardonname(self, username): banlist.remove(x) if putjsonfile(banlist, "banned-players", - self.srv_data.serverpath): + self.javaserver.serverpath): return "pardoned %s" % username return "Could not write banlist to disk" else: @@ -615,7 +543,9 @@ def pardonname(self, username): return "Banlist not found on disk" # error text def isuuidbanned(self, uuid): # Check if the UUID of the user is banned - banlist = getjsonfile("banned-players", self.srv_data.serverpath) + banlist = getjsonfile( + "banned-players", self.javaserver.serverpath + ) if banlist: # make sure banlist exists banrecord = find_in_json(banlist, "uuid", str(uuid)) if banrecord: @@ -635,7 +565,7 @@ def isuuidbanned(self, uuid): # Check if the UUID of the user is banned return False # banlist empty or record not found def isipbanned(self, ipaddress): # Check if the IP address is banned - banlist = getjsonfile("banned-ips", self.srv_data.serverpath) + banlist = getjsonfile("banned-ips", self.javaserver.serverpath) if banlist: # make sure banlist exists for record in banlist: _ip = record["ip"] diff --git a/wrapper/proxy/client/clientconnection.py b/wrapper/proxy/client/clientconnection.py index 9da4ce33..7cc234cb 100644 --- a/wrapper/proxy/client/clientconnection.py +++ b/wrapper/proxy/client/clientconnection.py @@ -27,7 +27,6 @@ from proxy.packets import mcpackets_cb from proxy.utils.constants import * -from proxy.utils.mcuuid import MCUUID from api.helpers import processcolorcodes, getjsonfile, putjsonfile @@ -44,8 +43,7 @@ class Client(object): client (self.packet.sendpkt()) Client receives the parent proxy as it's argument. - No longer receives the proxy's wrapper instance! All - data is passed via srv_data from proxy's srv_data. + """ def __init__(self, proxy, clientsock, client_addr, banned=False): @@ -53,9 +51,10 @@ def __init__(self, proxy, clientsock, client_addr, banned=False): self.client_socket = clientsock self.client_address = client_addr self.proxy = proxy + self.wrapper = self.proxy.wrapper + self.javaserver = self.wrapper.javaserver self.public_key = self.proxy.public_key self.private_key = self.proxy.private_key - self.srv_data = self.proxy.srv_data self.log = self.proxy.log self.ipbanned = banned @@ -76,9 +75,9 @@ def __init__(self, proxy, clientsock, client_addr, banned=False): self.MOTD = {} # client will reset this later, if need be.. - self.clientversion = self.srv_data.protocolVersion + self.clientversion = self.javaserver.protocolVersion # default server port (to this wrapper's server) - self.serverport = self.srv_data.server_port + self.serverport = self.javaserver.server_port # packet stuff self.pktSB = mcpackets_sb.Packets(self.clientversion) @@ -306,7 +305,7 @@ def _flush_loop(self): if self.username != "PING REQUEST": self.log.debug("%s clientconnection _flush_loop thread ended", self.username) - self.proxy.removestaleclients() # from proxy.srv_data.clients + self.proxy.removestaleclients() # from proxy.clients def _parse(self, pkid): """ @@ -443,20 +442,20 @@ def _parse_handshaking(self): # and cannot be sure of the info itself if not self.onlinemode: # Spigot and Wrapper share this in common: - self.mojanguuid = MCUUID(splitaddress[2]) + self.mojanguuid = self.proxy.wrapper.mcuuid(splitaddress[2]) self.info["realuuid"] = self.mojanguuid.string self.ip = splitaddress[1] if len(splitaddress) > 3 and splitaddress[3] == "WPY": self.info["client-is-wrapper"] = True - if self.srv_data.protocolVersion == -1: + if self.javaserver.protocolVersion == -1: # ... returns -1 to signal no server self.disconnect( "The server is not started (protocol not established)." ) return False - if not self.srv_data.state == 2: + if not self.javaserver.state == 2: self.disconnect( "Server has not finished booting. Please try" " connecting again in a few seconds" @@ -467,7 +466,7 @@ def _parse_handshaking(self): self.disconnect("You're running an unsupported snapshot" " (protocol: %s)!" % self.clientversion) return False - if self.srv_data.protocolVersion != self.clientversion: + if self.javaserver.protocolVersion != self.clientversion: self.disconnect("You're not running the same Minecraft" " version as the server!") return False @@ -499,16 +498,16 @@ def _parse_status_request(self): back to HANDSHAKE mode. """ sample = [] - for player in self.srv_data.players: - playerobj = self.srv_data.players[player] + for player in self.proxy.wrapper.players: + playerobj = self.proxy.wrapper.players[player] if playerobj.username not in self.hidden_ops: sample.append({"name": playerobj.username, "id": str(playerobj.mojangUuid)}) if len(sample) > 5: break - reported_version = self.srv_data.protocolVersion - reported_name = self.srv_data.version - motdtext = self.srv_data.motd + reported_version = self.javaserver.protocolVersion + reported_name = self.javaserver.version + motdtext = self.javaserver.motd if self.clientversion >= PROTOCOL_1_8START: motdtext = processcolorcodes(motdtext.replace( "\\", "")) @@ -516,7 +515,7 @@ def _parse_status_request(self): "description": motdtext, "players": { "max": int(self.proxy.config["max-players"]), - "online": len(self.srv_data.players), + "online": len(self.proxy.wrapper.players), "sample": sample }, "version": { @@ -526,8 +525,8 @@ def _parse_status_request(self): } # add Favicon, if it exists - if self.srv_data.serverIcon: - self.MOTD["favicon"] = self.srv_data.serverIcon + if self.javaserver.servericon: + self.MOTD["favicon"] = self.javaserver.servericon # add Forge information, if applicable. if self.proxy.forge: @@ -625,7 +624,7 @@ def _parse_login_encr_response(self): """ # read response Tokens - "shared_secret|verify_token" - if self.srv_data.protocolVersion < 6: + if self.javaserver.protocolVersion < 6: data = self.packet.readpkt([BYTEARRAY_SHORT, BYTEARRAY_SHORT]) else: data = self.packet.readpkt([BYTEARRAY, BYTEARRAY]) @@ -684,7 +683,7 @@ def _logon_client_into_proxy(self): return # add client (or disconnect if full - if len(self.proxy.srv_data.clients) < self.proxy.config["max-players"]: + if len(self.proxy.clients) < self.proxy.config["max-players"]: self._add_client() else: uuids = getjsonfile( @@ -744,7 +743,7 @@ def _logon_client_into_proxy(self): self.state = HANDSHAKE self.disconnect("Login denied by a Plugin.") - del self.srv_data.players[self.username] + del self.proxy.wrapper.players[self.username] return self.permit_disconnect_from_server = True @@ -757,8 +756,8 @@ def _logon_client_into_proxy(self): # set compression # compression was at the bottom of _login_authenticate_client... if self.clientversion >= PROTOCOL_1_8START: - if "network-compression-threshold" in self.proxy.srv_data.properties: # noqa - comp = self.proxy.srv_data.properties[ + if "network-compression-threshold" in self.javaserver.properties: # noqa + comp = self.javaserver.properties[ "network-compression-threshold"] self.packet.sendpkt( self.pktCB.LOGIN_SET_COMPRESSION[PKT], [VARINT], [comp]) @@ -1248,7 +1247,7 @@ def _login_authenticate_client(self, server_id): # } requestdata = r.json() playerid = requestdata["id"] - self.wrapper_uuid = MCUUID(playerid) + self.wrapper_uuid = self.proxy.wrapper.mcuuid(playerid) if requestdata["name"] != self.username: self.disconnect("Client's username did not" @@ -1334,8 +1333,8 @@ def _add_client(self): Put client into server data. (player login will be called later by mcserver.py) """ - if self not in self.proxy.srv_data.clients: - self.proxy.srv_data.clients.append(self) + if self not in self.proxy.clients: + self.proxy.clients.append(self) def _keep_alive_tracker(self): """ @@ -1386,10 +1385,10 @@ def _remove_client_and_player(self): onto the local server (which normally keeps tabs on player and client objects). """ - if self.username in self.proxy.srv_data.players: - if self.proxy.srv_data.players[self.username].client.state != LOBBY: - self.proxy.srv_data.players[self.username].abort = True - del self.proxy.srv_data.players[self.username] + if self.username in self.proxy.wrapper.players: + if self.proxy.wrapper.players[self.username].client.state != LOBBY: + self.proxy.wrapper.players[self.username].abort = True + del self.proxy.wrapper.players[self.username] def send_client_settings(self): """ diff --git a/wrapper/proxy/client/parse_sb.py b/wrapper/proxy/client/parse_sb.py index 0d8cc9c9..566f8ec5 100644 --- a/wrapper/proxy/client/parse_sb.py +++ b/wrapper/proxy/client/parse_sb.py @@ -10,7 +10,6 @@ import time from proxy.utils.constants import * -from proxy.utils.mcuuid import MCUUID # noinspection PyMethodMayBeStatic @@ -26,7 +25,7 @@ def __init__(self, client, packet): self.pktSB = self.client.pktSB self.pktCB = self.client.pktCB - self.command_prefix = self.proxy.srv_data.command_prefix + self.command_prefix = self.proxy.command_prefix self.command_prefix_non_standard = self.command_prefix != "/" def keep_alive(self): @@ -78,12 +77,14 @@ def _plugin_response(self, response): """ if "ip" in response: self.client.info["username"] = response["username"] - self.client.info["realuuid"] = MCUUID(response["realuuid"]).string + self.client.info["realuuid"] = self.proxy.wrapper.mcuuid( + response["realuuid"]).string self.client.info["ip"] = response["ip"] self.client.ip = response["ip"] if response["realuuid"] != "": - self.client.mojanguuid = MCUUID(response["realuuid"]) + self.client.mojanguuid = self.proxy.wrapper.mcuuid( + response["realuuid"]) self.client.username = response["username"] return True else: @@ -173,7 +174,7 @@ def play_chat_message(self): return True try: - player = self.client.srv_data.players[self.client.username] + player = self.client.proxy.wrapper.players[self.client.username] except KeyError: return False payload = self.proxy.eventhandler.callevent("player.rawMessage", { @@ -228,7 +229,7 @@ def play_chat_message(self): "playername": self.client.username, "player": - self.client.srv_data.players[self.client.username], + self.client.proxy.wrapper.players[self.client.username], "command": allwords[0][1:], "args": @@ -287,7 +288,7 @@ def _world_hub_command(self, where=""): return self._world_hub_help("w") elif where == "": - port = self.proxy.srv_data.server_port + port = self.client.javaserver.server_port ip = "127.0.0.1" else: worlds = self.proxy.proxy_worlds @@ -373,7 +374,7 @@ def play_player_digging(self): position = data[1] try: - player = self.client.srv_data.players[self.client.username] + player = self.client.proxy.wrapper.players[self.client.username] except KeyError: return False # finished digging @@ -419,7 +420,7 @@ def play_player_digging(self): if self.client.gamemode != 1: if not self.proxy.eventhandler.callevent("player.dig", { "playername": self.client.username, - "player": self.client.srv_data.players[ + "player": self.client.proxy.wrapper.players[ self.client.username], "position": position, "action": "begin_break", @@ -429,7 +430,7 @@ def play_player_digging(self): else: if not self.proxy.eventhandler.callevent("player.dig", { "playername": self.client.username, - "player": self.client.srv_data.players[ + "player": self.client.proxy.wrapper.players[ self.client.username], "position": position, "action": "end_break", @@ -536,7 +537,7 @@ def play_player_block_placement(self): position = (position[0] + 1, position[1], position[2]) try: - player = self.client.srv_data.players[self.client.username] + player = self.client.proxy.wrapper.players[self.client.username] except KeyError: return False @@ -594,7 +595,7 @@ def play_use_item(self): # no 1.8 or prior packet position = self.client.lastplacecoords[0] try: - player = self.client.srv_data.players[self.client.username] + player = self.client.proxy.wrapper.players[self.client.username] except KeyError: return False if not self.proxy.eventhandler.callevent("player.interact", { @@ -643,7 +644,7 @@ def play_player_update_sign(self): l4 = data[6] try: - player = self.client.srv_data.players[self.client.username] + player = self.client.proxy.wrapper.players[self.client.username] except KeyError: return False payload = self.proxy.eventhandler.callevent("player.createSign", { @@ -734,7 +735,7 @@ def play_click_window(self): # click window data = [False, 0, 0, 0, 0, 0, 0] try: - player = self.client.srv_data.players[self.client.username] + player = self.client.proxy.wrapper.players[self.client.username] except KeyError: return False datadict = { diff --git a/wrapper/proxy/entity/entitycontrol.py b/wrapper/proxy/entity/entitycontrol.py index cb5932ba..b3a46969 100644 --- a/wrapper/proxy/entity/entitycontrol.py +++ b/wrapper/proxy/entity/entitycontrol.py @@ -39,11 +39,11 @@ def __init__(self, proxy): self.proxy = proxy self.ent_config = self.proxy.ent_config - self.srvr_data = self.proxy.srv_data + self.javaserver = self.proxy.wrapper.javaserver self._log = self.proxy.log # Entities - living beings (includes XP orbs!) - pre1_11 = self.srvr_data.version_compute < 11100 + pre1_11 = self.javaserver.version_compute < 11100 entitylistobject = Entitytypes(pre1_11) self.entitytypes = entitylistobject.entitylist @@ -221,8 +221,8 @@ def _entity_processor(self): self._log.debug("_entityprocessor thread started.") timer = float(0) # server is running - while self.srvr_data.state in (1, 2, 4) and not ( - self.proxy.caller.halt or self.proxy.abort + while self.javaserver.state in (1, 2, 4) and not ( + self.proxy.wrapper.haltsig.halt or self.proxy.abort ): timer += .1 sleep(.1) @@ -234,7 +234,7 @@ def _entity_processor(self): # start looking for stale client entities playerlist = [] - for player in self.srvr_data.clients: + for player in self.proxy.clients: playerlist.append(player.username) entity_eids = list(self.entities.keys()) for eid in entity_eids: @@ -253,8 +253,8 @@ def _entity_thinner(self): timer = float(0) # while server is running - while self.srvr_data.state in (1, 2, 4) and not ( - self.proxy.caller.halt or self.proxy.abort + while self.javaserver.state in (1, 2, 4) and not ( + self.proxy.wrapper.haltsig.halt or self.proxy.abort ): timer += .1 @@ -270,7 +270,7 @@ def _entity_thinner(self): continue # gather client list - playerlist = self.srvr_data.clients + playerlist = self.proxy.clients # loop through playerlist for playerclient in playerlist: players_position = playerclient.position @@ -294,8 +294,8 @@ def _entity_thinner(self): # turn off console_spam server_msg = "Teleported %s to" % mob_type - if server_msg not in self.srvr_data.spammy_stuff: - self.srvr_data.spammy_stuff.append( + if server_msg not in self.javaserver.spammy_stuff: + self.javaserver.spammy_stuff.append( "Teleported %s to" % mob_type) # can't be too agressive with killing because @@ -313,8 +313,6 @@ def _kill_around_player(self, position, entity_name, count): pos = position # send those creatures away self._log.debug("killing %d %s" % (count, entity_name)) - - # if self.proxy.srv_data.protocolVersion < 204: console_command = "tp @e[type=%s,x=%d,y=%d,z=%d,c=%s] ~ ~-500 ~" % ( entity_name, pos[0], pos[1], pos[2], count) self.proxy.run_command(console_command) diff --git a/wrapper/proxy/packets/packet.py b/wrapper/proxy/packets/packet.py index e7b7918b..0133737f 100644 --- a/wrapper/proxy/packets/packet.py +++ b/wrapper/proxy/packets/packet.py @@ -18,7 +18,6 @@ # import StringIO # local -from proxy.utils.mcuuid import MCUUID from proxy.utils.constants import * # Py3-2 @@ -77,7 +76,7 @@ def __init__(self, sock, obj): # this is set by the calling class/method. Not presently used here, # but could be. maybe to decide which metadata parser to use? - self.version = self.obj.srv_data.protocolVersion + self.version = self.obj.javaserver.protocolVersion self.buffer = io.BytesIO() # Py3 # self.buffer = StringIO.StringIO() @@ -719,7 +718,7 @@ def read_position(self): return x, y, z def read_uuid(self): - return MCUUID(bytes=self.read_data(16)) + return self.obj.proxy.wrapper.mcuuid(bytes=self.read_data(16)) def read_metadata_1_9(self): meta_data = {} diff --git a/wrapper/proxy/server/parse_cb.py b/wrapper/proxy/server/parse_cb.py index de0cb122..011e7f6a 100644 --- a/wrapper/proxy/server/parse_cb.py +++ b/wrapper/proxy/server/parse_cb.py @@ -220,7 +220,7 @@ def play_chat_message(self): # self.log.debug(data) try: - player = self.client.srv_data.players[self.client.username] + player = self.proxy.wrapper.players[self.client.username] except KeyError: return False payload = self.proxy.eventhandler.callevent( @@ -284,7 +284,7 @@ def play_use_bed(self): data = self.packet.readpkt([VARINT, POSITION]) try: - player = self.client.srv_data.players[self.client.username] + player = self.proxy.wrapper.players[self.client.username] except KeyError: return False if data[0] == self.client.server_eid: @@ -336,7 +336,7 @@ def play_spawn_position(self): data = self.packet.readpkt([POSITION]) try: - player = self.client.srv_data.players[self.client.username] + player = self.proxy.wrapper.players[self.client.username] except KeyError: return False self.proxy.eventhandler.callevent( @@ -409,7 +409,7 @@ def play_time_update(self): # There could be a number of clients trying to update this at once # noinspection PyBroadException try: - self.proxy.srv_data.timeofday = data[1] + self.proxy.wrapper.javaserver.timeofday = data[1] except: pass return True @@ -441,7 +441,7 @@ def play_tab_complete(self): print([match]) try: - player = self.client.srv_data.players[self.client.username] + player = self.proxy.wrapper.players[self.client.username] except KeyError: return False payload = self.proxy.eventhandler.callevent( @@ -682,7 +682,7 @@ def play_attach_entity(self): if entityeid == self.client.server_eid: try: - player = self.client.srv_data.players[self.client.username] + player = self.proxy.wrapper.players[self.client.username] except KeyError: return False if not leash: diff --git a/wrapper/proxy/server/serverconnection.py b/wrapper/proxy/server/serverconnection.py index 27fcd62e..8c00f779 100644 --- a/wrapper/proxy/server/serverconnection.py +++ b/wrapper/proxy/server/serverconnection.py @@ -19,7 +19,6 @@ from proxy.packets import mcpackets_cb from proxy.utils.constants import * -from proxy.utils.mcuuid import MCUUID # noinspection PyMethodMayBeStatic,PyBroadException @@ -43,10 +42,12 @@ def __init__(self, client, ip=None, port=None): self.client = client self.username = self.client.username self.proxy = client.proxy + self.wrapper = self.proxy.wrapper + self.javaserver = self.wrapper.javaserver self.log = client.log self.ip = ip self.port = port - self.srv_data = self.proxy.srv_data + # server setup and operating paramenters self.abort = False @@ -72,7 +73,7 @@ def __init__(self, client, ip=None, port=None): def _refresh_server_version(self): """Get serverversion for mcpackets use""" - self.version = self.proxy.srv_data.protocolVersion + self.version = self.proxy.javaserver.protocolVersion self.pktSB = mcpackets_sb.Packets(self.version) self.pktCB = mcpackets_cb.Packets(self.version) self.parse_cb = ParseCB(self, self.packet) @@ -89,7 +90,7 @@ def connect(self): # Connect to a local server address if self.ip is None: self.server_socket.connect(( - "localhost", self.proxy.srv_data.server_port)) + "localhost", self.proxy.javaserver.server_port)) # Connect to some specific server address else: @@ -167,7 +168,7 @@ def close_server(self, reason="Disconnected"): return False self.log.info("%s's proxy server connection closed: %s", - self.username, reason) + self.username, reason) # end 'handle' and 'flush_loop' cleanly self.abort = True @@ -260,13 +261,9 @@ def _parse_login_encr_request(self): return False # Login Success - UUID & Username are sent in this packet as strings + # no point in parsing because we already know the UUID and Username def _parse_login_success(self): self.state = PLAY - # todo - we may not need to assign this to a variable. - # (we supplied uuid/name anyway!) - # noinspection PyUnusedLocal - data = self.packet.readpkt([STRING, STRING]) - self.client.local_uuid = MCUUID(data[0]) return False def _parse_login_set_compression(self): From 32d73320e256b1efd510bcb0df99f1780cb4ef76 Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Sat, 19 May 2018 17:29:35 -0400 Subject: [PATCH 03/16] Implement the proxy host as a ProcessPoolExecutor multiprocessor --- Wrapper.py | Bin 659435 -> 659520 bytes build/CHANGELOG.DEV.md | 3 +++ build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 4 ++-- docs/Wrapper.py.md5 | 2 +- wrapper/core/buildinfo.py | 2 +- wrapper/core/wrapper.py | 16 ++++++++++++---- 8 files changed, 21 insertions(+), 10 deletions(-) diff --git a/Wrapper.py b/Wrapper.py index 74f9c6e3a6afc27854e8e24fa99d2f8dfd4daeff..2445d21d3b0d23244bb32a49920075cc1e4f5af1 100644 GIT binary patch delta 13831 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 Date: Fri, 25 May 2018 09:15:41 -0400 Subject: [PATCH 04/16] Version 1.0.16 bugfix patch --- CHANGELOG.md | 3 +++ Wrapper.py | Bin 659520 -> 659521 bytes build/CHANGELOG.DEV.md | 6 +++++- build/Wrapper.py.md5 | 2 +- build/version.json | 2 +- docs/Wrapper.py.md5 | 2 +- wrapper/core/mcserver.py | 4 ++-- 7 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d75ff5a8..3148dbb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ #Changelog# +

1.0.16 rc 21

+-bugfix for non-proxy setups. See Dev changelogs (on development branch). +

1.0.15 rc 20

Primary reasons for update: - Regular update prior to further new Wrapper development diff --git a/Wrapper.py b/Wrapper.py index 2445d21d3b0d23244bb32a49920075cc1e4f5af1..6887a81bfb60c4d098b49ec692a75cb6c2c97358 100644 GIT binary patch delta 14807 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 Z4vh5QQ@{W5R6?NP!h}E#YtY+*{6ESSP_6&~ delta 14794 zcmZ8|bv)hu`~Nu(r*wCB8^*+RZf3gM)O5EahKVtG#I#{d*L2NHGYr!<&BWNWpV
492<%4t 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 Ju Date: Fri, 25 May 2018 09:56:14 -0400 Subject: [PATCH 05/16] Build 23 bugfixes Build 23 - Bugfixes: - at player logout (mcserver.py), server would attempt to run proxy method removestaleclients(), even if proxy mode was not running. - mcserver.py getplayer() not returning a player object in non-proxy mode. --- CHANGELOG.md | 2 +- Wrapper.py | Bin 659521 -> 659530 bytes build/CHANGELOG.DEV.md | 6 ++++++ build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 4 ++-- docs/Wrapper.py.md5 | 2 +- wrapper/core/buildinfo.py | 2 +- wrapper/core/mcserver.py | 2 ++ 9 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3148dbb6..3d95a7b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ #Changelog# -

1.0.16 rc 21

+

1.0.17 rc 22

-bugfix for non-proxy setups. See Dev changelogs (on development branch).

1.0.15 rc 20

diff --git a/Wrapper.py b/Wrapper.py index 6887a81bfb60c4d098b49ec692a75cb6c2c97358..4d42bdb2821a5e6fb3dde42bcc89fc11dd327cd2 100644 GIT binary patch delta 12392 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 delta 12251 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 Date: Fri, 25 May 2018 10:02:18 -0400 Subject: [PATCH 06/16] update version meta for master --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d95a7b8..615ecb08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ #Changelog# -

1.0.17 rc 22

+

1.0.17-18 rc 22-23

-bugfix for non-proxy setups. See Dev changelogs (on development branch).

1.0.15 rc 20

From 0fa5b1d435249c2c385273727c5a48299c9a40a5 Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Fri, 25 May 2018 10:09:34 -0400 Subject: [PATCH 07/16] bump version to 1.0.17 --- Wrapper.py | Bin 659530 -> 659530 bytes build/CHANGELOG.DEV.md | 3 +++ build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 6 +++--- docs/Wrapper.py.md5 | 2 +- wrapper/core/buildinfo.py | 2 +- 7 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Wrapper.py b/Wrapper.py index 4d42bdb2821a5e6fb3dde42bcc89fc11dd327cd2..980073db01627d6a2b83e52d9209965ccf48b209 100644 GIT binary patch delta 1153 zcmY+DUr1AN6vuVWch3tw5y^)LmohDDXjOD3Q)--E-%?ZhN}F&-tG3Ip=qNn~8X4 zA|8|fB*#M*{+9ehrXnF+K+ca8u#Rc6i%rHv;eiyAvO|&~Byk~$4@t)Nl5jj|Sn@L# z6g*pUc`7LMmLRMj6`W}vd*r@Rp^{+a?U+!i$-j>Yr}Icz%XssL{#!p-ZB!@{z^)d) zpnMyAes(`9+{Cm$QK3vrE1DF{H3+@S+g_KJg}4`COQ~3*Df>#rArC^cBoZM0aE zFWRV2?X}WHwJGGYF529U$~S{lzwd8@^lux&*iTwz2p6z84>o3Bq*nRhFZw(mLo;ji z5U0F3_A*KLG8Pf?SapIP#ZXUz9>6S14!Bt~L0b^+T&J~~-nspPZmiQPPI*CS<3!!W zI;~TZp8=G!q9hF?izd@@5#(=BuWrU7BJk|`236O5d6U**9QgDi2y%F6 z%mCMTs8J36QFWP$YwFCy048)Bp(!L8}QG(gp8KuwOm%;9_egP`A;X3)LC@j^sj(4%8c!S90OC>KHb|)=J!L I#SCZu186RdrT_o{ delta 1064 zcmZ9KT}V@57{_yGd%xz~DRg5x8GcNy=I68m4azVw!h`flg#?0-5q{J~mYFSfRT*8> zbD@MnmN$i6)IkX6ja~@Ti@>755HchPM2Xs*(s|B1T(qn6{@>s8|3B~ZY<9S0cDMxQ z0xbJ+b|!2FSPo1@DY>hKwY0Ei32RDNvxYU>Ta6qIS=2^=5GeuAP2$!ULZsDi`Pc-t zW5i2Fv)F~#S#W8F`Sji~QqB;5HBO2o{9~NdXRzN*6DNK)U5P+-gyfSYS#r_%wqzZK z{s_5-MZY4XSQZ7R$W|pv!8OCjevG>H&NcEih*EPA^-Jnu5$!L*KAajYPWGYKY4ms> zd+|sp8Wu~iNA5qzT8)9WHRxKTSTx|B7KI)*R#_ZeAd{ zn44FdeU<0(LOId)TwdFS)XM>$ocr!=r>*g(?oc{v%+0^V3`kPqCOkr`=DWq z`@k3H%{cq+INxI#%>vaf@*skuf$iGh)h3o&{M8L!p%{yYkp%Z5Gr7TQq*VnGR_KiJ zbjVNeLA;A3lJ$7V+~h$C4pRec-{f%&ZrkEDit*<&4FRw8$t}L3C~D)x6IJB!-YDJC z+1+uY2O>oHnAm|o!|%OSctKT!3m;exr9xytt0E3z)~F&H%q%?Et>WPJ;j&d!!Cr?k zkztDM%3~y-63lO$cJ?q8T@31I;1Iw%_v1VRUY8(Hz^lL%cAp N2A$&Hm8?6(*}wdGTGjvn diff --git a/build/CHANGELOG.DEV.md b/build/CHANGELOG.DEV.md index 660d8fb0..c7e0c313 100644 --- a/build/CHANGELOG.DEV.md +++ b/build/CHANGELOG.DEV.md @@ -1,3 +1,6 @@ +Build 24 +Version number bumps to match Master 1.0.17 RC 24 + Build 23 - Bugfixes: - at player logout (mcserver.py), server would attempt to run diff --git a/build/Wrapper.py.md5 b/build/Wrapper.py.md5 index 7806cf9a..1b8dccb8 100644 --- a/build/Wrapper.py.md5 +++ b/build/Wrapper.py.md5 @@ -1 +1 @@ -a6fe5a0df959fe3c4f5ab912d1f64ba0 \ No newline at end of file +1abf68f72b73e4d1acae8fc6733f63ee \ No newline at end of file diff --git a/build/buildinfo.py b/build/buildinfo.py index ac51274a..31747acd 100644 --- a/build/buildinfo.py +++ b/build/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 15, 'rc', 23] +__version__ = [1, 0, 17, 'rc', 24] __branch__ = 'dev' diff --git a/build/version.json b/build/version.json index 452cc6d3..ece8bb7b 100644 --- a/build/version.json +++ b/build/version.json @@ -4,11 +4,11 @@ "__version__": [ 1, 0, - 15, + 17, "rc", - 23 + 24 ], "build": 229, - "release_time": 1527256545.236902, + "release_time": 1527257354.140236, "repotype": "stable" } \ No newline at end of file diff --git a/docs/Wrapper.py.md5 b/docs/Wrapper.py.md5 index 7806cf9a..1b8dccb8 100644 --- a/docs/Wrapper.py.md5 +++ b/docs/Wrapper.py.md5 @@ -1 +1 @@ -a6fe5a0df959fe3c4f5ab912d1f64ba0 \ No newline at end of file +1abf68f72b73e4d1acae8fc6733f63ee \ No newline at end of file diff --git a/wrapper/core/buildinfo.py b/wrapper/core/buildinfo.py index ac51274a..31747acd 100644 --- a/wrapper/core/buildinfo.py +++ b/wrapper/core/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 15, 'rc', 23] +__version__ = [1, 0, 17, 'rc', 24] __branch__ = 'dev' From 2f001607225876a5e46a8ec972555367755e8466 Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Sat, 26 May 2018 13:26:25 -0400 Subject: [PATCH 08/16] Build 25 - Explicitly `close()` sockets that were shutdown. - substitute 'localhost' for code occurences of '127.0.0.1'. --- Wrapper.py | Bin 659530 -> 659529 bytes build/CHANGELOG.DEV.md | 4 ++++ build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 4 ++-- docs/Wrapper.py.md5 | 2 +- documentation/player.rst | 2 +- wrapper/api/player.py | 2 +- wrapper/core/buildinfo.py | 2 +- wrapper/proxy/base.py | 1 + wrapper/proxy/client/clientconnection.py | 22 ++++++++++------------ wrapper/proxy/client/parse_sb.py | 4 ++-- wrapper/proxy/server/serverconnection.py | 1 + 13 files changed, 26 insertions(+), 22 deletions(-) diff --git a/Wrapper.py b/Wrapper.py index 980073db01627d6a2b83e52d9209965ccf48b209..f3540dd94dab2babddacdd033387fc88a2c0a59a 100644 GIT binary patch delta 31869 zcmZ6yWmKF?ur-XkJA=DhaCdiif`s7iI#_VG!6CT21b26LC%6ZPkS~XG&wcOu=Etl( zyQ`|Zy8D^6s&_wQd9v`8xQkWdI<|9mjj5|GGYhX8Q;a}MwzlOZ@PP|qYROoB2K zB&_xSCDPgdBLE2}>X1hc@D0M?-ufS)!yrZM18C$1DSv>~%S^q0K#PYg_#*WGdV;K! z!9OfZs+GY39|m<+;ALbV$S?}rQTqeU?19$?exTql5Y15kAdr9+ME?f`VGR-E_7O2* z0SXHw7z~L6>ez;0`Hvz7A?-j&eVA(QKn&A=AQD8#Euw!=GackQ`3JQn4{81px91s<7{aYwdu3lm9?J z;9yE1K9DIQ3@!LaxW5Yq0F@xY{5yzqB$&j1GY?dUdHdHkKno@u{KE@T2ZopA14(

nDp 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 delta 14604 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 Cw(83O diff --git a/build/Wrapper.py.md5 b/build/Wrapper.py.md5 index df408b9a..7a11b1df 100644 --- a/build/Wrapper.py.md5 +++ b/build/Wrapper.py.md5 @@ -1 +1 @@ -eada356031b79569645d1e552bb76e98 \ No newline at end of file +ba5ac756dc525ec8f925cabe945500a4 \ No newline at end of file diff --git a/build/version.json b/build/version.json index 3ffd50b3..e0aea2e7 100644 --- a/build/version.json +++ b/build/version.json @@ -9,6 +9,6 @@ 25 ], "build": 229, - "release_time": 1527355528.927938, + "release_time": 1527355722.300319, "repotype": "stable" } \ No newline at end of file diff --git a/docs/Wrapper.py.md5 b/docs/Wrapper.py.md5 index df408b9a..7a11b1df 100644 --- a/docs/Wrapper.py.md5 +++ b/docs/Wrapper.py.md5 @@ -1 +1 @@ -eada356031b79569645d1e552bb76e98 \ No newline at end of file +ba5ac756dc525ec8f925cabe945500a4 \ No newline at end of file diff --git a/wrapper/proxy/client/clientconnection.py b/wrapper/proxy/client/clientconnection.py index 5313afc9..c15e8c9a 100644 --- a/wrapper/proxy/client/clientconnection.py +++ b/wrapper/proxy/client/clientconnection.py @@ -146,7 +146,7 @@ def __init__(self, proxy, clientsock, client_addr, banned=False): # This ID will be the same no matter what mode wrapper is in # or whether it is a lobby, etc. This will be the formal uuid # to use for all wrapper internal functions for referencing a - # unique player.Test + # unique player self.mojanguuid = None # information gathered during login or socket connection processes From 3b79d00524d348c2bc3c08ee8a1b0a5db0b13d62 Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Sat, 26 May 2018 13:30:39 -0400 Subject: [PATCH 10/16] typo --- Wrapper.py | Bin 659525 -> 659521 bytes build/Wrapper.py.md5 | 2 +- build/version.json | 2 +- docs/Wrapper.py.md5 | 2 +- wrapper/proxy/client/clientconnection.py | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Wrapper.py b/Wrapper.py index fc9afb308eeed235c925d0ae8488815728668cbf..7f9163045b1a99783fdd735a940b1253646ea504 100644 GIT binary patch delta 12856 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 Wm$MHFRRKqr2@nc42Dao000023B-oGu delta 12874 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

`~(jy374GAZINh}{*rsJ*P zj$KSy#1Y7O4!hj;E4iDnA5fz1Q=s&UO_ZFoI`2>O8=R>|VzPaT-=uAT1!%jKED&c; zX+UK$P6sZLMOD=?3{Dy|WFjE50=UY0hXF$7-DEV_a|XZCnf%t|$fkpK+U$(RM;lbh zBxU%qT9^W&&>1l>CDjyvBULc2EqccRX%~x`P01JwMziQ5x|Ce#RI6NOlPve5HYEPJ zWmS@Y-O2%uajLSOXIoW&ld3`FwOiD?JYuXGz)9=$3Tx&~`vY>OZ8fJ$tAA*+$cAh& zIu9XfG_hep?Rpt}F6k|GxYNTohJ+Eb^F?V3EN2k~D13)sF{rYC`WUf|HlGusrPXrp z`lrCRp8yTq-;Ql3&C?_D{t9&bKc10)I}_iKfj2Pk$Z-E4nI@@^**9#&wIk>HCd_w( z>YK1%;Q{8Pwvmu&n%(X;5=SfBj!hW@>=97+;X|}rY`1)?c0*!EYwHp@A{y@QPZo27 zu{X7*c~B&}8SBk|Y;rSr;RuFgS^)cN1=eVhDX$ZK7jq6L*}Ic=B}|?EX4eqXIacPnKExzIvo|xp56Q(%{;n#&?-dW=N&6hDybMChAFf;~<{YA+kESty*`H zY%H!-WaYnnPfdsSH$62r2JIJ~RAWneMpW8-NJM00~eu=UNULC-kj;b60^kFV2 zu%OPaYw&m)msd4hHoQbI%Q&aqGQKD1w_O&~If*({KQlnVKQyXD@$0{X{y|!Auq!yQ zZvnRnygh+`1w_jSE-zkPKKQ<&tz|x_1YjAELs8LHE?u+X_y`G4?cmv9RLqyj_Haz5 zQ+>4>*`Hz<>y1Z{AOa=E zD5j<)8R`CyT)l_`6WrFH@TX_bPWnf$UjBX6ol2sA&Z^s#kKw?5-&yAkYxe zB*_UvE}XAxz_sM8d%wzhYXk~>s}wuQ7gKj+tsb${$YKCt%SPr3v*9RFwR<1r=QgBzV4Pdl&FAnshCMFaAfYaCp- z-&0J>G*eC;1a&6pHbpQ^0aq6Q4Plbh(J~l9>XFP#&`a=Pl#?1$vebz%*TCD|m7cup zAc4^HN2S&|d8>QPjPRq~!->$*-?(1KnsMAKHX ztd`}0I!r@^;K<&oBrqI5!A0#8w28jFRxNulk{ykRIJRht;50p{OX0LY+d=maItFsc zjq1>xy&MggIk~$I#v<%=g&QGGClxy7H+WKPEJo;-ZgQ4N$Y18w%V%%SATP(+%Qw$| zW0@`V2k=04vc$u7WDGmrl`}^t9nF=}r}iwxdBu((it7WN22hK#1)%R`qr93!nE0ru zMvE)*r>}`e4E*hDo08#!gJHFpDLFh8Ucm|`co&i}Vl-=FHfY}9eAlS80Z9XKV0G0m zNFjtIH&t881|W?F3kPM;c8M{xK!Qep@0l9l36;Po5XB8)A&$MED}1o+`Nh1}4hH=n zaY!$8JKJLJAQt4x(O~oqudD z8k-+IR*Z+Ull6A8gZuZSG@9_r{g3r@Wf!S`{|lFJBM2miSEmTKSEmUDQ~{NjUHb_) z0!o>ek>3Inmj4M0x3v2Srwsv%ms|-7GXXW1kO>MN4U22KOc{dL?NT=Y0CtzV2?{y_ zHJO)@-vSet;0p>GmrMf+4g)u*2$xW&2pgAB3JO30OP7%f3S9vqm+uM+Qvqq0LkkLG z0s5Dw3kqTZ@Rtb;3SI*R;Ru%=;RqU+gbWHm0ScGJ3<^mBNS6-{3Qz&7mtYMFQ2`s5 zvJDDS0qmCr4hmBN;Fnnr3RwBKmp~5+8UY8FTMr6T0hX7q4+>QQOP2)@3N{A1 Date: Sat, 26 May 2018 13:32:16 -0400 Subject: [PATCH 11/16] more typos --- Wrapper.py | Bin 659521 -> 659523 bytes build/Wrapper.py.md5 | 2 +- build/version.json | 2 +- docs/Wrapper.py.md5 | 2 +- wrapper/proxy/client/clientconnection.py | 3 +-- 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Wrapper.py b/Wrapper.py index 7f9163045b1a99783fdd735a940b1253646ea504..160dbb9bedf3a50c7a0e4dabfbfa6cb428c70a05 100644 GIT binary patch delta 14015 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

{h^-l?%f9vdFcCcUPVdjA?V`0C7 z@ZED%0H^cGGHc&gkCZMquHi-+TwB!mF7wF@sWjG5sn|q4DQ_IalR89J2e(!0E|Tr8 z@J4x@{Uy$5w=|Go_WC&Mb$bU{_W;BRF#2=bsA`8jpxQ4{_Q0zHnA1^}1Asov1qBw= z*>w#bPvi2ce}>D3mk4GV=d@eK_XPd6%VIhwQHSbh1}ON4MwKXj{ddqmNb3!D1qb#m z;5LD`C$NBM`M~AHtIG%9H?+0P2bBOU19B)Ty2_<%HXI)z;i(-w8;pwiGT9!E$#kl( zRwMhfjGvI7X6$-oAR zVO*P8vz#>}Lr;v$SvkqEg1$c!4B2 zLCA&ke{~JGmYj9(S6Oe3K!IW-|{gBEu;){hNrv97!!dU?0jhC#7!>CDwh zThi}IP54;2Q+IvW)6fUj9{fp{;D+P>jD0+&CXXW;RQ5Vpcth3b9Jw6Kq}A=?YrV>xF3AN|x2K zJWz*eh!7mvJCy{6<0rVNeS$X8m)ELg4@R=15fR50O%a@?Cv_>D7HB)@{z1n;4!Kbs zf10zGqX9D~ch|vKgq^N%BgE;XLZ|!&Pl}Dj2;I_6&Qb~a%e;E|?9CbEhr%mZf58OrLNZ2-W=+fn%^RHW8nrecX&?@)uKEQj zgplN>YD?Jwq|spEpbXkBF@_dM(C9r=13aM;7zLuZAuPnP7j%UWwmrX?*V@6L|053R zg>GkC%su2;r>(|4*V<;8Qyd-&h}37bI5ZGJ3c!QOI*9?ExGb6|5#X^Z7Z;ame_oy} z)aJ{N%SwonIy?d(&GS)lUW{Je% z{G};ptFocgEg?umF0Nk3M_KE~*ROtgahlr3QKci63urB2RS29Xuiin_OSAKj%|&DL zqsNNzaCWlZPIhqro|HxtUb+9V2%fI&BK7Zo0he$i2qcGBrwF%KrwIjA0s?H8Ui%3) z0u-8;k>3Inmj4M0x3v2Srwsx3ms|-7GXepcmyrny9SQeqx=io7k^4}Ww+RY90s)$r zk>3Inm*5Ku8kbB13JwD`rwEr&rwALDPznk_0ZEsU3JP5TAD8b63R3}RmqQB*VgdM< zrV9#U0q&Ox3<_QY1K|jl9^nWYmxK%oKmiDs#S98b0Y;Y(4GK^Jsh4043Q++Wm$D5C zQUU6h1r7>R0p6Ec4hmTgZ(<1mVQ^_LWo~q7ba|H%2MQ;b=MD-U2l{6T0AX-xmoNMY lG?zdR3K{_gms<}CQvsBhuMY}U0ZEqy5DGR1xa0`{001bwr7Zve delta 14021 zcmV;$Haf|}peVthD1d|kgaU*Egam{Iv<57{0?})iF24pS1-Y3CTS|vpzXrEkzX$WL z0mzq6ZwMs@r}k>NV7PVxyIOZ`(Bi*EPBtkuLV#|8HZ28gnvuPP6+{nZ2lR#4v(HN_;{X2fA!}b z5LqH55w^k?YYqb_*XpXEA(QYBR~ye0fd~9EZYWRq7LHSa_}LjpET$HOW0|+$x58uU zU%c^{IUj4p$c99eKzm(} zNPm#G9yH2+N8NWDbh%Ky2*y7(KV1FS!mMmv2%V~4u-=%)Ya?8NnkPf zj7SF27?;lhJH@hEBhfx_4l5E1kQQ+omq9@Djnuf2!3(gg`5y2n0<_LKATv7to+nbk z(buba3M~=@mH`LzinT^r4rc^%&n%)j1%KM22Ct>Yu{CvXKU@Y-N!^hixINY0kJVn> zCM}_%vFT|Zx;;PhJFX7Qbk^Ohme#Z+vV&W(b-_2!+slmaK#=zgXd2uRNw#!*!UMNQ zoT~$ZZt9DDLMY7ba|x04mq%6)f+6#GnU%pB1cp1C>i@}89S*RAcjL~#ila!RL4TIZ z{-LV<0NUFlB?uunO<47gp{m0H?XW#Kdi-jy3bD%nq>If$G(nf00yj6%>H? zegM>dfb9os7|dRBnNnjMVLbggMNsB?Smx)!d7UT%BZlN{t9?wRfnG zO_tSS(K^uEa`qYk+17=x4p$DkyBu~#pSq*N$BZ^M(6KRpv>LHUZD?aHCOwR1Cs@5S zx_>ZRYYZFY1yC7T7<06ju^TeQn#>W|vw}h@if~#2Fm=@0_0E9Uhc-%Yg#f-wKy$K) zm)sqVmTmyXMH%EUH;{CoY3!IC_Vm;Y1hkiDVBSaFZa5oF7TkfEi_Km7#f@u%0#uZh zwEGtw~Jf#kGd|InJG;2RdMs`QqyhPDo{+=0yb zCMD5D7F!EeTmT|z5T4Yh8w*@n!07tn}gc)xGE|~YrKQi zL(j6v5^1ARBuOoJ*k%P{nyf)O4F+}s;0n#;3ZAB5$|GmBOd}4ShIWNYJd=;?xCy zje`U2Q1+j_?!hIUly{L?u7TI(#yDMMOs;_BP<50W0XWrLlSeLO>Ix#rHqM!+;2gx# z1O~h#wXBibPo4Gs{fvf(X3ulmp5jqR!Kx~bByou>Gh8@2-em#oAYE91h6Fn+SO@^L zq(tS9XNs-t`Wmz~8H(%dGuTY*WP0X*_pQ8vPz0o~3A>r&-UV<4hTXU_4sF?K_F|D>6FwlQ%on}OYb4RoKQ$kc7>{G{(t0&EXPkg=@sOZqg;*qWCmsSiLB zxiJ<-V%z-9idq%KDs}_Y&*$3_1Eb5=!5Mo7wf6P_!r363q78wZThE4`PYT@^RjPG? zGBXyU0OtTtgCMRP;mc=jZB9p~}L5q#ROHztc42KjW@*ir&C#;&35t$*KyvVdXJ z2-MuIfOGpER(i)%*a$a)n2|nVB#JiEp!rU2svthoNW!n%tSZcTws=L+q~3tSMhm+|Rtq`CP{AvlSHy7exOD(Hn8t=#hS61POC#5vT7#iiI}fE!ytEz1 z0>dq3Ec$#$HFhRS)Bv*Inv}P38q7iJb)pe*dIzI3aB|7H!TgCcvT5(mER(Fq$K1qe zlxlM-&`0lN?#2%`+>%a5Nzu zRfnD#2@sX0g0;Hh^5_!iTe{Ea`TdUC5&NLkVYBuQoLV7&HZVlwYYjkBQ(67C_K0N{ z40>J;h#e~?lM)alFwY3OMb%2styE_dAGr+00ojk5wK1_nTm;+YXi8$La z1IH%e%L8l6=m~0*&+%cq>(QoL%T0Vyh~@_g6j+@cLZ^rj1u`)dh@)O&?C}dV5$$y@ z9rx8J@cjgT(pAhB-x!YR@3hma?P~mZp*Gzde+Q3BVgN3ipw^&^Z20`*mEuc@PS<%R z>quvV>?8I}dhD4&*r*o>c)^%`L?~b+c)xWz4LeUTpaybKh2)}%OFuWv~w$e?=f7}$%UfTp6f(A2D1unq^QUg zMnKS3tij-PbynWLqHhBj1?u})MLks>1EG#k?8#$H8rH-8h=ZY$wn@13X=*FL1wLIO z8d{>fgNu!_*mlvQRXi?H=u{I1BakgIhe?(@?0%i2?MJl`6u^yi5V$MJ^4mBXfgK(% zgF16FVP{5{1)r<01F}fc>>u1c#xLl|vGL^lF;*V*E!pyo!z7d1Z|xZV{j^{*G7dh? zXAb9=-FpZpe;gXg-X$i%(MwVe-#knC!6F8$SJiZMhi`;RypRhHr!E-ZAUR}<{%wHM zHPf6~$RFV2xrU4ZCt%u`jX10I7aRe`9~@-Q14w^J52?WZ6rF0 zo1UM1JbKc1^mQ~y6@r{k-kx2&sAJ$@3YEssl5B7n^Bx!-jEr=s>CI$31IREziYUd< z0eW9uQ|T#EHUKD%Rrzzg_*vx)$N|wOgNZG_Zx=>pwQD#qLb=r|z{m*UVFz#S!a5ao z1O?v&e_(ZI;JJxtV97ZrRaNB_i!;RO+9m->i8_NyS+r0LJk38kwm!zRlxL}ew)pNQ zf_=HFO7JMs!K)t2#O+FJu=Ix(F@qE1ev$MYIf8H4vj7wUk(gJ@u1(?%p2-o|979c1 z%qSF~Ubl!O%7EffcXdUBC%&kHzb$B9Fbs;We_YT}6KCkK(eIXqZ7X@(vNT0QJPfOK zg_&ri6IG!@7y~g-2?~{oEh$N0mpF^!kiz5E5vQdgzB)0XB4j|kQUPGk{lh;$ub+;Z z*fVr#Onc7iT1Bw3u(n4ERM8;Ac><7504s6@1cs)58r6HiUbu!D5NHBGAK-ED2Hfae ze?*q92bVIYA})#r4mDVXY_{gNx=yKqg|SC)k|X5N&!V{9`mmjs&)KGq0B4B+c@HP9 z1Nq4FXhqDeh?I;=#mRo}aoB|&O{vFY%$>$6#gQ&U^x8tUnL<+zS_YfgLJJIhv$87hojH}Y?k`_HI&3hsQzHQGtH~?2*NN9~EMs08n`O&}~v)ETCw?-aRVF)Du?^KqcTwk4+gClJ_AK>@yg{n6AasfbmaYR{Nkg@ow! z)wwiubGeT4xB(pkcaIAABL&SLg0%kw_0^<&bdvn3GELa@(tzAN$qsH zzC!S;uKf8GQ*OVi`t7>UOtC4Z7fgN)b4MbkwDpW^Y^=&UMUp0L-x0hPt`C5y(n!K5)(&%i{O+ZWFZ<&9C z(q;)>#K;!iM86vwgu{r-<`(9@!}6)`!21aVmN#rIt5s&GQYt7iSe&zO84Q8{@j(3@ zNQLPnaQ1)-gj1n{H;y8Y%V8bjLEdixn$bN*RXK;rNvaQ*Y|Xb6HpdBcSv}RqmYa+% zV(>fUzqbH=uvhc~R{ml7QB_fwum*p`5aXDIYUP;V3=@$KY=jQk-`FdC;U#e{6oO17 zBIrxgI%Gz8ROQR6tcETpC^3h%^{SM*2MXm;c#7uG9JX9hqLy%{AkaoS8y04z7}W=zy2tczDtfKRsgZE&5ZfH2f&l17k!ygsxlhe~h#Ld8naF=vHz@Xi zpz2(EMoT>1bK2jj)3yhHcZ0m_0TFq75TVxHy<>9Ixiq9_r%}5vH{zTJFZ;-g`M$3O zk%TTp+2ES+1WU$SH=&&+S`|*c`|z%sjH))oO$p4vtd5>yM0}paawVdn-%aXuPq$xe zYDCoZYG1oFBJ|asnxDOU(U*Te@cIKzumF{e>t*vS!(fQdritJfST45x6$@T1axtm7 zFvKd9WTe{J#^8=iuW=SVIs z+o+R6vbe)?Z!9x=pL-rN#Z#_y8MA&@kP%}zmSI(ikiO~|OXX1j9awS_&zDDq2r7TJ zYMu7(6zoIrs}E-%ie1!z^%`0(Wvw#EEJ>M36ObldW>y{098Fp{q^9l&jguW|J-*Hp z;a*QhYuyBj(mrcLHMUBh)x&K5x!*$3V?L?BH*HB(k8TpyC|%6_%^Nm)q!Vqyr?RAI z@QbG}i*_O2n}YY~$|l%7gJ!TYh^~LZAR7KQY_FP38=4-Cnm>2f=H}!Jq0~a~_;)YV zL-orp+T-q8{nuF;VIgx*S8THVz8+2Zw_{rs{)Kd=yEzMf=Y2~9(+FHkk^P>krk{TD zMnH(e7XO*|T)1&5fEgAsl|#b$80f8gx0=AbzF?)d=3k&8PK|JIUUCAB2WEft&9F-) zp0e-(0G;e@x><~=n{eMO_+2MJvAKDkeZxKh|9r@NJe^qb2H4AHAx_blR)Z ztbF)BeHNNGb*cB=(REo2(p^kG^lKx1PnVK{lD0!3BG{0g(!RiL-c5f}X4>s&-%jp( zwS#*B;NE)$_|Azqt?sD+a6ZVG#~zuG-tW4Mu+IuIamkD8^YgY1W4#i|#33yNQ+mL< z9jNlO~2i9AoT#KPqZ|J@{VE|N~sn?9?d;j_* zhN_}TU}LMm#nPJ ztjsUl4xI$OBAcm*22oUjut8VlHS9-n8;$M_ucb_vsom=UwHLeVS$uu<$W(PwJ(X9 zhPLp-cfR*#UTk}uI0_i3x=0b%LBu0V%-sncRnD`2^Fx+89e&}7t*8)#H1^0PqmFay zMoT#^M^4>`7gf2KJytVV<$G5ntphFf19w9_6nem81DBz_c-_ZdP1DK8*_%@S>6HUR zJlxAXM$dm)>~n^vBZepFm>Stry+ZM3yyjpAIH`~O|y=a*7$&U9XdB1897?K zsLHE^z!Z4$t3DFl?s@PaZZDjT6_@cGkHn^}?nG~AB>6ri!4sXXor`UA>hI9@@He^G zsOV*GY#n&00_0JPAga_(8Yy1&3mv(H!PpA6a)W;b^kMeE-GNO~*OL!t&yIfn`RGHR zuYy^*S-6Fo)>sqJ9xk1H(F@1Xsfo< zG>h{P?sCJo^cvp+Ck{hrcU3z*v3WEWt47V#ryOBpTC2rnmz>31d8`w8E+#Ja*p=U; zAdP=I>DXJa%lzxOxBx5OrK5_S=NRUAUIMjqS;ZUBkVe4c(95Gh_-*hT2w?$D z5osI$JN08uyMDk|4*IIWyC#T>kcy-bLKlC$VGw3l(^NScEh>sm#WQn{!_G4ZlXqy+ zKuN&3RWqQWBFyk%z-crRaU!+`NTl65A=~O*C4^Rmiy?&WR19WZ%o^?ftt=Ma%e{yQ zpBqm72VmOT;Q_F-PIkFp=i2*7U)OZkT!>)~G99}~p>(BfhoaDX6RpF5cp4rJ{jYzN zbW0cXt|S>1-V&0w-rAjnbHS}AD=y=nWAt{@6bbOfa}(+Zfmr)Z`|=6V_bk|+&D)Tv;P8JRQ-%ghi6r8e(59 zm2eMLi*&x2Oyr_@R&I7x>gY@J2IF~TCjn-g-g-^q5n*^flBpUZ*9OBSsM)*frTU!_ z8#u4~F32K#&{(99)Rm@`M8z}J$iLL2VEZp zbHj9rDMkFY^nM9^aG<@!`&Z1f{={KjOyv;Ms`YXka+*}taz`Qn0N$jcme>tFe3G~H z@%QUB53f7m(}KtFZ#VLv{s#~{LJ4Ye#MU2?|D%mP*oo3rjE)jvxqrm;r4G%X7aTud z<-5Wt;)`M%>i#&t8kMoiwY7gbu@GrnK-?DI5=f-FMuZtBDl?>mtZc2D%~cUCmqnmt z>mc?CU%}pMzE0)k-$Mz1B;Ro;A&8P z@vsE+XIND8OV`soqjWVG0>Yp5ct6 zqEPd78%>%zchMRH-cNN#skZ3(Ao5ZKW2MwT3w^SRQg z%kzdCA9;mS3cGG^>y6l)GX&|2J^iK~8$ zpT^C-3Ej!px)6W11;qvL>9e!`@!QuYKR-J?)j_vA83+2nZ_tH^$Gm)_?&X>8p&BxL z=Pte?2@=$p@1uRk#YWx4orJsp?)X^sJnc!MW0kz8Nln|c9Qlq|nukGbuQNQj@)Jp9 zJbd9)S{TF;g8zhWGVh!0Fm=ok!x@L;m0_bt`-nB1SKfb>RN!4p!8jiLH5D;P4LAt{WhAaDf#)!I&P>rC-nm^gXh#_BQx$Z}E^Z?W zC30o2^1*cu(M5=DC2`b-lfm?hSH)&+AetFxA|;%Dp@bSHT;gJ;cms@-BnY@WH;|)U zzc6&-kdl8#IWLdE9^1Qmwm}!eVp7bP1}|C3%{EJtbaK+spa^<~K5T`_3?Pw6(eg#v z2?gpfI)v*Npfim3ewZrE;Y0D(E)XBgG^4dKoG^&UgJMdF0wVWrW&_2t>jW8jG?@{F zIhK1Vb+h*dol&rD(L2mQI9bwhWLGKdAY6C|M8H^A^$WNw zkYU!y$AK%>mbuy(!$utF@kiEeE49RKAcZK88t7FH7bwy+tiF899ym(a%?4hiC1jQ; z;0k|fvb+9@HHo8}Ry}5K?fgvnr;5n-?~yi;@Ydn7TR-FETmXW|)lT zYBrc-W?Ix%`SnV2m=$v!(8vL;(hCKN3Z{Pm_Psd7I&-T(i>&)By`mp!Z|j8iaXsV_bYe78uFWDWti$y2{4@bud{{G8f?` z*JnLrRi3`v&#(`eww5cqYmbn7@&b}iBCo3R5#m~tk11%{E=!W2`1hmYxMH2BG<@N~ zB%y&>Sb`h;eshWrxOuL#&v9Vk&nADplg4LdKTANZ*A5@1sT;xzpV!-LWElRFE2{NZ zvbB}>WwLfH&bQH*(==xNNi?kVuvFYQOcTi>O(zu3<>=#sXBWjNrm{14QvZpTUVFZe zp}IVo#9Uk`**b@-k|hR*m6RYoiPIUU-t~l9Nh^twdf60=mgl5ZKxOaX{)2!0{ls`t z5o2ACQrECGIUGLbg4J0{thL4JfHJQ<=9nwUd4Td(i3BH*rIgFsUFCp!tMV8VFv-v7 zam9|YWE@>BuG3lV5g{xPe^jk8{88%+g&?z$gQHqqyFzM54R9Z$yn#-G^BQ3G*+f() zP+Sy?1^t!~D>$Q)nWVvV8)1JPDoAi8{Kv}4*yLqJx{$eAWvOC%t&4=|gw%7BVU~^# z`jd|d$R#U&g|xCASy!e)j&NS7sY6d@>9U1mfg*+9vlSQ_nBjdVs*q5K4eu$&V3GZ6 zb^@Kd8@pcTPcd%CdlNC-^T*9LvX&9rJ8!|u%$XR+R)wngS{$wQiidws5lZ`$i&6;u9)k`h2@=h`F63ik;IRqJEOB@YobeN8F^Z;Oc2X?jN z1v>Si0i`L)*da1I^kpJ8zIfm-e1r93MvnSPU-r-}=+Rar$L(5c?0O4O!dvbwKqg^Q z@IC~5wp{{34-}orP)UETzyJ2&SmNL)I&Nzqg*G;ej;Zw9{-?Ovq>LHbn0)4#yDa6* zZ_P2Wb^p$h$VvazjjGOI&P9DOWYR|Y@gRW>B^u(fGD}c#E??gJBxDHv4SgmIt71|NVKBOQDOh&yWMf8 zS)CpjCxIFdsxST7qJmIh@HT1=-dp;tU4X3DwXmlg_t7?Ho47=j+XBw2|8ju!H9t|hasY6 z!;xVgr;d$xQ*nQnFAm_YZ*pqL=9T87e#M?&Q67qGaUj3N`yHPVSWc9VMOq00WVaM+ zW)N2V?g@DcvrlWi7~)2{qxRV^sjX%@#v_Rq2=C}36TH#wb^@hEh)WK@+O1_K9NOk` z6MWot-OAqQ><)iJf!yo@0jYEfz^Fpd#mG^{+BXkDOE7<+fI~hZ-s$Xy#CI2~&NKCv zCON|l{M;}3C=^rt&^jXZd3kX$$)Qx+i;>)b%hO%-WO;|f5`lHBhA4thtIpB&AEH8) zIz{;*!CbeT<%iklz01Y$GtAhl8fU;6(6Q2(YM? zz)wS5n#{<5!o+{+>rO`mNPO*C@$0TNIaHrJ8(9An zuhYeq{QBptw^5aYwcY@kpsgT?e}P7^zmxS2zH=uXx6oX83fVN6&)>atwiG3i(vCN# z#zuPxyj#@#rr-|ZgZFB#voP?1{L|Ry9k0h9@!L;wB5rLTSutM5nt$=^=+)Va&FImq zy3T*7soOp$(i-n78-=z{Ml#b#70_ zD@Rl2w4Cln7%ruPgd=Hc4QJpAf#8tYNtMqK2({GN>NCasiS<*&Y#V`mp%p@Jptaaj zMAwO%gJX)z$4{_)raBr*Ug_@c!8Nd4wcMFPQ8c|EOeLV)q~r^|NHbPaOCu`%w*Y*^yAaV z7WAm~siWBfjV09bz^NCv2~}($q?K=k;kQ18j+?9);+y`<`|_jhn~k~wu~;K;;R1vhaUy&!wgRSNYNH-G4@a1osl9=FZqUcd~p^m4mTy z_cDtkECjT3ns5GWamV$sjnNd&gi5`qLmMp(lKXXjs3PR=JS7y&KyLc zjf>IT(RGK*T%?#+n*o-vt(SmeWJX?MPtgz;6dNJd#H6U_0TYs?z@#33SNwf4KSD!u z^*q9`qM1j%*C3Q0#BS8G$)MI&22g!Za|mw1T%_8sOwn~Qg>WN9YC|CV+#!4U@!cR- z_DxUuiaC#t9h%X{sA-AxJn4T0faW1QcLz1r`PNAk?~TNlZaM>^wUCb+K;tWIFlLE< z!>m1UZM1!u{bQOvHS8O1trB4OP%{DA5&98|%@C&<*Ha}JmnYckc?);1kiYMTPuJRM zw&1#?ra!5DhtJ{!XI|E)%)#0osD$vo4%c!j#KX_m9@y;%w`zdiAQKvq(}#3)Vbj%> z^Y+%?&{#Z>MBDC|DBXYT2qJ9}ZH3i1^oDPF9SL)0Z5dEDOwB|}kqH6gB8gOIBH`Kp zaGj-*FWDK>w@k=X%8u8jP#fGRz6R6A8T#zOsd?`K+vN6l@7;%EsMr0AlD97*3r+|7 zvamXgD$!Qu?scf(_c-WbJ}Ga~+Fs!)dd2j*Ur)+;9XaBJb?tu>N_`kQyW9KKT?`Do znhfeW;`rNLpNPG(byfsxISR6$y{ch0pBl_0efBBg27ue}(gU5#rwHPmp^NDr?kpLB zqvU?_LLcTpi4~`&+pDz@zQ=BCOtoSisou@y5*(8Hkuf(=h4YazSv3aC$nVvxR^uA8e`4il%W~;8~5nP z0sZ)ne%u2j>Ad$nK{+Ot_8Bw_YLjZ3(odOH;;?bWLf+LPdYt>A;XF-C#&?i9c9>;f zce3S9_SN1~KxQteO6?<>{CE!D+!r%9&%zZ|a4{(GBouCtRnuK#ivrK(exn#F&Va$J7LmJ`KC!IBT~ z_~(FC0L^N36Ql-=nJlxb;;OK)C^nG@a4!A}4#9e`Y*V7T{A)g1%ppLJ!Z<}F-{FsC zB^XzoD}noRKA#=#?cEe#ithEr-m&V%)(PRr!O?#Qy|Pnw%1*~QsK(%9JY7=WL4w)_ zoSbYQF|p`+q1VY=?|aVCR%aI_Z(Iq3p4y*C64!YouT-xWSWy6P%c%X2v)=xGgQAj% zVZ%P)f>;L?P|9;S(p8JFSk*x3CRLr%P1<)6@_jfMPL>%2D19l^(vCa6zT$W?dVN2* z{~&*|rJ7>zQhin}HTQXg{(1uR=7BMZT){i(r!f<5JJ@ouO=@5YZ?Q=s7=?BiiU}qE z)#YZ|GBgB7OR^a`cBpmuGA(cF>=Mx5OOr~K)6fp62xyRSwn;yDc*sa){3c;c9hcyQ z4^Dde@Ec?{%>~zkTzee+r1sy{48oi+sL_9JWq`||E*MZWj1QnM^$@#rrPkCFv>z!M z9vozyHQ<9<$HHX5J(LzSnxhA9nDH{uIEyY`1{;YDInAVy%-pLFgqQl&tVVYw3!6S2|JOo)V1z zR)Vqn2hB4drGa~NJAY!>ZO03x4`L?5>GCaRswlEuE4{s>c!QD%W9PELDqkA^hD?+}bTvr4YTwgyJSUX(md)7}OC(Gcg0O zR|7NYVP650_`yA9OzGa5nwX&!-V)aSD=I+{kq>Sa3*c1Qhl`7GHK>aTW_y1@tnTbf zzI<%atPJ{?wv*1`?@EODOxIov`HT^}EWC{QguW^TCP|&EX#t8&YBX1E< z*EhX8@n&##R#UO+CWAkbiA;aWlWx6KLRa`8vbx%#nT@HYH;8Q;ac74QYR~1&tSTfO zHd`}Z1wJG?eo;roa8eE_?VW0bwrWU=PBo%GsGPvTa!NC|&_BKm2M zn8=1p-1Mt?hJnXYHPJ^5k3+JD#Wb65NV_CkqlO{_QKd%^yc!Ztl2|^rOvhWn9lMya zh$E2m9Co?wS8_LDKcGb2r$Ffyn5%mH#k#`#AN#vze(Ew3($5eSs>1y(tyfh zoDN(fi>j()7@Ra_$V7iYW(9DS^$r7s%)7~Gu;&bZr8D`h$&pP5?X=k$jgK~{l1a+& zW3?~^M4>ZcU`nbfMyg<3Tl9_t(k>P=o02gWjAqeAbSb&esaCnnCRy%9ZAkoc%c>;* zx|IVQ<5Xom&$g=mCRKyTYqzL(dBj*XfRong71qp~_6Oul+iHJKmsbDKWRVToVssut z(r9ACg4*>m_*~Lk>TsurZwv_|X6K927Ff@}qb|$_d18-p7k>UP9GEGt+vv1glYe&xYO_=Wn)i+_k z!UN1nZ6hJmG`oM@Z6uCXwjG-?2G}E@?!$*@x7cp^R_%twj@H&Cazr%T-JdMx24in( zP4l2gbTihQ+2m&M!VwI~v;g+k3ars0Q(h*Vw@G)2al+b^<&K_n5`*j{>9@sJ#_A3bA zJx2v_I-e}F_I>q8>2l*5ZluArMUC$=pUjX-V-1yxP1KX}#z8!(Lu7SuTea>Y+3pH& zl*id$;*54n0|{oYkF#F4caU`tK%4-hKevslcGv@|{SsvlygGn69aT91=)+u4U_qT- z*WmFqF0X%TxNLZdV3u)CyJdV&&~LjergIW?sD5UEf`4dKiQ?CP2mOPz-e6a7VBZ36 z6L@<93y78vTwc7oeDHlkTg!Y<3BWQShoYjZT)Jk%@evZ9+QGBIsF*L4?ctbAr}}C& zvOmlC3HfQ(j<(E|285XdYq>Ge+LU|Pj@|UNp|yWkZ{Ivee*O2=%9d69qnQk5#K1S#K#SWt@!{NRktT zTsVJU*MMuuS@(XG_0|X!_*N-)k}sz2$XY#Uad%_=*uWO+${V7WcWZ4J6#JIWT%EKf z{hri>kA*vR*LOV)ePHdupL7XsIR4Mr$74#q2RAx9o_1cTLEO1Oiw5K|*EqOvzo(d% zX{MYy2;revuTVXlFbw)^(k(pas2Nh^DP%SuM*0 zb(n?-!I8aFNnkjBf{WTGXcK*Tty=bABs&@ract2P!D)I@m%?d*wu9~;bPVK>8`XcI zIeR%8FmrNu9gIcT=?XVOoK7lq%5U(b*jS9vE#2fSm5{&8tC!E-oIzfWvzKq4$1+>! z58#39WQm9E$QX9KD`$>QI+`n`PwiQX^NJlo6xRnj4WJff3qaq?MtL=dF!51QjTTqr zPhS&{82H=QHYLLc2g7PHQ*wAHyn=rfOzg^IG0Vq4HaO5o3XRgU5G0Cu4S6|TWw znsT-(8%o_0f<)xv>UDgSwSIj4>X#R%scjrpI%2ti))H2QzB=rr|Na-3a3csLmu;vB2Zvy%2)AIT3I0<8(QB7r z`w2DzxtW)d-vSetknsr%x3>EUrwswfmtF}9GXkfXmmvcR9SO*5x=bs$ZZS@mxd{qB z0;idmk>3Inmyq!Z3YTF22?Uq$3knREP6G-K0W+613JP5TN0*Zd3S9vmm+=Y;Qvqd{ zMGFdI0rr=u3kqTZ?3W7+3SI*N;Ru%?;RqU+h71Zo0S1@H3<^mBM3)f_3Q!HF7YP7i zaA_}hZ*pv8m+|=tCzq8C3LXI$m$VHEQUU0f2M!8T0o<2c4hmTTZI`tU3Q`C7X9)md raA}t@{0TIdLJtZW0Rxv^4+>KOl9#a$3RM9|mj@6EHU_rj2><{9a@Yd* diff --git a/build/Wrapper.py.md5 b/build/Wrapper.py.md5 index e62a9f61..0a33c0cf 100644 --- a/build/Wrapper.py.md5 +++ b/build/Wrapper.py.md5 @@ -1 +1 @@ -df35cce817c13938b51c1413084baeb9 \ No newline at end of file +a0abe3dd51eeac2c62bdf61efa05787a \ No newline at end of file diff --git a/build/version.json b/build/version.json index c7b0e04e..75245681 100644 --- a/build/version.json +++ b/build/version.json @@ -9,6 +9,6 @@ 25 ], "build": 229, - "release_time": 1527355833.676662, + "release_time": 1527355924.611748, "repotype": "stable" } \ No newline at end of file diff --git a/docs/Wrapper.py.md5 b/docs/Wrapper.py.md5 index e62a9f61..0a33c0cf 100644 --- a/docs/Wrapper.py.md5 +++ b/docs/Wrapper.py.md5 @@ -1 +1 @@ -df35cce817c13938b51c1413084baeb9 \ No newline at end of file +a0abe3dd51eeac2c62bdf61efa05787a \ No newline at end of file diff --git a/wrapper/proxy/client/clientconnection.py b/wrapper/proxy/client/clientconnection.py index c0e62f4f..d046348c 100644 --- a/wrapper/proxy/client/clientconnection.py +++ b/wrapper/proxy/client/clientconnection.py @@ -93,7 +93,6 @@ def __init__(self, proxy, clientsock, client_addr, banned=False): self.keepalive_val = 0 # client and server status - # ------------------------ # health items self.health = False @@ -146,7 +145,7 @@ def __init__(self, proxy, clientsock, client_addr, banned=False): # This ID will be the same no matter what mode wrapper is in # or whether it is a lobby, etc. This will be the formal uuid # to use for all wrapper internal functions for referencing a - # unique player + # unique player. self.mojanguuid = None # information gathered during login or socket connection processes From f427404465e8bbdcbf290fcf3f379b2d2351b873 Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Mon, 28 May 2018 15:05:23 -0400 Subject: [PATCH 12/16] build 25 --- Wrapper.py | Bin 659523 -> 659554 bytes build/CHANGELOG.DEV.md | 7 ++++ build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 4 +- docs/Wrapper.py.md5 | 2 +- stable-plugins/Geode.py | 48 +++++++++++++++++++++++ stable-plugins/chat.py | 39 +++++++++--------- wrapper/core/buildinfo.py | 2 +- wrapper/core/commands.py | 5 +-- wrapper/core/mcserver.py | 9 +++-- wrapper/proxy/server/serverconnection.py | 1 - 12 files changed, 89 insertions(+), 32 deletions(-) create mode 100644 stable-plugins/Geode.py diff --git a/Wrapper.py b/Wrapper.py index 160dbb9bedf3a50c7a0e4dabfbfa6cb428c70a05..3430bbf9866f7c22c85e8df0b6a10d50fb211827 100644 GIT binary patch delta 17215 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 O1-Q)Eu0P=frcMABU%eOr delta 17229 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�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 diff --git a/build/CHANGELOG.DEV.md b/build/CHANGELOG.DEV.md index c17e5d82..10d181bd 100644 --- a/build/CHANGELOG.DEV.md +++ b/build/CHANGELOG.DEV.md @@ -1,3 +1,10 @@ +Build 26 +- Fix Chat.py plugin (all player's were sharing the same chat configuration). +- Fix Chat.py breaking on /reload. +- bugfix message from offline wrapper that is a hub in mcserver.py. +- changed deop to allow any vanilla level 4 OP to run it. +- add Geode plugin that prints each player's IP and country code at login. + Build 25 - Explicitly `close()` sockets that were shutdown. - substitute 'localhost' for code occurences of '127.0.0.1'. diff --git a/build/Wrapper.py.md5 b/build/Wrapper.py.md5 index 0a33c0cf..a558f60d 100644 --- a/build/Wrapper.py.md5 +++ b/build/Wrapper.py.md5 @@ -1 +1 @@ -a0abe3dd51eeac2c62bdf61efa05787a \ No newline at end of file +35d6db2fc1ab72de5a4a008184382aaa \ No newline at end of file diff --git a/build/buildinfo.py b/build/buildinfo.py index a0687a6f..3617fe9f 100644 --- a/build/buildinfo.py +++ b/build/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 17, 'rc', 25] +__version__ = [1, 0, 17, 'rc', 26] __branch__ = 'dev' diff --git a/build/version.json b/build/version.json index 75245681..b7f94624 100644 --- a/build/version.json +++ b/build/version.json @@ -6,9 +6,9 @@ 0, 17, "rc", - 25 + 26 ], "build": 229, - "release_time": 1527355924.611748, + "release_time": 1527534256.49838, "repotype": "stable" } \ No newline at end of file diff --git a/docs/Wrapper.py.md5 b/docs/Wrapper.py.md5 index 0a33c0cf..a558f60d 100644 --- a/docs/Wrapper.py.md5 +++ b/docs/Wrapper.py.md5 @@ -1 +1 @@ -a0abe3dd51eeac2c62bdf61efa05787a \ No newline at end of file +35d6db2fc1ab72de5a4a008184382aaa \ No newline at end of file diff --git a/stable-plugins/Geode.py b/stable-plugins/Geode.py new file mode 100644 index 00000000..0477ff71 --- /dev/null +++ b/stable-plugins/Geode.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- + +# pip install --user pygeoip +try: + import pygeoip +except ImportError: + pygeoip = False + DEPENDENCIES = ["ImportError: could not import package pygeoip", ] + +NAME = "Geode" +AUTHOR = "SurestTexas00" +ID = "com.suresttexas00.plugins.geode" +VERSION = (0, 1, 0) +SUMMARY = "Lookup player's country based on ip." +WEBSITE = "" +DESCRIPTION = """ +Test plugin to lookup player's country using pygeoip. +""" + + +# noinspection PyPep8Naming,PyMethodMayBeStatic,PyUnusedLocal +# noinspection PyClassicStyleClass,PyAttributeOutsideInit +class Main: + def __init__(self, api, log): + self.api = api + self.minecraft = api.minecraft + self.log = log + + def onEnable(self): + self.api.registerEvent("player.login", self.login) + self.data_storageobject = self.api.getStorage( + "geode", world=False, pickle=False + ) + self.data = self.data_storageobject.Data + self.gi = pygeoip.GeoIP('/usr/share/GeoIP/GeoIP.dat', + flags=pygeoip.const.MMAP_CACHE) + + def onDisable(self): + self.data_storageobject.close() + + def login(self, payload): + playerObj = payload["player"] + print(playerObj.ipaddress) + x = self.gi.country_code_by_addr(playerObj.ipaddress) + self.log.info( + "%s logged on from an ip (%s) in country '%s'." % ( + playerObj.username, playerObj.ipaddress, x) + ) diff --git a/stable-plugins/chat.py b/stable-plugins/chat.py index a95eeacd..7372d49a 100644 --- a/stable-plugins/chat.py +++ b/stable-plugins/chat.py @@ -1,5 +1,6 @@ # coding=utf-8 +import copy import sys PY3 = sys.version_info[0] > 2 @@ -21,25 +22,25 @@ SECT = u'\xa7' -# noinspection PyPep8Naming,PyCompatibility +# noinspection PyPep8Naming,PyMethodMayBeStatic,PyUnusedLocal +# noinspection PyClassicStyleClass,PyAttributeOutsideInit class Main: def __init__(self, api, log): + self.api = api self.log = log - self.ranks = {} - self.player_ranks = {} - self.default = { - "trans": False, - "isOp": False, - "rank": None, - "color": "f" # white - } def onEnable(self): self.api.registerEvent("player.chatbox", self.playerChatBox) - self.api.registerEvent("player.login", self.login) self.api.registerEvent("player.logout", self.logout) + self.player_ranks = {} + self.default = { + "trans": False, + "isOp": False, + "rank": None, + "color": "f" # white + } self.ranks = [ # from highest to lowest # perm display rank display color {"perm": "owner", "rank": "Owner", "color": "4"}, @@ -55,12 +56,11 @@ def onEnable(self): def onDisable(self): pass - def login(self, payload): - """ Obtain the player's rank when he logs in """ - player = payload["player"] - uuid = player.uuid - if uuid not in self.player_ranks: - self.player_ranks[uuid] = self.default + def verify(self, player): + """ Obtain the player's rank """ + if player.uuid not in self.player_ranks: + uuid = player.uuid + self.player_ranks[uuid] = copy.copy(self.default) if player.isOp(): self.player_ranks[uuid]["isOp"] = True @@ -85,8 +85,8 @@ def playerChatBox(self, payload): """ We can modify the chat. All the permissions legwork that could slow up the code - is already done just once at login.. we have to keep this - packet moving to prevent lag! + is done just once when player chat is first used.. + we have to keep this packet moving to prevent lag! {'translate': 'chat.type.text', 'with': [__[0]__{'clickEvent': {'action': 'suggest_command', @@ -103,6 +103,7 @@ def playerChatBox(self, payload): player = payload["player"] data = payload["json"] + self.verify(player) if "translate" in data: # special type of chat @@ -124,7 +125,7 @@ def playerChatBox(self, payload): # chatdisplayname[0] insertionplayer = self.api.minecraft.getPlayer(insertionplayername) # noqa - + self.verify(insertionplayer) # permanently tag OP suffix if self.player_ranks[insertionplayer.uuid]["isOp"]: data["with"][0]["text"] = "%s §8[OP]§r" % chatdisplayname diff --git a/wrapper/core/buildinfo.py b/wrapper/core/buildinfo.py index a0687a6f..3617fe9f 100644 --- a/wrapper/core/buildinfo.py +++ b/wrapper/core/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 17, 'rc', 25] +__version__ = [1, 0, 17, 'rc', 26] __branch__ = 'dev' diff --git a/wrapper/core/commands.py b/wrapper/core/commands.py index 76ac0e35..dbcb4d70 100644 --- a/wrapper/core/commands.py +++ b/wrapper/core/commands.py @@ -908,9 +908,8 @@ def _command_whitelist_online(self, player, _arg): self.wrapper.shutdown() def command_deop(self, player, payload): - # if player is None: - # player = self.wrapper.xplayer - if not self._superop(player, 9): + """DeOP has lower permission level""" + if not self._superop(player, 3): return False operator_name = getargs(payload["args"], 0) if self.wrapper.javaserver.state == 2: diff --git a/wrapper/core/mcserver.py b/wrapper/core/mcserver.py index aa87a011..35b2d342 100644 --- a/wrapper/core/mcserver.py +++ b/wrapper/core/mcserver.py @@ -829,15 +829,18 @@ def readconsole(self, buff): prefix = " ".join(buff.split(' ')[:self.prepends_offset]) if not self.wrapper.wrapper_onlinemode: + try: + pport = "either port %s or " % self.wrapper.proxy.proxy_port + except AttributeError: + pport = "" message = ( "%s Since you are running Wrapper in OFFLINE mode, THIS " "COULD BE SERIOUS!\n%s Wrapper is not handling any" " authentication.\n%s This is only ok if this wrapper " - "is not accessible from either port %s or port %s" + "is not accessible from %sport %s" " (I.e., this wrapper is a multiworld for a hub server, or" " you are doing your own authorization via a plugin)." % ( - prefix, prefix, prefix, - self.server_port, self.wrapper.proxy.proxy_port)) + prefix, prefix, prefix, pport, self.server_port)) else: message = ( "%s Since you are running Wrapper in proxy mode, this" diff --git a/wrapper/proxy/server/serverconnection.py b/wrapper/proxy/server/serverconnection.py index eb05cbdd..37a18a42 100644 --- a/wrapper/proxy/server/serverconnection.py +++ b/wrapper/proxy/server/serverconnection.py @@ -48,7 +48,6 @@ def __init__(self, client, ip=None, port=None): self.ip = ip self.port = port - # server setup and operating paramenters self.abort = False self.flush_rate = self.client.flush_rate From 02ebca21ec583f9feb95008abd0125bbbf500556 Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Sun, 15 Jul 2018 10:18:33 -0400 Subject: [PATCH 13/16] Build 27 - fix player to player teleport ValueError bug caused by trying to read coordinates --- Wrapper.py | Bin 659554 -> 659573 bytes build/CHANGELOG.DEV.md | 4 ++++ build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 4 ++-- docs/Wrapper.py.md5 | 2 +- wrapper/core/buildinfo.py | 2 +- wrapper/core/mcserver.py | 26 ++++++++++++++++---------- 8 files changed, 26 insertions(+), 16 deletions(-) diff --git a/Wrapper.py b/Wrapper.py index 3430bbf9866f7c22c85e8df0b6a10d50fb211827..c250f5b2defc019e6afccfe6df78494c09665bc7 100644 GIT binary patch delta 7524 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ਇq>M|#+^ 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 diff --git a/build/CHANGELOG.DEV.md b/build/CHANGELOG.DEV.md index 10d181bd..843f6f32 100644 --- a/build/CHANGELOG.DEV.md +++ b/build/CHANGELOG.DEV.md @@ -1,3 +1,7 @@ +Build 27 +- fix player to player teleport ValueError bug caused by trying to read coordinates + where only a player name was given ("[lukeeexd: Teleported lukeeexd to Nyaii]") + Build 26 - Fix Chat.py plugin (all player's were sharing the same chat configuration). - Fix Chat.py breaking on /reload. diff --git a/build/Wrapper.py.md5 b/build/Wrapper.py.md5 index a558f60d..4b84d5c6 100644 --- a/build/Wrapper.py.md5 +++ b/build/Wrapper.py.md5 @@ -1 +1 @@ -35d6db2fc1ab72de5a4a008184382aaa \ No newline at end of file +3b7c3fd7eff92f5c06708c835f49207d \ No newline at end of file diff --git a/build/buildinfo.py b/build/buildinfo.py index 3617fe9f..3dbc62fb 100644 --- a/build/buildinfo.py +++ b/build/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 17, 'rc', 26] +__version__ = [1, 0, 17, 'rc', 27] __branch__ = 'dev' diff --git a/build/version.json b/build/version.json index b7f94624..0d3285c3 100644 --- a/build/version.json +++ b/build/version.json @@ -6,9 +6,9 @@ 0, 17, "rc", - 26 + 27 ], "build": 229, - "release_time": 1527534256.49838, + "release_time": 1531664193.929392, "repotype": "stable" } \ No newline at end of file diff --git a/docs/Wrapper.py.md5 b/docs/Wrapper.py.md5 index a558f60d..4b84d5c6 100644 --- a/docs/Wrapper.py.md5 +++ b/docs/Wrapper.py.md5 @@ -1 +1 @@ -35d6db2fc1ab72de5a4a008184382aaa \ No newline at end of file +3b7c3fd7eff92f5c06708c835f49207d \ No newline at end of file diff --git a/wrapper/core/buildinfo.py b/wrapper/core/buildinfo.py index 3617fe9f..3dbc62fb 100644 --- a/wrapper/core/buildinfo.py +++ b/wrapper/core/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 17, 'rc', 26] +__version__ = [1, 0, 17, 'rc', 27] __branch__ = 'dev' diff --git a/wrapper/core/mcserver.py b/wrapper/core/mcserver.py index 35b2d342..41ae6049 100644 --- a/wrapper/core/mcserver.py +++ b/wrapper/core/mcserver.py @@ -1004,11 +1004,14 @@ def readconsole(self, buff): # [SurestTexas00: Teleported SapperLeader to 48.49417131908783, 77.67081086259394, -279.88880690937475] # noqa if playername in self.wrapper.players: playerobj = self.getplayer(playername) - playerobj._position = [ - get_int(float(getargs(line_words, 4).split(",")[0])), - get_int(float(getargs(line_words, 5).split(",")[0])), - get_int(float(getargs(line_words, 6).split("]")[0])), 0, 0 - ] + try: + playerobj._position = [ + get_int(float(getargs(line_words, 4).split(",")[0])), + get_int(float(getargs(line_words, 5).split(",")[0])), + get_int(float(getargs(line_words, 6).split("]")[0])), 0, 0 + ] + except ValueError: + pass self.wrapper.events.callevent( "player.teleport", {"player": playerobj}, abortable=False) @@ -1034,11 +1037,14 @@ def readconsole(self, buff): # Teleported SurestTexas00 to 48.49417131908783, 77.67081086259394, -279.88880690937475 # noqa if playername in self.wrapper.players: playerobj = self.getplayer(playername) - playerobj._position = [ - get_int(float(getargs(line_words, 3).split(",")[0])), - get_int(float(getargs(line_words, 4).split(",")[0])), - get_int(float(getargs(line_words, 5))), 0, 0 - ] + try: + playerobj._position = [ + get_int(float(getargs(line_words, 3).split(",")[0])), + get_int(float(getargs(line_words, 4).split(",")[0])), + get_int(float(getargs(line_words, 5))), 0, 0 + ] + except ValueError: + pass self.wrapper.events.callevent( "player.teleport", {"player": playerobj}, abortable=False) From a66e3723ab6106e5e0e4fe2af117f907f62afa69 Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Sun, 15 Jul 2018 10:24:35 -0400 Subject: [PATCH 14/16] PR to dev --- Wrapper.py | Bin 659573 -> 659573 bytes build/CHANGELOG.DEV.md | 2 ++ build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 4 ++-- docs/Wrapper.py.md5 | 2 +- wrapper/core/buildinfo.py | 2 +- 7 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Wrapper.py b/Wrapper.py index c250f5b2defc019e6afccfe6df78494c09665bc7..80185819b4100bb1de98a3fbabf87d1ebb3e8656 100644 GIT binary patch delta 1259 zcmZXSdrTBZ9LINehS{CD#GlAN%Zj9QiDiLt;$`XyR$By@sHhn=KI^< z_xqcfebDTF(CqHY62TjVz8_u}w-$5gS=s32P;lVW0EhnJy+!nKyKG}MZ;NS2(^@+M z;#3V-ce&U;gVU-n#L7ZW7jKANAx=BqmySSa5Qgj^lfn`v~<@um56L{4~X9$c-oRU5Rdx}LbozaWz?DPQG@8xn?3fvb^<&s>* z#-@A-TZ*{+(^+^IaO$`S3!vU-V~$G@Vq-BU3_r3Oiz6d&1?CObQP|SQ>1a<})W_*Z z1-0s9tTv$VkTEd3Tpwz60`o0NT|_ z6rn?%O__8Hzmy@+vEyjklkr(fFS=i=?a2|4XBpy~0eSOwptjJSb8_rXCu5?z37Q*? zo|98!4q-OSKQBX(cNJccUp2fMF36?nT#Y=MXkclN<%fCvP^T?YR?p`39TiHfp_7Ye zDwGK;RH;;px_cpD$D0CD^PDB=DuiJJh8Gp zQRPH3w+kj=BbkMg@Qd~Ozhq~9owz?wJDsLcoS`|;&~5CX*G6%dV%#?UCW14ip&+dr zkZfO%V8Si$MDWYf8eOEx60uN^NX+b=DE3O4Vci&h#i*-I7WU5=9t2uz<3i%3_au^F zO3CVgshS^QzwEkaQH52!<=Gsjh Q;>~B`pU%hWX9~foHUH||9 delta 1181 zcmYL`4Qx|Y7>4h?=l0xtPD|&uQqB59w-OjL=*Z>*ZqYf(25YrLN{dcNy7-d~WrOe+ zC5}2L1Q&6YaTubIFtW`kbUHY&RDPo-M8*(JG{kN*ThuuQn&4n9(|f;$d6S#GdEfiJ z=R426eK_~_;oNA6i0m73zI;-AqZ&l)#kMjK{zGs3K>R%M(F?lZTbGN4SXZ6Ld}0<@ zJ+)$YHmEi4i48$e1HX#VFsP=Nq?59)SV^sP5iF@rs@ei-)sXaU9;i7+6nE(Aob!}{JW)K^Mmt8*0j_g z{p?=Bx(yeP6fDl#^i{Zjt?l5{Z_mCv9y!!lwkLFL3{`oMY|(a6g|f{tubMtW3i1Rt zeHJ^>o6neFC0=k255KS9%j#3+!@Zse@~3^umbZ}bd>@NlR_w^PjkGRuqNYtTmb|RE zk=1KrJ>80vm-Z_b5&Ym4r3m~LLz0DeTv7ZBU_Nn2`(B%8p+aRgFS@IYRsv4vQnlt` zG`X&iHPx$bBpx8p2+pN?wFqlYb!m{}2DNc9Iv?m`ySmgz40N;Rvhld$;6HV#udQ@t z`un}w4QC!%unVDv+DBLUHSW#ZbD)*YokcVF-lTfog|q>-+Ckh9R#gxSk2r`eg6c#Q zj~*v~R_ZK1o+5cj`^PLiN~~;XibU1>|CjAgkbE}mRx{bTzlaHGWZ77P6zW8Ic9N`@ z^n%uD@|Y9~u+~8-bKfmu=6_6+-;qwFt(e-_O^K!f6|LV6{9K4G0)F>T#H<0)wUAv! zbSY%n_lS%2#T7Fvm#G){w#nL@&iCp+#K9&Gxd;- z60KQhKWw0nvsWlB1=QV?mLLuF|E1hwq~C}D?-vuz1$Z-6I^H9YU7DqBqf-x05Eplv HX;AtPean|z diff --git a/build/CHANGELOG.DEV.md b/build/CHANGELOG.DEV.md index 843f6f32..e056c13d 100644 --- a/build/CHANGELOG.DEV.md +++ b/build/CHANGELOG.DEV.md @@ -1,6 +1,8 @@ Build 27 +- increment version to 1.0.18 RC 27 - fix player to player teleport ValueError bug caused by trying to read coordinates where only a player name was given ("[lukeeexd: Teleported lukeeexd to Nyaii]") +- create PR to development. Build 26 - Fix Chat.py plugin (all player's were sharing the same chat configuration). diff --git a/build/Wrapper.py.md5 b/build/Wrapper.py.md5 index 4b84d5c6..de8ac938 100644 --- a/build/Wrapper.py.md5 +++ b/build/Wrapper.py.md5 @@ -1 +1 @@ -3b7c3fd7eff92f5c06708c835f49207d \ No newline at end of file +72a4a9757155ce9e3d52a56bf409b9ca \ No newline at end of file diff --git a/build/buildinfo.py b/build/buildinfo.py index 3dbc62fb..9cab0e3b 100644 --- a/build/buildinfo.py +++ b/build/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 17, 'rc', 27] +__version__ = [1, 0, 18, 'rc', 27] __branch__ = 'dev' diff --git a/build/version.json b/build/version.json index 0d3285c3..a2041f84 100644 --- a/build/version.json +++ b/build/version.json @@ -4,11 +4,11 @@ "__version__": [ 1, 0, - 17, + 18, "rc", 27 ], "build": 229, - "release_time": 1531664193.929392, + "release_time": 1531664620.436368, "repotype": "stable" } \ No newline at end of file diff --git a/docs/Wrapper.py.md5 b/docs/Wrapper.py.md5 index 4b84d5c6..de8ac938 100644 --- a/docs/Wrapper.py.md5 +++ b/docs/Wrapper.py.md5 @@ -1 +1 @@ -3b7c3fd7eff92f5c06708c835f49207d \ No newline at end of file +72a4a9757155ce9e3d52a56bf409b9ca \ No newline at end of file diff --git a/wrapper/core/buildinfo.py b/wrapper/core/buildinfo.py index 3dbc62fb..9cab0e3b 100644 --- a/wrapper/core/buildinfo.py +++ b/wrapper/core/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 17, 'rc', 27] +__version__ = [1, 0, 18, 'rc', 27] __branch__ = 'dev' From d2cdda7ceb4cfe4972e72f615bfbbdf6f3498504 Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Sun, 19 Aug 2018 11:18:40 -0400 Subject: [PATCH 15/16] bugfix in whitelist commands --- Wrapper.py | Bin 659573 -> 659576 bytes build/CHANGELOG.DEV.md | 3 +++ build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 6 +++--- docs/Wrapper.py.md5 | 2 +- wrapper/core/buildinfo.py | 2 +- wrapper/core/commands.py | 2 +- 8 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Wrapper.py b/Wrapper.py index 80185819b4100bb1de98a3fbabf87d1ebb3e8656..89fb2b10b5e0e25aa436aa31c3e4de6038e52c60 100644 GIT binary patch delta 6907 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 A>i_@% delta 6821 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 CI%hZl diff --git a/build/CHANGELOG.DEV.md b/build/CHANGELOG.DEV.md index e056c13d..4164d032 100644 --- a/build/CHANGELOG.DEV.md +++ b/build/CHANGELOG.DEV.md @@ -1,3 +1,6 @@ +Build 28, 1.0.19 RC 28 +- Bugfix commands.py line 784 where player message is used with no argument. + Build 27 - increment version to 1.0.18 RC 27 - fix player to player teleport ValueError bug caused by trying to read coordinates diff --git a/build/Wrapper.py.md5 b/build/Wrapper.py.md5 index de8ac938..2c3a39f5 100644 --- a/build/Wrapper.py.md5 +++ b/build/Wrapper.py.md5 @@ -1 +1 @@ -72a4a9757155ce9e3d52a56bf409b9ca \ No newline at end of file +185ec56315a741ffceb4d860b359e17e \ No newline at end of file diff --git a/build/buildinfo.py b/build/buildinfo.py index 9cab0e3b..9bfbc0a4 100644 --- a/build/buildinfo.py +++ b/build/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 18, 'rc', 27] +__version__ = [1, 0, 19, 'rc', 28] __branch__ = 'dev' diff --git a/build/version.json b/build/version.json index a2041f84..5a6b7667 100644 --- a/build/version.json +++ b/build/version.json @@ -4,11 +4,11 @@ "__version__": [ 1, 0, - 18, + 19, "rc", - 27 + 28 ], "build": 229, - "release_time": 1531664620.436368, + "release_time": 1534691873.225416, "repotype": "stable" } \ No newline at end of file diff --git a/docs/Wrapper.py.md5 b/docs/Wrapper.py.md5 index de8ac938..2c3a39f5 100644 --- a/docs/Wrapper.py.md5 +++ b/docs/Wrapper.py.md5 @@ -1 +1 @@ -72a4a9757155ce9e3d52a56bf409b9ca \ No newline at end of file +185ec56315a741ffceb4d860b359e17e \ No newline at end of file diff --git a/wrapper/core/buildinfo.py b/wrapper/core/buildinfo.py index 9cab0e3b..9bfbc0a4 100644 --- a/wrapper/core/buildinfo.py +++ b/wrapper/core/buildinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # Do not edit this file to bump versions; it is built automatically -__version__ = [1, 0, 18, 'rc', 27] +__version__ = [1, 0, 19, 'rc', 28] __branch__ = 'dev' diff --git a/wrapper/core/commands.py b/wrapper/core/commands.py index dbcb4d70..883f12f7 100644 --- a/wrapper/core/commands.py +++ b/wrapper/core/commands.py @@ -781,7 +781,7 @@ def _command_whitelist_add(self, player, arg): if not self.wrapper.proxymode: player.execute("whitelist add %s" % arg) player.message("..Working. Server may lag.") - player.message() + player.message("...") return whitelist = getjsonfile( "whitelist", self.wrapper.serverpath, self.wrapper.encoding From 2780188bff85a547ecc80a294473f901ad9440ea Mon Sep 17 00:00:00 2001 From: suresttexas00 Date: Sun, 19 Aug 2018 11:39:03 -0400 Subject: [PATCH 16/16] Update master branch

1.0.19 rc 28

Bugfixes: - Bugfix commands.py line 784 where player message is used with no argument. - fix player to player teleport ValueError bug caused by trying to read coordinates where only a player name was given ("[lukeeexd: Teleported lukeeexd to Nyaii]") - Fix Chat.py plugin (all player's were sharing the same chat configuration). - Fix Chat.py breaking on /reload. - bugfix message from offline wrapper that is a hub in mcserver.py. - changed deop to allow any vanilla level 4 OP to run it. - Explicitly `close()` sockets that were shutdown. - substitute 'localhost' for code occurences of '127.0.0.1'. New Plugin: - add Geode plugin that prints each player's IP and country code at login. --- CHANGELOG.md | 15 +++++++++++++++ Wrapper.py | Bin 659576 -> 659576 bytes build/CHANGELOG.DEV.md | 1 + build/Wrapper.py.md5 | 2 +- build/buildinfo.py | 2 +- build/version.json | 4 ++-- docs/Wrapper.py.md5 | 2 +- wrapper/core/buildinfo.py | 2 +- 8 files changed, 22 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 615ecb08..06d8592f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,19 @@ #Changelog# + +

1.0.19 rc 28

+Bugfixes: +- Bugfix commands.py line 784 where player message is used with no argument. +- fix player to player teleport ValueError bug caused by trying to read coordinates + where only a player name was given ("[lukeeexd: Teleported lukeeexd to Nyaii]") +- Fix Chat.py plugin (all player's were sharing the same chat configuration). +- Fix Chat.py breaking on /reload. +- bugfix message from offline wrapper that is a hub in mcserver.py. +- changed deop to allow any vanilla level 4 OP to run it. +- Explicitly `close()` sockets that were shutdown. +- substitute 'localhost' for code occurences of '127.0.0.1'. +New Plugin: +- add Geode plugin that prints each player's IP and country code at login. +

1.0.17-18 rc 22-23

-bugfix for non-proxy setups. See Dev changelogs (on development branch). diff --git a/Wrapper.py b/Wrapper.py index 89fb2b10b5e0e25aa436aa31c3e4de6038e52c60..0fd85587262e0caac458d1a5d0a6b17201d17e77 100644 GIT binary patch delta 731 zcmeydK;y>(jSV)8%!*x=o9!8^qQQ(kF;ktujF9C`ZVPiuG=zENKJx-6 z2(w&?rNH-Vo*q4z}q~HxzNRl`~FPI>Iiz{SOaYlN*RBvVBr8+iNCpAT)%rbudD7 zNk_10%7X>n%h^5|Fx`%tZoPs{hRv_LGCI3^`opvAqSF@~{f z`;lvDkl)vyeZNb3l@6Poo1OZ}?AUgJV}E8E?s#CP^+xpAVudE1I4zlF)#~eRJh?u9 z!qm0hj$Ql#-pni_KqqoA0R8iIKbtz(KYrcqN(b1sD;;3}(+u`~yP*rmc0(7=`t0c$ zn}C6Jcs=KBFHjIH_{FKk(jSV)8%=f!XHrq2+MS~f8Vx~HQ86oqV{K1Ty?`B7V7~9J|8BN$gtmW(c z8KuBN8#5VKDuP+D-HZj{VAh34j2jxktmYJ^Z7d+xbel}3!(bt%ET(`mFe~%{({U{@ zOP-tgo-By9O_TYy5?JV-H*+dj=XSRM=1T@(G3iF;|4d+(Yzy-guxqz(xzD@-?A-0? zN-T50?%mE-#IhCQ;C*LU-ZF!Ath>Mx0x^&EDvKy5#FTq1twLbd(hn?I5HX=&EK3f7 z#dhvt{o@U0?ciWr4zV|ho2?xjT-)F9uuXCU%QgnH{ej3fgt2u%WVs{QEakzn?&WNs z44589PPbmcCc|3RSsC3p{h$Dc%=U^EY+J;5t)ql}FTXywwuXU$Ve)j#{cN&Kie1wW zHnEA;>z;DtI%FW=_ORCPqq8`p=fPd8x~%gRg)W(FWzJltGP!B{_O9FC_p!ZQ*!q0p zrPobb!ME$XvkKBx#9Ah@7zH16F?5h{jt$FE6n_-5?#6e!cCWw(t3Etx+0*@T?Ub$c zX}Wn8C2a1^?{XGwzRtG%-_FU3yPrIteP8_+irY-{dF_Qf9;Ac9NQILIQz4~zTLc@^R*Yqw+nu8YB839d@3@%;3X&5 z^q0RlSE2cK!Ea9O=^O7e3s2whhLZ=R>&L=c=@aiW2~VH!lT&JYz#mQx5dc!u BDZc;! diff --git a/build/CHANGELOG.DEV.md b/build/CHANGELOG.DEV.md index 4164d032..3e5b2038 100644 --- a/build/CHANGELOG.DEV.md +++ b/build/CHANGELOG.DEV.md @@ -1,5 +1,6 @@ Build 28, 1.0.19 RC 28 - Bugfix commands.py line 784 where player message is used with no argument. +- Update Master branch Build 27 - increment version to 1.0.18 RC 27 diff --git a/build/Wrapper.py.md5 b/build/Wrapper.py.md5 index 2c3a39f5..d8379bcc 100644 --- a/build/Wrapper.py.md5 +++ b/build/Wrapper.py.md5 @@ -1 +1 @@ -185ec56315a741ffceb4d860b359e17e \ No newline at end of file +d5aca2e96299c3d95a332fdf0b119b75 \ No newline at end of file diff --git a/build/buildinfo.py b/build/buildinfo.py index 9bfbc0a4..5d31059f 100644 --- a/build/buildinfo.py +++ b/build/buildinfo.py @@ -2,4 +2,4 @@ # Do not edit this file to bump versions; it is built automatically __version__ = [1, 0, 19, 'rc', 28] -__branch__ = 'dev' +__branch__ = 'stable' diff --git a/build/version.json b/build/version.json index 5a6b7667..1dc4bc97 100644 --- a/build/version.json +++ b/build/version.json @@ -1,5 +1,5 @@ { - "__branch__": "dev", + "__branch__": "stable", "__build__": 266, "__version__": [ 1, @@ -9,6 +9,6 @@ 28 ], "build": 229, - "release_time": 1534691873.225416, + "release_time": 1534692383.768469, "repotype": "stable" } \ No newline at end of file diff --git a/docs/Wrapper.py.md5 b/docs/Wrapper.py.md5 index 2c3a39f5..d8379bcc 100644 --- a/docs/Wrapper.py.md5 +++ b/docs/Wrapper.py.md5 @@ -1 +1 @@ -185ec56315a741ffceb4d860b359e17e \ No newline at end of file +d5aca2e96299c3d95a332fdf0b119b75 \ No newline at end of file diff --git a/wrapper/core/buildinfo.py b/wrapper/core/buildinfo.py index 9bfbc0a4..5d31059f 100644 --- a/wrapper/core/buildinfo.py +++ b/wrapper/core/buildinfo.py @@ -2,4 +2,4 @@ # Do not edit this file to bump versions; it is built automatically __version__ = [1, 0, 19, 'rc', 28] -__branch__ = 'dev' +__branch__ = 'stable'

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 delta 31858 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 Date: Sat, 26 May 2018 13:29:08 -0400 Subject: [PATCH 09/16] typo --- Wrapper.py | Bin 659529 -> 659525 bytes build/Wrapper.py.md5 | 2 +- build/version.json | 2 +- docs/Wrapper.py.md5 | 2 +- wrapper/proxy/client/clientconnection.py | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Wrapper.py b/Wrapper.py index f3540dd94dab2babddacdd033387fc88a2c0a59a..fc9afb308eeed235c925d0ae8488815728668cbf 100644 GIT binary patch delta 14584 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