STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228158
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5122

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/56923401?noj=FRM56923401-21DC" width="1" height="1"></div>

Ryokan 1.1.swf

This is the info page for
Flash #47035

(Click the ID number above for more basic data on this flash file.)


ActionScript [AS3]
Section 1
//BombActivate (audio.BombActivate) package audio { import flash.media.*; public dynamic class BombActivate extends Sound { } }//package audio
Section 2
//BombTrigger (audio.BombTrigger) package audio { import flash.media.*; public dynamic class BombTrigger extends Sound { } }//package audio
Section 3
//ClearSnd (audio.ClearSnd) package audio { import flash.media.*; public dynamic class ClearSnd extends Sound { } }//package audio
Section 4
//DropSnd (audio.DropSnd) package audio { import flash.media.*; public dynamic class DropSnd extends Sound { } }//package audio
Section 5
//FlipSnd (audio.FlipSnd) package audio { import flash.media.*; public dynamic class FlipSnd extends Sound { } }//package audio
Section 6
//MoveSnd (audio.MoveSnd) package audio { import flash.media.*; public dynamic class MoveSnd extends Sound { } }//package audio
Section 7
//HelpArrows (images.help.HelpArrows) package images.help { import flash.display.*; public dynamic class HelpArrows extends BitmapData { public function HelpArrows(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.help
Section 8
//Background (images.level1.Background) package images.level1 { import flash.display.*; public dynamic class Background extends BitmapData { public function Background(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level1
Section 9
//BlockA (images.level1.BlockA) package images.level1 { import flash.display.*; public dynamic class BlockA extends BitmapData { public function BlockA(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level1
Section 10
//BlockAErase (images.level1.BlockAErase) package images.level1 { import flash.display.*; public dynamic class BlockAErase extends BitmapData { public function BlockAErase(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level1
Section 11
//BlockB (images.level1.BlockB) package images.level1 { import flash.display.*; public dynamic class BlockB extends BitmapData { public function BlockB(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level1
Section 12
//BlockBErase (images.level1.BlockBErase) package images.level1 { import flash.display.*; public dynamic class BlockBErase extends BitmapData { public function BlockBErase(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level1
Section 13
//Background (images.level2.Background) package images.level2 { import flash.display.*; public dynamic class Background extends BitmapData { public function Background(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level2
Section 14
//BlockA (images.level2.BlockA) package images.level2 { import flash.display.*; public dynamic class BlockA extends BitmapData { public function BlockA(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level2
Section 15
//BlockAErase (images.level2.BlockAErase) package images.level2 { import flash.display.*; public dynamic class BlockAErase extends BitmapData { public function BlockAErase(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level2
Section 16
//BlockB (images.level2.BlockB) package images.level2 { import flash.display.*; public dynamic class BlockB extends BitmapData { public function BlockB(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level2
Section 17
//BlockBErase (images.level2.BlockBErase) package images.level2 { import flash.display.*; public dynamic class BlockBErase extends BitmapData { public function BlockBErase(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level2
Section 18
//Background (images.level3.Background) package images.level3 { import flash.display.*; public dynamic class Background extends BitmapData { public function Background(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level3
Section 19
//BlockA (images.level3.BlockA) package images.level3 { import flash.display.*; public dynamic class BlockA extends BitmapData { public function BlockA(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level3
Section 20
//BlockAErase (images.level3.BlockAErase) package images.level3 { import flash.display.*; public dynamic class BlockAErase extends BitmapData { public function BlockAErase(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level3
Section 21
//BlockB (images.level3.BlockB) package images.level3 { import flash.display.*; public dynamic class BlockB extends BitmapData { public function BlockB(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level3
Section 22
//BlockBErase (images.level3.BlockBErase) package images.level3 { import flash.display.*; public dynamic class BlockBErase extends BitmapData { public function BlockBErase(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level3
Section 23
//Background (images.level4.Background) package images.level4 { import flash.display.*; public dynamic class Background extends BitmapData { public function Background(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level4
Section 24
//BlockA (images.level4.BlockA) package images.level4 { import flash.display.*; public dynamic class BlockA extends BitmapData { public function BlockA(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level4
Section 25
//BlockAErase (images.level4.BlockAErase) package images.level4 { import flash.display.*; public dynamic class BlockAErase extends BitmapData { public function BlockAErase(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level4
Section 26
//BlockB (images.level4.BlockB) package images.level4 { import flash.display.*; public dynamic class BlockB extends BitmapData { public function BlockB(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level4
Section 27
//BlockBErase (images.level4.BlockBErase) package images.level4 { import flash.display.*; public dynamic class BlockBErase extends BitmapData { public function BlockBErase(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level4
Section 28
//Background (images.level5.Background) package images.level5 { import flash.display.*; public dynamic class Background extends BitmapData { public function Background(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level5
Section 29
//BlockA (images.level5.BlockA) package images.level5 { import flash.display.*; public dynamic class BlockA extends BitmapData { public function BlockA(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level5
Section 30
//BlockAErase (images.level5.BlockAErase) package images.level5 { import flash.display.*; public dynamic class BlockAErase extends BitmapData { public function BlockAErase(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level5
Section 31
//BlockB (images.level5.BlockB) package images.level5 { import flash.display.*; public dynamic class BlockB extends BitmapData { public function BlockB(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level5
Section 32
//BlockBErase (images.level5.BlockBErase) package images.level5 { import flash.display.*; public dynamic class BlockBErase extends BitmapData { public function BlockBErase(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.level5
Section 33
//Buddah (images.splash.Buddah) package images.splash { import flash.display.*; public dynamic class Buddah extends BitmapData { public function Buddah(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.splash
Section 34
//MenuSel (images.splash.MenuSel) package images.splash { import flash.display.*; public dynamic class MenuSel extends BitmapData { public function MenuSel(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.splash
Section 35
//RyokanText (images.splash.RyokanText) package images.splash { import flash.display.*; public dynamic class RyokanText extends BitmapData { public function RyokanText(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.splash
Section 36
//Level1 (images.thumbs.Level1) package images.thumbs { import flash.display.*; public dynamic class Level1 extends BitmapData { public function Level1(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.thumbs
Section 37
//Level1Grey (images.thumbs.Level1Grey) package images.thumbs { import flash.display.*; public dynamic class Level1Grey extends BitmapData { public function Level1Grey(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.thumbs
Section 38
//Level2 (images.thumbs.Level2) package images.thumbs { import flash.display.*; public dynamic class Level2 extends BitmapData { public function Level2(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.thumbs
Section 39
//Level2Grey (images.thumbs.Level2Grey) package images.thumbs { import flash.display.*; public dynamic class Level2Grey extends BitmapData { public function Level2Grey(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.thumbs
Section 40
//Level3 (images.thumbs.Level3) package images.thumbs { import flash.display.*; public dynamic class Level3 extends BitmapData { public function Level3(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.thumbs
Section 41
//Level3Grey (images.thumbs.Level3Grey) package images.thumbs { import flash.display.*; public dynamic class Level3Grey extends BitmapData { public function Level3Grey(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.thumbs
Section 42
//Level4 (images.thumbs.Level4) package images.thumbs { import flash.display.*; public dynamic class Level4 extends BitmapData { public function Level4(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.thumbs
Section 43
//Level4Grey (images.thumbs.Level4Grey) package images.thumbs { import flash.display.*; public dynamic class Level4Grey extends BitmapData { public function Level4Grey(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.thumbs
Section 44
//Level5 (images.thumbs.Level5) package images.thumbs { import flash.display.*; public dynamic class Level5 extends BitmapData { public function Level5(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.thumbs
Section 45
//Level5Grey (images.thumbs.Level5Grey) package images.thumbs { import flash.display.*; public dynamic class Level5Grey extends BitmapData { public function Level5Grey(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images.thumbs
Section 46
//BombBitmap (images.BombBitmap) package images { import flash.display.*; public dynamic class BombBitmap extends BitmapData { public function BombBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images
Section 47
//BombDot (images.BombDot) package images { import flash.display.*; public dynamic class BombDot extends BitmapData { public function BombDot(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package images
Section 48
//MochiScores (mochi.MochiScores) package mochi { import flash.display.*; public class MochiScores { public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var options = _arg1; MochiServices.stayOnTop(); if (options != null){ if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose():void{ onCloseHandler(); MochiServices.doClose(); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function setBoardID(_arg1:String):void{ MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi
Section 49
//MochiServices (mochi.MochiServices) package mochi { import flash.display.*; import flash.events.*; import flash.net.*; import flash.system.*; public class MochiServices { private static var _container:Object; private static var _loaderListener:Object; private static var _sendChannelName:String; private static var _id:String; private static var _connected:Boolean = false; private static var _swfVersion:String; private static var _sendChannel:LocalConnection; private static var _rcvChannel:LocalConnection; private static var _listenChannelName:String = "__mochiservices"; private static var _gatewayURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; private static var _clip:MovieClip; private static var _loader:Loader; private static var _rcvChannelName:String; private static var _listenChannel:LocalConnection; public static function bringToTop(_arg1:Event):void{ var e = _arg1; if (MochiServices.clip != null){ if (MochiServices.childClip != null){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var clipname:String; var f:Function; var req:URLRequest; var id = _arg1; var clip = _arg2; clipname = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (_gatewayURL.indexOf("http://") === 0){ MochiServices.allowDomains(_gatewayURL); }; _clip = createEmptyMovieClip(clip, clipname, 10337); _loader = new Loader(); f = function (_arg1:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); }; _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); req = new URLRequest(_gatewayURL); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _rcvChannel = new LocalConnection(); _rcvChannel.client = _clip; _rcvChannel.allowDomain("*", "localhost"); _rcvChannel.allowInsecureDomain("*", "localhost"); _clip._nextcallbackID = 0; _clip._callbacks = {}; listen(); return (_clip); } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); trace("Waiting for MochiAds services to connect..."); } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; } public static function get childClip():Object{ return (_clip); } public static function get clip():Object{ return (_container); } public static function get connected():Boolean{ return (_connected); } private static function initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion()}); _rcvChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _clip.onReceive = function (_arg1:Object):void{ var _local2:String; var _local3:Object; var _local4:*; var _local5:Object; _local2 = _arg1.callbackID; _local3 = this.client._callbacks[_local2]; if (!_local3){ return; }; _local4 = _local3.callbackMethod; _local5 = _local3.callbackObject; if (((_local5) && ((typeof(_local4) == "string")))){ _local4 = _local5[_local4]; }; if (_local4 != undefined){ _local4.apply(_local5, _arg1.args); } else { if (_local5 != null){ _local5(_arg1.args); }; }; delete this.client._callbacks[_local2]; }; _rcvChannel.connect(_rcvChannelName); trace("connected!"); _connected = true; _listenChannel.close(); while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); _rcvChannelName = _arg1; initComChannels(); }; }; } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (MochiServices.childClip != null){ _clip.visible = true; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; _local2 = _arg1.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function getVersion():String{ return ("0.1"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); _clip.visible = false; } public static function get id():String{ return (_id); } private static function onStatus(_arg1:StatusEvent):void{ switch (_arg1.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip; _local4 = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function connect(_arg1:String, _arg2:Object):void{ if ((_arg2 is DisplayObject)){ trace("MochiServices Connecting..."); init(_arg1, _arg2); } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; } } }//package mochi
Section 50
//MainTimeline (Ryokan_fla.MainTimeline) package Ryokan_fla { import flash.display.*; import mochi.*; import flash.net.*; public dynamic class MainTimeline extends MovieClip { public var receiving_lc:LocalConnection; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 6, frame7); } public function mochiBotClick():void{ trace("mochiBotClick"); MochiBot.track(this, "cb3e7511"); } public function NGAS2Done():void{ trace("NGAS2Done"); receiving_lc.close(); play(); } function frame7(){ stop(); Ryokan.main(this); } function frame1(){ this.addChild(LoadNGAS2.getNGAS2Movie()); stop(); receiving_lc = new LocalConnection(); receiving_lc.client = this; receiving_lc.connect("lc_play"); MochiBot.track(this, "4a0f594b"); MochiServices.connect("920e1c01286066c5", root); } function frame2(){ stop(); gotoAndStop("Game"); } } }//package Ryokan_fla
Section 51
//Block (Block) package { class Block { public var bombed:Boolean;// = false public var yPixel:Number; public var activated:Boolean;// = false public var corner:int;// = 0 public var mode:Number;// = 5 public var xPixel:Number; public var visited:Number; public var x:Number; public var y:Number; public var type:Number; public var bonused:Number;// = 0 public static const A:Number = 1; public static const Right:int = (1 << 3); public static const Erase:Number = 6; public static const Left:int = (1 << 2); public static const Bomb:Number = 8; public static const ActivatedA:Number = 3; public static const ActivatedB:Number = 4; public static const Upper:int = (1 << 0); public static const None:Number = 5; public static const Lower:int = (1 << 1); public static const B:Number = 2; public static const Outline:Number = 7; function Block(_arg1:Number){ mode = None; corner = 0; bombed = false; activated = false; bonused = 0; super(); this.type = _arg1; } public function addGravityY(){ y++; yPixel = (((1 + (30 * 2)) + ((12 * 2) * y)) + 1); } public function setPos(_arg1:Number, _arg2:Number){ this.x = _arg1; this.y = _arg2; xPixel = (((1 + (24 * 2)) + ((12 * 2) * _arg1)) + 1); yPixel = (((1 + (30 * 2)) + ((12 * 2) * _arg2)) + 1); } } }//package
Section 52
//Bompu (Bompu) package { import flash.display.*; import flash.media.*; import images.level1.*; import flash.net.*; class Bompu extends Level { function Bompu(){ name = "I. Bompu"; nextLevel = 7000; quadDropTime = 67; sweepSpeed = 3; eraserColor = 0xFFFFFF; outlineColorA = 16736945; outlineColorB = 16777092; scoreTextColor = 7242; scoreTextOutlineColor = 0xFFFFFF; bX = 1; bY = 1; } override public function loadResources(){ super.loadResources(); background = new Background(10, 10); blockA = new BlockA(10, 10); blockB = new BlockB(10, 10); blockAErase = new BlockAErase(10, 10); blockBErase = new BlockBErase(10, 10); music = new Sound(new URLRequest("http://games.mochiads.com/c/g/ryokan/level1.mp3")); calcBomb(); fade = new BitmapData(40, 1, true, 0); } } }//package
Section 53
//Bonus (Bonus) package { import flash.display.*; class Bonus extends FloatingText { private var step:Number; function Bonus(_arg1:Number, _arg2:Number, _arg3:Number){ step = 0; text = _arg1.toString(); this.x = _arg2; this.y = _arg3; } override public function draw(_arg1:BitmapData){ Level.getCurrentLevel().drawBonusText(_arg1, x, y, text, step++); if (step >= 16){ y = -1; }; } } }//package
Section 54
//Daijo (Daijo) package { import flash.display.*; import flash.media.*; import images.level4.*; import flash.net.*; class Daijo extends Level { function Daijo(){ name = "IV. Daijo"; nextLevel = 40000; quadDropTime = 18; quadGravityRate = 3; sweepSpeed = 2; bombChance = 90; eraserColor = 8438015; outlineColorA = 9938617; outlineColorB = 13145746; scoreTextColor = 0xFFFFFF; } override public function loadResources(){ super.loadResources(); background = new Background(10, 10); blockA = new BlockA(10, 10); blockB = new BlockB(10, 10); blockAErase = new BlockAErase(10, 10); blockBErase = new BlockBErase(10, 10); music = new Sound(new URLRequest("http://games.mochiads.com/c/g/ryokan/level4.mp3")); calcBomb(); fade = new BitmapData(40, 1, true, 0); } } }//package
Section 55
//EndGameText (EndGameText) package { import flash.display.*; import mochi.*; class EndGameText extends FloatingText { private var score:Number; var rank:Number; private var shownLeaderboard:Boolean;// = false static var spawned:Boolean = false; static var place:String = new String(); function EndGameText(_arg1:Number, _arg2:Number, _arg3:Number){ shownLeaderboard = false; super(); this.rank = _arg1; this.score = _arg3; textColor = _arg2; text = "Game Over"; if (_arg1 > -1){ place = "place"; switch (_arg1){ case 0: place = ("1st " + place); break; case 1: place = ("2nd " + place); break; case 2: place = ("3rd " + place); break; case 3: place = ("4th " + place); break; case 4: place = ("5th " + place); break; }; } else { if (_arg1 == -2){ text = ("New High Score " + place); }; }; x = (((240 * 2) - 150) / 2); y = (160 * 2); } override public function draw(_arg1:BitmapData){ var _local2:Number; _local2 = Level.getCurrentLevel().floatTextWidth(text); x = (((240 * 2) - _local2) / 2); Level.getCurrentLevel().drawFloatText(_arg1, x, y, text); if (rank > -2){ if ((((y > (120 * 2))) && ((rank > -1)))){ if ((((y == (130 * 2))) && ((spawned == false)))){ spawned = true; }; y = (y - 5); } else { if (y > (96 * 2)){ y = (y - 4); } else { if (y > (92 * 2)){ y = (y - 3); } else { if (y > (86 * 2)){ y = (y - 2); } else { if (rank == -1){ drawReturnMenu(_arg1); }; }; }; }; }; } else { if (y > (114 * 2)){ y = (y - 5); } else { if (y > (99 * 2)){ y = (y - 4); } else { drawReturnMenu(_arg1); }; }; }; } public function drawReturnMenu(_arg1:BitmapData){ var width:Number; var endText:String; var screen = _arg1; if (Ryokan.enableKongregate){ endText = "Click for Main Menu"; } else { if (!shownLeaderboard){ shownLeaderboard = true; trace(("SCORE:" + score)); MochiScores.showLeaderboard({boardID:"664662ca35b1d47b", score:score, onClose:function ():void{ }}); }; endText = "Click for Main Menu"; }; width = Level.getCurrentLevel().floatTextWidth(endText); Level.getCurrentLevel().drawFloatText(screen, (((240 * 2) - width) / 2), (146 * 2), endText); } } }//package
Section 56
//FloatingText (FloatingText) package { import flash.display.*; import flash.text.*; class FloatingText { protected var text:String; protected var font:TextFormat; protected var alive:Number;// = 0 public var x:Number; public var y:Number; protected var textColor:Number; function FloatingText(){ alive = 0; super(); } public function draw(_arg1:BitmapData){ } } }//package
Section 57
//GameState (GameState) package { class GameState { public static const LEVEL_SCREEN = 2; public static const HELP_SCREEN = 5; public static const CREDITS_SCREEN = 4; public static const TITLE_SCREEN = 0; public static const END_GAME = 6; public static const SCORE_SCREEN = 3; public static const IN_GAME_SCREEN = 1; } }//package
Section 58
//Gedo (Gedo) package { import flash.display.*; import flash.media.*; import images.level2.*; import flash.net.*; class Gedo extends Level { function Gedo(){ name = "II. Gedo"; nextLevel = 16000; quadDropTime = 45; bombChance = 60; eraserColor = 13028351; outlineColorB = 14793983; outlineColorA = 16774483; scoreTextColor = 0xFFFFFF; } override public function loadResources(){ super.loadResources(); background = new Background(10, 10); blockA = new BlockA(10, 10); blockB = new BlockB(10, 10); blockAErase = new BlockAErase(10, 10); blockBErase = new BlockBErase(10, 10); music = new Sound(new URLRequest("http://games.mochiads.com/c/g/ryokan/level2.mp3")); calcBomb(); fade = new BitmapData(40, 1, true, 0); } } }//package
Section 59
//Grid (Grid) package { import flash.display.*; import flash.geom.*; import flash.filters.*; import flash.media.*; import flash.text.*; import images.*; import audio.*; import flash.utils.*; class Grid { var quadQueue:Array; var bombAErase:BitmapData; var outlineColorA:Number; var outlineColorB:Number; var quadGravityY:Number; public var bX:Number; public var bY:Number; var grid:Array; var bombDot:BitmapData; public var soundOn:Boolean;// = true var eraserColor:Number; var freeFloatingList:Array; var blockBErase:BitmapData; var blockA:BitmapData; var blockB:BitmapData; var eraserX:Number; var activeQuad:Quad; var bombChance:Number; public var floatingTexts:Array; var fade:BitmapData; var quadGravityRate:Number;// = 0 var quadHold:Number; var tillQuadDrop:Number; var bombBErase:BitmapData; var outlineGrid:Array; var blockAErase:BitmapData; private var bombActivate:Sound; private var bombTrigger:Sound; public var quadMovingDown:Boolean;// = false var sweepSpeed:Number;// = 3 private var flipSnd:Sound; var searchStack:Array; public var quadDropTime:Number; var eraseLog:Number;// = 0 var newQuadGravityRate:Number; var blocksErasedCount:Number;// = 0 var lasterase:Boolean;// = false private var moveSnd:Sound; var stackLevel:Number;// = -1 var bombA:BitmapData; var bombB:BitmapData; private var clearSnd:Sound; var quadX:Number; var quadY:Number; private var dropSnd:Sound; static const gridEndX:Number = 432; static const gridEndY:Number = 300; static const initialHold:Number = 3; static const gridSize:Number = 384; static const rowCount:Number = 10; static const columnCount:Number = 16; static const boxWidth:Number = 24; static const gridStartX:Number = 48; static const gridStartY:Number = 60; function Grid(){ quadGravityRate = 0; sweepSpeed = 3; quadMovingDown = false; searchStack = new Array(); stackLevel = -1; soundOn = true; blocksErasedCount = 0; eraseLog = 0; lasterase = false; super(); bombDot = new BombDot(10, 10); fade = new BitmapData((boxWidth * columnCount), (boxWidth * rowCount), true, 0); } public function spinQuadClockwise(){ activeQuad.spinClockwise(); if (soundOn){ flipSnd.play(); }; } public function unloadAudioRes(){ moveSnd = null; dropSnd = null; flipSnd = null; clearSnd = null; bombActivate = null; bombTrigger = null; } public function spinQuadCounter(){ activeQuad.spinCounterclockwise(); if (soundOn){ flipSnd.play(); }; } public function insertNewQuad(){ activeQuad = quadQueue[0]; quadQueue[0] = quadQueue[1]; quadQueue[1] = quadQueue[2]; quadQueue[2] = new Quad(bombChance); quadX = 7; quadY = -2; quadGravityY = (convGridYscreenY(-2) - 1); quadMovingDown = false; quadHold = initialHold; tillQuadDrop = quadDropTime; quadGravityRate = newQuadGravityRate; } private function calcBonusHelper(_arg1:Number, _arg2:Number, _arg3:Number):Number{ var _local4:Block; if ((((((((_arg1 < 0)) || ((_arg1 >= columnCount)))) || ((_arg2 < 0)))) || ((_arg2 >= rowCount)))){ return (0); }; _local4 = getBlock(_arg1, _arg2); if (((((((!((_local4 == null))) && ((_local4.type == _arg3)))) && ((_local4.mode == Block.Erase)))) && ((_local4.visited == 0)))){ _local4.bonused = 1; _local4.visited = 1; setBlock(_arg1, _arg2, _local4); return (((((1 + calcBonusHelper((_arg1 - 1), _arg2, _arg3)) + calcBonusHelper((_arg1 + 1), _arg2, _arg3)) + calcBonusHelper(_arg1, (_arg2 - 1), _arg3)) + calcBonusHelper(_arg1, (_arg2 + 1), _arg3))); }; return (0); } public function cacheLevelRes(){ var _local1:Level; var _local2:uint; var _local3:uint; var _local4:uint; _local1 = Level.getCurrentLevel(); blockA = _local1.blockA; blockB = _local1.blockB; blockAErase = _local1.blockAErase; blockBErase = _local1.blockBErase; bombA = _local1.bombA; bombB = _local1.bombB; bombAErase = _local1.bombAErase; bombBErase = _local1.bombBErase; eraserColor = _local1.eraserColor; outlineColorA = _local1.outlineColorA; outlineColorB = _local1.outlineColorB; newQuadGravityRate = _local1.quadGravityRate; quadDropTime = _local1.quadDropTime; bombChance = _local1.bombChance; sweepSpeed = _local1.sweepSpeed; _local2 = 0; while (_local2 < (boxWidth * columnCount)) { _local3 = 0; while (_local3 < (boxWidth * rowCount)) { _local4 = (fade.getPixel32(_local2, _local3) & 4278190080); fade.setPixel32(_local2, _local3, (_local4 | eraserColor)); _local3++; }; _local2++; }; bX = _local1.bX; bY = _local1.bY; } public function explodeBomb(_arg1:Block){ var x:Number; var y:Number; var func:Function; var currentBlock:Block; var block = _arg1; stackLevel++; searchStack[stackLevel] = block; func = function (_arg1, _arg2:int, _arg3:Array):void{ if (_arg1 != null){ _arg1.visited = 0; }; }; while (stackLevel > -1) { currentBlock = searchStack[stackLevel]; searchStack[stackLevel] = null; stackLevel--; if ((((currentBlock.type == (block.type - 2))) || ((currentBlock.type == block.type)))){ x = currentBlock.x; y = currentBlock.y; if (currentBlock.mode != Block.Outline){ currentBlock.mode = Block.Erase; }; currentBlock.visited = 1; currentBlock.bombed = true; if ((((((x > 0)) && (isFilled((x - 1), y)))) && (!(isVisited((x - 1), y))))){ stackLevel++; searchStack[stackLevel] = getBlock((x - 1), y); }; if ((((((y > 0)) && (isFilled(x, (y - 1))))) && (!(isVisited(x, (y - 1)))))){ stackLevel++; searchStack[stackLevel] = getBlock(x, (y - 1)); }; if ((((((y < (rowCount - 1))) && (isFilled(x, (y + 1))))) && (!(isVisited(x, (y + 1)))))){ stackLevel++; searchStack[stackLevel] = getBlock(x, (y + 1)); }; if ((((((x < (columnCount - 1))) && (isFilled((x + 1), y)))) && (!(isVisited((x + 1), y))))){ stackLevel++; searchStack[stackLevel] = getBlock((x + 1), y); }; }; }; } public function isFilled(_arg1:Number, _arg2:Number):Boolean{ return (((getBlock(_arg1, _arg2))!=null) ? true : false); } public function processFrame(){ gravity(); findErasables(); moveEraser(); quadHold--; tillQuadDrop--; } public function moveQuadRight():Boolean{ var _local1:Number; _local1 = quadY; if (activeQuad == null){ return (false); }; if ((quadX + 2) == columnCount){ return (false); }; if (((quadGravityY - gridStartY) % boxWidth) != 0){ _local1++; }; if ((((quadY < -1)) || (!(isFilled((quadX + 2), (_local1 + 1)))))){ quadX++; if (soundOn){ moveSnd.play(); }; return (true); }; return (false); } public function draw(_arg1:BitmapData){ var _local2:Shape; var _local3:Number; var _local4:Array; var _local5:ColorMatrixFilter; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:Number; var _local10:ByteArray; var _local11:int; var _local12:int; var _local13:Shape; var _local14:Number; var _local15:int; var _local16:FloatingText; _local2 = new Shape(); if (0){ _local10 = new ByteArray(); _local11 = 50; _local12 = 0x0100; SoundMixer.computeSpectrum(_local10, false, 0); _local13 = new Shape(); _local13.graphics.clear(); _local13.graphics.lineStyle(0, 0x6600CC); _local13.graphics.beginFill(0x6600CC); _local13.graphics.moveTo(0, _local11); _local14 = 0; _local15 = 0; while (_local15 < _local12) { _local14 = (_local10.readFloat() * _local11); _local13.graphics.lineTo((_local15 * 2), (_local11 - _local14)); _local15++; }; _local13.graphics.lineTo((_local12 * 2), _local11); _local13.graphics.endFill(); _local13.graphics.lineStyle(0, 0xCC0066); _local13.graphics.beginFill(0xCC0066, 0.5); _local13.graphics.moveTo((_local12 * 2), _local11); _local15 = _local12; while (_local15 > 0) { _local14 = (_local10.readFloat() * _local11); _local13.graphics.lineTo((_local15 * 2), (_local11 - _local14)); _local15--; }; _local13.graphics.lineTo(0, _local11); _local13.graphics.endFill(); _arg1.draw(_local13, new Matrix()); }; drawQuad(_arg1); _local15 = 0; while (_local15 < columnCount) { _local3 = (rowCount - 1); while ((((_local3 >= 0)) && (!((grid[((_local3 * columnCount) + _local15)] == null))))) { drawBlock(grid[((_local3 * columnCount) + _local15)], _arg1); _local3--; }; _local15++; }; _local15 = 0; while (_local15 < freeFloatingList.length) { drawBlock(freeFloatingList[_local15], _arg1); _local15++; }; _local2.graphics.lineStyle(2, eraserColor); _local2.graphics.moveTo(eraserX, gridStartY); _local2.graphics.lineTo(eraserX, gridEndY); _arg1.draw(_local2, new Matrix()); _local4 = new Array(); _local4 = _local4.concat([1, 0, 0, 0, 0]); _local4 = _local4.concat([0, 1, 0, 0, 0]); _local4 = _local4.concat([0, 0, 1, 0, 0]); _local4 = _local4.concat([0, 0, 0, 0.95, 0]); _local5 = new ColorMatrixFilter(_local4); fade.applyFilter(fade, new Rectangle(0, 0, (boxWidth * columnCount), (boxWidth * rowCount)), new Point(0, 0), _local5); _arg1.copyPixels(fade, new Rectangle(0, 0, (boxWidth * columnCount), (boxWidth * rowCount)), new Point(gridStartX, gridStartY), null, null, true); _local6 = 0; while (_local6 < sweepSpeed) { _local8 = (((eraserX + _local6) - gridStartX) % (boxWidth * columnCount)); _local7 = 0; while (_local7 < (boxWidth * rowCount)) { fade.setPixel32(_local8, _local7, (eraserColor | ((128 + _local6) << 24))); _local7++; }; _local6++; }; _local9 = floatingTexts.length; _local15 = 0; while (_local15 < _local9) { _local16 = floatingTexts[_local15]; if (_local16.y > 0){ _local16.draw(_arg1); } else { floatingTexts.splice(_local15, 1); _local15--; _local9--; }; _local15++; }; } function setBlock(_arg1:Number, _arg2:Number, _arg3:Block){ grid[(_arg1 + (_arg2 * columnCount))] = _arg3; } public function gravity(){ var _local1:Number; var _local2:Number; var _local3:Block; _local2 = freeFloatingList.length; _local1 = 0; while (_local1 < _local2) { _local3 = freeFloatingList[_local1]; if ((((_local3.y == (rowCount - 1))) || (isFilled(_local3.x, (_local3.y + 1))))){ setBlock(_local3.x, _local3.y, _local3); freeFloatingList.splice(_local1, 1); _local1--; _local2--; } else { _local3.addGravityY(); }; _local1++; }; if ((((tillQuadDrop <= 0)) && (!(quadMovingDown)))){ if (quadY < -1){ if (finishQuad()){ if ((((((quadX > 0)) && (!(isFilled(quadX, (quadY + 2)))))) && (!(isFilled((quadX - 1), (quadY + 2)))))){ if (!moveQuadLeft()){ trace("END GAME"); Ryokan.me.endGame(); }; } else { if (((((((quadX + 2) < columnCount)) && (!(isFilled((quadX + 1), (quadY + 2)))))) && (!(isFilled((quadX + 2), (quadY + 2)))))){ if (!moveQuadRight()){ trace("END GAME"); Ryokan.me.endGame(); }; } else { trace("END GAME"); Ryokan.me.endGame(); }; }; }; }; if (quadGravityRate == 0){ quadGravityRate = newQuadGravityRate; }; if (((quadGravityY - gridStartY) % boxWidth) == 0){ quadY = ((quadGravityY - gridStartY) / boxWidth); if (!finishQuad()){ quadGravityY = (quadGravityY + quadGravityRate); }; } else { quadGravityY = (quadGravityY + quadGravityRate); }; }; } public function findErasables(){ var _local1:int; var _local2:int; var _local3:int; var _local4:Block; var _local5:Number; var _local6:Number; _local2 = (columnCount - 1); while (_local2 > 0) { _local3 = (rowCount - 1); while ((((_local3 > 0)) && (!((getBlock(_local2, _local3) == null))))) { _local4 = getBlock(_local2, _local3); _local5 = _local4.type; if (((((!((_local4.mode == Block.Outline))) && (!((_local4 == null))))) && (((((((((((isFilled((_local2 - 1), _local3)) && (getBlock((_local2 - 1), _local3).bombed))) && ((getBlock((_local2 - 1), _local3).type == _local5)))) || ((((((((_local2 < (columnCount - 1))) && (isFilled((_local2 + 1), _local3)))) && (getBlock((_local2 + 1), _local3).bombed))) && ((getBlock((_local2 + 1), _local3).type == _local5)))))) || ((((((((_local3 < (rowCount - 1))) && (isFilled(_local2, (_local3 + 1))))) && (getBlock(_local2, (_local3 + 1)).bombed))) && ((getBlock(_local2, (_local3 + 1)).type == _local5)))))) || (((((isFilled(_local2, (_local3 - 1))) && (getBlock(_local2, (_local3 - 1)).bombed))) && ((getBlock(_local2, (_local3 - 1)).type == _local5)))))))){ markErase(_local4, 0); _local4.bombed = true; explodeBomb(_local4); }; if ((((((((_local2 > 0)) && (isErasable((_local2 - 1), _local3, _local5)))) && (isErasable((_local2 - 1), (_local3 - 1), _local5)))) && (isErasable(_local2, (_local3 - 1), _local5)))){ markErase(_local4, (Block.Upper | Block.Right)); markErase(getBlock((_local2 - 1), _local3), (Block.Upper | Block.Left)); markErase(getBlock((_local2 - 1), (_local3 - 1)), (Block.Lower | Block.Left)); markErase(getBlock(_local2, (_local3 - 1)), (Block.Lower | Block.Right)); }; if ((((((((_local2 < (columnCount - 1))) && (isErasable(_local2, (_local3 - 1), _local5)))) && (isErasable((_local2 + 1), (_local3 - 1), _local5)))) && (isErasable((_local2 + 1), _local3, _local5)))){ markErase(_local4, (Block.Upper | Block.Left)); markErase(getBlock(_local2, (_local3 - 1)), (Block.Lower | Block.Left)); markErase(getBlock((_local2 + 1), (_local3 - 1)), (Block.Lower | Block.Right)); markErase(getBlock((_local2 + 1), _local3), (Block.Upper | Block.Left)); }; _local3--; }; _local2--; }; _local2 = (columnCount - 1); while (_local2 >= 0) { _local3 = (rowCount - 1); while ((((_local3 > 0)) && (!((getBlock(_local2, _local3) == null))))) { if ((((_local4.mode == Block.Erase)) && (!(_local4.bonused)))){ _local1 = calcBonus(_local2, _local3); _local1 = Math.ceil(((_local1 / 2) - 1)); _local1 = ((_local1 < 1)) ? 1 : _local1; floatingTexts.push(new Bonus(_local1, _local4.xPixel, _local4.yPixel)); }; _local3--; }; _local2--; }; } public function startGame(){ var _local1:Number; grid = new Array((columnCount * rowCount)); outlineGrid = new Array((columnCount * rowCount)); _local1 = 0; while (_local1 < (columnCount * rowCount)) { grid[_local1] = null; outlineGrid[_local1] = null; _local1++; }; eraserX = gridStartX; lasterase = false; eraseLog = 0; quadQueue = new Array(3); quadQueue[0] = new Quad(bombChance); quadQueue[1] = new Quad(bombChance); quadQueue[2] = new Quad(bombChance); searchStack = new Array(140); _local1 = 0; while (_local1 < 140) { searchStack[_local1] = null; _local1++; }; floatingTexts = new Array(); freeFloatingList = new Array(); insertNewQuad(); floatingTexts.push(new NextLvlText(Level.getCurrentLevel().name, Level.getCurrentLevel().textColor, true)); } public function moveQuadDown():Boolean{ if ((((quadY < -1)) && (finishQuad()))){ Ryokan.me.endGame(); quadMovingDown = false; return (false); }; quadY++; Ryokan.score = (Ryokan.score + 2); quadGravityY = (quadGravityY + boxWidth); if (finishQuad()){ return (false); }; return (true); } public function freezeQuad():Boolean{ var _local1:Number; _local1 = 0; if (quadY != -1){ setBlock(quadX, quadY, activeQuad.blocks[0]); setBlock((quadX + 1), quadY, activeQuad.blocks[2]); }; setBlock(quadX, (quadY + 1), activeQuad.blocks[1]); setBlock((quadX + 1), (quadY + 1), activeQuad.blocks[3]); activeQuad.blocks[0].setPos(quadX, quadY); activeQuad.blocks[2].setPos((quadX + 1), quadY); activeQuad.blocks[1].setPos(quadX, (quadY + 1)); activeQuad.blocks[3].setPos((quadX + 1), (quadY + 1)); if (quadY < 8){ if (getBlock(quadX, (quadY + 2)) == null){ findFloating(quadX); } else { if (getBlock((quadX + 1), (quadY + 2)) == null){ findFloating((quadX + 1)); }; }; }; Ryokan.score = (Ryokan.score + 10); if (soundOn){ dropSnd.play(0, 0, new SoundTransform(0.5)); }; return (true); } function finishQuad():Boolean{ if ((((((quadY == (rowCount - 2))) || (isFilled(quadX, (quadY + 2))))) || (isFilled((quadX + 1), (quadY + 2))))){ if (quadY < -1){ return (true); }; freezeQuad(); insertNewQuad(); return (true); }; return (false); } private function drawBlock(_arg1:Block, _arg2:BitmapData){ var _local3:Number; var _local4:Shape; var _local5:Number; _local3 = _arg1.mode; if (_local3 == Block.None){ if (_arg1.type == Block.A){ _arg2.copyPixels(blockA, new Rectangle(0, 0, 22, 22), new Point(_arg1.xPixel, _arg1.yPixel), null, null, true); } else { _arg2.copyPixels(blockB, new Rectangle(0, 0, 22, 22), new Point(_arg1.xPixel, _arg1.yPixel), null, null, true); }; } else { if (_local3 == Block.Outline){ if (_arg1.type == Block.A){ _local5 = outlineColorA; } else { _local5 = outlineColorB; }; _local4 = new Shape(); _local4.graphics.lineStyle(2, _local5); _local4.graphics.drawRect(_arg1.xPixel, _arg1.yPixel, 22, 22); _arg2.draw(_local4, new Matrix()); } else { if (_local3 == Block.Erase){ if (_arg1.type == Block.A){ _arg2.copyPixels(blockAErase, new Rectangle(0, 0, 22, 22), new Point(_arg1.xPixel, _arg1.yPixel), null, null, true); } else { _arg2.copyPixels(blockBErase, new Rectangle(0, 0, 22, 22), new Point(_arg1.xPixel, _arg1.yPixel), null, null, true); }; if (_arg1.activated){ if (_arg1.type == Block.A){ _arg2.copyPixels(bombAErase, new Rectangle(0, 0, 22, 22), new Point(_arg1.xPixel, _arg1.yPixel), null, null, true); } else { _arg2.copyPixels(bombBErase, new Rectangle(0, 0, 22, 22), new Point(_arg1.xPixel, _arg1.yPixel), null, null, true); }; if ((eraserX % 8) == 0){ _arg2.copyPixels(bombDot, new Rectangle(0, 0, 10, 10), new Point(((_arg1.xPixel + 6) - bX), ((_arg1.yPixel + 6) - bY)), null, null, true); }; }; } else { if (_local3 == Block.Bomb){ if (_arg1.type == Block.A){ _arg2.copyPixels(bombA, new Rectangle(0, 0, 22, 22), new Point(_arg1.xPixel, _arg1.yPixel), null, null, true); } else { _arg2.copyPixels(bombB, new Rectangle(0, 0, 22, 22), new Point(_arg1.xPixel, _arg1.yPixel), null, null, true); }; _arg2.copyPixels(bombDot, new Rectangle(0, 0, 10, 10), new Point(((_arg1.xPixel + 6) - bX), ((_arg1.yPixel + 6) - bY)), null, null, true); }; }; }; }; } function drawQuadBlock(_arg1:Number, _arg2:Number, _arg3:Block, _arg4:BitmapData){ var _local5:Number; var _local6:Number; _local5 = (((1 + gridStartX) + (boxWidth * _arg1)) + 1); _local6 = ((1 + _arg2) + 1); if (_arg3.mode == Block.None){ if (_arg3.type == Block.A){ _arg4.copyPixels(blockA, new Rectangle(0, 0, 22, 22), new Point(_local5, _local6), null, null, true); } else { _arg4.copyPixels(blockB, new Rectangle(0, 0, 22, 22), new Point(_local5, _local6), null, null, true); }; } else { if (_arg3.type == Block.A){ _arg4.copyPixels(bombA, new Rectangle(0, 0, 22, 22), new Point(_local5, _local6), null, null, true); } else { _arg4.copyPixels(bombB, new Rectangle(0, 0, 22, 22), new Point(_local5, _local6), null, null, true); }; _arg4.copyPixels(bombDot, new Rectangle(0, 0, 10, 10), new Point(((_local5 + 6) - bX), ((_local6 + 6) - bY)), null, null, true); }; } private function drawQuad(_arg1:BitmapData){ var _local2:Quad; var _local3:Number; if (quadMovingDown){ if (moveQuadDown()){ moveQuadDown(); }; }; drawQuadBlock(quadX, quadGravityY, activeQuad.blocks[0], _arg1); drawQuadBlock((quadX + 1), quadGravityY, activeQuad.blocks[2], _arg1); drawQuadBlock(quadX, (quadGravityY + boxWidth), activeQuad.blocks[1], _arg1); drawQuadBlock((quadX + 1), (quadGravityY + boxWidth), activeQuad.blocks[3], _arg1); _local2 = quadQueue[0]; _local3 = (gridStartY - (18 * 2)); drawQuadBlock(-2, _local3, _local2.blocks[0], _arg1); drawQuadBlock(-1, _local3, _local2.blocks[2], _arg1); drawQuadBlock(-2, (_local3 + boxWidth), _local2.blocks[1], _arg1); drawQuadBlock(-1, (_local3 + boxWidth), _local2.blocks[3], _arg1); _local3 = (_local3 + (29 * 2)); _local2 = quadQueue[1]; drawQuadBlock(-2, _local3, _local2.blocks[0], _arg1); drawQuadBlock(-1, _local3, _local2.blocks[2], _arg1); drawQuadBlock(-2, (_local3 + boxWidth), _local2.blocks[1], _arg1); drawQuadBlock(-1, (_local3 + boxWidth), _local2.blocks[3], _arg1); } public function moveEraser(){ var _local1:Number; var _local2:Boolean; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; eraserX = (eraserX + sweepSpeed); if (eraserX >= gridEndX){ eraserX = gridStartX; Ryokan.me.checkNextLevel(); }; if (((eraserX - gridStartX) % boxWidth) == sweepSpeed){ _local2 = false; _local3 = Math.floor(((eraserX - gridStartX) / boxWidth)); _local1 = (rowCount - 1); while ((((_local1 > -1)) && (!((getBlock(_local3, _local1) == null))))) { if (getBlock(_local3, _local1).mode == Block.Erase){ setOutlineBlock(_local3, _local1, getBlock(_local3, _local1)); getBlock(_local3, _local1).mode = Block.Outline; blocksErasedCount++; lasterase = true; _local2 = true; }; _local1--; }; if (_local2){ eraseLog++; }; if (((lasterase) && (!(_local2)))){ _local4 = 9; _local5 = eraseLog; while (_local5 > 0) { _local9 = (_local3 - _local5); if (_local9 < 0){ _local9 = (columnCount + _local9); }; _local1 = 0; while (_local1 < 10) { if (getOutlineBlock(_local9, _local1) != null){ setBlock(_local9, _local1, null); setOutlineBlock(_local9, _local1, null); if (_local1 < _local4){ _local4 = _local1; }; }; _local1++; }; findFloating(_local9); _local5--; }; _local6 = (blocksErasedCount / 2); _local7 = 0; _local8 = 8; while (_local6 > 0) { _local7 = (_local7 + (_local8 + _local8)); _local8 = (_local8 + 5); _local6--; }; floatingTexts.push(new Score(_local7, ((_local3)==0) ? ((gridEndX - (eraseLog * 11)) - 8) : ((eraserX - (eraseLog * 11)) - 8), ((gridStartY + (_local4 * 24)) - 15))); Ryokan.score = (Ryokan.score + _local7); Ryokan.erased = (Ryokan.erased + blocksErasedCount); blocksErasedCount = 0; eraseLog = 0; lasterase = false; if (soundOn){ clearSnd.play(); }; }; }; } public function isVisited(_arg1:Number, _arg2:Number):Boolean{ return ((getBlock(_arg1, _arg2).visited) ? true : false); } private function calcBonus(_arg1:Number, _arg2:Number):Number{ var func:Function; var x = _arg1; var y = _arg2; func = function (_arg1, _arg2:int, _arg3:Array):void{ if (_arg1 != null){ _arg1.visited = 0; }; }; grid.forEach(func); return (calcBonusHelper(x, y, getBlock(x, y).type)); } private function isErasable(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Block; _local4 = getBlock(_arg1, _arg2); return (((((!((_local4 == null))) && ((_local4.type == _arg3)))) && (!((_local4.mode == Block.Outline))))); } public function convGridYscreenY(_arg1:Number):Number{ return (((1 + gridStartY) + (boxWidth * _arg1))); } function getBlock(_arg1:Number, _arg2:Number):Block{ return (grid[(_arg1 + (_arg2 * columnCount))]); } public function markErase(_arg1:Block, _arg2:int){ if (_arg1.mode == Block.None){ _arg1.mode = Block.Erase; _arg1.corner = _arg2; } else { if (_arg1.mode == Block.Bomb){ _arg1.activated = true; explodeBomb(_arg1); if (soundOn){ bombActivate.play(); }; }; }; } function getOutlineBlock(_arg1:Number, _arg2:Number):Block{ return (outlineGrid[(_arg1 + (_arg2 * columnCount))]); } public function moveQuadLeft():Boolean{ var _local1:Number; _local1 = quadY; if (activeQuad == null){ return (false); }; if (quadX == 0){ return (false); }; if (((quadGravityY - gridStartY) % boxWidth) != 0){ _local1++; }; if ((((quadY < -1)) || (!(isFilled((quadX - 1), (_local1 + 1)))))){ quadX--; if (soundOn){ moveSnd.play(); }; return (true); }; return (false); } function setOutlineBlock(_arg1:Number, _arg2:Number, _arg3:Block){ outlineGrid[(_arg1 + (_arg2 * columnCount))] = _arg3; } public function findFloating(_arg1:Number){ var _local2:Number; var _local3:Number; var _local4:Block; _local2 = 0; _local3 = (rowCount - 1); while (_local3 > -1) { _local4 = getBlock(_arg1, _local3); if (_local4 == null){ _local2++; } else { if (_local2 > 0){ freeFloatingList.push(_local4); _local4.addGravityY(); setBlock(_arg1, _local3, null); }; }; _local3--; }; } public function loadAudioRes(){ moveSnd = new MoveSnd(); dropSnd = new DropSnd(); flipSnd = new FlipSnd(); clearSnd = new ClearSnd(); bombActivate = new BombActivate(); bombTrigger = new BombTrigger(); } } }//package
Section 60
//Level (Level) package { import flash.display.*; import flash.geom.*; import flash.filters.*; import flash.media.*; import flash.text.*; import images.*; class Level { private var textFormat:TextFormat; public var name:String; public var bombAErase:BitmapData; public var bombOver:BitmapData; var quadGravityRate:Number;// = 2 public var outlineColorA:Number; public var outlineColorB:Number; public var music:Sound; public var bombBErase:BitmapData; public var background:BitmapData; public var textOutlineColor:Number;// = 0 public var blockAErase:BitmapData; public var textColor:Number;// = 0xFFFFFF public var eraserColor:Number; public var sweepSpeed:Number;// = 3 private var textBitmap:BitmapData; public var bX:Number;// = 0 public var bY:Number;// = 0 public var quadDropTime:Number;// = 80 public var scoreTextColor:Number;// = 0xFFFFFF private var textField:TextField; public var scoreTextOutlineColor:Number;// = 0 public var nextLevel:Number;// = 0 public var blockA:BitmapData; public var blockB:BitmapData; public var blockBErase:BitmapData; public var bombA:BitmapData; public var bombB:BitmapData; private var glowFilter:GlowFilter; public var fade:BitmapData; public var bombChance:Number;// = 45 protected static var currentLevel:Number = 0; protected static var levels:Array = new Array(); function Level(){ nextLevel = 0; bX = 0; bY = 0; textColor = 0xFFFFFF; textOutlineColor = 0; scoreTextColor = 0xFFFFFF; scoreTextOutlineColor = 0; sweepSpeed = 3; quadGravityRate = 2; quadDropTime = 80; bombChance = 45; super(); } public function drawScoreText(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:String){ drawText(_arg1, _arg2, _arg3, _arg4, 14, (scoreTextColor | (0xFF << 24)), (scoreTextOutlineColor | (0xFF << 24)), new Matrix()); } public function drawText(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Matrix, _arg9:BitmapFilter=null){ textFormat.color = _arg6; textFormat.bold = true; textFormat.size = _arg5; textField.textColor = _arg6; textField.text = _arg4; textField.setTextFormat(textFormat); textField.autoSize = TextFieldAutoSize.LEFT; _arg8.translate(5, 5); glowFilter.color = _arg7; textBitmap.fillRect(new Rectangle(0, 0, textBitmap.width, textBitmap.height), 0); textBitmap.draw(textField, _arg8); textBitmap.applyFilter(textBitmap, new Rectangle(0, 0, (textField.textWidth + 10), (textField.textHeight + 10)), new Point(0, 0), glowFilter); if (_arg9){ textBitmap.applyFilter(textBitmap, new Rectangle(0, 0, (textField.textWidth + 10), (textField.textHeight + 10)), new Point(0, 0), _arg9); }; _arg1.copyPixels(textBitmap, new Rectangle(0, 0, (textField.textWidth + 10), (textField.textHeight + 10)), new Point((_arg2 - 10), (_arg3 - 10)), null, null, true); } private function calcBombImage(_arg1:BitmapData):BitmapData{ var _local2:BombBitmap; var _local3:BitmapData; _local2 = new BombBitmap(20, 20); _local3 = new BitmapData(22, 22, true, 0); _local3.copyPixels(_arg1, new Rectangle(0, 0, 22, 22), new Point(0, 0), null, null, true); _local3.copyPixels(_local2, new Rectangle(bX, bY, (20 - bX), (20 - bY)), new Point(0, 0), null, null, true); return (_local3); } public function textWidth(_arg1:String, _arg2:Number):Number{ textFormat.size = _arg2; textField.text = _arg1; textField.setTextFormat(textFormat); return (textField.textWidth); } protected function calcBomb(){ bombA = calcBombImage(blockA); bombB = calcBombImage(blockB); bombAErase = calcBombImage(blockAErase); bombBErase = calcBombImage(blockBErase); } public function floatTextWidth(_arg1:String):Number{ return (textWidth(_arg1, 22)); } public function scoreTextWidth(_arg1:String):Number{ return (textWidth(_arg1, 14)); } public function drawBonusText(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Number){ var _local6:Array; var _local7:ColorMatrixFilter; _local6 = new Array(); _local6 = _local6.concat([1, 0, 0, 0, 0]); _local6 = _local6.concat([0, 1, 0, 0, 0]); _local6 = _local6.concat([0, 0, 1, 0, 0]); _local6 = _local6.concat([0, 0, 0, 1, (_arg5 * -16)]); _local7 = new ColorMatrixFilter(_local6); drawText(_arg1, _arg2, (_arg3 - _arg5), _arg4, 14, (scoreTextColor & 0xFFFFFF), (scoreTextOutlineColor & 0xFFFFFF), new Matrix(), _local7); } public function drawFloatText(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:String){ drawText(_arg1, _arg2, _arg3, _arg4, 22, (textColor | (0xFF << 24)), (textOutlineColor | (0xFF << 24)), new Matrix()); } public function loadResources(){ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Boolean; var _local6:Boolean; var _local7:Number; textField = new TextField(); textFormat = new TextFormat(); textBitmap = new BitmapData(300, 100, true, 0); _local1 = 1; _local2 = 2; _local3 = 2; _local4 = 5; _local5 = false; _local6 = false; _local7 = BitmapFilterQuality.HIGH; glowFilter = new GlowFilter(0, _local1, _local2, _local3, _local4, _local7, _local5, _local6); } public function unloadResources(){ background = null; blockA = null; blockB = null; blockAErase = null; blockBErase = null; bombOver = null; music = null; textField = null; textFormat = null; textBitmap = null; glowFilter = null; } public static function getCurrentLevel():Level{ return (Level.levels[Level.currentLevel]); } public static function setLevel(_arg1:Level, _arg2:Number){ levels[_arg2] = _arg1; } public static function getLevel(_arg1:Number):Level{ return (levels[_arg1]); } public static function setCurrentLevel(_arg1:Number){ Level.currentLevel = _arg1; } } }//package
Section 61
//LoadNGAS2 (LoadNGAS2) package { import flash.display.*; import flash.utils.*; public class LoadNGAS2 { public static function getNGAS2Movie():MovieClip{ var _local1:Array; var _local2:Array; var _local3:ByteArray; var _local4:int; var _local5:Loader; var _local6:MovieClip; _local1 = [70, 87, 83, 8, 148, 86, 0, 0, 120, 0, 4, 176, 0, 0, 12, 128, 0, 0, 12, 2, 0, 68, 17, 0, 0, 0, 0, 67, 2, 0xFF, 0xFF, 0xFF, 0xFF, 8, 195, 4, 0, 0, 1, 0, 235, 2, 0, 0, 0xFF, 216, 0xFF, 224, 0, 16, 74, 70, 73, 70, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0xFF, 219, 0, 67, 0, 6, 4, 5, 8, 6, 4, 4, 9, 6, 11, 12, 10, 6, 6, 5, 4, 5, 8, 10, 12, 15, 19, 14, 12, 12, 11, 6, 6, 5, 9, 12, 16, 16, 12, 28, 32, 32, 27, 19, 12, 12, 10, 11, 10, 12, 14, 19, 27, 32, 32, 27, 20, 15, 12, 16, 20, 28, 32, 32, 32, 19, 32, 32, 32, 0xFF, 219, 0, 67, 1, 7, 7, 16, 32, 24, 7, 13, 26, 32, 32, 32, 32, 32, 21, 12, 13, 17, 32, 32, 32, 32, 32, 32, 32, 32, 32, 21, 24, 16, 26, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0xFF, 192, 0, 17, 8, 0, 20, 0, 38, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1, 0xFF, 196, 0, 26, 0, 1, 0, 2, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 2, 4, 5, 3, 0xFF, 196, 0, 42, 16, 0, 2, 1, 3, 4, 1, 2, 5, 5, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 4, 17, 5, 6, 18, 33, 49, 65, 81, 7, 20, 34, 50, 113, 19, 35, 51, 66, 98, 0xFF, 196, 0, 23, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 2, 0xFF, 196, 0, 35, 17, 0, 2, 1, 2, 5, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 2, 33, 3, 49, 65, 129, 225, 4, 19, 51, 52, 81, 113, 0xFF, 218, 0, 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0, 161, 54, 254, 220, 211, 46, 238, 84, 73, 127, 28, 138, 80, 254, 216, 204, 14, 88, 248, 195, 48, 57, 3, 7, 192, 246, 169, 94, 153, 176, 44, 173, 229, 150, 123, 145, 36, 150, 237, 3, 15, 151, 144, 114, 117, 228, 59, 250, 151, 203, 131, 227, 3, 174, 234, 171, 177, 152, 67, 125, 103, 35, 103, 140, 87, 22, 243, 28, 99, 56, 142, 69, 99, 140, 245, 156, 14, 170, 210, 218, 251, 225, 47, 245, 139, 248, 46, 51, 24, 187, 184, 31, 34, 79, 97, 126, 133, 64, 132, 15, 86, 35, 144, 239, 25, 98, 61, 170, 206, 157, 211, 55, 90, 219, 144, 171, 147, 191, 99, 165, 233, 214, 122, 109, 146, 203, 111, 12, 75, 53, 236, 82, 70, 141, 151, 31, 171, 39, 20, 143, 4, 246, 36, 101, 84, 7, 253, 100, 126, 116, 117, 189, 173, 101, 120, 215, 138, 109, 132, 50, 76, 240, 4, 186, 137, 121, 127, 44, 188, 142, 80, 120, 110, 99, 12, 216, 32, 35, 121, 30, 155, 242, 93, 182, 153, 97, 57, 214, 72, 150, 8, 37, 89, 98, 153, 35, 39, 165, 112, 200, 26, 49, 158, 44, 140, 0, 86, 241, 210, 156, 131, 94, 54, 250, 195, 38, 156, 250, 149, 228, 234, 186, 100, 226, 210, 72, 162, 17, 151, 49, 35, 149, 81, 151, 7, 239, 114, 64, 126, 176, 173, 215, 167, 118, 180, 161, 40, 210, 93, 149, 163, 239, 1, 107, 185, 86, 238, 205, 175, 113, 161, 203, 25, 144, 137, 45, 102, 98, 177, 202, 58, 236, 12, 225, 151, 209, 177, 216, 244, 35, 241, 74, 238, 110, 237, 220, 36, 186, 7, 75, 156, 79, 109, 35, 180, 141, 20, 208, 134, 17, 186, 36, 106, 10, 22, 31, 107, 12, 245, 228, 16, 199, 251, 82, 179, 49, 82, 238, 56, 202, 127, 74, 41, 200, 129, 86, 113, 72, 209, 75, 27, 198, 74, 201, 27, 171, 171, 3, 130, 10, 144, 65, 7, 220, 26, 82, 132, 232, 186, 54, 46, 187, 115, 170, 233, 12, 215, 156, 26, 68, 145, 225, 44, 23, 5, 130, 133, 236, 250, 100, 228, 231, 24, 21, 8, 248, 133, 126, 240, 106, 55, 86, 86, 202, 144, 89, 176, 134, 121, 82, 37, 226, 36, 114, 121, 2, 254, 228, 16, 49, 227, 211, 57, 192, 165, 43, 75, 31, 211, 167, 96, 40, 242, 178, 23, 74, 82, 179, 71, 63, 0xFF, 217, 120, 218, 99, 96, 192, 0, 27, 170, 4, 57, 82, 43, 24, 112, 2, 75, 111, 126, 105, 31, 245, 207, 15, 183, 173, 188, 251, 175, 123, 147, 149, 74, 166, 24, 138, 180, 164, 12, 47, 136, 154, 253, 0xFF, 238, 187, 0xFF, 247, 222, 252, 135, 128, 251, 63, 174, 176, 34, 43, 170, 126, 247, 243, 229, 14, 39, 209, 184, 142, 215, 0xFF, 183, 45, 251, 245, 227, 199, 187, 219, 247, 94, 223, 126, 240, 0xFF, 231, 164, 12, 103, 17, 176, 130, 240, 178, 252, 188, 156, 246, 174, 222, 245, 235, 230, 61, 3, 25, 80, 171, 241, 252, 0xFF, 0xFF, 243, 103, 190, 252, 216, 107, 56, 19, 196, 127, 90, 194, 6, 84, 181, 234, 34, 136, 253, 245, 185, 222, 4, 16, 253, 243, 122, 249, 67, 32, 245, 225, 39, 144, 56, 169, 215, 49, 237, 30, 144, 62, 172, 5, 118, 147, 78, 211, 249, 0xFF, 111, 183, 129, 21, 205, 11, 42, 3, 209, 13, 29, 32, 114, 195, 135, 201, 250, 79, 129, 244, 115, 45, 136, 187, 88, 61, 178, 126, 131, 29, 252, 239, 213, 102, 16, 21, 201, 241, 25, 72, 254, 248, 0xFF, 0xFF, 206, 55, 16, 119, 50, 204, 253, 229, 80, 127, 253, 93, 2, 34, 15, 169, 127, 253, 15, 7, 95, 254, 239, 49, 135, 170, 234, 254, 127, 100, 198, 189, 191, 64, 177, 21, 23, 128, 196, 247, 203, 64, 226, 234, 105, 176, 162, 227, 238, 15, 254, 63, 128, 170, 114, 254, 191, 159, 161, 241, 254, 219, 207, 119, 178, 53, 158, 64, 205, 240, 84, 60, 249, 237, 231, 0xFF, 95, 179, 57, 164, 204, 117, 161, 170, 90, 254, 231, 50, 212, 253, 0xFF, 124, 165, 205, 152, 65, 239, 11, 88, 81, 43, 131, 104, 68, 67, 222, 163, 0xFF, 0xFF, 119, 35, 130, 54, 175, 149, 133, 129, 169, 15, 228, 205, 21, 154, 241, 32, 69, 253, 18, 83, 129, 113, 240, 23, 132, 102, 178, 160, 198, 99, 19, 72, 254, 115, 105, 211, 253, 7, 5, 12, 235, 128, 204, 39, 123, 183, 28, 159, 86, 176, 140, 11, 45, 186, 179, 94, 129, 212, 173, 208, 231, 96, 96, 56, 11, 100, 228, 97, 79, 20, 114, 103, 239, 253, 1, 202, 94, 179, 102, 96, 240, 124, 240, 0xFF, 0xFF, 13, 78, 172, 170, 132, 143, 188, 60, 0xFF, 24, 168, 238, 207, 50, 23, 22, 174, 190, 0xFF, 183, 184, 176, 27, 38, 120, 252, 0xFF, 187, 231, 191, 64, 214, 222, 94, 87, 53, 199, 0, 87, 66, 228, 235, 252, 1, 13, 175, 143, 221, 12, 120, 128, 70, 207, 193, 123, 79, 30, 223, 217, 234, 140, 36, 6, 0, 76, 126, 89, 78, 63, 14, 26, 0, 0, 0, 1, 0, 1, 0, 105, 109, 97, 103, 101, 115, 46, 115, 112, 108, 97, 115, 104, 46, 77, 101, 110, 117, 83, 101, 108, 0, 63, 3, 79, 0, 0, 0, 150, 25, 0, 7, 37, 2, 0, 0, 7, 1, 0, 0, 0, 0, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 0, 28, 150, 14, 0, 0, 99, 111, 110, 110, 101, 99, 116, 77, 111, 118, 105, 101, 0, 82, 23, 150, 15, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 6, 0, 0, 115, 116, 111, 112, 0, 82, 23, 0, 63, 3, 246, 2, 0, 0, 136, 216, 0, 20, 0, 99, 108, 105, 99, 107, 108, 105, 115, 116, 101, 110, 101, 114, 0, 79, 98, 106, 101, 99, 116, 0, 111, 110, 77, 111, 117, 115, 101, 85, 112, 0, 67, 108, 105, 99, 107, 58, 32, 0, 0, 44, 32, 0, 80, 108, 97, 121, 32, 98, 117, 116, 116, 111, 110, 32, 99, 108, 105, 99, 107, 0, 77, 111, 117, 115, 101, 0, 114, 101, 109, 111, 118, 101, 76, 105, 115, 116, 101, 110, 101, 114, 0, 115, 101, 110, 100, 68, 111, 110, 101, 77, 115, 103, 0, 65, 100, 32, 99, 108, 105, 99, 107, 0, 115, 101, 110, 100, 77, 111, 99, 104, 105, 66, 111, 116, 77, 115, 103, 0, 97, 100, 100, 76, 105, 115, 116, 101, 110, 101, 114, 0, 78, 71, 65, 83, 50, 68, 111, 110, 101, 0, 108, 99, 95, 112, 108, 97, 121, 0, 115, 101, 110, 100, 105, 110, 103, 95, 108, 99, 0, 115, 101, 110, 100, 0, 109, 111, 99, 104, 105, 66, 111, 116, 67, 108, 105, 99, 107, 0, 115, 101, 116, 85, 112, 67, 108, 105, 99, 107, 76, 105, 115, 116, 101, 110, 101, 114, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 142, 26, 0, 115, 101, 116, 85, 112, 67, 108, 105, 99, 107, 76, 105, 115, 116, 101, 110, 101, 114, 0, 0, 0, 3, 41, 0, 133, 1, 150, 4, 0, 8, 0, 8, 1, 28, 60, 150, 2, 0, 4, 1, 135, 1, 0, 2, 23, 150, 2, 0, 8, 0, 28, 150, 2, 0, 8, 2, 155, 5, 0, 0, 0, 0, 70, 1, 150, 9, 0, 8, 3, 8, 4, 7, 20, 0, 0, 0, 34, 71, 150, 2, 0, 8, 5, 71, 150, 7, 0, 8, 4, 7, 21, 0, 0, 0, 34, 71, 38, 150, 7, 0, 8, 4, 7, 20, 0, 0, 0, 34, 150, 5, 0, 7, 89, 1, 0, 0, 103, 76, 18, 157, 2, 0, 21, 0, 23, 150, 7, 0, 8, 4, 7, 20, 0, 0, 0, 34, 150, 5, 0, 7, 224, 1, 0, 0, 72, 76, 18, 157, 2, 0, 21, 0, 23, 150, 7, 0, 8, 4, 7, 21, 0, 0, 0, 34, 150, 5, 0, 7, 200, 0, 0, 0, 72, 76, 18, 157, 2, 0, 21, 0, 23, 150, 7, 0, 8, 4, 7, 21, 0, 0, 0, 34, 150, 5, 0, 7, 125, 0, 0, 0, 103, 18, 157, 2, 0, 51, 0, 150, 2, 0, 8, 6, 38, 150, 2, 0, 8, 0, 28, 150, 7, 0, 7, 1, 0, 0, 0, 8, 7, 28, 150, 2, 0, 8, 8, 82, 23, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 61, 23, 153, 2, 0, 132, 0, 150, 7, 0, 8, 4, 7, 20, 0, 0, 0, 34, 150, 5, 0, 7, 33, 0, 0, 0, 103, 76, 18, 157, 2, 0, 21, 0, 23, 150, 7, 0, 8, 4, 7, 21, 0, 0, 0, 34, 150, 5, 0, 7, 32, 0, 0, 0, 103, 76, 18, 157, 2, 0, 21, 0, 23, 150, 7, 0, 8, 4, 7, 20, 0, 0, 0, 34, 150, 5, 0, 7, 77, 1, 0, 0, 72, 76, 18, 157, 2, 0, 21, 0, 23, 150, 7, 0, 8, 4, 7, 21, 0, 0, 0, 34, 150, 5, 0, 7, 26, 1, 0, 0, 72, 18, 157, 2, 0, 22, 0, 150, 2, 0, 8, 10, 38, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 11, 61, 23, 79, 150, 2, 0, 8, 0, 28, 150, 7, 0, 7, 1, 0, 0, 0, 8, 7, 28, 150, 2, 0, 8, 12, 82, 23, 155, 16, 0, 115, 101, 110, 100, 68, 111, 110, 101, 77, 115, 103, 0, 0, 0, 22, 0, 150, 11, 0, 8, 13, 8, 14, 7, 2, 0, 0, 0, 8, 15, 28, 150, 2, 0, 8, 16, 82, 23, 155, 20, 0, 115, 101, 110, 100, 77, 111, 99, 104, 105, 66, 111, 116, 77, 115, 103, 0, 0, 0, 22, 0, 150, 11, 0, 8, 17, 8, 14, 7, 2, 0, 0, 0, 8, 15, 28, 150, 2, 0, 8, 16, 82, 23, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 18, 61, 23, 150, 13, 0, 8, 15, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 19, 64, 60, 0, 191, 5, 200, 3, 0, 0, 2, 0, 108, 254, 24, 17, 72, 69, 190, 0, 1, 0, 0, 0, 0, 0, 16, 13, 171, 37, 164, 39, 194, 155, 121, 228, 64, 111, 211, 123, 197, 83, 25, 192, 205, 214, 240, 27, 193, 100, 153, 219, 191, 160, 52, 143, 198, 172, 249, 0xFF, 82, 41, 31, 233, 240, 128, 1, 0, 0xFF, 0xFF, 0xFF, 0, 16, 21, 180, 152, 168, 47, 54, 219, 12, 153, 170, 204, 86, 106, 179, 21, 178, 201, 153, 108, 213, 102, 91, 53, 91, 19, 153, 182, 204, 182, 109, 179, 45, 179, 57, 152, 172, 219, 102, 40, 22, 213, 50, 164, 123, 42, 26, 138, 54, 108, 53, 20, 108, 178, 108, 78, 102, 215, 50, 153, 183, 204, 198, 205, 134, 162, 128, 91, 95, 90, 160, 102, 95, 53, 122, 22, 106, 188, 212, 177, 179, 57, 168, 163, 69, 76, 196, 228, 222, 66, 228, 214, 67, 102, 223, 81, 70, 138, 154, 16, 230, 164, 22, 217, 146, 161, 249, 138, 205, 174, 98, 179, 111, 176, 241, 162, 166, 196, 230, 170, 141, 133, 12, 212, 230, 43, 53, 121, 138, 213, 81, 153, 108, 212, 230, 91, 53, 123, 17, 26, 54, 108, 50, 106, 216, 216, 176, 205, 174, 101, 179, 111, 153, 109, 91, 0, 182, 149, 149, 15, 217, 100, 212, 121, 179, 57, 169, 16, 22, 222, 106, 166, 249, 182, 204, 86, 109, 182, 20, 51, 85, 152, 172, 213, 102, 43, 85, 230, 101, 179, 85, 153, 108, 213, 108, 88, 102, 219, 50, 217, 182, 204, 182, 172, 76, 197, 2, 219, 190, 84, 223, 85, 230, 101, 179, 87, 153, 108, 212, 234, 68, 213, 81, 169, 99, 118, 233, 176, 201, 154, 188, 197, 102, 167, 49, 64, 182, 247, 21, 55, 213, 121, 168, 163, 86, 38, 165, 128, 91, 114, 202, 155, 234, 188, 212, 81, 171, 19, 82, 192, 45, 193, 45, 77, 243, 109, 152, 188, 219, 108, 40, 102, 171, 49, 57, 170, 204, 94, 202, 134, 165, 141, 155, 13, 75, 27, 42, 26, 150, 54, 108, 51, 18, 11, 113, 101, 85, 108, 218, 230, 91, 70, 204, 197, 102, 223, 49, 89, 181, 216, 100, 209, 83, 98, 195, 69, 77, 71, 153, 171, 204, 86, 106, 115, 21, 162, 166, 101, 179, 87, 153, 108, 212, 236, 78, 104, 217, 176, 161, 163, 102, 164, 76, 219, 230, 88, 22, 229, 114, 166, 250, 175, 53, 20, 106, 196, 212, 176, 11, 114, 125, 83, 124, 219, 102, 43, 54, 219, 10, 25, 170, 204, 86, 106, 179, 21, 170, 243, 50, 217, 170, 204, 182, 106, 182, 44, 51, 109, 153, 108, 219, 102, 91, 86, 38, 98, 129, 110, 127, 42, 89, 155, 125, 69, 26, 42, 104, 67, 154, 156, 203, 230, 175, 66, 205, 87, 154, 150, 54, 103, 53, 20, 104, 169, 152, 156, 155, 200, 92, 154, 200, 96, 91, 163, 138, 165, 232, 217, 168, 163, 69, 77, 75, 0, 183, 76, 21, 135, 212, 177, 163, 102, 162, 141, 21, 31, 8, 0, 1, 0, 210, 216, 227, 0, 16, 21, 185, 152, 81, 143, 49, 89, 170, 204, 86, 170, 141, 11, 52, 84, 208, 83, 85, 70, 101, 179, 85, 153, 108, 213, 108, 68, 110, 221, 54, 30, 51, 84, 11, 115, 208, 164, 253, 149, 13, 69, 27, 54, 26, 138, 54, 94, 51, 43, 154, 156, 203, 230, 175, 98, 195, 70, 205, 71, 154, 54, 106, 68, 205, 182, 101, 51, 109, 153, 141, 155, 13, 69, 0, 183, 73, 138, 99, 212, 81, 162, 166, 165, 141, 27, 1, 110, 157, 21, 103, 169, 99, 70, 205, 69, 26, 42, 2, 218, 136, 41, 143, 81, 230, 173, 141, 72, 154, 170, 1, 109, 88, 20, 99, 152, 172, 213, 102, 43, 85, 70, 101, 179, 85, 153, 108, 213, 108, 88, 106, 188, 212, 177, 187, 116, 216, 120, 205, 80, 45, 172, 146, 152, 243, 109, 152, 172, 219, 108, 40, 102, 171, 49, 89, 170, 204, 86, 171, 204, 203, 102, 171, 50, 217, 170, 216, 176, 205, 182, 101, 179, 109, 153, 109, 88, 153, 138, 5, 182, 60, 82, 126, 202, 134, 130, 155, 54, 26, 138, 54, 84, 52, 20, 217, 176, 212, 81, 178, 161, 153, 92, 213, 102, 95, 53, 90, 150, 51, 109, 169, 99, 53, 90, 150, 51, 109, 153, 92, 219, 102, 95, 102, 195, 81, 64, 45, 173, 130, 152, 245, 94, 106, 40, 213, 137, 169, 96, 22, 225, 137, 75, 57, 138, 205, 182, 163, 205, 91, 26, 138, 55, 81, 155, 19, 153, 182, 204, 182, 109, 179, 45, 171, 19, 49, 89, 182, 5, 184, 28, 83, 30, 165, 141, 21, 53, 20, 104, 216, 11, 112, 96, 165, 156, 197, 102, 171, 49, 90, 170, 54, 44, 52, 84, 212, 121, 162, 166, 197, 134, 109, 179, 45, 155, 108, 203, 106, 196, 204, 86, 109, 179, 21, 155, 109, 133, 12, 213, 2, 220, 64, 41, 143, 85, 230, 162, 141, 88, 154, 150, 1, 110, 82, 20, 239, 170, 163, 81, 230, 173, 141, 72, 128, 183, 41, 10, 59, 213, 81, 168, 243, 86, 198, 164, 64, 91, 109, 37, 44, 230, 43, 54, 219, 10, 25, 170, 204, 86, 106, 179, 21, 170, 163, 98, 195, 69, 77, 71, 154, 42, 108, 88, 102, 219, 50, 217, 182, 204, 182, 172, 76, 197, 102, 216, 22, 219, 193, 78, 250, 138, 52, 108, 212, 177, 162, 160, 45, 188, 130, 150, 51, 111, 168, 163, 69, 77, 8, 115, 83, 153, 124, 213, 232, 89, 170, 243, 82, 198, 204, 230, 162, 141, 21, 51, 19, 147, 121, 11, 147, 89, 12, 0, 191, 5, 6, 3, 0, 0, 3, 0, 111, 219, 29, 21, 252, 144, 244, 0, 1, 0, 0, 0, 0, 0, 16, 13, 8, 121, 57, 169, 192, 48, 15, 166, 194, 63, 0, 90, 217, 111, 152, 1, 104, 248, 254, 100, 3, 245, 144, 30, 198, 184, 76, 179, 254, 125, 131, 50, 6, 8, 5, 54, 204, 140, 192, 20, 216, 24, 51, 97, 97, 83, 128, 118, 74, 65, 240, 128, 1, 0, 102, 109, 122, 0, 16, 21, 173, 212, 2, 174, 67, 11, 13, 29, 53, 137, 39, 117, 90, 4, 117, 6, 21, 39, 36, 128, 172, 160, 21, 154, 1, 26, 128, 124, 233, 26, 253, 10, 52, 107, 212, 97, 178, 129, 153, 61, 61, 225, 38, 233, 82, 4, 147, 129, 165, 178, 105, 104, 19, 200, 4, 198, 221, 33, 215, 50, 4, 137, 0, 97, 96, 181, 192, 160, 197, 204, 182, 140, 250, 12, 232, 171, 167, 23, 115, 45, 164, 169, 193, 107, 91, 128, 153, 178, 243, 161, 78, 221, 59, 76, 187, 155, 42, 26, 21, 236, 195, 232, 53, 180, 169, 27, 57, 25, 179, 93, 160, 160, 45, 102, 64, 19, 54, 94, 116, 39, 213, 155, 169, 95, 85, 158, 132, 251, 48, 250, 12, 234, 176, 212, 83, 171, 67, 65, 144, 90, 207, 160, 38, 108, 188, 232, 79, 179, 15, 160, 200, 45, 107, 72, 83, 51, 145, 155, 53, 218, 10, 108, 188, 232, 83, 183, 78, 211, 46, 230, 202, 134, 133, 123, 48, 250, 13, 109, 42, 70, 5, 172, 247, 10, 20, 128, 89, 214, 209, 230, 180, 4, 185, 128, 0, 85, 32, 10, 142, 86, 148, 138, 141, 96, 61, 228, 35, 112, 40, 5, 172, 184, 8, 180, 135, 92, 192, 18, 48, 1, 201, 72, 106, 64, 53, 32, 14, 100, 140, 153, 37, 64, 18, 80, 6, 87, 73, 157, 192, 75, 32, 19, 29, 112, 45, 112, 160, 89, 116, 90, 208, 159, 70, 109, 6, 65, 107, 122, 130, 55, 169, 43, 69, 205, 69, 122, 42, 234, 85, 209, 119, 81, 190, 138, 219, 22, 27, 48, 251, 9, 250, 42, 130, 214, 48, 129, 139, 66, 29, 150, 61, 9, 118, 103, 116, 33, 209, 195, 110, 234, 6, 171, 61, 9, 181, 102, 237, 216, 186, 208, 115, 89, 182, 26, 205, 80, 216, 109, 209, 88, 22, 172, 168, 12, 58, 146, 180, 92, 212, 87, 162, 174, 165, 93, 23, 117, 27, 232, 173, 177, 97, 179, 15, 176, 159, 162, 168, 45, 90, 176, 24, 53, 80, 104, 49, 165, 15, 51, 150, 153, 247, 92, 242, 222, 132, 192, 181, 110, 64, 76, 145, 96, 10, 42, 66, 202, 1, 9, 0, 98, 178, 53, 148, 107, 161, 62, 189, 212, 52, 37, 213, 97, 161, 62, 204, 62, 163, 80, 90, 188, 80, 141, 234, 74, 209, 115, 81, 94, 138, 186, 149, 116, 93, 212, 111, 162, 182, 197, 134, 204, 62, 194, 126, 138, 160, 181, 109, 65, 6, 219, 180, 243, 161, 70, 221, 184, 125, 6, 182, 141, 45, 109, 26, 166, 208, 84, 22, 175, 96, 32, 218, 141, 100, 88, 2, 138, 144, 178, 128, 66, 64, 24, 172, 141, 101, 26, 232, 79, 175, 117, 13, 9, 117, 88, 104, 79, 179, 14, 11, 88, 234, 19, 109, 102, 168, 104, 47, 183, 105, 27, 85, 158, 132, 218, 179, 118, 236, 93, 104, 57, 172, 219, 0, 90, 191, 16, 141, 106, 160, 208, 99, 74, 30, 103, 45, 51, 238, 177, 239, 119, 6, 132, 192, 181, 89, 224, 76, 219, 180, 243, 161, 70, 221, 184, 125, 6, 182, 141, 45, 109, 26, 166, 208, 84, 22, 169, 152, 12, 58, 146, 180, 92, 212, 87, 162, 174, 165, 93, 23, 117, 27, 232, 173, 177, 97, 179, 15, 176, 159, 162, 168, 45, 80, 88, 73, 180, 242, 150, 120, 162, 54, 4, 232, 210, 50, 145, 129, 215, 84, 155, 149, 96, 26, 146, 246, 97, 245, 24, 105, 80, 40, 208, 51, 35, 72, 201, 130, 212, 248, 133, 67, 60, 249, 161, 62, 139, 218, 12, 231, 111, 51, 146, 185, 249, 80, 90, 159, 32, 148, 103, 221, 179, 215, 154, 20, 232, 187, 160, 198, 117, 243, 57, 42, 11, 84, 92, 16, 109, 102, 216, 107, 53, 67, 65, 125, 187, 72, 218, 172, 244, 38, 213, 155, 183, 98, 235, 65, 192, 90, 172, 176, 166, 104, 187, 168, 223, 69, 109, 139, 13, 152, 125, 132, 253, 21, 117, 37, 104, 185, 168, 175, 69, 93, 74, 160, 0, 191, 0, 92, 3, 0, 0, 4, 0, 112, 0, 11, 99, 0, 0, 25, 200, 1, 0, 0xFF, 0xFF, 0xFF, 0, 16, 21, 142, 128, 2, 62, 85, 13, 48, 2, 30, 113, 132, 217, 197, 247, 96, 27, 20, 82, 212, 1, 107, 84, 113, 196, 145, 45, 130, 213, 128, 108, 81, 77, 118, 1, 159, 163, 54, 110, 128, 5, 239, 45, 122, 144, 11, 209, 3, 97, 190, 68, 64, 1, 30, 85, 13, 32, 12, 176, 6, 194, 244, 140, 128, 5, 28, 181, 230, 64, 47, 64, 13, 135, 9, 16, 0, 4, 121, 84, 60, 128, 48, 192, 27, 11, 210, 50, 0, 19, 242, 215, 169, 0, 189, 16, 54, 27, 228, 64, 0, 17, 5, 168, 116, 0, 14, 194, 236, 200, 160, 6, 37, 243, 24, 151, 128, 161, 236, 177, 73, 250, 24, 129, 177, 35, 38, 0, 1, 134, 204, 252, 128, 79, 56, 27, 20, 114, 76, 0, 12, 240, 190, 146, 0, 203, 64, 108, 46, 200, 200, 0, 79, 179, 67, 39, 247, 226, 6, 165, 169, 47, 0, 12, 54, 101, 228, 3, 4, 64, 220, 90, 200, 120, 0, 161, 186, 233, 155, 253, 15, 60, 194, 108, 242, 251, 176, 13, 138, 57, 174, 192, 51, 180, 102, 205, 208, 1, 189, 225, 130, 230, 0xFF, 189, 51, 209, 152, 203, 69, 20, 0, 22, 172, 36, 0, 51, 34, 128, 25, 23, 204, 98, 94, 0, 135, 186, 159, 148, 3, 60, 74, 165, 192, 170, 113, 8, 165, 5, 226, 230, 99, 210, 145, 147, 48, 34, 0, 55, 108, 191, 200, 2, 24, 1, 177, 37, 37, 224, 1, 134, 204, 12, 160, 43, 220, 207, 182, 159, 19, 60, 0xFF, 30, 134, 4, 110, 188, 164, 1, 12, 1, 216, 145, 146, 0xFF, 192, 195, 150, 116, 200, 6, 8, 129, 184, 246, 5, 170, 146, 4, 214, 234, 190, 64, 15, 68, 13, 134, 105, 25, 0, 10, 119, 108, 50, 1, 60, 224, 108, 77, 73, 120, 0, 34, 10, 81, 234, 62, 85, 13, 32, 8, 98, 6, 196, 140, 151, 128, 6, 28, 181, 230, 96, 11, 195, 45, 41, 140, 116, 81, 128, 54, 23, 102, 70, 0, 50, 47, 152, 192, 184, 1, 19, 149, 67, 200, 2, 24, 129, 177, 35, 37, 224, 1, 135, 45, 122, 144, 9, 231, 3, 98, 142, 73, 128, 1, 144, 86, 249, 64, 142, 203, 68, 128, 33, 136, 27, 144, 185, 37, 0, 6, 119, 84, 242, 0, 122, 32, 110, 63, 228, 60, 0, 16, 217, 106, 140, 15, 136, 119, 32, 50, 95, 248, 8, 110, 169, 164, 1, 150, 192, 220, 122, 200, 120, 0, 33, 178, 211, 32, 8, 98, 6, 228, 46, 107, 144, 12, 253, 25, 179, 180, 64, 47, 56, 96, 185, 128, 47, 12, 180, 166, 49, 209, 71, 0, 220, 122, 200, 120, 0, 32, 11, 148, 92, 0, 194, 99, 18, 240, 20, 62, 23, 214, 111, 244, 60, 243, 9, 179, 203, 238, 192, 55, 33, 82, 96, 0, 24, 114, 206, 137, 0, 193, 0, 55, 30, 211, 34, 128, 24, 151, 130, 228, 249, 128, 138, 216, 153, 147, 0, 0, 71, 149, 2, 200, 2, 8, 1, 176, 207, 35, 32, 1, 63, 12, 25, 32, 19, 206, 0, 46, 73, 88, 10, 46, 85, 15, 32, 8, 98, 6, 196, 140, 152, 0, 6, 28, 181, 234, 79, 231, 156, 13, 138, 73, 37, 0, 6, 121, 84, 52, 128, 33, 136, 27, 18, 50, 96, 0, 24, 114, 215, 153, 128, 47, 12, 116, 166, 49, 209, 71, 0, 216, 92, 153, 24, 0, 200, 190, 99, 2, 224, 4, 64, 92, 168, 176, 20, 83, 0, 94, 153, 232, 204, 99, 162, 140, 1, 184, 247, 144, 240, 0, 67, 101, 170, 48, 62, 32, 220, 132, 201, 40, 0, 49, 186, 160, 144, 5, 219, 3, 97, 122, 100, 96, 3, 35, 9, 140, 11, 192, 17, 55, 83, 115, 0, 33, 231, 152, 77, 156, 95, 118, 1, 185, 10, 146, 224, 0, 195, 102, 94, 64, 48, 72, 13, 199, 180, 140, 0, 4, 251, 182, 89, 0, 158, 128, 118, 40, 166, 186, 0xFF, 207, 208, 155, 55, 68, 2, 251, 118, 192, 11, 90, 126, 8, 173, 138, 73, 38, 0, 6, 56, 95, 89, 0, 101, 160, 54, 23, 36, 100, 0, 103, 225, 130, 228, 254, 137, 192, 5, 174, 130, 0, 14, 195, 124, 135, 128, 2, 28, 170, 26, 64, 25, 104, 13, 133, 217, 25, 0, 9, 249, 107, 212, 128, 96, 136, 27, 13, 242, 30, 0, 8, 114, 168, 105, 128, 16, 243, 204, 38, 206, 47, 187, 0, 216, 163, 154, 236, 3, 63, 70, 108, 221, 0, 11, 222, 90, 245, 32, 24, 34, 0, 45, 109, 176, 12, 38, 49, 47, 1, 67, 225, 125, 102, 0xFF, 67, 207, 48, 155, 56, 190, 236, 3, 98, 146, 107, 176, 12, 237, 25, 179, 116, 0, 111, 120, 96, 185, 191, 239, 76, 244, 102, 50, 209, 69, 0, 216, 92, 153, 20, 0, 200, 188, 0, 191, 0, 92, 3, 0, 0, 5, 0, 112, 0, 11, 99, 0, 0, 25, 200, 1, 0, 0xFF, 153, 0, 0, 16, 21, 137, 226, 0, 25, 17, 0, 4, 121, 84, 52, 128, 50, 192, 27, 11, 210, 50, 0, 20, 114, 215, 153, 0, 189, 0, 54, 28, 36, 64, 0, 17, 229, 80, 242, 0, 195, 0, 108, 47, 72, 200, 0, 79, 203, 94, 164, 2, 244, 64, 216, 111, 145, 0, 0, 71, 149, 67, 76, 0, 135, 156, 97, 54, 113, 125, 216, 6, 197, 20, 181, 0, 90, 213, 28, 113, 36, 75, 96, 181, 96, 27, 20, 83, 93, 128, 103, 232, 205, 155, 160, 1, 123, 203, 94, 164, 2, 244, 64, 216, 111, 5, 203, 99, 5, 47, 48, 2, 30, 121, 132, 217, 197, 247, 96, 27, 144, 169, 46, 0, 12, 54, 101, 228, 3, 4, 128, 220, 123, 72, 192, 0, 79, 187, 101, 144, 9, 232, 7, 98, 138, 107, 175, 252, 253, 9, 179, 116, 64, 47, 183, 108, 19, 0, 94, 153, 232, 204, 99, 162, 140, 1, 184, 247, 144, 240, 0, 67, 101, 170, 48, 62, 32, 220, 132, 201, 40, 0, 49, 186, 160, 144, 5, 219, 3, 97, 122, 100, 96, 3, 35, 9, 140, 11, 192, 17, 55, 83, 96, 185, 55, 240, 34, 164, 192, 0, 17, 229, 64, 178, 0, 130, 0, 108, 51, 200, 200, 0, 79, 195, 6, 72, 4, 243, 129, 177, 50, 11, 148, 92, 0, 194, 99, 18, 240, 20, 62, 23, 214, 111, 244, 60, 243, 9, 179, 203, 238, 192, 55, 33, 82, 96, 0, 24, 114, 206, 137, 0, 193, 0, 55, 30, 211, 34, 128, 24, 151, 130, 228, 149, 128, 162, 229, 80, 242, 0, 134, 32, 108, 72, 201, 128, 0, 97, 203, 94, 164, 254, 121, 192, 216, 164, 146, 80, 0, 103, 149, 67, 72, 2, 24, 129, 177, 35, 38, 0, 1, 135, 45, 121, 152, 2, 240, 199, 74, 99, 29, 20, 112, 13, 133, 201, 145, 128, 12, 139, 230, 48, 46, 0, 68, 5, 200, 15, 128, 35, 202, 161, 166, 0, 67, 207, 48, 155, 56, 190, 236, 3, 98, 142, 107, 176, 12, 253, 25, 179, 116, 0, 47, 121, 107, 212, 128, 96, 136, 27, 13, 242, 30, 0, 8, 114, 168, 105, 0, 101, 160, 54, 23, 100, 100, 0, 39, 229, 175, 82, 1, 130, 32, 108, 55, 200, 120, 0, 32, 11, 90, 126, 0, 25, 145, 64, 12, 139, 230, 49, 47, 1, 67, 225, 125, 102, 0xFF, 67, 207, 48, 155, 56, 190, 236, 3, 98, 146, 107, 176, 12, 237, 25, 179, 116, 0, 111, 120, 96, 185, 191, 239, 76, 244, 102, 50, 209, 69, 0, 216, 92, 5, 173, 63, 4, 86, 197, 36, 147, 0, 3, 28, 47, 172, 128, 50, 208, 27, 11, 146, 50, 0, 51, 240, 193, 114, 127, 68, 224, 2, 213, 157, 135, 142, 46, 102, 61, 41, 25, 51, 2, 32, 3, 118, 203, 252, 128, 33, 128, 27, 18, 82, 94, 0, 24, 108, 192, 202, 2, 189, 204, 251, 105, 241, 51, 207, 241, 232, 96, 70, 235, 202, 64, 16, 192, 29, 137, 25, 47, 252, 12, 57, 103, 76, 128, 96, 136, 27, 143, 105, 145, 64, 12, 139, 230, 49, 47, 0, 67, 221, 79, 202, 1, 158, 37, 82, 224, 85, 56, 132, 82, 130, 224, 181, 100, 64, 162, 144, 9, 231, 3, 98, 106, 75, 192, 1, 29, 213, 124, 128, 30, 136, 27, 12, 210, 50, 0, 20, 238, 216, 65, 106, 52, 65, 21, 177, 71, 36, 192, 0, 207, 11, 233, 32, 12, 180, 6, 194, 236, 140, 128, 4, 251, 52, 50, 127, 126, 32, 106, 90, 146, 240, 0, 195, 102, 94, 64, 48, 68, 13, 197, 172, 135, 128, 10, 27, 174, 153, 191, 208, 243, 204, 38, 207, 47, 187, 0, 216, 163, 154, 236, 3, 59, 70, 108, 221, 0, 27, 222, 24, 46, 111, 251, 211, 61, 25, 140, 180, 81, 64, 54, 23, 102, 69, 0, 49, 47, 152, 196, 188, 5, 15, 101, 138, 79, 208, 196, 13, 137, 25, 48, 0, 12, 54, 103, 228, 2, 121, 192, 5, 111, 148, 8, 236, 180, 72, 2, 24, 129, 185, 11, 146, 80, 0, 103, 117, 79, 32, 7, 162, 6, 227, 254, 67, 192, 1, 13, 150, 168, 192, 248, 135, 114, 3, 37, 0xFF, 128, 134, 234, 154, 64, 25, 108, 13, 199, 172, 135, 128, 2, 27, 45, 50, 0, 134, 32, 110, 66, 230, 185, 0, 207, 209, 155, 59, 68, 2, 243, 134, 11, 152, 2, 240, 203, 74, 99, 29, 20, 112, 13, 199, 172, 135, 128, 2, 0, 157, 147, 9, 140, 116, 81, 128, 54, 23, 102, 70, 0, 50, 47, 152, 192, 184, 1, 19, 149, 67, 200, 2, 24, 129, 177, 35, 37, 224, 1, 135, 45, 122, 144, 9, 231, 3, 98, 142, 73, 128, 1, 158, 85, 13, 32, 8, 98, 6, 196, 140, 151, 128, 6, 28, 181, 230, 96, 11, 195, 45, 32, 0, 191, 0, 33, 0, 0, 0, 6, 0, 111, 251, 28, 192, 1, 64, 210, 0, 1, 0, 0, 0, 0xFF, 0, 16, 21, 174, 96, 13, 39, 178, 49, 156, 51, 135, 99, 157, 56, 89, 0, 0, 191, 8, 102, 0, 0, 0, 7, 0, 0, 45, 0, 15, 3, 0, 2, 0, 0, 4, 1, 4, 0, 3, 0, 193, 165, 137, 165, 136, 112, 12, 128, 4, 14, 5, 0, 3, 0, 193, 165, 137, 165, 136, 112, 12, 128, 4, 8, 6, 0, 4, 0, 0, 4, 0, 0, 0, 8, 0, 150, 24, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 0, 28, 150, 16, 0, 0, 108, 111, 97, 100, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 0, 82, 23, 0, 191, 0, 13, 4, 0, 0, 8, 0, 111, 166, 23, 33, 79, 186, 215, 128, 1, 0, 102, 109, 122, 0, 16, 21, 160, 200, 169, 31, 101, 147, 66, 205, 153, 205, 5, 1, 104, 40, 41, 247, 186, 140, 208, 179, 118, 233, 160, 160, 45, 1, 229, 77, 246, 44, 52, 84, 212, 121, 154, 188, 196, 230, 167, 49, 122, 43, 102, 87, 53, 57, 151, 205, 78, 197, 134, 141, 155, 10, 26, 54, 106, 68, 205, 190, 101, 115, 111, 153, 125, 26, 179, 19, 155, 124, 197, 230, 215, 97, 67, 69, 64, 90, 11, 74, 135, 232, 217, 160, 166, 138, 154, 22, 2, 208, 150, 84, 143, 53, 89, 138, 205, 86, 98, 182, 84, 52, 44, 217, 176, 212, 137, 178, 161, 161, 102, 205, 134, 98, 179, 109, 152, 172, 219, 106, 60, 5, 161, 144, 169, 190, 99, 242, 111, 33, 115, 99, 160, 166, 138, 153, 145, 201, 92, 139, 205, 126, 100, 114, 87, 34, 243, 85, 144, 185, 43, 152, 252, 215, 228, 46, 74, 230, 63, 69, 77, 11, 51, 99, 145, 121, 55, 153, 28, 216, 228, 94, 77, 234, 93, 213, 81, 161, 102, 237, 211, 65, 77, 149, 13, 68, 121, 55, 144, 185, 177, 5, 162, 28, 169, 30, 202, 134, 162, 141, 155, 13, 5, 54, 84, 53, 20, 108, 216, 104, 41, 178, 161, 153, 108, 213, 102, 91, 53, 90, 150, 52, 108, 208, 179, 69, 77, 75, 25, 182, 204, 182, 109, 179, 45, 179, 97, 160, 160, 45, 23, 37, 62, 247, 81, 154, 22, 110, 221, 52, 20, 5, 163, 12, 167, 222, 234, 51, 66, 205, 219, 166, 130, 128, 180, 87, 149, 35, 217, 100, 208, 179, 102, 115, 65, 64, 90, 42, 138, 135, 232, 217, 160, 166, 138, 154, 22, 2, 209, 184, 84, 143, 81, 230, 106, 179, 19, 154, 172, 197, 234, 188, 204, 174, 106, 179, 47, 154, 173, 72, 153, 182, 204, 174, 109, 179, 47, 171, 19, 49, 57, 182, 204, 94, 109, 129, 104, 220, 42, 111, 170, 243, 81, 230, 172, 77, 72, 128, 180, 138, 213, 55, 205, 190, 98, 179, 107, 168, 243, 53, 121, 138, 205, 78, 98, 181, 85, 108, 88, 104, 165, 168, 243, 69, 77, 72, 153, 183, 204, 182, 109, 243, 45, 171, 11, 49, 64, 180, 135, 21, 55, 213, 121, 153, 108, 212, 230, 91, 53, 122, 145, 53, 84, 104, 89, 187, 116, 216, 80, 205, 78, 98, 179, 87, 152, 160, 90, 70, 10, 156, 232, 165, 168, 243, 70, 237, 72, 128, 180, 125, 21, 55, 213, 121, 168, 243, 86, 38, 164, 64, 90, 77, 138, 150, 230, 219, 81, 230, 106, 179, 21, 154, 172, 197, 108, 168, 104, 89, 179, 97, 169, 19, 101, 67, 66, 205, 155, 12, 197, 102, 219, 49, 64, 180, 175, 20, 251, 208, 83, 69, 77, 11, 52, 108, 5, 165, 170, 169, 190, 109, 179, 21, 155, 109, 71, 153, 170, 204, 86, 106, 179, 21, 178, 161, 161, 102, 205, 134, 164, 77, 149, 13, 11, 54, 108, 51, 20, 11, 75, 25, 82, 61, 150, 77, 11, 54, 103, 52, 20, 5, 166, 104, 169, 30, 163, 204, 213, 102, 39, 53, 89, 139, 217, 80, 216, 176, 205, 182, 101, 115, 109, 153, 125, 27, 51, 19, 155, 108, 197, 230, 219, 81, 230, 141, 154, 145, 52, 108, 5, 167, 28, 169, 30, 163, 204, 213, 102, 43, 53, 89, 138, 217, 80, 208, 179, 102, 195, 82, 38, 202, 134, 133, 155, 54, 25, 138, 205, 182, 98, 179, 108, 11, 79, 41, 82, 61, 71, 153, 171, 204, 86, 106, 115, 21, 170, 171, 98, 195, 69, 45, 71, 154, 42, 106, 68, 205, 190, 101, 179, 111, 153, 109, 88, 89, 138, 205, 190, 98, 179, 106, 11, 79, 41, 83, 157, 20, 181, 30, 104, 221, 169, 16, 22, 160, 50, 164, 123, 42, 26, 138, 54, 108, 52, 20, 217, 80, 212, 81, 179, 97, 160, 166, 202, 134, 101, 179, 85, 153, 108, 213, 106, 88, 209, 179, 66, 205, 21, 53, 44, 102, 219, 50, 217, 182, 204, 182, 205, 134, 130, 128, 181, 29, 21, 35, 217, 80, 212, 81, 179, 97, 160, 166, 202, 134, 162, 141, 155, 13, 5, 54, 84, 51, 45, 154, 172, 203, 102, 171, 82, 198, 141, 154, 22, 104, 169, 169, 99, 54, 217, 150, 205, 182, 101, 182, 108, 52, 20, 5, 169, 116, 167, 222, 130, 154, 42, 104, 89, 163, 96, 45, 77, 53, 77, 243, 109, 152, 172, 219, 106, 60, 205, 86, 98, 179, 85, 152, 173, 149, 13, 11, 54, 108, 53, 34, 108, 168, 104, 89, 179, 97, 152, 160, 90, 161, 250, 155, 230, 219, 49, 57, 182, 212, 121, 171, 99, 65, 77, 212, 102, 197, 134, 109, 179, 47, 155, 108, 202, 234, 196, 204, 88, 45, 84, 173, 77, 243, 109, 152, 188, 219, 106, 60, 205, 86, 98, 115, 85, 152, 189, 87, 153, 149, 205, 86, 101, 243, 85, 169, 19, 54, 217, 149, 205, 182, 101, 245, 98, 102, 36, 22, 170, 130, 166, 250, 175, 53, 30, 106, 196, 212, 136, 11, 84, 81, 83, 125, 87, 154, 143, 53, 98, 106, 68, 5, 171, 144, 169, 30, 202, 134, 101, 179, 85, 153, 108, 213, 106, 88, 209, 179, 66, 205, 21, 53, 44, 102, 219, 50, 217, 182, 204, 182, 205, 134, 130, 155, 42, 26, 138, 54, 108, 52, 20, 217, 80, 212, 81, 179, 97, 160, 160, 45, 76, 69, 72, 246, 89, 52, 44, 217, 156, 208, 80, 22, 154, 146, 171, 250, 145, 52, 84, 212, 121, 163, 96, 45, 244, 197, 67, 244, 108, 220, 70, 104, 169, 169, 19, 101, 227, 66, 205, 152, 141, 72, 128, 183, 241, 21, 44, 204, 78, 106, 243, 23, 178, 161, 161, 102, 205, 134, 164, 77, 149, 13, 11, 55, 110, 154, 10, 106, 168, 212, 121, 154, 144, 91, 252, 74, 125, 232, 169, 161, 102, 141, 154, 10, 2, 223, 226, 84, 143, 101, 147, 66, 205, 153, 205, 5, 0, 191, 0, 34, 0, 0, 0, 9, 0, 109, 18, 23, 113, 93, 100, 175, 0, 1, 0, 235, 173, 29, 0, 16, 21, 171, 184, 74, 247, 194, 137, 15, 27, 30, 60, 23, 112, 241, 78, 32, 0, 191, 0, 31, 0, 0, 0, 10, 0, 112, 0, 43, 186, 128, 2, 157, 128, 1, 0, 0, 0, 0, 0, 16, 20, 75, 240, 93, 211, 197, 58, 0xFF, 10, 35, 60, 108, 81, 0, 191, 0, 231, 0, 0, 0, 11, 0, 112, 0, 11, 185, 0xFF, 254, 143, 8, 2, 0, 0xFF, 181, 14, 0, 0xFF, 241, 122, 0, 32, 13, 168, 180, 0xFF, 253, 209, 109, 2, 62, 68, 236, 71, 72, 67, 139, 205, 254, 136, 249, 247, 26, 227, 16, 142, 134, 33, 18, 232, 73, 129, 30, 132, 6, 229, 95, 66, 93, 168, 16, 17, 233, 86, 157, 181, 32, 251, 253, 182, 60, 245, 230, 250, 129, 47, 120, 61, 141, 182, 28, 23, 134, 146, 223, 83, 229, 103, 28, 183, 240, 91, 123, 102, 56, 181, 254, 150, 37, 183, 242, 223, 130, 71, 229, 72, 124, 98, 0, 28, 71, 157, 144, 0, 162, 92, 97, 128, 8, 71, 140, 164, 1, 14, 225, 166, 145, 211, 78, 105, 187, 0xFF, 2, 208, 0, 43, 151, 165, 88, 119, 168, 124, 156, 64, 116, 87, 107, 87, 230, 254, 245, 111, 122, 171, 205, 196, 63, 89, 117, 182, 241, 205, 22, 127, 209, 46, 183, 139, 33, 225, 29, 183, 225, 17, 229, 167, 61, 8, 56, 59, 132, 59, 71, 90, 57, 165, 0xFF, 250, 35, 223, 44, 208, 243, 29, 203, 185, 150, 18, 221, 116, 121, 46, 193, 114, 30, 136, 226, 247, 51, 252, 77, 7, 107, 181, 127, 0xFF, 62, 125, 199, 71, 52, 119, 38, 219, 0xFF, 251, 121, 236, 93, 28, 176, 0, 191, 5, 127, 11, 0, 0, 12, 0, 118, 15, 7, 204, 78, 216, 0, 0, 2, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0, 32, 21, 221, 24, 81, 42, 204, 21, 44, 169, 105, 57, 135, 80, 137, 0, 78, 140, 0, 24, 75, 18, 190, 114, 85, 236, 168, 136, 23, 33, 55, 250, 15, 169, 254, 179, 8, 230, 250, 77, 242, 72, 215, 205, 198, 218, 210, 29, 123, 91, 101, 67, 193, 243, 176, 114, 54, 83, 8, 227, 71, 107, 33, 222, 180, 101, 181, 160, 45, 49, 227, 56, 242, 28, 195, 200, 195, 9, 88, 209, 202, 73, 138, 240, 238, 114, 51, 25, 89, 117, 48, 238, 123, 118, 76, 207, 164, 92, 244, 38, 250, 233, 34, 107, 2, 59, 82, 189, 246, 66, 212, 214, 101, 181, 229, 27, 235, 100, 201, 104, 21, 156, 54, 104, 81, 248, 47, 45, 54, 249, 37, 189, 103, 182, 123, 230, 106, 26, 126, 73, 9, 121, 74, 5, 22, 112, 181, 220, 23, 165, 214, 46, 190, 210, 56, 157, 228, 170, 22, 55, 165, 77, 173, 103, 77, 171, 29, 27, 94, 183, 177, 20, 154, 89, 253, 50, 217, 241, 147, 14, 63, 179, 230, 123, 126, 107, 38, 254, 209, 10, 172, 148, 181, 244, 252, 242, 190, 224, 227, 187, 175, 218, 26, 91, 43, 238, 86, 217, 220, 62, 182, 64, 243, 73, 74, 76, 18, 111, 210, 147, 31, 85, 117, 235, 145, 251, 39, 52, 235, 14, 61, 180, 245, 116, 155, 217, 128, 24, 30, 184, 94, 164, 183, 253, 20, 211, 114, 248, 234, 207, 102, 201, 129, 146, 129, 53, 120, 53, 239, 124, 222, 127, 95, 87, 184, 62, 208, 58, 12, 234, 200, 238, 244, 38, 174, 169, 150, 134, 137, 157, 54, 239, 34, 77, 122, 109, 78, 3, 53, 88, 13, 151, 12, 177, 244, 207, 187, 174, 181, 237, 116, 232, 233, 211, 13, 247, 224, 156, 196, 140, 225, 7, 219, 67, 221, 166, 7, 57, 250, 120, 219, 47, 127, 189, 20, 227, 206, 243, 109, 108, 5, 153, 203, 165, 163, 50, 116, 118, 229, 41, 198, 149, 166, 181, 151, 178, 164, 226, 92, 179, 89, 74, 182, 244, 69, 205, 241, 70, 9, 124, 11, 188, 53, 164, 159, 93, 159, 153, 23, 143, 60, 249, 86, 124, 55, 61, 219, 159, 42, 199, 214, 186, 226, 245, 216, 13, 166, 96, 242, 46, 74, 195, 244, 124, 251, 110, 127, 167, 21, 224, 184, 46, 50, 178, 139, 233, 21, 92, 229, 126, 177, 136, 164, 44, 244, 73, 214, 132, 142, 180, 66, 179, 176, 58, 10, 230, 43, 59, 63, 173, 87, 89, 19, 224, 158, 115, 174, 154, 71, 191, 88, 203, 153, 199, 125, 35, 91, 164, 88, 243, 235, 25, 241, 204, 183, 185, 227, 204, 241, 222, 63, 179, 246, 249, 249, 44, 252, 142, 125, 71, 47, 203, 225, 0, 2, 0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0, 32, 29, 198, 166, 208, 116, 211, 213, 0xFF, 24, 67, 148, 248, 83, 151, 237, 81, 47, 231, 131, 156, 74, 65, 234, 38, 216, 209, 198, 84, 138, 60, 211, 154, 80, 70, 85, 138, 153, 27, 193, 102, 79, 41, 96, 5, 157, 84, 7, 61, 227, 230, 79, 182, 12, 201, 227, 18, 17, 178, 216, 227, 115, 63, 52, 159, 186, 179, 134, 147, 127, 214, 239, 237, 115, 178, 229, 150, 108, 236, 158, 219, 206, 46, 76, 183, 49, 15, 210, 24, 230, 148, 7, 155, 95, 70, 227, 127, 76, 219, 109, 143, 236, 21, 199, 117, 80, 108, 81, 167, 104, 87, 247, 235, 61, 27, 241, 107, 42, 229, 179, 150, 105, 202, 137, 179, 209, 89, 117, 54, 204, 41, 229, 197, 227, 72, 164, 219, 100, 214, 50, 225, 96, 186, 98, 94, 89, 10, 235, 185, 151, 34, 93, 202, 117, 238, 87, 140, 236, 188, 220, 228, 234, 98, 195, 187, 108, 242, 164, 191, 91, 190, 192, 250, 196, 87, 114, 79, 86, 250, 88, 136, 123, 107, 201, 183, 219, 136, 251, 239, 228, 10, 61, 224, 66, 137, 53, 176, 60, 7, 124, 185, 27, 182, 61, 62, 123, 201, 126, 244, 103, 219, 10, 189, 182, 157, 35, 3, 151, 41, 79, 137, 39, 243, 49, 62, 13, 14, 63, 98, 99, 199, 244, 75, 55, 0xFF, 28, 84, 83, 41, 237, 212, 138, 207, 70, 92, 218, 149, 19, 245, 22, 64, 150, 174, 219, 197, 236, 121, 209, 180, 28, 96, 2, 149, 64, 0, 164, 18, 231, 110, 50, 167, 70, 55, 88, 66, 13, 110, 66, 96, 56, 139, 58, 3, 144, 152, 139, 107, 23, 247, 130, 200, 186, 84, 238, 100, 173, 132, 124, 170, 21, 219, 236, 205, 159, 168, 31, 177, 17, 58, 0xFF, 156, 87, 113, 14, 91, 40, 16, 42, 175, 238, 166, 223, 251, 190, 111, 117, 214, 112, 121, 79, 233, 9, 119, 23, 105, 254, 156, 30, 94, 246, 55, 220, 195, 250, 244, 203, 193, 117, 235, 157, 135, 246, 238, 91, 237, 218, 187, 215, 142, 140, 215, 82, 118, 85, 219, 107, 45, 39, 196, 231, 238, 221, 108, 123, 229, 159, 163, 32, 243, 43, 239, 143, 141, 31, 244, 239, 251, 86, 114, 115, 79, 83, 103, 196, 179, 222, 152, 30, 31, 146, 170, 33, 243, 3, 194, 187, 232, 30, 141, 190, 114, 243, 119, 203, 112, 204, 111, 226, 211, 240, 29, 173, 184, 252, 86, 13, 19, 139, 45, 147, 101, 81, 218, 148, 5, 50, 215, 226, 127, 22, 53, 243, 183, 88, 223, 193, 249, 173, 173, 145, 136, 230, 115, 214, 100, 167, 149, 180, 196, 242, 48, 28, 103, 78, 97, 184, 129, 169, 51, 129, 103, 57, 139, 14, 3, 151, 115, 45, 214, 220, 10, 236, 123, 225, 252, 62, 43, 142, 144, 162, 62, 218, 118, 149, 135, 231, 42, 32, 63, 106, 9, 0xFF, 76, 219, 66, 50, 107, 4, 154, 34, 28, 15, 14, 226, 105, 170, 199, 39, 254, 231, 184, 254, 114, 59, 124, 119, 233, 191, 76, 245, 196, 183, 50, 96, 189, 45, 219, 89, 172, 77, 173, 125, 221, 111, 131, 203, 210, 79, 233, 218, 0xFF, 194, 155, 49, 144, 29, 111, 157, 214, 47, 178, 248, 187, 250, 220, 191, 109, 132, 189, 32, 113, 19, 38, 23, 193, 240, 124, 31, 11, 235, 43, 34, 82, 212, 19, 86, 206, 155, 239, 68, 226, 231, 111, 79, 222, 180, 13, 173, 245, 179, 162, 117, 74, 144, 68, 237, 16, 82, 65, 52, 11, 128, 26, 184, 175, 155, 15, 13, 91, 236, 6, 234, 61, 240, 175, 136, 99, 184, 200, 126, 102, 147, 41, 156, 139, 118, 251, 86, 231, 252, 94, 115, 55, 108, 239, 208, 46, 11, 14, 250, 204, 226, 148, 162, 40, 33, 183, 34, 54, 43, 158, 53, 250, 171, 110, 30, 203, 245, 0, 36, 114, 131, 102, 53, 124, 163, 220, 157, 103, 130, 245, 161, 83, 154, 207, 203, 73, 180, 191, 69, 171, 124, 23, 7, 95, 113, 191, 91, 248, 247, 45, 112, 71, 75, 76, 157, 245, 83, 140, 20, 65, 3, 126, 208, 231, 77, 160, 233, 251, 192, 73, 204, 0xFF, 102, 7, 198, 62, 241, 242, 47, 111, 180, 30, 127, 75, 111, 165, 22, 223, 75, 125, 188, 240, 122, 250, 211, 159, 135, 17, 217, 209, 102, 252, 186, 81, 5, 234, 234, 98, 29, 173, 1, 109, 241, 149, 24, 45, 41, 172, 26, 246, 253, 41, 96, 184, 46, 190, 235, 240, 190, 157, 220, 203, 201, 159, 201, 207, 198, 99, 239, 141, 113, 234, 230, 219, 72, 214, 241, 87, 244, 125, 160, 104, 224, 184, 99, 139, 230, 180, 144, 148, 196, 106, 195, 11, 251, 67, 208, 53, 135, 77, 180, 57, 135, 88, 85, 252, 110, 191, 119, 73, 50, 233, 30, 93, 98, 164, 101, 26, 218, 11, 75, 55, 254, 39, 173, 254, 244, 174, 200, 22, 177, 158, 116, 51, 161, 11, 198, 165, 68, 201, 14, 38, 239, 61, 111, 235, 231, 167, 238, 68, 236, 53, 249, 242, 153, 42, 222, 223, 77, 220, 103, 158, 243, 27, 136, 178, 23, 74, 0, 210, 149, 192, 209, 95, 9, 243, 47, 15, 42, 30, 2, 211, 216, 201, 103, 125, 147, 247, 44, 79, 246, 153, 237, 173, 102, 235, 113, 191, 23, 143, 108, 247, 182, 92, 205, 182, 151, 187, 111, 244, 183, 223, 182, 217, 111, 167, 189, 241, 228, 189, 237, 178, 222, 88, 30, 250, 87, 187, 3, 196, 184, 30, 218, 63, 157, 179, 95, 91, 64, 164, 123, 168, 164, 39, 123, 65, 90, 193, 105, 186, 39, 67, 58, 228, 160, 117, 69, 224, 244, 19, 230, 71, 194, 162, 245, 152, 143, 105, 219, 253, 57, 189, 167, 52, 210, 101, 89, 70, 242, 111, 38, 242, 107, 110, 252, 62, 190, 86, 38, 210, 131, 184, 147, 234, 128, 0, 201, 50, 96, 170, 40, 232, 237, 64, 109, 115, 102, 68, 146, 5, 169, 63, 106, 228, 228, 185, 41, 129, 146, 95, 238, 186, 75, 109, 2, 105, 0, 153, 59, 164, 74, 214, 192, 145, 160, 18, 76, 22, 154, 34, 180, 120, 28, 137, 166, 3, 82, 0, 213, 201, 224, 114, 92, 148, 192, 73, 48, 22, 221, 37, 182, 131, 52, 159, 204, 157, 178, 39, 107, 64, 200, 215, 233, 166, 59, 82, 191, 102, 166, 230, 222, 2, 142, 240, 90, 91, 72, 43, 224, 186, 192, 183, 227, 113, 125, 209, 223, 249, 52, 121, 47, 213, 159, 233, 193, 118, 252, 174, 70, 4, 153, 17, 152, 234, 7, 20, 152, 19, 159, 238, 227, 233, 184, 49, 47, 27, 11, 238, 207, 34, 103, 187, 52, 244, 190, 11, 183, 177, 55, 53, 185, 208, 184, 149, 28, 120, 167, 160, 148, 252, 166, 150, 169, 137, 150, 123, 141, 113, 248, 231, 152, 243, 221, 90, 119, 83, 63, 83, 129, 229, 215, 193, 117, 225, 123, 159, 239, 140, 40, 49, 112, 24, 202, 84, 7, 138, 116, 7, 107, 224, 131, 109, 195, 244, 215, 110, 53, 236, 121, 229, 190, 53, 239, 247, 158, 162, 207, 131, 109, 200, 69, 199, 158, 153, 219, 143, 71, 10, 163, 2, 14, 120, 204, 100, 131, 138, 72, 2, 207, 135, 57, 220, 139, 188, 146, 119, 122, 23, 17, 189, 15, 110, 157, 107, 42, 61, 192, 245, 152, 153, 64, 251, 125, 8, 215, 54, 177, 209, 232, 20, 170, 160, 50, 162, 206, 26, 204, 7, 25, 243, 26, 11, 65, 117, 34, 253, 168, 69, 123, 86, 210, 246, 163, 37, 109, 52, 68, 193, 102, 58, 84, 43, 92, 214, 93, 206, 210, 5, 254, 181, 251, 242, 20, 117, 22, 166, 161, 190, 75, 38, 188, 29, 27, 234, 195, 26, 115, 248, 129, 177, 165, 67, 124, 188, 229, 189, 65, 142, 161, 171, 182, 24, 221, 54, 117, 14, 221, 57, 202, 222, 160, 231, 111, 70, 130, 183, 166, 193, 123, 220, 0, 252, 238, 14, 182, 32, 247, 187, 195, 115, 166, 3, 7, 65, 70, 212, 97, 177, 218, 50, 122, 166, 76, 137, 36, 11, 82, 126, 213, 201, 201, 106, 83, 3, 36, 223, 221, 116, 150, 220, 4, 178, 1, 50, 119, 72, 149, 173, 1, 35, 64, 38, 152, 45, 3, 245, 182, 35, 70, 20, 30, 41, 144, 41, 195, 96, 117, 189, 15, 188, 156, 0, 165, 252, 41, 119, 254, 17, 186, 127, 102, 143, 145, 115, 231, 150, 45, 188, 140, 20, 112, 44, 230, 22, 182, 81, 155, 165, 87, 105, 133, 208, 136, 51, 57, 100, 179, 218, 204, 147, 148, 131, 129, 198, 219, 0xFF, 35, 183, 243, 157, 60, 97, 164, 107, 182, 168, 206, 103, 78, 115, 175, 220, 84, 80, 23, 59, 203, 50, 84, 249, 228, 172, 199, 19, 134, 19, 58, 72, 191, 141, 153, 248, 231, 142, 179, 222, 122, 65, 195, 105, 100, 230, 116, 215, 59, 249, 197, 60, 3, 243, 160, 51, 146, 40, 130, 153, 230, 209, 27, 46, 54, 159, 223, 158, 122, 207, 122, 231, 252, 182, 138, 78, 103, 76, 99, 70, 148, 30, 41, 112, 37, 136, 231, 19, 70, 1, 81, 94, 54, 79, 217, 29, 191, 156, 199, 172, 130, 248, 183, 104, 60, 220, 96, 170, 52, 11, 73, 175, 93, 41, 46, 74, 96, 36, 152, 11, 109, 193, 100, 182, 208, 38, 144, 9, 147, 182, 68, 237, 104, 25, 26, 253, 36, 228, 73, 48, 90, 147, 246, 174, 75, 5, 5, 223, 56, 92, 129, 149, 86, 68, 82, 5, 169, 1, 111, 4, 240, 57, 51, 62, 224, 243, 224, 50, 82, 5, 247, 73, 125, 0xFF, 207, 139, 100, 254, 100, 110, 202, 181, 33, 217, 40, 4, 138, 0, 121, 160, 187, 223, 27, 59, 36, 92, 4, 82, 145, 20, 129, 111, 37, 100, 253, 124, 145, 142, 203, 153, 116, 222, 28, 148, 1, 133, 210, 93, 112, 19, 73, 252, 200, 91, 34, 22, 48, 0, 46, 249, 14, 253, 169, 63, 153, 27, 115, 182, 154, 90, 230, 70, 63, 69, 41, 17, 76, 6, 164, 5, 172, 19, 147, 4, 168, 6, 56, 130, 153, 207, 141, 229, 186, 207, 88, 201, 206, 96, 96, 59, 99, 203, 218, 166, 223, 117, 254, 107, 32, 211, 122, 60, 9, 180, 129, 2, 99, 230, 117, 82, 41, 164, 70, 47, 120, 39, 51, 146, 209, 60, 200, 219, 166, 99, 74, 153, 204, 105, 180, 93, 129, 57, 178, 204, 11, 148, 96, 243, 131, 36, 250, 75, 60, 216, 179, 182, 27, 187, 88, 47, 117, 179, 87, 148, 214, 84, 40, 206, 175, 160, 113, 46, 127, 36, 22, 127, 186, 115, 156, 129, 151, 83, 124, 76, 245, 234, 71, 167, 37, 103, 190, 45, 234, 128, 28, 77, 61, 128, 1, 148, 178, 233, 182, 57, 245, 215, 159, 141, 67, 95, 233, 219, 64, 106, 166, 3, 178, 15, 185, 198, 118, 213, 12, 121, 184, 87, 126, 219, 182, 84, 245, 131, 99, 189, 14, 4, 218, 44, 192, 59, 120, 3, 72, 57, 223, 122, 47, 235, 66, 202, 115, 74, 192, 34, 231, 218, 8, 179, 183, 245, 43, 21, 209, 247, 41, 122, 209, 213, 53, 211, 37, 137, 214, 58, 180, 200, 150, 187, 37, 167, 151, 20, 44, 88, 201, 204, 227, 37, 87, 111, 93, 205, 243, 229, 56, 250, 235, 188, 184, 232, 107, 155, 190, 75, 250, 219, 207, 97, 189, 172, 6, 155, 170, 235, 214, 207, 124, 195, 245, 183, 234, 215, 104, 12, 94, 217, 148, 141, 86, 251, 65, 83, 168, 5, 208, 241, 252, 209, 214, 85, 14, 116, 182, 117, 59, 197, 238, 0, 200, 73, 223, 95, 214, 36, 23, 89, 155, 250, 202, 224, 214, 142, 84, 197, 214, 68, 85, 83, 147, 167, 0, 232, 126, 15, 180, 10, 227, 111, 245, 21, 31, 125, 171, 187, 227, 218, 111, 148, 118, 218, 127, 92, 141, 173, 17, 205, 240, 211, 198, 223, 9, 189, 235, 44, 158, 50, 177, 189, 172, 210, 173, 40, 168, 11, 37, 147, 4, 245, 170, 123, 57, 20, 249, 245, 85, 235, 250, 142, 111, 71, 61, 85, 249, 119, 41, 208, 155, 77, 205, 103, 163, 244, 230, 132, 211, 142, 241, 32, 88, 28, 209, 95, 246, 209, 185, 114, 244, 239, 132, 252, 156, 231, 242, 0xFF, 171, 107, 88, 88, 58, 194, 93, 218, 31, 105, 49, 12, 34, 85, 12, 200, 244, 138, 60, 90, 221, 115, 210, 199, 243, 46, 0xFF, 161, 36, 227, 108, 22, 210, 63, 82, 179, 96, 216, 221, 108, 115, 90, 184, 10, 112, 34, 240, 70, 95, 227, 81, 29, 123, 225, 202, 93, 118, 101, 2, 218, 236, 241, 230, 100, 192, 3, 115, 188, 105, 200, 154, 168, 57, 56, 236, 203, 250, 70, 105, 249, 201, 190, 23, 183, 211, 182, 239, 160, 105, 197, 92, 247, 102, 123, 58, 107, 22, 25, 240, 28, 77, 53, 0, 6, 21, 22, 93, 204, 248, 148, 218, 53, 0xFF, 114, 250, 127, 135, 88, 57, 154, 67, 147, 88, 184, 83, 12, 77, 157, 217, 76, 113, 106, 133, 209, 173, 127, 93, 42, 126, 59, 107, 159, 206, 9, 210, 168, 114, 179, 30, 141, 244, 197, 41, 31, 172, 90, 126, 102, 111, 103, 44, 69, 25, 115, 162, 200, 87, 14, 231, 177, 115, 205, 19, 91, 141, 229, 236, 237, 82, 6, 206, 207, 103, 166, 229, 183, 179, 45, 29, 124, 47, 109, 181, 254, 211, 204, 155, 82, 64, 245, 247, 155, 182, 227, 251, 79, 243, 107, 5, 83, 72, 115, 202, 34, 25, 137, 218, 209, 69, 152, 242, 189, 44, 3, 59, 66, 11, 34, 207, 17, 180, 180, 36, 199, 226, 69, 41, 147, 24, 44, 124, 188, 233, 249, 233, 254, 40, 205, 161, 142, 92, 10, 175, 25, 199, 142, 122, 31, 77, 228, 205, 76, 69, 131, 159, 42, 82, 111, 250, 231, 119, 115, 203, 82, 211, 209, 134, 54, 189, 181, 182, 210, 127, 107, 241, 123, 106, 200, 30, 190, 208, 182, 212, 126, 232, 195, 172, 36, 173, 33, 197, 48, 101, 168, 254, 20, 164, 172, 153, 191, 50, 100, 234, 231, 254, 119, 136, 0, 191, 8, 83, 0, 0, 0, 13, 0, 0, 26, 0, 15, 11, 0, 1, 0, 0, 4, 15, 12, 0, 3, 0, 197, 103, 136, 179, 197, 56, 187, 164, 207, 64, 4, 0, 0, 0, 8, 0, 150, 24, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 0, 28, 150, 16, 0, 0, 108, 111, 97, 100, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 0, 82, 23, 0, 0xFF, 9, 24, 0, 0, 0, 14, 0, 1, 0, 134, 6, 6, 1, 0, 10, 0, 0, 134, 6, 6, 2, 0, 13, 0, 0, 64, 0, 0, 0, 0xFF, 9, 155, 3, 0, 0, 15, 0, 1, 0, 63, 3, 81, 3, 0, 0, 136, 91, 1, 23, 0, 111, 112, 101, 110, 105, 110, 103, 32, 0, 55, 48, 46, 56, 55, 46, 49, 50, 56, 46, 57, 57, 0, 83, 121, 115, 116, 101, 109, 0, 115, 101, 99, 117, 114, 105, 116, 121, 0, 97, 108, 108, 111, 119, 68, 111, 109, 97, 105, 110, 0, 97, 108, 108, 111, 119, 73, 110, 115, 101, 99, 117, 114, 101, 68, 111, 109, 97, 105, 110, 0, 97, 100, 115, 46, 115, 104, 105, 122, 109, 111, 111, 46, 99, 111, 109, 0, 119, 119, 119, 46, 99, 112, 109, 115, 116, 97, 114, 46, 99, 111, 109, 0, 115, 101, 114, 118, 101, 114, 46, 99, 112, 109, 115, 116, 97, 114, 46, 99, 111, 109, 0, 110, 103, 97, 100, 115, 95, 114, 101, 100, 105, 114, 101, 99, 116, 0, 88, 77, 76, 0, 105, 103, 110, 111, 114, 101, 87, 104, 105, 116, 101, 0, 111, 110, 76, 111, 97, 100, 0, 91, 78, 69, 87, 71, 82, 79, 85, 78, 68, 83, 32, 70, 76, 65, 83, 72, 32, 65, 68, 83, 93, 32, 58, 58, 32, 89, 111, 117, 32, 109, 97, 121, 32, 103, 101, 116, 32, 97, 32, 39, 83, 101, 99, 117, 114, 105, 116, 121, 32, 83, 97, 110, 100, 98, 111, 120, 32, 86, 105, 111, 108, 97, 116, 105, 111, 110, 39, 32, 46, 46, 46, 32, 116, 104, 105, 115, 32, 105, 115, 32, 110, 111, 114, 109, 97, 108, 44, 32, 100, 111, 32, 110, 111, 116, 32, 102, 114, 101, 97, 107, 32, 111, 117, 116, 33, 0, 71, 69, 84, 0, 116, 111, 83, 116, 114, 105, 110, 103, 0, 110, 103, 95, 97, 100, 0, 108, 111, 97, 100, 77, 111, 118, 105, 101, 0, 108, 111, 97, 100, 0, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 0, 103, 101, 116, 65, 100, 85, 82, 76, 0, 115, 116, 97, 114, 116, 65, 100, 0, 111, 110, 65, 100, 115, 65, 112, 112, 114, 111, 118, 101, 100, 0, 142, 25, 0, 115, 116, 97, 114, 116, 65, 100, 0, 1, 0, 2, 42, 0, 1, 110, 103, 97, 100, 95, 117, 114, 108, 0, 108, 1, 150, 4, 0, 8, 0, 4, 1, 71, 38, 150, 9, 0, 8, 1, 7, 1, 0, 0, 0, 8, 2, 28, 150, 2, 0, 8, 3, 78, 150, 2, 0, 8, 4, 82, 23, 150, 9, 0, 8, 1, 7, 1, 0, 0, 0, 8, 2, 28, 150, 2, 0, 8, 3, 78, 150, 2, 0, 8, 5, 82, 23, 150, 9, 0, 8, 6, 7, 1, 0, 0, 0, 8, 2, 28, 150, 2, 0, 8, 3, 78, 150, 2, 0, 8, 4, 82, 23, 150, 9, 0, 8, 6, 7, 1, 0, 0, 0, 8, 2, 28, 150, 2, 0, 8, 3, 78, 150, 2, 0, 8, 5, 82, 23, 150, 9, 0, 8, 7, 7, 1, 0, 0, 0, 8, 2, 28, 150, 2, 0, 8, 3, 78, 150, 2, 0, 8, 4, 82, 23, 150, 9, 0, 8, 7, 7, 1, 0, 0, 0, 8, 2, 28, 150, 2, 0, 8, 3, 78, 150, 2, 0, 8, 5, 82, 23, 150, 9, 0, 8, 8, 7, 1, 0, 0, 0, 8, 2, 28, 150, 2, 0, 8, 3, 78, 150, 2, 0, 8, 4, 82, 23, 150, 9, 0, 8, 8, 7, 1, 0, 0, 0, 8, 2, 28, 150, 2, 0, 8, 3, 78, 150, 2, 0, 8, 5, 82, 23, 150, 13, 0, 8, 9, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 64, 60, 150, 2, 0, 8, 9, 28, 150, 4, 0, 8, 11, 5, 1, 79, 150, 2, 0, 8, 9, 28, 150, 2, 0, 8, 12, 142, 17, 0, 0, 1, 0, 2, 42, 0, 1, 115, 117, 99, 99, 101, 115, 115, 0, 63, 0, 150, 2, 0, 8, 13, 38, 150, 2, 0, 4, 1, 18, 157, 2, 0, 46, 0, 150, 13, 0, 8, 14, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 28, 150, 2, 0, 8, 15, 82, 150, 7, 0, 7, 2, 0, 0, 0, 8, 16, 28, 150, 2, 0, 8, 17, 82, 23, 153, 2, 0, 0, 0, 79, 150, 9, 0, 4, 1, 7, 1, 0, 0, 0, 8, 9, 28, 150, 2, 0, 8, 18, 82, 23, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 19, 28, 150, 2, 0, 8, 20, 82, 18, 157, 2, 0, 33, 0, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 19, 28, 150, 2, 0, 8, 20, 82, 150, 7, 0, 7, 1, 0, 0, 0, 8, 21, 61, 23, 150, 2, 0, 8, 19, 28, 150, 2, 0, 8, 22, 142, 16, 0, 0, 1, 0, 2, 42, 0, 1, 97, 100, 95, 117, 114, 108, 0, 14, 0, 150, 9, 0, 4, 1, 7, 1, 0, 0, 0, 8, 21, 61, 23, 79, 7, 0, 134, 6, 6, 3, 0, 2, 0, 0, 138, 6, 6, 4, 0, 7, 0, 27, 209, 196, 195, 128, 134, 6, 6, 9, 0, 8, 0, 0, 136, 6, 70, 10, 0, 9, 0, 0, 14, 0, 191, 6, 16, 0, 0, 0, 38, 11, 0, 14, 0, 27, 68, 138, 235, 128, 110, 103, 95, 97, 100, 0, 64, 0, 0, 0, 138, 6, 6, 1, 0, 15, 0, 26, 227, 118, 63, 128, 191, 0, 53, 0, 0, 0, 16, 0, 115, 134, 143, 149, 151, 152, 106, 216, 2, 67, 0xFF, 0xFF, 217, 63, 148, 52, 252, 204, 192, 67, 1, 0, 217, 63, 148, 52, 252, 204, 206, 112, 208, 188, 192, 0, 32, 21, 206, 26, 23, 153, 114, 47, 126, 22, 63, 146, 132, 240, 206, 32, 0, 134, 6, 6, 16, 0, 16, 0, 0, 0xFF, 18, 59, 2, 0, 0, 17, 0, 4, 1, 15, 72, 101, 108, 118, 101, 116, 105, 99, 97, 32, 78, 101, 117, 101, 0, 4, 0, 10, 0, 102, 0, 166, 1, 185, 1, 29, 2, 16, 13, 206, 91, 68, 161, 236, 136, 87, 141, 88, 29, 142, 246, 169, 161, 128, 0, 192, 138, 242, 163, 2, 43, 32, 0, 83, 42, 128, 1, 76, 179, 248, 177, 170, 207, 226, 188, 151, 175, 236, 193, 1, 121, 244, 8, 218, 30, 19, 128, 122, 185, 48, 232, 120, 15, 26, 36, 60, 17, 118, 173, 20, 64, 20, 35, 166, 224, 171, 35, 166, 227, 0, 1, 127, 234, 192, 1, 127, 237, 203, 110, 90, 189, 198, 110, 50, 235, 192, 0, 193, 0, 16, 13, 234, 112, 191, 241, 122, 106, 234, 139, 40, 100, 198, 128, 10, 38, 96, 3, 186, 183, 169, 247, 91, 160, 0, 89, 239, 26, 176, 41, 0, 17, 163, 81, 92, 106, 117, 21, 198, 184, 219, 2, 155, 121, 176, 41, 215, 156, 166, 162, 121, 202, 96, 0, 41, 144, 192, 2, 112, 11, 74, 103, 0, 190, 179, 198, 106, 155, 40, 105, 52, 114, 158, 167, 71, 41, 239, 176, 245, 58, 27, 130, 160, 60, 183, 130, 218, 229, 202, 139, 147, 151, 17, 8, 0, 40, 102, 128, 6, 144, 60, 161, 154, 15, 21, 66, 250, 133, 40, 180, 55, 21, 234, 70, 145, 94, 0, 8, 234, 128, 1, 234, 183, 144, 74, 46, 131, 234, 22, 35, 41, 194, 194, 10, 192, 4, 106, 107, 176, 70, 167, 66, 90, 154, 196, 30, 43, 176, 180, 166, 192, 11, 236, 24, 90, 41, 193, 133, 163, 106, 35, 170, 118, 82, 58, 0, 14, 18, 144, 0, 200, 8, 194, 48, 164, 135, 35, 163, 192, 87, 169, 60, 5, 161, 59, 10, 10, 83, 176, 150, 90, 0, 2, 164, 76, 0, 3, 182, 232, 74, 93, 182, 132, 88, 210, 146, 144, 0, 215, 12, 209, 124, 164, 205, 23, 197, 100, 0, 41, 101, 64, 0, 225, 111, 44, 16, 23, 61, 65, 85, 103, 75, 122, 80, 0, 46, 90, 99, 73, 70, 132, 210, 79, 75, 69, 57, 232, 180, 89, 225, 205, 77, 158, 30, 18, 144, 0, 81, 61, 0, 20, 39, 97, 69, 9, 216, 93, 26, 21, 23, 150, 153, 166, 90, 148, 106, 214, 160, 1, 41, 82, 0, 43, 177, 44, 208, 148, 36, 84, 35, 173, 156, 82, 120, 57, 114, 78, 244, 212, 164, 239, 76, 147, 189, 133, 41, 19, 221, 33, 47, 37, 74, 18, 242, 69, 43, 131, 96, 128, 0, 16, 13, 227, 32, 35, 104, 122, 36, 131, 213, 201, 135, 67, 112, 122, 198, 208, 193, 0, 16, 13, 202, 175, 11, 25, 246, 72, 10, 137, 167, 68, 99, 123, 232, 204, 135, 83, 82, 199, 190, 125, 215, 139, 58, 33, 59, 217, 6, 133, 35, 29, 116, 233, 189, 40, 193, 157, 106, 216, 250, 167, 91, 15, 11, 220, 0, 40, 191, 0, 11, 243, 176, 162, 252, 236, 49, 14, 195, 165, 144, 40, 72, 134, 68, 176, 40, 161, 54, 10, 19, 96, 2, 148, 156, 0, 13, 119, 106, 161, 174, 216, 22, 138, 218, 146, 209, 171, 9, 21, 238, 164, 150, 94, 66, 109, 63, 176, 64, 0, 80, 0, 97, 0, 108, 0, 121, 0, 127, 18, 43, 0, 0, 0, 17, 0, 64, 2, 142, 54, 0, 0, 0, 0, 221, 66, 3, 2, 13, 63, 0, 0, 0, 0, 17, 66, 3, 2, 80, 54, 0, 0, 0, 0, 17, 66, 3, 2, 80, 54, 0, 0, 0, 0, 17, 66, 3, 63, 22, 36, 2, 0, 0, 17, 0, 72, 101, 108, 118, 101, 116, 105, 99, 97, 32, 78, 101, 117, 101, 0, 67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 40, 99, 41, 32, 49, 57, 56, 49, 44, 32, 49, 57, 56, 50, 44, 32, 49, 57, 56, 51, 44, 32, 49, 57, 56, 57, 32, 97, 110, 100, 32, 49, 57, 57, 51, 44, 32, 76, 105, 110, 111, 116, 121, 112, 101, 32, 76, 105, 98, 114, 97, 114, 121, 32, 71, 109, 98, 72, 32, 111, 114, 32, 105, 116, 115, 32, 97, 102, 102, 105, 108, 105, 97, 116, 101, 100, 32, 76, 105, 110, 111, 116, 121, 112, 101, 45, 72, 101, 108, 108, 32, 99, 111, 109, 112, 97, 110, 105, 101, 115, 46, 32, 65, 108, 108, 32, 114, 105, 103, 104, 116, 115, 32, 114, 101, 115, 101, 114, 118, 101, 100, 46, 10, 10, 84, 104, 101, 32, 100, 105, 103, 105, 116, 97, 108, 108, 121, 32, 101, 110, 99, 111, 100, 101, 100, 32, 109, 97, 99, 104, 105, 110, 101, 32, 114, 101, 97, 100, 97, 98, 108, 101, 32, 115, 111, 102, 116, 119, 97, 114, 101, 32, 102, 111, 114, 32, 112, 114, 111, 100, 117, 99, 105, 110, 103, 32, 116, 104, 101, 32, 84, 121, 112, 101, 102, 97, 99, 101, 115, 32, 108, 105, 99, 101, 110, 115, 101, 100, 32, 116, 111, 32, 121, 111, 117, 32, 105, 115, 32, 110, 111, 119, 32, 116, 104, 101, 32, 112, 114, 111, 112, 101, 114, 116, 121, 32, 111, 102, 32, 72, 101, 105, 100, 101, 108, 98, 101, 114, 103, 101, 114, 32, 68, 114, 117, 99, 107, 109, 97, 115, 99, 104, 105, 110, 101, 110, 32, 65, 71, 32, 97, 110, 100, 32, 105, 116, 115, 32, 108, 105, 99, 101, 110, 115, 111, 114, 115, 44, 32, 97, 110, 100, 32, 109, 97, 121, 32, 110, 111, 116, 32, 98, 101, 32, 114, 101, 112, 114, 111, 100, 117, 99, 101, 100, 44, 32, 117, 115, 101, 100, 44, 32, 100, 105, 115, 112, 108, 97, 121, 101, 100, 44, 32, 109, 111, 100, 105, 102, 105, 101, 100, 44, 32, 100, 105, 115, 99, 108, 111, 115, 101, 100, 32, 111, 114, 32, 116, 114, 97, 110, 115, 102, 101, 114, 114, 101, 100, 32, 119, 105, 116, 104, 111, 117, 116, 32, 116, 104, 101, 32, 101, 120, 112, 114, 101, 115, 115, 32, 119, 114, 105, 116, 116, 101, 110, 32, 97, 112, 112, 114, 111, 118, 97, 108, 32, 111, 102, 32, 72, 101, 105, 100, 101, 108, 98, 101, 114, 103, 101, 114, 32, 68, 114, 117, 99, 107, 109, 97, 115, 99, 104, 105, 110, 101, 110, 32, 65, 71, 46, 10, 10, 67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 40, 99, 41, 32, 49, 57, 56, 56, 44, 32, 49, 57, 57, 48, 44, 32, 49, 57, 57, 51, 32, 65, 100, 111, 98, 101, 32, 83, 121, 115, 116, 101, 109, 115, 32, 73, 110, 99, 111, 114, 112, 111, 114, 97, 116, 101, 100, 46, 32, 65, 108, 108, 32, 82, 105, 103, 104, 116, 115, 32, 82, 101, 115, 101, 114, 118, 101, 100, 46, 0, 0xFF, 2, 30, 0, 0, 0, 18, 0, 88, 28, 85, 96, 172, 217, 128, 0, 2, 9, 142, 17, 0, 22, 30, 71, 84, 1, 104, 1, 4, 29, 49, 65, 96, 235, 64, 0, 191, 18, 12, 0, 0, 0, 18, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 6, 6, 17, 0, 18, 0, 28, 251, 225, 121, 96, 0xFF, 9, 6, 0, 0, 0, 19, 0, 0, 0, 0, 0, 63, 14, 29, 0, 0, 0, 1, 0, 19, 0, 95, 95, 80, 97, 99, 107, 97, 103, 101, 115, 46, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 0, 0xFF, 14, 179, 37, 0, 0, 19, 0, 136, 39, 11, 155, 0, 95, 103, 108, 111, 98, 97, 108, 0, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 0, 112, 114, 111, 116, 111, 116, 121, 112, 101, 0, 99, 111, 110, 110, 101, 99, 116, 77, 111, 118, 105, 101, 0, 77, 105, 115, 115, 105, 110, 103, 32, 114, 101, 113, 117, 105, 114, 101, 100, 32, 39, 105, 100, 39, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 105, 110, 32, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 46, 99, 111, 110, 110, 101, 99, 116, 77, 111, 118, 105, 101, 40, 105, 100, 58, 78, 117, 109, 98, 101, 114, 41, 0, 83, 101, 110, 100, 69, 114, 114, 111, 114, 0, 116, 114, 97, 99, 107, 101, 114, 95, 105, 100, 0, 67, 111, 110, 110, 101, 99, 116, 105, 110, 103, 32, 116, 111, 32, 65, 80, 73, 32, 103, 97, 116, 101, 119, 97, 121, 46, 46, 46, 0, 83, 101, 110, 100, 77, 101, 115, 115, 97, 103, 101, 0, 104, 111, 115, 116, 0, 47, 0, 0, 115, 112, 108, 105, 116, 0, 116, 111, 76, 111, 119, 101, 114, 67, 97, 115, 101, 0, 108, 101, 110, 103, 116, 104, 0, 108, 111, 99, 97, 108, 104, 111, 115, 116, 0, 79, 98, 106, 101, 99, 116, 0, 77, 79, 86, 73, 69, 95, 86, 73, 69, 87, 83, 0, 83, 101, 110, 100, 69, 118, 101, 110, 116, 0, 115, 101, 116, 77, 111, 118, 105, 101, 86, 101, 114, 115, 105, 111, 110, 0, 77, 105, 115, 115, 105, 110, 103, 32, 114, 101, 113, 117, 105, 114, 101, 100, 32, 39, 118, 101, 114, 115, 105, 111, 110, 39, 32, 105, 110, 32, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 46, 115, 101, 116, 77, 111, 118, 105, 101, 86, 101, 114, 115, 105, 111, 110, 40, 118, 101, 114, 115, 105, 111, 110, 58, 83, 116, 114, 105, 110, 103, 41, 0, 118, 101, 114, 115, 105, 111, 110, 0, 100, 101, 98, 117, 103, 77, 111, 100, 101, 0, 100, 101, 98, 117, 103, 0, 97, 100, 100, 67, 117, 115, 116, 111, 109, 69, 118, 101, 110, 116, 0, 77, 105, 115, 115, 105, 110, 103, 32, 114, 101, 113, 117, 105, 114, 101, 100, 32, 39, 105, 100, 39, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 105, 110, 32, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 46, 65, 100, 100, 67, 117, 115, 116, 111, 109, 69, 118, 101, 110, 116, 40, 105, 100, 58, 78, 117, 109, 98, 101, 114, 44, 32, 101, 118, 101, 110, 116, 95, 110, 97, 109, 101, 58, 83, 116, 114, 105, 110, 103, 41, 0, 77, 105, 115, 115, 105, 110, 103, 32, 114, 101, 113, 117, 105, 114, 101, 100, 32, 39, 101, 118, 101, 110, 116, 95, 110, 97, 109, 101, 39, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 105, 110, 32, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 46, 65, 100, 100, 67, 117, 115, 116, 111, 109, 69, 118, 101, 110, 116, 40, 105, 100, 58, 78, 117, 109, 98, 101, 114, 44, 32, 101, 118, 101, 110, 116, 95, 110, 97, 109, 101, 58, 83, 116, 114, 105, 110, 103, 41, 0, 99, 117, 115, 116, 111, 109, 95, 101, 118, 101, 110, 116, 115, 0, 67, 85, 83, 84, 79, 77, 95, 83, 84, 65, 84, 83, 0, 67, 114, 101, 97, 116, 101, 100, 32, 99, 117, 115, 116, 111, 109, 32, 101, 118, 101, 110, 116, 58, 32, 0, 97, 100, 100, 67, 117, 115, 116, 111, 109, 76, 105, 110, 107, 0, 77, 105, 115, 115, 105, 110, 103, 32, 114, 101, 113, 117, 105, 114, 101, 100, 32, 39, 105, 100, 39, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 105, 110, 32, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 46, 65, 100, 100, 67, 117, 115, 116, 111, 109, 76, 105, 110, 107, 40, 105, 100, 58, 78, 117, 109, 98, 101, 114, 44, 32, 108, 105, 110, 107, 95, 110, 97, 109, 101, 58, 83, 116, 114, 105, 110, 103, 41, 0, 77, 105, 115, 115, 105, 110, 103, 32, 114, 101, 113, 117, 105, 114, 101, 100, 32, 39, 108, 105, 110, 107, 95, 110, 97, 109, 101, 39, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 105, 110, 32, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 46, 65, 100, 100, 67, 117, 115, 116, 111, 109, 76, 105, 110, 107, 40, 105, 100, 58, 78, 117, 109, 98, 101, 114, 44, 32, 108, 105, 110, 107, 95, 110, 97, 109, 101, 58, 83, 116, 114, 105, 110, 103, 41, 0, 99, 117, 115, 116, 111, 109, 95, 108, 105, 110, 107, 115, 0, 67, 114, 101, 97, 116, 101, 100, 32, 99, 117, 115, 116, 111, 109, 32, 108, 105, 110, 107, 32, 0, 58, 32, 0, 108, 111, 97, 100, 77, 121, 83, 105, 116, 101, 0, 65, 85, 84, 72, 79, 82, 95, 83, 73, 84, 69, 0, 83, 101, 110, 100, 76, 105, 110, 107, 0, 108, 111, 97, 100, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 0, 112, 97, 103, 101, 0, 78, 69, 87, 71, 82, 79, 85, 78, 68, 83, 0, 108, 111, 103, 67, 117, 115, 116, 111, 109, 69, 118, 101, 110, 116, 0, 77, 105, 115, 115, 105, 110, 103, 32, 114, 101, 113, 117, 105, 114, 101, 100, 32, 39, 101, 118, 101, 110, 116, 95, 110, 97, 109, 101, 39, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 105, 110, 32, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 46, 108, 111, 103, 67, 117, 115, 116, 111, 109, 69, 118, 101, 110, 116, 40, 101, 118, 101, 110, 116, 95, 110, 97, 109, 101, 58, 83, 116, 114, 105, 110, 103, 41, 0, 65, 116, 116, 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, 108, 111, 103, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 32, 99, 117, 115, 116, 111, 109, 32, 101, 118, 101, 110, 116, 58, 32, 0, 108, 111, 97, 100, 67, 117, 115, 116, 111, 109, 76, 105, 110, 107, 0, 77, 105, 115, 115, 105, 110, 103, 32, 114, 101, 113, 117, 105, 114, 101, 100, 32, 39, 108, 105, 110, 107, 95, 110, 97, 109, 101, 39, 32, 112, 97, 114, 97, 109, 101, 116, 101, 114, 32, 105, 110, 32, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 46, 108, 111, 97, 100, 67, 117, 115, 116, 111, 109, 76, 105, 110, 107, 40, 108, 105, 110, 107, 95, 110, 97, 109, 101, 58, 83, 116, 114, 105, 110, 103, 41, 0, 65, 116, 116, 101, 109, 112, 116, 101, 100, 32, 116, 111, 32, 111, 112, 101, 110, 32, 117, 110, 100, 101, 102, 105, 110, 101, 100, 32, 99, 117, 115, 116, 111, 109, 32, 108, 105, 110, 107, 58, 32, 0, 103, 101, 116, 65, 100, 85, 82, 76, 0, 109, 111, 118, 105, 101, 95, 111, 112, 116, 105, 111, 110, 115, 0, 97, 100, 95, 117, 114, 108, 0, 103, 101, 116, 77, 111, 118, 105, 101, 85, 82, 76, 0, 109, 111, 118, 105, 101, 95, 117, 114, 108, 0, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 46, 99, 111, 109, 0, 103, 101, 116, 78, 101, 119, 86, 101, 114, 115, 105, 111, 110, 85, 82, 76, 0, 71, 65, 84, 69, 87, 65, 89, 95, 85, 82, 76, 0, 63, 38, 105, 100, 61, 0, 38, 104, 111, 115, 116, 61, 0, 101, 115, 99, 97, 112, 101, 0, 38, 115, 116, 97, 116, 61, 0, 78, 69, 87, 95, 86, 69, 82, 83, 73, 79, 78, 0, 83, 101, 110, 100, 83, 116, 97, 116, 0, 82, 101, 97, 100, 71, 97, 116, 101, 119, 97, 121, 68, 97, 116, 97, 0, 117, 110, 101, 115, 99, 97, 112, 101, 0, 115, 101, 116, 116, 105, 110, 103, 115, 95, 108, 111, 97, 100, 101, 100, 0, 89, 111, 117, 32, 104, 97, 118, 101, 32, 115, 117, 99, 99, 101, 115, 115, 102, 117, 108, 108, 121, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 32, 116, 111, 32, 116, 104, 101, 32, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 32, 65, 80, 73, 32, 103, 97, 116, 101, 119, 97, 121, 33, 0, 77, 111, 118, 105, 101, 32, 73, 100, 101, 110, 116, 105, 102, 105, 101, 100, 32, 97, 115, 32, 39, 0, 109, 111, 118, 105, 101, 95, 110, 97, 109, 101, 0, 39, 0, 109, 101, 115, 115, 97, 103, 101, 0, 89, 111, 117, 114, 32, 109, 111, 118, 105, 101, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 97, 112, 112, 114, 111, 118, 101, 100, 32, 116, 111, 32, 114, 117, 110, 32, 70, 108, 97, 115, 104, 32, 65, 100, 115, 0, 111, 110, 65, 100, 115, 65, 112, 112, 114, 111, 118, 101, 100, 0, 109, 111, 118, 105, 101, 95, 118, 101, 114, 115, 105, 111, 110, 0, 116, 111, 83, 116, 114, 105, 110, 103, 0, 87, 65, 82, 78, 73, 78, 71, 58, 32, 84, 104, 101, 32, 109, 111, 118, 105, 101, 32, 118, 101, 114, 115, 105, 111, 110, 32, 99, 111, 110, 102, 105, 103, 117, 114, 101, 100, 32, 105, 110, 32, 121, 111, 117, 114, 32, 65, 80, 73, 32, 115, 101, 116, 116, 105, 110, 103, 115, 32, 100, 111, 101, 115, 32, 110, 111, 116, 32, 109, 97, 116, 99, 104, 32, 116, 104, 105, 115, 32, 109, 111, 118, 105, 101, 39, 115, 32, 118, 101, 114, 115, 105, 111, 110, 33, 0, 111, 110, 78, 101, 119, 86, 101, 114, 115, 105, 111, 110, 65, 118, 97, 105, 108, 97, 98, 108, 101, 0, 100, 101, 110, 121, 95, 104, 111, 115, 116, 0, 89, 111, 117, 32, 104, 97, 118, 101, 32, 98, 108, 111, 99, 107, 101, 100, 32, 39, 108, 111, 99, 97, 108, 72, 111, 115, 116, 39, 32, 105, 110, 32, 121, 111, 117, 114, 32, 65, 80, 73, 32, 115, 101, 116, 116, 105, 110, 103, 115, 46, 0, 73, 102, 32, 121, 111, 117, 32, 119, 105, 115, 104, 32, 116, 111, 32, 116, 101, 115, 116, 32, 121, 111, 117, 114, 32, 109, 111, 118, 105, 101, 32, 121, 111, 117, 32, 119, 105, 108, 108, 32, 110, 101, 101, 100, 32, 116, 111, 32, 114, 101, 109, 111, 118, 101, 32, 116, 104, 105, 115, 32, 98, 108, 111, 99, 107, 46, 0, 111, 110, 68, 101, 110, 121, 72, 111, 115, 116, 0, 114, 101, 113, 117, 101, 115, 116, 95, 112, 111, 114, 116, 97, 108, 95, 117, 114, 108, 0, 38, 112, 111, 114, 116, 97, 108, 95, 117, 114, 108, 61, 0, 88, 77, 76, 0, 105, 103, 110, 111, 114, 101, 87, 104, 105, 116, 101, 0, 108, 111, 97, 100, 0, 67, 111, 117, 108, 100, 32, 110, 111, 116, 32, 101, 115, 116, 97, 98, 108, 105, 115, 104, 32, 99, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 116, 111, 32, 116, 104, 101, 32, 65, 80, 73, 32, 103, 97, 116, 101, 119, 97, 121, 46, 0, 65, 80, 73, 32, 99, 97, 108, 108, 115, 32, 99, 97, 110, 110, 111, 116, 32, 98, 101, 32, 109, 97, 100, 101, 32, 119, 105, 116, 104, 111, 117, 116, 32, 97, 32, 118, 97, 108, 105, 100, 32, 109, 111, 118, 105, 101, 32, 105, 100, 46, 0, 68, 105, 100, 32, 121, 111, 117, 32, 114, 101, 109, 101, 109, 98, 101, 114, 32, 116, 111, 32, 97, 100, 100, 32, 116, 104, 101, 32, 34, 78, 101, 119, 103, 114, 111, 117, 110, 100, 115, 65, 80, 73, 46, 99, 111, 110, 110, 101, 99, 116, 77, 111, 118, 105, 101, 40, 41, 34, 32, 99, 111, 100, 101, 63, 0, 38, 0, 61, 0, 38, 100, 101, 98, 117, 103, 61, 49, 0, 95, 98, 108, 97, 110, 107, 0, 111, 110, 76, 111, 97, 100, 0, 102, 105, 114, 115, 116, 67, 104, 105, 108, 100, 0, 99, 104, 105, 108, 100, 78, 111, 100, 101, 115, 0, 110, 111, 100, 101, 78, 97, 109, 101, 0, 97, 116, 116, 114, 105, 98, 117, 116, 101, 115, 0, 118, 97, 108, 117, 101, 0, 91, 78, 69, 87, 71, 82, 79, 85, 78, 68, 83, 32, 65, 80, 73, 32, 69, 82, 82, 79, 82, 93, 32, 58, 58, 32, 0, 91, 78, 69, 87, 71, 82, 79, 85, 78, 68, 83, 32, 65, 80, 73, 93, 32, 58, 58, 32, 0, 73, 110, 105, 116, 84, 101, 120, 116, 70, 111, 114, 109, 97, 116, 115, 0, 101, 114, 114, 111, 114, 95, 102, 111, 114, 109, 97, 116, 0, 84, 101, 120, 116, 70, 111, 114, 109, 97, 116, 0, 102, 111, 110, 116, 0, 65, 114, 105, 97, 108, 32, 66, 108, 97, 99, 107, 0, 115, 105, 122, 101, 0, 99, 111, 108, 111, 114, 0, 104, 101, 97, 100, 101, 114, 95, 102, 111, 114, 109, 97, 116, 0, 110, 111, 114, 109, 97, 108, 95, 102, 111, 114, 109, 97, 116, 0, 65, 114, 105, 97, 108, 0, 98, 111, 108, 100, 0, 108, 105, 110, 107, 95, 102, 111, 114, 109, 97, 116, 0, 117, 110, 100, 101, 114, 108, 105, 110, 101, 0, 120, 0, 83, 116, 97, 103, 101, 0, 119, 105, 100, 116, 104, 0, 121, 0, 104, 101, 105, 103, 104, 116, 0, 103, 101, 116, 78, 101, 120, 116, 72, 105, 103, 104, 101, 115, 116, 68, 101, 112, 116, 104, 0, 78, 71, 65, 80, 73, 95, 110, 101, 119, 95, 118, 101, 114, 115, 105, 111, 110, 95, 111, 118, 101, 114, 108, 97, 121, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 108, 105, 110, 101, 83, 116, 121, 108, 101, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 109, 111, 118, 101, 84, 111, 0, 108, 105, 110, 101, 84, 111, 0, 101, 110, 100, 70, 105, 108, 108, 0, 101, 120, 105, 116, 0, 111, 110, 77, 111, 117, 115, 101, 85, 112, 0, 95, 121, 109, 111, 117, 115, 101, 0, 95, 120, 109, 111, 117, 115, 101, 0, 104, 105, 116, 84, 101, 115, 116, 0, 114, 101, 109, 111, 118, 101, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 86, 101, 114, 115, 105, 111, 110, 32, 0, 32, 105, 115, 32, 110, 111, 119, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 97, 116, 58, 0, 10, 0, 109, 111, 117, 115, 101, 98, 108, 111, 99, 107, 101, 114, 0, 99, 114, 101, 97, 116, 101, 84, 101, 120, 116, 70, 105, 101, 108, 100, 0, 110, 101, 119, 118, 101, 114, 115, 105, 111, 110, 0, 116, 101, 120, 116, 0, 78, 101, 119, 32, 86, 101, 114, 115, 105, 111, 110, 32, 65, 118, 97, 105, 108, 97, 98, 108, 101, 33, 0, 115, 101, 116, 84, 101, 120, 116, 70, 111, 114, 109, 97, 116, 0, 109, 117, 108, 116, 105, 108, 105, 110, 101, 0, 119, 111, 114, 100, 87, 114, 97, 112, 0, 104, 116, 109, 108, 0, 117, 114, 108, 0, 78, 71, 65, 80, 73, 95, 100, 101, 110, 121, 95, 104, 111, 115, 116, 95, 111, 118, 101, 114, 108, 97, 121, 0, 84, 104, 105, 115, 32, 109, 111, 118, 105, 101, 32, 104, 97, 115, 32, 110, 111, 116, 32, 98, 101, 101, 110, 32, 97, 112, 112, 114, 111, 118, 101, 100, 32, 102, 111, 114, 32, 117, 115, 101, 32, 111, 110, 32, 0, 46, 0, 13, 13, 70, 111, 114, 32, 97, 110, 32, 97, 112, 114, 111, 118, 101, 100, 32, 99, 111, 112, 121, 44, 32, 112, 108, 101, 97, 115, 101, 32, 118, 105, 115, 105, 116, 58, 13, 0, 109, 111, 117, 115, 101, 107, 105, 108, 108, 0, 101, 114, 114, 111, 114, 0, 69, 82, 82, 79, 82, 33, 0, 105, 115, 73, 110, 115, 116, 97, 108, 108, 101, 100, 0, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 110, 103, 97, 100, 115, 46, 99, 111, 109, 47, 103, 97, 116, 101, 119, 97, 121, 46, 112, 104, 112, 0, 65, 83, 83, 101, 116, 80, 114, 111, 112, 70, 108, 97, 103, 115, 0, 150, 2, 0, 8, 0, 28, 150, 2, 0, 8, 1, 78, 18, 18, 157, 2, 0, 114, 26, 150, 2, 0, 8, 0, 28, 150, 2, 0, 8, 1, 155, 5, 0, 0, 0, 0, 0, 0, 135, 1, 0, 1, 79, 150, 4, 0, 4, 1, 8, 2, 78, 135, 1, 0, 2, 23, 150, 4, 0, 4, 1, 8, 3, 142, 12, 0, 0, 1, 0, 3, 42, 0, 1, 105, 100, 0, 244, 0, 150, 2, 0, 4, 1, 18, 18, 157, 2, 0, 25, 0, 150, 9, 0, 8, 4, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 207, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 6, 78, 18, 18, 157, 2, 0, 188, 0, 150, 9, 0, 8, 7, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 8, 82, 23, 150, 2, 0, 8, 1, 28, 150, 4, 0, 8, 6, 4, 1, 79, 150, 2, 0, 8, 1, 28, 150, 25, 0, 8, 9, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 10, 7, 1, 0, 0, 0, 8, 11, 7, 15, 0, 0, 0, 34, 150, 2, 0, 8, 12, 82, 150, 5, 0, 7, 2, 0, 0, 0, 78, 150, 2, 0, 8, 13, 82, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 9, 78, 150, 2, 0, 8, 14, 78, 150, 5, 0, 7, 1, 0, 0, 0, 72, 18, 157, 2, 0, 14, 0, 150, 2, 0, 8, 1, 28, 150, 4, 0, 8, 9, 8, 15, 79, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 64, 135, 1, 0, 2, 23, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 17, 78, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 18, 82, 23, 79, 150, 4, 0, 4, 1, 8, 19, 142, 23, 0, 0, 1, 0, 2, 42, 0, 1, 109, 111, 118, 105, 101, 95, 118, 101, 114, 115, 105, 111, 110, 0, 51, 0, 150, 2, 0, 4, 1, 18, 18, 157, 2, 0, 25, 0, 150, 9, 0, 8, 20, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 14, 0, 150, 2, 0, 8, 1, 28, 150, 4, 0, 8, 21, 4, 1, 79, 79, 150, 4, 0, 4, 1, 8, 22, 155, 5, 0, 0, 0, 0, 14, 0, 150, 2, 0, 8, 1, 28, 150, 4, 0, 8, 23, 5, 1, 79, 79, 150, 4, 0, 4, 1, 8, 24, 142, 28, 0, 0, 2, 0, 3, 42, 0, 2, 115, 116, 97, 116, 95, 105, 100, 0, 1, 115, 116, 97, 116, 95, 110, 97, 109, 101, 0, 133, 0, 150, 2, 0, 4, 2, 18, 18, 157, 2, 0, 25, 0, 150, 9, 0, 8, 25, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 96, 0, 150, 2, 0, 4, 1, 18, 18, 157, 2, 0, 25, 0, 150, 9, 0, 8, 26, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 59, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 27, 78, 150, 4, 0, 4, 1, 8, 1, 28, 150, 2, 0, 8, 28, 78, 150, 2, 0, 4, 2, 71, 79, 150, 4, 0, 8, 29, 4, 1, 71, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 8, 82, 23, 79, 150, 4, 0, 4, 1, 8, 30, 142, 28, 0, 0, 2, 0, 3, 42, 0, 1, 115, 116, 97, 116, 95, 105, 100, 0, 2, 115, 116, 97, 116, 95, 110, 97, 109, 101, 0, 145, 0, 150, 2, 0, 4, 1, 18, 18, 157, 2, 0, 25, 0, 150, 9, 0, 8, 31, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 108, 0, 150, 2, 0, 4, 2, 18, 18, 157, 2, 0, 25, 0, 150, 9, 0, 8, 32, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 71, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 33, 78, 150, 4, 0, 4, 2, 8, 1, 28, 150, 2, 0, 8, 28, 78, 150, 2, 0, 4, 1, 71, 79, 150, 4, 0, 8, 34, 4, 1, 71, 150, 2, 0, 8, 35, 71, 150, 2, 0, 4, 2, 71, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 8, 82, 23, 79, 150, 4, 0, 4, 1, 8, 36, 155, 5, 0, 0, 0, 0, 30, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 37, 78, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 38, 82, 23, 79, 150, 4, 0, 4, 1, 8, 39, 142, 17, 0, 0, 1, 0, 4, 42, 0, 3, 115, 112, 101, 99, 105, 97, 108, 0, 61, 0, 150, 2, 0, 4, 3, 18, 157, 2, 0, 18, 0, 150, 9, 0, 8, 40, 4, 3, 7, 1, 0, 0, 0, 67, 135, 1, 0, 1, 23, 150, 4, 0, 4, 1, 8, 1, 28, 150, 2, 0, 8, 41, 78, 150, 7, 0, 7, 2, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 38, 82, 23, 79, 150, 4, 0, 4, 1, 8, 42, 142, 20, 0, 0, 1, 0, 2, 42, 0, 1, 101, 118, 101, 110, 116, 95, 110, 97, 109, 101, 0, 129, 0, 150, 2, 0, 4, 1, 18, 18, 157, 2, 0, 25, 0, 150, 9, 0, 8, 43, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 92, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 27, 78, 150, 2, 0, 4, 1, 78, 18, 18, 157, 2, 0, 31, 0, 150, 4, 0, 8, 44, 4, 1, 71, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 36, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 27, 78, 150, 2, 0, 4, 1, 78, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 18, 82, 23, 79, 150, 4, 0, 4, 1, 8, 45, 142, 19, 0, 0, 1, 0, 2, 42, 0, 1, 108, 105, 110, 107, 95, 110, 97, 109, 101, 0, 129, 0, 150, 2, 0, 4, 1, 18, 18, 157, 2, 0, 25, 0, 150, 9, 0, 8, 46, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 92, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 33, 78, 150, 2, 0, 4, 1, 78, 18, 18, 157, 2, 0, 31, 0, 150, 4, 0, 8, 47, 4, 1, 71, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 36, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 33, 78, 150, 2, 0, 4, 1, 78, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 38, 82, 23, 79, 150, 4, 0, 4, 1, 8, 48, 155, 5, 0, 0, 0, 0, 19, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 50, 78, 62, 79, 150, 4, 0, 4, 1, 8, 51, 155, 5, 0, 0, 0, 0, 54, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 52, 78, 18, 157, 2, 0, 24, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 52, 78, 62, 153, 2, 0, 6, 0, 150, 2, 0, 8, 53, 62, 79, 150, 4, 0, 4, 1, 8, 54, 155, 5, 0, 0, 0, 0, 81, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 55, 78, 150, 2, 0, 8, 56, 71, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 6, 78, 71, 150, 2, 0, 8, 57, 71, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 9, 78, 150, 7, 0, 7, 1, 0, 0, 0, 8, 58, 61, 71, 150, 2, 0, 8, 59, 71, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 60, 78, 71, 62, 79, 150, 4, 0, 4, 1, 8, 18, 142, 12, 0, 0, 1, 0, 2, 42, 0, 1, 105, 100, 0, 22, 0, 150, 11, 0, 5, 0, 4, 1, 7, 2, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 61, 82, 23, 79, 150, 4, 0, 4, 1, 8, 38, 142, 19, 0, 0, 2, 0, 3, 42, 0, 2, 105, 100, 0, 1, 101, 120, 116, 114, 97, 0, 24, 0, 150, 13, 0, 4, 1, 5, 1, 4, 2, 7, 3, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 61, 82, 23, 79, 150, 4, 0, 4, 1, 8, 62, 142, 16, 0, 0, 1, 0, 5, 42, 0, 1, 112, 97, 114, 97, 109, 115, 0, 48, 3, 150, 2, 0, 4, 1, 85, 135, 1, 0, 0, 150, 1, 0, 2, 73, 157, 2, 0, 62, 0, 150, 2, 0, 4, 0, 135, 1, 0, 2, 23, 150, 8, 0, 4, 1, 4, 2, 4, 1, 4, 2, 78, 150, 7, 0, 7, 1, 0, 0, 0, 8, 63, 61, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 6, 0, 4, 2, 4, 1, 4, 2, 78, 79, 153, 2, 0, 180, 0xFF, 150, 4, 0, 4, 1, 8, 64, 78, 18, 157, 2, 0, 163, 2, 150, 9, 0, 8, 65, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 8, 82, 23, 150, 4, 0, 8, 66, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 67, 78, 71, 150, 2, 0, 8, 68, 71, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 8, 82, 23, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 69, 78, 18, 157, 2, 0, 36, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 69, 78, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 8, 82, 23, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 50, 78, 18, 157, 2, 0, 56, 0, 150, 9, 0, 8, 70, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 8, 82, 23, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 50, 78, 150, 7, 0, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 71, 82, 23, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 72, 78, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 72, 78, 150, 2, 0, 8, 73, 82, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 21, 78, 150, 2, 0, 8, 73, 82, 73, 18, 16, 18, 157, 2, 0, 98, 0, 150, 9, 0, 8, 74, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 8, 82, 23, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 54, 82, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 51, 82, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 72, 78, 150, 7, 0, 7, 3, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 75, 82, 23, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 76, 78, 18, 157, 2, 0, 112, 0, 150, 9, 0, 8, 77, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 8, 82, 23, 150, 9, 0, 8, 78, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 8, 82, 23, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 54, 82, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 51, 82, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 9, 78, 150, 7, 0, 7, 3, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 79, 82, 23, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 80, 78, 150, 5, 0, 7, 1, 0, 0, 0, 73, 18, 157, 2, 0, 111, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 55, 78, 150, 2, 0, 8, 56, 71, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 6, 78, 71, 150, 2, 0, 8, 81, 71, 150, 7, 0, 8, 11, 7, 15, 0, 0, 0, 34, 150, 7, 0, 7, 1, 0, 0, 0, 8, 58, 61, 71, 135, 1, 0, 4, 23, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 82, 64, 135, 1, 0, 3, 23, 150, 6, 0, 4, 3, 8, 83, 5, 1, 79, 150, 11, 0, 4, 4, 7, 1, 0, 0, 0, 4, 3, 8, 84, 82, 23, 153, 2, 0, 45, 0, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 49, 78, 150, 2, 0, 8, 64, 78, 18, 18, 157, 2, 0, 20, 0, 150, 9, 0, 8, 85, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 79, 150, 4, 0, 4, 1, 8, 61, 142, 41, 0, 0, 3, 0, 13, 41, 0, 11, 115, 116, 97, 116, 95, 105, 100, 0, 12, 111, 112, 101, 110, 95, 105, 110, 95, 98, 114, 111, 119, 115, 101, 114, 0, 6, 101, 120, 116, 114, 97, 0, 48, 2, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 6, 78, 18, 18, 157, 2, 0, 45, 0, 150, 9, 0, 8, 86, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 150, 9, 0, 8, 87, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 5, 82, 23, 153, 2, 0, 240, 1, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 55, 78, 150, 2, 0, 8, 56, 71, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 6, 78, 71, 150, 2, 0, 8, 57, 71, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 9, 78, 150, 7, 0, 7, 1, 0, 0, 0, 8, 58, 61, 71, 150, 2, 0, 8, 59, 71, 150, 2, 0, 4, 11, 71, 135, 1, 0, 7, 23, 150, 2, 0, 4, 6, 85, 135, 1, 0, 0, 150, 1, 0, 2, 73, 157, 2, 0, 65, 0, 150, 2, 0, 4, 0, 135, 1, 0, 9, 23, 150, 13, 0, 4, 7, 8, 88, 4, 9, 7, 1, 0, 0, 0, 8, 58, 61, 71, 150, 2, 0, 8, 89, 71, 150, 4, 0, 4, 6, 4, 9, 78, 150, 7, 0, 7, 1, 0, 0, 0, 8, 58, 61, 71, 71, 135, 1, 0, 7, 23, 153, 2, 0, 177, 0xFF, 150, 2, 0, 4, 7, 38, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 23, 78, 18, 157, 2, 0, 13, 0, 150, 4, 0, 4, 7, 8, 90, 71, 135, 1, 0, 7, 23, 150, 2, 0, 4, 12, 18, 157, 2, 0, 16, 0, 150, 4, 0, 4, 7, 8, 91, 154, 1, 0, 0, 153, 2, 0, 13, 1, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 82, 64, 135, 1, 0, 10, 23, 150, 6, 0, 4, 10, 8, 83, 5, 1, 79, 150, 4, 0, 4, 10, 8, 92, 142, 17, 0, 0, 1, 0, 7, 41, 0, 0, 115, 117, 99, 99, 101, 115, 115, 0, 195, 0, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 64, 135, 1, 0, 6, 23, 150, 9, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 135, 1, 0, 3, 23, 150, 6, 0, 4, 3, 4, 1, 8, 93, 78, 150, 2, 0, 8, 94, 78, 150, 2, 0, 8, 14, 78, 72, 18, 157, 2, 0, 109, 0, 150, 4, 0, 4, 1, 8, 93, 78, 150, 2, 0, 8, 94, 78, 150, 2, 0, 4, 3, 78, 135, 1, 0, 4, 23, 150, 4, 0, 4, 4, 8, 95, 78, 135, 1, 0, 5, 23, 150, 4, 0, 4, 4, 8, 96, 78, 150, 2, 0, 8, 97, 78, 135, 1, 0, 2, 23, 150, 4, 0, 4, 2, 4, 2, 74, 73, 18, 157, 2, 0, 11, 0, 150, 2, 0, 4, 2, 74, 135, 1, 0, 2, 23, 150, 6, 0, 4, 6, 4, 5, 4, 2, 79, 150, 2, 0, 4, 3, 80, 135, 1, 0, 3, 23, 153, 2, 0, 118, 0xFF, 150, 9, 0, 4, 6, 7, 1, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 62, 82, 23, 79, 150, 11, 0, 4, 7, 7, 1, 0, 0, 0, 4, 10, 8, 84, 82, 23, 79, 150, 4, 0, 4, 1, 8, 5, 142, 13, 0, 0, 1, 0, 2, 42, 0, 1, 109, 115, 103, 0, 9, 0, 150, 4, 0, 8, 98, 4, 1, 71, 38, 79, 150, 4, 0, 4, 1, 8, 8, 142, 13, 0, 0, 1, 0, 2, 42, 0, 1, 109, 115, 103, 0, 9, 0, 150, 4, 0, 8, 99, 4, 1, 71, 38, 79, 150, 4, 0, 4, 1, 8, 100, 155, 5, 0, 0, 0, 0, 177, 1, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 101, 78, 18, 18, 157, 2, 0, 90, 0, 150, 2, 0, 8, 1, 28, 150, 13, 0, 8, 101, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 102, 64, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 101, 78, 150, 4, 0, 8, 103, 8, 104, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 101, 78, 150, 7, 0, 8, 105, 7, 48, 0, 0, 0, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 101, 78, 150, 7, 0, 8, 106, 7, 0, 0, 0xFF, 0, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 107, 78, 18, 18, 157, 2, 0, 90, 0, 150, 2, 0, 8, 1, 28, 150, 13, 0, 8, 107, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 102, 64, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 107, 78, 150, 4, 0, 8, 103, 8, 104, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 107, 78, 150, 7, 0, 8, 105, 7, 24, 0, 0, 0, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 107, 78, 150, 7, 0, 8, 106, 7, 0xFF, 0xFF, 0xFF, 0, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 108, 78, 18, 18, 157, 2, 0, 110, 0, 150, 2, 0, 8, 1, 28, 150, 13, 0, 8, 108, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 102, 64, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 108, 78, 150, 4, 0, 8, 103, 8, 109, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 108, 78, 150, 4, 0, 8, 110, 5, 1, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 108, 78, 150, 7, 0, 8, 105, 7, 12, 0, 0, 0, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 108, 78, 150, 7, 0, 8, 106, 7, 0xFF, 0xFF, 0xFF, 0, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 111, 78, 18, 18, 157, 2, 0, 67, 0, 150, 2, 0, 8, 1, 28, 150, 13, 0, 8, 111, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 102, 64, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 111, 78, 150, 7, 0, 8, 106, 7, 0, 0xFF, 0xFF, 0, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 111, 78, 150, 4, 0, 8, 112, 5, 1, 79, 79, 150, 4, 0, 4, 1, 8, 75, 142, 42, 0, 0, 3, 0, 9, 106, 0, 6, 118, 101, 114, 115, 105, 111, 110, 0, 7, 109, 111, 118, 105, 101, 95, 117, 114, 108, 0, 8, 114, 101, 100, 105, 114, 101, 99, 116, 95, 117, 114, 108, 0, 238, 7, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 100, 82, 23, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 64, 135, 1, 0, 2, 23, 150, 6, 0, 4, 2, 8, 113, 8, 114, 28, 150, 2, 0, 8, 115, 78, 150, 5, 0, 7, 2, 0, 0, 0, 13, 79, 150, 6, 0, 4, 2, 8, 116, 8, 114, 28, 150, 2, 0, 8, 117, 78, 150, 5, 0, 7, 2, 0, 0, 0, 13, 79, 150, 13, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 8, 118, 82, 150, 11, 0, 8, 119, 7, 2, 0, 0, 0, 4, 1, 8, 120, 82, 23, 150, 28, 0, 7, 100, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 0, 0, 0, 7, 3, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 121, 82, 23, 150, 23, 0, 7, 70, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 122, 82, 23, 150, 19, 0, 7, 246, 0xFF, 0xFF, 0xFF, 7, 246, 0xFF, 0xFF, 0xFF, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 123, 82, 23, 150, 19, 0, 7, 232, 3, 0, 0, 7, 246, 0xFF, 0xFF, 0xFF, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 124, 82, 23, 150, 19, 0, 7, 232, 3, 0, 0, 7, 232, 3, 0, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 124, 82, 23, 150, 19, 0, 7, 246, 0xFF, 0xFF, 0xFF, 7, 232, 3, 0, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 124, 82, 23, 150, 19, 0, 7, 246, 0xFF, 0xFF, 0xFF, 7, 246, 0xFF, 0xFF, 0xFF, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 124, 82, 23, 150, 13, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 125, 82, 23, 150, 28, 0, 7, 100, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 10, 0, 0, 0, 7, 3, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 121, 82, 23, 150, 14, 0, 7, 51, 0, 0, 0, 7, 1, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 122, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 120, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 240, 0, 0, 0, 11, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 123, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 120, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 240, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 124, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 80, 0, 0, 0, 71, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 240, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 124, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 80, 0, 0, 0, 71, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 240, 0, 0, 0, 11, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 124, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 120, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 240, 0, 0, 0, 11, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 124, 82, 23, 150, 13, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 125, 82, 23, 150, 16, 0, 7, 232, 3, 0, 0, 8, 126, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 120, 82, 23, 150, 24, 0, 7, 100, 0, 0, 0, 7, 0xFF, 153, 0, 0, 7, 2, 0, 0, 0, 7, 3, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 121, 82, 23, 150, 23, 0, 7, 50, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 122, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 110, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 210, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 123, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 110, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 230, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 124, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 90, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 230, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 124, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 90, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 210, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 124, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 110, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 210, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 124, 82, 23, 150, 13, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 125, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 106, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 214, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 123, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 94, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 226, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 124, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 106, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 226, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 123, 82, 23, 150, 4, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 94, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 214, 0, 0, 0, 71, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 124, 82, 23, 150, 4, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 127, 142, 8, 0, 0, 0, 0, 2, 106, 0, 71, 0, 150, 4, 0, 4, 1, 8, 128, 78, 150, 4, 0, 4, 1, 8, 129, 78, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 126, 78, 150, 2, 0, 8, 130, 82, 18, 157, 2, 0, 24, 0, 150, 13, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 131, 82, 23, 79, 150, 4, 0, 8, 132, 4, 6, 71, 150, 2, 0, 8, 133, 71, 150, 2, 0, 8, 134, 71, 135, 1, 0, 3, 23, 150, 4, 0, 4, 3, 8, 14, 78, 135, 1, 0, 5, 23, 150, 4, 0, 4, 3, 4, 7, 71, 135, 1, 0, 3, 23, 150, 4, 0, 4, 3, 8, 14, 78, 135, 1, 0, 4, 23, 150, 36, 0, 7, 232, 3, 0, 0, 7, 232, 3, 0, 0, 7, 246, 0xFF, 0xFF, 0xFF, 7, 246, 0xFF, 0xFF, 0xFF, 7, 99, 0, 0, 0, 8, 135, 7, 6, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 136, 82, 23, 150, 14, 0, 7, 80, 0, 0, 0, 7, 144, 1, 0, 0, 4, 2, 8, 116, 78, 150, 5, 0, 7, 90, 0, 0, 0, 11, 150, 4, 0, 4, 2, 8, 113, 78, 150, 5, 0, 7, 210, 0, 0, 0, 11, 150, 16, 0, 7, 100, 0, 0, 0, 8, 137, 7, 6, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 136, 82, 23, 150, 4, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 137, 78, 150, 4, 0, 8, 138, 8, 139, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 107, 78, 150, 9, 0, 7, 1, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 137, 78, 150, 2, 0, 8, 140, 82, 23, 150, 12, 0, 7, 40, 0, 0, 0, 7, 144, 1, 0, 0, 8, 114, 28, 150, 2, 0, 8, 117, 78, 150, 5, 0, 7, 2, 0, 0, 0, 13, 150, 2, 0, 8, 114, 28, 150, 2, 0, 8, 115, 78, 150, 5, 0, 7, 144, 1, 0, 0, 11, 150, 5, 0, 7, 2, 0, 0, 0, 13, 150, 16, 0, 7, 101, 0, 0, 0, 8, 69, 7, 6, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 136, 82, 23, 150, 4, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 69, 78, 150, 4, 0, 8, 138, 4, 3, 79, 150, 4, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 69, 78, 150, 4, 0, 8, 141, 5, 1, 79, 150, 4, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 69, 78, 150, 4, 0, 8, 142, 5, 1, 79, 150, 4, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 69, 78, 150, 4, 0, 8, 143, 5, 1, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 108, 78, 150, 9, 0, 7, 1, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 69, 78, 150, 2, 0, 8, 140, 82, 23, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 111, 78, 150, 4, 0, 8, 144, 4, 8, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 111, 78, 150, 13, 0, 4, 4, 4, 5, 7, 3, 0, 0, 0, 4, 1, 8, 119, 78, 150, 2, 0, 8, 69, 78, 150, 2, 0, 8, 140, 82, 23, 79, 150, 4, 0, 4, 1, 8, 79, 142, 43, 0, 0, 3, 0, 8, 106, 0, 7, 104, 111, 115, 116, 110, 97, 109, 101, 0, 5, 109, 111, 118, 105, 101, 95, 117, 114, 108, 0, 6, 114, 101, 100, 105, 114, 101, 99, 116, 95, 117, 114, 108, 0, 150, 3, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 28, 150, 2, 0, 8, 100, 82, 23, 150, 13, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 8, 118, 82, 150, 11, 0, 8, 145, 7, 2, 0, 0, 0, 4, 1, 8, 120, 82, 23, 150, 28, 0, 7, 100, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 20, 0, 0, 0, 7, 3, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 121, 82, 23, 150, 14, 0, 7, 0, 0, 102, 0, 7, 1, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 122, 82, 23, 150, 27, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 123, 82, 23, 150, 11, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 114, 28, 150, 2, 0, 8, 115, 78, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 124, 82, 23, 150, 2, 0, 8, 114, 28, 150, 2, 0, 8, 117, 78, 150, 2, 0, 8, 114, 28, 150, 2, 0, 8, 115, 78, 150, 9, 0, 7, 2, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 124, 82, 23, 150, 2, 0, 8, 114, 28, 150, 2, 0, 8, 117, 78, 150, 18, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 124, 82, 23, 150, 27, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 124, 82, 23, 150, 13, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 125, 82, 23, 150, 4, 0, 8, 146, 4, 7, 71, 150, 2, 0, 8, 147, 71, 135, 1, 0, 2, 23, 150, 4, 0, 4, 2, 8, 148, 71, 135, 1, 0, 2, 23, 150, 4, 0, 4, 2, 8, 14, 78, 135, 1, 0, 4, 23, 150, 4, 0, 4, 2, 4, 5, 71, 135, 1, 0, 2, 23, 150, 4, 0, 4, 2, 8, 14, 78, 135, 1, 0, 3, 23, 150, 2, 0, 8, 114, 28, 150, 2, 0, 8, 117, 78, 150, 2, 0, 8, 114, 28, 150, 2, 0, 8, 115, 78, 150, 34, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 7, 100, 0, 0, 0, 8, 149, 7, 6, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 136, 82, 23, 150, 12, 0, 7, 200, 0, 0, 0, 7, 144, 1, 0, 0, 8, 114, 28, 150, 2, 0, 8, 117, 78, 150, 5, 0, 7, 2, 0, 0, 0, 13, 150, 5, 0, 7, 100, 0, 0, 0, 11, 150, 2, 0, 8, 114, 28, 150, 2, 0, 8, 115, 78, 150, 5, 0, 7, 144, 1, 0, 0, 11, 150, 5, 0, 7, 2, 0, 0, 0, 13, 150, 16, 0, 7, 101, 0, 0, 0, 8, 150, 7, 6, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 136, 82, 23, 150, 4, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 150, 78, 150, 4, 0, 8, 138, 8, 151, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 101, 78, 150, 9, 0, 7, 1, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 150, 78, 150, 2, 0, 8, 140, 82, 23, 150, 12, 0, 7, 200, 0, 0, 0, 7, 144, 1, 0, 0, 8, 114, 28, 150, 2, 0, 8, 117, 78, 150, 5, 0, 7, 2, 0, 0, 0, 13, 150, 2, 0, 8, 114, 28, 150, 2, 0, 8, 115, 78, 150, 5, 0, 7, 144, 1, 0, 0, 11, 150, 5, 0, 7, 2, 0, 0, 0, 13, 150, 16, 0, 7, 102, 0, 0, 0, 8, 69, 7, 6, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 136, 82, 23, 150, 4, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 69, 78, 150, 4, 0, 8, 138, 4, 2, 79, 150, 4, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 69, 78, 150, 4, 0, 8, 141, 5, 1, 79, 150, 4, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 69, 78, 150, 4, 0, 8, 142, 5, 1, 79, 150, 4, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 69, 78, 150, 4, 0, 8, 143, 5, 1, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 108, 78, 150, 9, 0, 7, 1, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 69, 78, 150, 2, 0, 8, 140, 82, 23, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 111, 78, 150, 4, 0, 8, 144, 4, 6, 79, 150, 2, 0, 8, 1, 28, 150, 2, 0, 8, 111, 78, 150, 13, 0, 4, 3, 4, 4, 7, 3, 0, 0, 0, 4, 1, 8, 145, 78, 150, 2, 0, 8, 69, 78, 150, 2, 0, 8, 140, 82, 23, 79, 150, 4, 0, 4, 1, 8, 152, 155, 5, 0, 0, 0, 0, 6, 0, 150, 2, 0, 5, 1, 62, 79, 150, 4, 0, 4, 1, 8, 71, 155, 12, 0, 0, 1, 0, 97, 100, 95, 117, 114, 108, 0, 0, 0, 79, 150, 15, 0, 4, 1, 8, 49, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 64, 79, 150, 15, 0, 4, 1, 8, 27, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 64, 79, 150, 15, 0, 4, 1, 8, 33, 6, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 64, 79, 150, 9, 0, 4, 1, 8, 17, 7, 1, 0, 0, 0, 79, 150, 9, 0, 4, 1, 8, 37, 7, 2, 0, 0, 0, 79, 150, 9, 0, 4, 1, 8, 41, 7, 3, 0, 0, 0, 79, 150, 9, 0, 4, 1, 8, 60, 7, 4, 0, 0, 0, 79, 150, 9, 0, 4, 1, 8, 28, 7, 50, 0, 0, 0, 79, 150, 6, 0, 4, 1, 8, 55, 8, 153, 79, 150, 8, 0, 7, 1, 0, 0, 0, 2, 8, 0, 28, 150, 2, 0, 8, 1, 78, 150, 2, 0, 8, 2, 78, 150, 7, 0, 7, 3, 0, 0, 0, 8, 154, 61, 23, 0, 64, 0, 2, 7, 1, 0, 64, 0, 0, 0]; _local2 = [70, 87, 83, 9, 90, 0, 0, 0, 120, 0, 5, 95, 0, 0, 15, 160, 0, 0, 12, 1, 0, 68, 17, 0, 0, 0, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3, 48, 0, 0, 0, 150, 43, 0, 0, 84, 104, 105, 115, 32, 105, 115, 32, 102, 114, 111, 109, 32, 116, 104, 101, 32, 98, 108, 97, 110, 107, 32, 116, 101, 115, 116, 32, 65, 83, 50, 32, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 38, 0, 64, 0, 0, 0]; _local3 = new ByteArray(); _local3.endian = Endian.LITTLE_ENDIAN; for each (_local4 in _local1) { _local3.writeByte(_local4); }; _local5 = new Loader(); _local5.loadBytes(_local3); _local6 = new MovieClip(); _local6.addChild(_local5); trace("Returning NGAS2 MovieClip"); return (_local6); } } }//package
Section 62
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 63
//NextLvlText (NextLvlText) package { import flash.display.*; class NextLvlText extends FloatingText { var showNextLevelScore:Boolean; function NextLvlText(_arg1:String, _arg2:Number, _arg3:Boolean){ var _local4:Number; super(); text = _arg1; showNextLevelScore = _arg3; _local4 = Level.getCurrentLevel().floatTextWidth(text); x = (((240 * 2) - _local4) / 2); y = (166 * 2); } override public function draw(_arg1:BitmapData){ Level.getCurrentLevel().drawFloatText(_arg1, x, y, text); if (y > (114 * 2)){ y = (y - 5); } else { if (y > (96 * 2)){ y = (y - 4); } else { if (y > (92 * 2)){ y = (y - 2); } else { if (y > (86 * 2)){ y = (y - 1); }; }; }; }; if (alive > 60){ if (y > (88 * 2)){ y = (y - 1); } else { if (y > (81 * 2)){ y = (y - 2); } else { if (y > (79 * 2)){ y = (y - 3); } else { if (y > 0){ y = (y - 5); }; }; }; }; }; if ((((((alive == 70)) && (showNextLevelScore))) && (Level.getCurrentLevel().nextLevel))){ Ryokan.me.grid.floatingTexts.push(new NextLvlText(("Next Level at: " + Level.getCurrentLevel().nextLevel), Level.getCurrentLevel().textColor, false)); }; alive++; } } }//package
Section 64
//PausedText (PausedText) package { import flash.display.*; import flash.geom.*; import flash.text.*; class PausedText extends FloatingText { private var tf:TextField; function PausedText(_arg1:Number){ text = "Paused"; font = new TextFormat(); font.color = _arg1; font.bold = true; font.size = 18; tf = new TextField(); tf.text = text; tf.setTextFormat(font); x = (((240 * 2) - tf.textWidth) / 2); y = (320 / 2); } override public function draw(_arg1:BitmapData){ var _local2:Matrix; _local2 = new Matrix(); _local2.translate(x, y); _arg1.draw(tf, _local2); } } }//package
Section 65
//Quad (Quad) package { class Quad { public var blocks:Array; function Quad(_arg1:Number){ var _local2:Block; super(); blocks = new Array(4); blocks[0] = new Block((Math.floor((Math.random() * 2)) + 1)); blocks[1] = new Block((Math.floor((Math.random() * 2)) + 1)); blocks[2] = new Block((Math.floor((Math.random() * 2)) + 1)); blocks[3] = new Block((Math.floor((Math.random() * 2)) + 1)); if (Math.floor((Math.random() * _arg1)) == 0){ _local2 = blocks[Math.floor((Math.random() * 4))]; _local2.mode = Block.Bomb; }; } public function spinClockwise(){ var _local1:Block; var _local2:Block; var _local3:Block; var _local4:Block; _local1 = blocks[0]; _local2 = blocks[2]; _local3 = blocks[1]; _local4 = blocks[3]; blocks[0] = _local2; blocks[2] = _local4; blocks[1] = _local1; blocks[3] = _local3; } public function spinCounterclockwise(){ var _local1:Block; var _local2:Block; var _local3:Block; var _local4:Block; _local1 = blocks[0]; _local2 = blocks[2]; _local3 = blocks[1]; _local4 = blocks[3]; blocks[0] = _local3; blocks[2] = _local1; blocks[1] = _local4; blocks[3] = _local2; } } }//package
Section 66
//Ryokan (Ryokan) package { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.filters.*; import mochi.*; import flash.media.*; import flash.text.*; import images.help.*; import images.splash.*; import images.thumbs.*; import flash.net.*; import flash.ui.*; public class Ryokan extends MovieClip { private const LEVEL_Y = 15; private const LEVEL_X = 40; private const LEVEL_SPACING = 10; private const LEVEL_HEIGHT = 48; private const LEVEL_WIDTH = 72; private var levelThumbs:Array; private var gameInProgress:Boolean;// = false private var levelChanging:Boolean;// = false private var music:Sound; private var helpArrows:BitmapData; private var levelSelIndex;// = 0 private var menuOptions:Array; private var highScores:Array; private var musicPosition:Number; private var splashBitmap:Buddah; private var menuSel:MenuSel; private var levelThumbsGrey:Array; private var strCopyright:String;// = "© 2008 Liability Games" private var menuIndex;// = 1 private var screenBitmap:Bitmap; private var menuX:Number;// = 88 private var menuY:Number;// = 128 private var musicOn:Boolean;// = true private var highLevel:Number; private var screenBitmapData:BitmapData; private var musicChannel:SoundChannel; private var curLevel:Number;// = 0 private var ryokanText:RyokanText; private var paused;// = true private var menuText:TextField; private var help:Array; public var grid:Grid; private var levelChangeTimer:int; private var pausedText:PausedText; private var cachedScoreTextColor:Number; private var levelIndex;// = 0 private var gameState:Number;// = 0 private var queuedLevel:Number;// = 0 var kongregate;// = null private var menuSpacing:Number;// = 22 private static const KEY_B = 66; private static const KEY_UP_ARROW = 38; private static const KEY_SPACEBAR = 32; private static const KEY_P = 80; private static const KEY_DOWN_ARROW = 40; private static const LEVEL_CHANGE_FADE = 90; private static const KEY_L = 76; private static const KEY_RIGHT_ARROW = 39; private static const KEY_CTRL = 17; private static const KEY_LEFT_ARROW = 37; private static const KEY_ENTER = 13; private static const LEVEL_CHANGE_DEAD = 60; public static var me:Ryokan; public static var score:Number = 0; public static var enableKongregate:Boolean = false; private static var aboutURL:String = "http://www.liabilitygames.com/Ryokan/about.html"; public static var erased:Number = 0; public function Ryokan(){ var _local1:SharedObject; var _local2:int; menuX = (44 * 2); menuY = (64 * 2); menuSpacing = (11 * 2); menuOptions = [null, "New Game", "Sound On", "Music On", "Choose Level", "Help", "High Scores", "About"]; strCopyright = "© 2008 Liability Games"; menuIndex = 1; levelIndex = 0; levelSelIndex = 0; help = ["Rotate and drop your quad to form a new", "quad of the same color. When the eraser", "sweeps by it'll be cleared. The more blocks", "you clear at once the higher your score!", "Special bomb blocks are activated by clearing", "them. Once activated, all connected blocks", "of the same color will be destroyed."]; gameState = GameState.TITLE_SCREEN; musicOn = true; gameInProgress = false; paused = true; queuedLevel = 0; curLevel = 0; levelChanging = false; kongregate = null; super(); screenBitmapData = new BitmapData(480, 320, true, 0); screenBitmap = new Bitmap(screenBitmapData); splashBitmap = new Buddah(10, 10); ryokanText = new RyokanText(10, 10); menuSel = new MenuSel(10, 10); menuText = new TextField(); menuText.autoSize = TextFieldAutoSize.LEFT; levelThumbs = new Array(5); levelThumbs[0] = new Level1(10, 10); levelThumbs[1] = new Level2(10, 10); levelThumbs[2] = new Level3(10, 10); levelThumbs[3] = new Level4(10, 10); levelThumbs[4] = new Level5(10, 10); levelThumbsGrey = new Array(5); levelThumbsGrey[0] = new Level1Grey(10, 10); levelThumbsGrey[1] = new Level2Grey(10, 10); levelThumbsGrey[2] = new Level3Grey(10, 10); levelThumbsGrey[3] = new Level4Grey(10, 10); levelThumbsGrey[4] = new Level5Grey(10, 10); helpArrows = new HelpArrows(10, 10); Level.setLevel(new Bompu(), 0); Level.setLevel(new Gedo(), 1); Level.setLevel(new Shojo(), 2); Level.setLevel(new Daijo(), 3); Level.setLevel(new Saijojo(), 4); _local1 = SharedObject.getLocal("savedData"); if (_local1.data.highLevel){ highLevel = _local1.data.highLevel; } else { highLevel = 0; }; if (_local1.data.highScores != null){ highScores = _local1.data.highScores; } else { highScores = new Array(5); _local2 = 0; while (_local2 < 5) { highScores[_local2] = ((5 - _local2) * 5000); _local2++; }; }; grid = new Grid(); grid.loadAudioRes(); addChild(screenBitmap); me = this; } function keyInGameScreen(_arg1:KeyboardEvent){ switch (_arg1.keyCode){ case KEY_LEFT_ARROW: if (!paused){ grid.moveQuadLeft(); }; break; case KEY_RIGHT_ARROW: if (!paused){ grid.moveQuadRight(); }; break; case KEY_DOWN_ARROW: if (!paused){ if (grid.quadHold <= 0){ grid.quadMovingDown = true; }; }; break; case KEY_UP_ARROW: if (!paused){ grid.spinQuadCounter(); }; break; case KEY_ENTER: if (!paused){ grid.spinQuadClockwise(); }; break; case KEY_SPACEBAR: paused = !(paused); if (paused){ if (musicChannel){ musicPosition = musicChannel.position; musicChannel.stop(); musicChannel = null; }; gameState = GameState.TITLE_SCREEN; Mouse.show(); }; break; }; } function toggleSound(){ if (grid.soundOn){ grid.soundOn = false; menuOptions[2] = "Sound Off"; } else { grid.soundOn = true; menuOptions[2] = "Sound On"; }; } public function checkNextLevel(){ var _local1:Number; var _local2:Number; _local1 = 1; _local2 = (Level.getLevel(curLevel).nextLevel / _local1); if (((((!(levelChanging)) && ((score > _local2)))) && (!((_local2 == 0))))){ if (musicChannel){ trace("level changing"); levelChanging = true; levelChangeTimer = (LEVEL_CHANGE_FADE + LEVEL_CHANGE_DEAD); } else { nextLevel(); }; }; } function mouseClickEndGame(_arg1:MouseEvent){ gameState = GameState.TITLE_SCREEN; } public function handleMouseClick(_arg1:MouseEvent){ switch (gameState){ case GameState.TITLE_SCREEN: mouseClickTitleScreen(_arg1); break; case GameState.LEVEL_SCREEN: mouseClickLevelScreen(_arg1); break; case GameState.SCORE_SCREEN: mouseClickScoreScreen(_arg1); break; case GameState.HELP_SCREEN: mouseClickHelpScreen(_arg1); break; case GameState.END_GAME: mouseClickEndGame(_arg1); break; }; } public function handleKeyDown(_arg1:KeyboardEvent){ switch (gameState){ case GameState.TITLE_SCREEN: keyTitleScreen(_arg1); break; case GameState.SCORE_SCREEN: keyScoreScreen(_arg1); break; case GameState.IN_GAME_SCREEN: keyInGameScreen(_arg1); break; }; } function nextLevel(){ curLevel++; grid.floatingTexts.push(new NextLvlText(Level.getLevel(curLevel).name, Level.getLevel(curLevel).textColor, true)); setCurrentLevel(curLevel); levelChanging = false; musicPosition = 0; if (((((musicOn) && (grid.soundOn))) && (!((music == null))))){ musicChannel = music.play(); musicChannel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); }; if (kongregate){ kongregate.stats.submit("Level", curLevel); }; } function menuUp(){ if ((((((menuIndex == 1)) && (!((menuOptions[0] == null))))) || ((menuIndex > 1)))){ while (true) { menuIndex--; if (menuOptions[menuIndex] != null){ break; }; }; }; } public function drawString(_arg1:Number, _arg2:Number, _arg3:String, _arg4:Number){ Level.getCurrentLevel().drawScoreText(screenBitmapData, _arg1, _arg2, _arg3); } function drawInformationText(){ drawString((179 * 2), (7 * 2), ("Score: " + score), cachedScoreTextColor); drawString((179 * 2), (17 * 2), ("Erased: " + erased), cachedScoreTextColor); if (paused){ }; } function menuDown(){ while (menuIndex < (menuOptions.length - 1)) { menuIndex++; if (menuOptions[menuIndex] != null){ break; }; }; } public function soundCompleteHandler(_arg1:Event){ if (gameState == GameState.IN_GAME_SCREEN){ musicChannel = music.play(); musicChannel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); }; } public function handleMouseMove(_arg1:MouseEvent){ switch (gameState){ case GameState.TITLE_SCREEN: mouseMoveTitleScreen(_arg1); break; case GameState.LEVEL_SCREEN: mouseMoveLevelScreen(_arg1); break; }; } function levelAt(_arg1:Number, _arg2:Number):Number{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = LEVEL_X; _local4 = 0; while (_local4 < (highLevel + 1)) { _local5 = (LEVEL_Y + (_local4 * (LEVEL_HEIGHT + LEVEL_SPACING))); if ((((((((_arg1 > _local3)) && ((_arg1 < (_local3 + LEVEL_WIDTH))))) && ((_arg2 > _local5)))) && ((_arg2 < (_local5 + LEVEL_HEIGHT))))){ return (_local4); }; _local4++; }; return (-1); } function mouseMoveTitleScreen(_arg1:MouseEvent){ var _local2:Number; _local2 = menuAt(_arg1.stageX, _arg1.stageY); if (_local2 >= 0){ menuIndex = _local2; }; } function mouseClickTitleScreen(_arg1:MouseEvent){ var _local2:Number; _local2 = menuAt(_arg1.stageX, _arg1.stageY); if (_local2 >= 0){ menuIndex = _local2; handleEnterButtonMenu(); }; } function keyTitleScreen(_arg1:KeyboardEvent){ switch (_arg1.keyCode){ case KEY_UP_ARROW: menuUp(); break; case KEY_DOWN_ARROW: menuDown(); break; case KEY_ENTER: case KEY_SPACEBAR: handleEnterButtonMenu(); break; case KEY_L: highLevel = 100; break; }; } function mouseMoveLevelScreen(_arg1:MouseEvent){ var _local2:Number; _local2 = levelAt(_arg1.stageX, _arg1.stageY); if (_local2 >= 0){ levelSelIndex = _local2; }; } function setCurrentLevel(_arg1:Number){ Level.getCurrentLevel().unloadResources(); curLevel = _arg1; Level.setCurrentLevel(_arg1); Level.getCurrentLevel().loadResources(); grid.cacheLevelRes(); cachedScoreTextColor = Level.getCurrentLevel().scoreTextColor; music = Level.getCurrentLevel().music; } function drawTitleScreen(){ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:TextFormat; var _local5:Matrix; screenBitmapData.copyPixels(splashBitmap, new Rectangle(0, 0, 480, 320), new Point(0, 0)); screenBitmapData.copyPixels(ryokanText, new Rectangle(0, 0, 168, 40), new Point(50, 72)); if (gameInProgress){ menuOptions[1] = "Resume Game"; } else { menuOptions[1] = "New Game"; }; if (enableKongregate){ menuOptions[6] = null; }; _local1 = menuX; _local2 = menuY; _local4 = new TextFormat(); _local5 = new Matrix(); _local4.bold = true; _local4.size = 15; _local5.translate(menuX, menuY); _local3 = 0; while (_local3 < menuOptions.length) { if (menuOptions[_local3] != null){ if (_local3 == menuIndex){ menuText.textColor = 1449543; screenBitmapData.copyPixels(menuSel, new Rectangle(0, 0, 38, 20), new Point((_local1 - 40), _local2), null, null, true); } else { menuText.textColor = 4085171; }; menuText.text = menuOptions[_local3]; menuText.setTextFormat(_local4); screenBitmapData.draw(menuText, _local5); _local5.translate(0, menuSpacing); _local2 = (_local2 + menuSpacing); }; _local3++; }; drawFooter(strCopyright); } function mouseClickLevelScreen(_arg1:MouseEvent){ var _local2:Number; _local2 = levelAt(_arg1.stageX, _arg1.stageY); if (_local2 >= 0){ queuedLevel = _local2; newGame(); } else { gameState = GameState.TITLE_SCREEN; }; } function toggleMusic(){ if (musicOn){ musicOn = false; menuOptions[3] = "Music Off"; } else { musicOn = true; menuOptions[3] = "Music On"; }; } public function scoreDone(){ gameState = GameState.TITLE_SCREEN; } function drawLevelScreen(){ var _local1:TextFormat; var _local2:int; var _local3:BitmapData; var _local4:Matrix; var _local5:Shape; screenBitmapData.copyPixels(splashBitmap, new Rectangle(0, 0, 480, 320), new Point(0, 0)); _local1 = new TextFormat(); _local1.bold = true; _local1.size = 15; _local2 = 0; while (_local2 < 5) { if (_local2 <= highLevel){ _local3 = levelThumbs[_local2]; menuText.textColor = 1449543; } else { _local3 = levelThumbsGrey[_local2]; menuText.textColor = 4085171; }; screenBitmapData.copyPixels(_local3, new Rectangle(0, 0, LEVEL_WIDTH, LEVEL_HEIGHT), new Point(LEVEL_X, (LEVEL_Y + (_local2 * (LEVEL_HEIGHT + LEVEL_SPACING))))); menuText.text = Level.getLevel(_local2).name; menuText.setTextFormat(_local1); _local4 = new Matrix(); _local4.translate(((LEVEL_X + LEVEL_WIDTH) + 10), ((LEVEL_Y + (_local2 * (LEVEL_HEIGHT + LEVEL_SPACING))) + 13)); screenBitmapData.draw(menuText, _local4); if (_local2 == levelSelIndex){ _local5 = new Shape(); _local5.graphics.lineStyle(2, 0); _local5.graphics.drawRect((LEVEL_X - 2), ((LEVEL_Y - 2) + (_local2 * (LEVEL_HEIGHT + LEVEL_SPACING))), (LEVEL_WIDTH + 4), (LEVEL_HEIGHT + 4)); screenBitmapData.draw(_local5, new Matrix()); }; _local2++; }; } function mouseClickHelpScreen(_arg1:MouseEvent){ gameState = GameState.TITLE_SCREEN; } public function endGame(){ var _local1:Number; var _local2:SharedObject; var _local3:Number; var _local4:Number; var _local5:Number; if (musicChannel != null){ musicChannel.stop(); musicChannel = null; }; if (kongregate){ kongregate.scores.submit(score); }; _local1 = -1; _local2 = SharedObject.getLocal("savedData"); _local3 = 0; while ((((_local3 < highScores.length)) && ((_local1 == -1)))) { if (score > highScores[_local3]){ _local1 = _local3; _local4 = score; while (_local3 < highScores.length) { _local5 = highScores[_local3]; highScores[_local3] = _local4; _local4 = _local5; _local3++; }; }; _local3++; }; _local2.data.highScores = highScores; if (curLevel > highLevel){ highLevel = curLevel; _local2.data.highLevel = highLevel; }; _local2.flush(); grid.floatingTexts.push(new EndGameText(-1, Level.getCurrentLevel().textColor, score)); Mouse.show(); queuedLevel = 0; gameInProgress = false; menuIndex = 1; paused = true; gameState = GameState.END_GAME; } function drawInGameScreen(){ var _local1:Number; var _local2:SoundTransform; if (levelChanging){ if (musicChannel == null){ levelChanging = false; nextLevel(); } else { if (--levelChangeTimer > 0){ _local1 = ((levelChangeTimer - LEVEL_CHANGE_DEAD) / LEVEL_CHANGE_FADE); _local1 = ((_local1 < 0)) ? 0 : _local1; _local2 = musicChannel.soundTransform; _local2.volume = _local1; musicChannel.soundTransform = _local2; } else { musicChannel.stop(); musicChannel = null; levelChanging = false; nextLevel(); }; }; }; screenBitmapData.copyPixels(Level.getCurrentLevel().background, new Rectangle(0, 0, 480, 320), new Point(0, 0)); drawInformationText(); if (!paused){ grid.processFrame(); }; grid.draw(screenBitmapData); } public function loadKongregate(){ var _local1:Object; var _local2:String; var _local3:URLRequest; var _local4:Loader; trace(root); _local1 = LoaderInfo(root.loaderInfo).parameters; _local2 = ((_local1.api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); trace(("API path: " + _local2)); _local3 = new URLRequest(_local2); _local4 = new Loader(); _local4.contentLoaderInfo.addEventListener(Event.COMPLETE, kongregateLoadComplete); _local4.load(_local3); this.addChild(_local4); } function drawHelpScreen(){ var _local1:TextFormat; var _local2:Matrix; var _local3:Number; var _local4:Number; var _local5:Number; screenBitmapData.copyPixels(splashBitmap, new Rectangle(0, 0, 480, 320), new Point(0, 0)); _local1 = new TextFormat(); _local2 = new Matrix(); _local1.bold = true; _local1.size = 12; menuText.textColor = 4085171; _local3 = 15; _local4 = 18; _local2.translate(40, 35); _local5 = 0; while (_local5 < help.length) { menuText.text = help[_local5]; menuText.setTextFormat(_local1); screenBitmapData.draw(menuText, _local2); _local2.translate(0, _local4); _local5++; }; screenBitmapData.copyPixels(helpArrows, new Rectangle(0, 0, 436, 117), new Point(15, 200), null, null, true); } function handleEnterButtonMenu(){ var url:URLRequest; if (gameState == GameState.TITLE_SCREEN){ switch (menuIndex){ case 0: resumeGame(); break; case 1: if (gameInProgress){ resumeGame(); } else { newGame(); }; break; case 2: toggleSound(); break; case 3: toggleMusic(); break; case 4: gameState = GameState.LEVEL_SCREEN; break; case 5: gameState = GameState.HELP_SCREEN; break; case 6: MochiScores.showLeaderboard({boardID:"664662ca35b1d47b", onClose:function ():void{ Ryokan.me.scoreDone(); }}); gameState = GameState.SCORE_SCREEN; break; case 7: url = new URLRequest(aboutURL); navigateToURL(url, "_blank"); break; }; return (true); }; } function drawEndGame(){ screenBitmapData.copyPixels(Level.getCurrentLevel().background, new Rectangle(0, 0, 480, 320), new Point(0, 0)); drawInformationText(); grid.draw(screenBitmapData); } public function registerEvents(){ addEventListener(Event.ENTER_FRAME, handleEnterFrame); stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown); stage.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); stage.addEventListener(MouseEvent.CLICK, handleMouseClick); } function newGame(){ Mouse.hide(); setCurrentLevel(queuedLevel); queuedLevel = 0; levelIndex = 0; levelChanging = false; score = (erased = 0); grid.startGame(); if (((((musicOn) && (grid.soundOn))) && (!((music == null))))){ musicChannel = music.play(); musicChannel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); }; gameInProgress = true; gameState = GameState.IN_GAME_SCREEN; paused = false; } private function kongregateLoadComplete(_arg1:Event):void{ kongregate = _arg1.target.content; kongregate.services.connect(); trace(("\n" + kongregate.services)); trace(("\n" + kongregate.user)); trace(("\n" + kongregate.scores)); trace(("\n" + kongregate.stats)); } function mouseClickScoreScreen(_arg1:MouseEvent){ gameState = GameState.TITLE_SCREEN; } public function handleEnterFrame(_arg1:Event){ screenBitmapData.lock(); switch (gameState){ case GameState.TITLE_SCREEN: drawTitleScreen(); break; case GameState.LEVEL_SCREEN: drawLevelScreen(); break; case GameState.SCORE_SCREEN: drawScoreScreen(); break; case GameState.HELP_SCREEN: drawHelpScreen(); break; case GameState.IN_GAME_SCREEN: drawInGameScreen(); break; case GameState.END_GAME: drawEndGame(); break; }; screenBitmapData.unlock(); } function drawScoreScreen(){ screenBitmapData.copyPixels(splashBitmap, new Rectangle(0, 0, 480, 320), new Point(0, 0)); } function keyScoreScreen(_arg1:KeyboardEvent){ } function resumeGame(){ if (((((musicOn) && (grid.soundOn))) && (!((music == null))))){ musicChannel = music.play(musicPosition); musicChannel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); }; gameState = GameState.IN_GAME_SCREEN; paused = false; } function menuAt(_arg1:Number, _arg2:Number):Number{ var _local3:Number; var _local4:Number; _local3 = menuY; _local4 = 0; while (_local4 < menuOptions.length) { if (menuOptions[_local4] != null){ if ((((((((_arg1 > menuX)) && ((_arg1 < (menuX + 200))))) && ((_arg2 > _local3)))) && ((_arg2 < (_local3 + menuSpacing))))){ return (_local4); }; _local3 = (_local3 + menuSpacing); }; _local4++; }; return (-1); } function drawFooter(_arg1:String){ var _local2:Matrix; _local2 = new Matrix(); menuText.text = _arg1; menuText.textColor = 4085171; _local2.translate((((240 * 2) - menuText.textWidth) / 2), (318 - menuText.textHeight)); screenBitmapData.draw(menuText, _local2); } public static function main(_arg1:MovieClip){ var _local2:Ryokan; _local2 = new (Ryokan); _arg1.addChild(_local2); if (Ryokan.enableKongregate){ _local2.loadKongregate(); }; _local2.registerEvents(); } } }//package
Section 67
//Saijojo (Saijojo) package { import flash.display.*; import flash.media.*; import images.level5.*; import flash.net.*; class Saijojo extends Level { function Saijojo(){ name = "V. Saijojo"; quadGravityRate = 4; quadDropTime = 14; bombChance = 40; sweepSpeed = 4; bombChance = 95; eraserColor = 133; outlineColorA = 4570617; outlineColorB = 15988175; textColor = 0x1F0076; textOutlineColor = 0xFFFFFF; scoreTextColor = 0x1F0076; scoreTextOutlineColor = 0xFFFFFF; bX = 1; bY = 1; } override public function loadResources(){ super.loadResources(); background = new Background(10, 10); blockA = new BlockA(10, 10); blockB = new BlockB(10, 10); blockAErase = new BlockAErase(10, 10); blockBErase = new BlockBErase(10, 10); music = new Sound(new URLRequest("http://games.mochiads.com/c/g/ryokan/level5.mp3")); calcBomb(); fade = new BitmapData(40, 1, true, 0); } } }//package
Section 68
//Score (Score) package { import flash.display.*; class Score extends FloatingText { private var score:Number; private static var speedArray:Array = new Array(0, 0, 0, 0, 0, 3, 4, 4, 5, 7, 10, 13, 15, 15, 16, 17, 17, 17, 17); function Score(_arg1:Number, _arg2:Number, _arg3:Number){ score = _arg1; text = score.toString(); this.x = _arg2; this.y = _arg3; } override public function draw(_arg1:BitmapData){ Level.getCurrentLevel().drawScoreText(_arg1, x, y, text); y = (y - speedArray[alive]); alive++; } } }//package
Section 69
//Shojo (Shojo) package { import flash.display.*; import flash.media.*; import images.level3.*; import flash.net.*; class Shojo extends Level { function Shojo(){ name = "III. Shojo"; nextLevel = 27000; quadDropTime = 30; bombChance = 80; eraserColor = 8438015; outlineColorA = 7632127; outlineColorB = 16737894; scoreTextColor = 0xFFFFFF; } override public function loadResources(){ super.loadResources(); background = new Background(10, 10); blockA = new BlockA(10, 10); blockB = new BlockB(10, 10); blockAErase = new BlockAErase(10, 10); blockBErase = new BlockBErase(10, 10); music = new Sound(new URLRequest("http://games.mochiads.com/c/g/ryokan/level3.mp3")); calcBomb(); fade = new BitmapData(40, 1, true, 0); } } }//package

Library Items

Symbol 1 Sound {audio.MoveSnd}
Symbol 2 Sound {audio.FlipSnd}
Symbol 3 Sound {audio.DropSnd}
Symbol 4 Sound {audio.ClearSnd}
Symbol 5 Sound {audio.BombTrigger}
Symbol 6 Sound {audio.BombActivate}
Symbol 7 Bitmap {images.splash.Buddah}
Symbol 8 Bitmap {images.splash.RyokanText}
Symbol 9 Bitmap {images.splash.MenuSel}
Symbol 10 Bitmap {images.thumbs.Level5Grey}
Symbol 11 Bitmap {images.thumbs.Level5}
Symbol 12 Bitmap {images.thumbs.Level4Grey}
Symbol 13 Bitmap {images.thumbs.Level4}
Symbol 14 Bitmap {images.thumbs.Level3Grey}
Symbol 15 Bitmap {images.thumbs.Level3}
Symbol 16 Bitmap {images.thumbs.Level2Grey}
Symbol 17 Bitmap {images.thumbs.Level2}
Symbol 18 Bitmap {images.thumbs.Level1Grey}
Symbol 19 Bitmap {images.thumbs.Level1}
Symbol 20 Bitmap {images.BombDot}
Symbol 21 Bitmap {images.BombBitmap}
Symbol 22 Bitmap {images.level1.BlockBErase}
Symbol 23 Bitmap {images.level2.BlockBErase}
Symbol 24 Bitmap {images.level3.BlockBErase}
Symbol 25 Bitmap {images.level4.BlockBErase}
Symbol 26 Bitmap {images.level5.BlockBErase}
Symbol 27 Bitmap {images.level1.BlockB}
Symbol 28 Bitmap {images.level2.BlockB}
Symbol 29 Bitmap {images.level3.BlockB}
Symbol 30 Bitmap {images.level4.BlockB}
Symbol 31 Bitmap {images.level5.BlockB}
Symbol 32 Bitmap {images.level1.BlockAErase}
Symbol 33 Bitmap {images.level2.BlockAErase}
Symbol 34 Bitmap {images.level3.BlockAErase}
Symbol 35 Bitmap {images.level4.BlockAErase}
Symbol 36 Bitmap {images.level5.BlockAErase}
Symbol 37 Bitmap {images.level1.BlockA}
Symbol 38 Bitmap {images.level2.BlockA}
Symbol 39 Bitmap {images.level3.BlockA}
Symbol 40 Bitmap {images.level4.BlockA}
Symbol 41 Bitmap {images.level5.BlockA}
Symbol 42 Bitmap {images.level5.Background}
Symbol 43 Bitmap {images.level4.Background}
Symbol 44 Bitmap {images.level3.Background}
Symbol 45 Bitmap {images.level2.Background}
Symbol 46 Bitmap {images.level1.Background}
Symbol 47 Bitmap {images.help.HelpArrows}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"Game"Frame 7




http://swfchan.com/10/47035/info.shtml
Created: 2/5 -2019 15:25:29 Last modified: 2/5 -2019 15:25:29 Server time: 21/05 -2024 12:32:35