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

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

Blood Feud.swf

This is the info page for
Flash #133530

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


ActionScript [AS3]
Section 1
//AnimatedObject (animation.AnimatedObject) package animation { import flash.display.*; import physic.*; import managers.resources.*; import managers.objects.*; import flash.filters.*; public final class AnimatedObject extends Bitmap implements IAnimatedObject { private var bNeedUpdate:Boolean;// = false private var _bLoop:Boolean;// = false private var position:Vec2; private var currentAnim:String;// = "" private var bJustStarted:Boolean;// = false private var currentSpeedFactor:Number;// = 1 private var bAnimIsPlaying:Boolean;// = false private var _scaleY:Number;// = 1 private var _scaleX:Number;// = 1 private var _data:AnimatedObjectData;// = null private var _cosValue:Number;// = 1 private var _dataName:String;// = "" private var triggerParam:Object;// = null private var triggerFunction:Function;// = null private var delta:Vec2; private var mirror:Boolean;// = false private var _sinValue:Number;// = 0 private var currentTime:Number;// = 0 private var debugSprite:Sprite; public function AnimatedObject(_arg1:String=""){ var name = _arg1; position = Vec2.ZERO; debugSprite = new Sprite(); delta = new Vec2(); super(null, PixelSnapping.AUTO, true); setData(name); if (Physic.SHOW_DEBUG_STUFF){ var _local3 = debugSprite.graphics; with (_local3) { clear(); beginFill(0xFF00); drawCircle(0, 0, 5); endFill(); }; if (GameLayerManager.getInstance().isInitialized()){ GameLayerManager.getInstance().getLayer(GameLayerManager.LAYER_FOREGROUND_1).addChild(debugSprite); }; }; } override public function set rotation(_arg1:Number):void{ super.rotation = _arg1; var _local2:Number = ((super.rotation * Math.PI) / 180); _cosValue = Math.cos(_local2); _sinValue = Math.sin(_local2); bNeedUpdate = true; } private function numberModulo(_arg1:Number, _arg2:Number):Number{ while (_arg1 > _arg2) { _arg1 = (_arg1 - _arg2); }; return (_arg1); } public function getData():String{ return (_dataName); } public function setLoop(_arg1:Boolean=true):void{ if (_arg1){ bAnimIsPlaying = true; }; _bLoop = _arg1; bNeedUpdate = true; } public function setData(_arg1:String, _arg2:Vec2=null):void{ _data = null; _dataName = _arg1; playAnimIndex(0, false); } public function hasAnimNamed(_arg1:String):Boolean{ if (dataIsBinded()){ return (_data.hasAnimNamed(_arg1)); }; return (false); } private function dataIsBinded():Boolean{ if (((!(_data)) && (!((_dataName == ""))))){ _data = (ResourceManager.getInstance().getResource(_dataName) as AnimatedObjectData); }; return (!((_data == null))); } public function stopAnim():void{ bAnimIsPlaying = false; } override public function get scaleY():Number{ return (_scaleY); } public function playIdleAnim(_arg1:String):void{ playAnim(_arg1, true); if (dataIsBinded()){ currentTime = (_data.getAnimDuration(currentAnim) * Math.random()); }; } public function getRelativeDirection(_arg1:Vec2, _arg2:Boolean=false):Vec2{ if (((mirror) && (!(_arg2)))){ return (new Vec2(-(((_arg1.x * _cosValue) + (_arg1.y * _sinValue))), ((_arg1.y * _cosValue) - (_arg1.x * _sinValue)))); }; return (new Vec2(((_arg1.x * _cosValue) - (_arg1.y * _sinValue)), ((_arg1.y * _cosValue) + (_arg1.x * _sinValue)))); } public function playAnim(_arg1:String, _arg2:Boolean=true):void{ if (((!(bAnimIsPlaying)) || (!((currentAnim == _arg1))))){ currentAnim = _arg1; currentTime = 0; bJustStarted = true; bAnimIsPlaying = true; }; _bLoop = _arg2; bNeedUpdate = true; } override public function get scaleX():Number{ return (_scaleX); } public function setTime(_arg1:Number):void{ currentTime = _arg1; bNeedUpdate = true; } public function playAnimIndex(_arg1:int, _arg2:Boolean=true):void{ if (dataIsBinded()){ playAnim(_data.getAnimNameByIndex(_arg1), _arg2); }; } override public function get x():Number{ return (position.x); } override public function get y():Number{ return (position.y); } public function getCurrentAnimation():String{ return (currentAnim); } public function set scale(_arg1:Number):void{ _scaleX = _arg1; _scaleY = _arg1; bNeedUpdate = true; } override public function set scaleX(_arg1:Number):void{ _scaleX = _arg1; bNeedUpdate = true; } public function isPlaying():Boolean{ return (bAnimIsPlaying); } override public function set scaleY(_arg1:Number):void{ _scaleY = _arg1; bNeedUpdate = true; } public function getAnchor(_arg1:String):Vec2{ var _local2:Vec2; var _local3:Vec2; if (dataIsBinded()){ _local2 = _data.getAnchor("origin", currentAnim, currentTime); _local3 = _data.getAnchor(_arg1, currentAnim, currentTime).clone(); if (mirror){ delta.x = ((_local2.x - _local3.x) * _scaleX); } else { delta.x = ((_local3.x - _local2.x) * _scaleX); }; delta.y = ((_local3.y - _local2.y) * _scaleY); _local3.x = (position.x + ((delta.x * _cosValue) - (delta.y * _sinValue))); _local3.y = (position.y + ((delta.y * _cosValue) + (delta.x * _sinValue))); return (_local3); }; return (null); } public function setSpeedFactor(_arg1:Number):void{ currentSpeedFactor = _arg1; } public function setMirror(_arg1:Boolean):void{ mirror = _arg1; bNeedUpdate = true; } public function getMirror():Boolean{ return (mirror); } public function update(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local4:Boolean; var _local5:Number; var _local6:Number; var _local7:Vec2; var _local8:Vec2; var _local9:BitmapData; if (((dataIsBinded()) && (bNeedUpdate))){ _local4 = false; if (bAnimIsPlaying){ _local4 = true; _local5 = _data.getAnimDuration(currentAnim); if (_local5 == 0){ return; }; _local6 = (_arg1 * currentSpeedFactor); currentTime = (currentTime + _local6); if (_bLoop){ currentTime = numberModulo(currentTime, _local5); } else { if (currentTime > _local5){ currentTime = _local5; bNeedUpdate = false; bAnimIsPlaying = false; }; }; }; if (!_arg2){ _local9 = _data.getBitmapData(currentAnim, currentTime); if (super.bitmapData != _local9){ super.bitmapData = _local9; }; }; _local7 = _data.getOffset(currentAnim, currentTime); _local8 = _data.getAnchor("origin", currentAnim, currentTime); if (mirror){ delta.x = ((_local8.x - _local7.x) * _scaleX); super.scaleX = -(_scaleX); } else { delta.x = ((_local7.x - _local8.x) * _scaleX); super.scaleX = _scaleX; }; delta.y = ((_local7.y - _local8.y) * _scaleY); super.scaleY = _scaleY; super.x = (position.x + ((delta.x * _cosValue) - (delta.y * _sinValue))); super.y = (position.y + ((delta.y * _cosValue) + (delta.x * _sinValue))); debugSprite.alpha = 0.6; debugSprite.x = position.x; debugSprite.y = position.y; if (!_arg3){ if (((!((triggerFunction == null))) && (_local4))){ _data.checkTriggers(this, currentAnim, _local6, currentTime, bJustStarted, triggerFunction, triggerParam); }; }; bJustStarted = false; }; } public function getCurrentTime():Number{ return (currentTime); } override public function set visible(_arg1:Boolean):void{ super.visible = _arg1; bNeedUpdate = true; } public function setTriggerFunction(_arg1:Function=null, _arg2:Object=null):void{ triggerFunction = _arg1; triggerParam = _arg2; } override public function set y(_arg1:Number):void{ position.y = _arg1; bNeedUpdate = true; } public function hasAnchor(_arg1:String):Boolean{ if (dataIsBinded()){ return (_data.hasAnchor(_arg1, currentAnim, currentTime)); }; return (false); } override public function set x(_arg1:Number):void{ position.x = _arg1; bNeedUpdate = true; } override public function set bitmapData(_arg1:BitmapData):void{ throw ("You can't set bitmapData directly, use AnimatedObject.setData()"); } public function destroy():void{ _dataName = ""; _data = null; super.bitmapData = null; if (Physic.SHOW_DEBUG_STUFF){ if (debugSprite.parent){ debugSprite.parent.removeChild(debugSprite); }; }; } public static function updateAnimation(_arg1:DisplayObject, _arg2:Number):void{ var _local3:int; if ((_arg1 is AnimatedObject)){ (_arg1 as AnimatedObject).update(_arg2); } else { if ((_arg1 is DisplayObjectContainer)){ _local3 = 0; while (_local3 < (_arg1 as DisplayObjectContainer).numChildren) { updateAnimation((_arg1 as DisplayObjectContainer).getChildAt(_local3), _arg2); _local3++; }; }; }; } } }//package animation
Section 2
//AnimatedObjectData (animation.AnimatedObjectData) package animation { import flash.display.*; import physic.*; import managers.resources.*; import debug.*; public final class AnimatedObjectData implements ICompiledResource { private var animationList:Array; public var debugString:String;// = "" public function AnimatedObjectData(){ animationList = new Array(); super(); } public function checkTriggers(_arg1:AnimatedObject, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Boolean, _arg6:Function, _arg7:Object):void{ var _local8:Animation; if (_arg6 != null){ _local8 = getAnimation(_arg2); if (_local8){ _local8.checkTriggers(_arg1, _arg3, _arg4, _arg5, _arg6, _arg7); }; }; } public function getAnimNameByIndex(_arg1:int):String{ if ((((_arg1 >= 0)) && ((_arg1 < animationList.length)))){ return ((animationList[_arg1] as Animation).name); }; return (""); } public function toString():String{ var _local4:Animation; var _local1:uint; var _local2:int; var _local3 = ""; for each (_local4 in animationList) { _local3 = (_local3 + (((_local4.name + "[") + _local4.totalFrames) + "] ")); _local2 = (_local2 + _local4.totalFrames); _local1 = (_local1 + _local4.debugGetSize()); }; _local3 = (_local3 + (((("\n TOTAL IMAGE COUNT = [" + _local2) + "] ") + Math.ceil((_local1 / 0x0400))) + " KB")); return (_local3); } private function getAnimation(_arg1:String):Animation{ var _local2:Animation; for each (_local2 in animationList) { if (_local2.name == _arg1){ return (_local2); }; }; return (null); } public function hasAnchor(_arg1:String, _arg2:String, _arg3:Number):Boolean{ var _local4:Animation = getAnimation(_arg2); if (_local4){ return (_local4.hasAnchor(_arg1, _arg3)); }; return (false); } public function getOffset(_arg1:String, _arg2:Number):Vec2{ var _local3:Animation = getAnimation(_arg1); if (_local3){ return (_local3.getImageOffset(_arg2)); }; return (AnimationAnchor.DEFAULT); } public function getAnchor(_arg1:String, _arg2:String, _arg3:Number):Vec2{ var _local4:Animation = getAnimation(_arg2); if (_local4){ return (_local4.getAnchor(_arg1, _arg3)); }; return (AnimationAnchor.DEFAULT); } public function hasAnimNamed(_arg1:String):Boolean{ var _local2:Animation; for each (_local2 in animationList) { if (_local2.name == _arg1){ return (true); }; }; return (false); } public function getBitmapData(_arg1:String, _arg2:Number):BitmapData{ var _local3:Animation = getAnimation(_arg1); if (_local3){ return (_local3.getImage(_arg2)); }; return (null); } public function serialization():void{ } public function destroy():void{ while (animationList.length > 0) { (animationList.pop() as Animation).destroy(); }; } public function getAnimDuration(_arg1:String):Number{ var _local2:Animation = getAnimation(_arg1); if (_local2){ return (_local2.getDuration()); }; return (0); } public function deserialization():void{ } public function createFromMovieClipArray(_arg1:String, _arg2:DisplayObject, _arg3:int):Boolean{ if (!((!((_arg2 == null))) && ((_arg2 is MovieClip)))){ return (false); }; var _local4:MovieClip = (_arg2 as MovieClip); if (_arg3 >= _local4.scenes.length){ return (false); }; _local4.gotoAndStop(1, _local4.scenes[_arg3].name); var _local5:Scene = _local4.currentScene; var _local6:Animation = new Animation(_arg1, _local4, _local5.numFrames, _local5.name, this); animationList.push(_local6); _local4.nextScene(); _local4.stop(); return (true); } } }//package animation
Section 3
//Animation (animation.Animation) package animation { import flash.display.*; import physic.*; import flash.geom.*; import debug.*; import animation.*; final class Animation { public var totalFrames:int;// = 0 public var name:String;// = "" public var frameArray:Array; public var duration:Number;// = 0 public var imageArray:Array; function Animation(_arg1:String, _arg2:MovieClip, _arg3:int, _arg4:String, _arg5:AnimatedObjectData){ var _local7:Number; var _local17:AnimationFrame; var _local18:AnimationFrame; var _local19:Vec2; var _local20:BitmapData; var _local21:Boolean; var _local22:FrameLabel; var _local23:Boolean; var _local24:int; var _local25:int; var _local26:BitmapData; var _local27:MovieClip; var _local28:AnimationFrame; var _local29:AnimationFrame; imageArray = new Array(); frameArray = new Array(); super(); var _local6:Matrix = new Matrix(); _local7 = _arg2.loaderInfo.frameRate; var _local8:Number = 0; var _local9:Number = 0; var _local10:Number = 0; var _local11:int; var _local12:String; var _local13:Number = (1 / _local7); var _local14:int; var _local15:Array = new Array(); var _local16:int; while (_local16 < _arg3) { _local18 = new AnimationFrame(); _local15.push(_local18); _local18.startTime = _local8; _local18.duration = _local13; _local6.identity(); _local6.translate(-((_arg2.transform.pixelBounds.x - 20)), -((_arg2.transform.pixelBounds.y - 20))); _local19 = new Vec2((_arg2.transform.pixelBounds.width + 40), (_arg2.transform.pixelBounds.height + 40)); _local20 = null; if (((!((_local19.x == 0))) && (!((_local19.y == 0))))){ _local20 = new BitmapData(_local19.x, _local19.y, true, 0xFFFFFF); _local20.draw(_arg2, _local6, null, null, null, true); } else { _arg5.debugString = (_arg5.debugString + "WARNING: FRAME SIZE IS NULL\n"); Debug.warning("WARNING: FRAME SIZE IS NULL", _arg1, _arg4); }; _local21 = true; if (_local20 != null){ _local25 = 0; while (_local25 < imageArray.length) { _local26 = (imageArray[_local25] as AnimationImage).bitmapData; if (_local26 != null){ if (_local20.compare(_local26) == 0){ _local21 = false; _local18.imageIndex = _local25; break; }; }; _local25++; }; }; if (_local21){ _local18.imageIndex = imageArray.length; imageArray.push(new AnimationImage(_local20, new Vec2((_arg2.transform.pixelBounds.x - 20), (_arg2.transform.pixelBounds.y - 20)))); }; for each (_local22 in _arg2.currentLabels) { if ((_local22.frame - 1) == _local16){ _local18.label = _local22.name; }; }; _local23 = false; _local24 = 0; while (_local24 < _arg2.numChildren) { _local27 = (_arg2.getChildAt(_local24) as MovieClip); if (_local27 != null){ _local23 = ((_local23) || ((_local27.name == "origin"))); _local18.addAnchor(new AnimationAnchor(_local27.name, _local27.x, _local27.y)); }; _local24++; }; if (!_local23){ Debug.error("NO ORIGIN ON AnimatedObject", _arg1, _arg4); }; _local8 = (_local8 + _local13); if ((_local16 + 1) < _arg3){ _arg2.nextFrame(); }; _local16++; }; duration = _local8; _local28 = null; for each (_local29 in _local15) { if (_local28 == null){ _local28 = _local29; } else { if (((((!((_local29.label == null))) || (!((_local29.imageIndex == _local28.imageIndex))))) || (!(_local29.compareAnchors(_local28))))){ frameArray.push(_local28); _local28 = _local29; } else { _local28.duration = (_local28.duration + _local29.duration); }; }; }; frameArray.push(_local28); while (_local15.length > 0) { _local15.pop(); }; totalFrames = frameArray.length; name = _arg4; _arg5.debugString = (_arg5.debugString + (((((((("\n ANIMATION name[" + name) + "] totalFrames[") + totalFrames) + "] totalImages[") + imageArray.length) + "] duration[") + Math.round((duration * 1000))) + "]\n")); for each (_local17 in frameArray) { _arg5.debugString = (_arg5.debugString + ((" " + _local17) + "\n")); }; frameArray.reverse(); } private function getFrameIndex(_arg1:Number):int{ var _local2:int; while (_local2 < frameArray.length) { if (frameArray[_local2].startTime <= _arg1){ return (_local2); }; _local2++; }; return (-1); } public function checkTriggers(_arg1:AnimatedObject, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object):void{ var _local7:int; var _local8:int; if (_arg2 >= duration){ _local7 = frameArray.length; _local8 = 0; } else { _local7 = (_arg4) ? frameArray.length : getFrameIndex(numberModulo((_arg3 - _arg2), duration)); _local8 = getFrameIndex(_arg3); }; var _local9:int = _local7; if (_local9 != _local8){ do { _local9 = (((_local9 - 1) + frameArray.length) % frameArray.length); if (frameArray[_local9].label != null){ _arg5(_arg1, this.name, frameArray[_local9].label, _arg6); }; } while (_local9 != _local8); }; } public function debugGetSize():uint{ var _local2:AnimationImage; var _local1:uint; for each (_local2 in imageArray) { if (_local2.bitmapData){ _local1 = (_local1 + ((_local2.bitmapData.width * _local2.bitmapData.height) * 4)); }; }; return (_local1); } public function getImage(_arg1:Number):BitmapData{ return ((imageArray[getFrame(_arg1).imageIndex] as AnimationImage).bitmapData); } public function getImageOffset(_arg1:Number):Vec2{ return ((imageArray[getFrame(_arg1).imageIndex] as AnimationImage).offset); } private function getOrigin(_arg1:MovieClip):void{ var _local5:MovieClip; var _local2 = ""; _local2 = (_local2 + (("MC num [" + _arg1.numChildren) + "] ")); var _local3:Boolean; _local2 = (_local2 + "["); var _local4:int; while (_local4 < _arg1.numChildren) { _local5 = (_arg1.getChildAt(_local4) as MovieClip); if (_local5 != null){ if (!_local3){ _local2 = (_local2 + ", "); }; _local2 = (_local2 + (((((_local5.name + "(") + _local5.x) + ",") + _local5.y) + ")")); _local3 = false; }; _local4++; }; _local2 = (_local2 + "]"); Debug.trace(_local2); } public function hasAnchor(_arg1:String, _arg2:Number):Boolean{ return (getFrame(_arg2).hasAnchor(_arg1)); } public function getDuration():Number{ return (duration); } public function getAnchor(_arg1:String, _arg2:Number):Vec2{ return (getFrame(_arg2).getAnchor(_arg1)); } private function getFrame(_arg1:Number):AnimationFrame{ var _local2:AnimationFrame; for each (_local2 in frameArray) { if (_local2.startTime <= _arg1){ return (_local2); }; }; return (null); } public function destroy():void{ while (imageArray.length > 0) { (imageArray.pop() as AnimationImage).destroy(); }; } private function numberModulo(_arg1:Number, _arg2:Number):Number{ while (_arg1 < 0) { _arg1 = (_arg1 + _arg2); }; while (_arg1 >= _arg2) { _arg1 = (_arg1 - _arg2); }; return (_arg1); } } }//package animation
Section 4
//AnimationAnchor (animation.AnimationAnchor) package animation { import physic.*; final class AnimationAnchor { public var position:Vec2; public var name:String; public static const DEFAULT:Vec2 = new Vec2(0, 0); function AnimationAnchor(_arg1:String, _arg2:Number, _arg3:Number){ position = new Vec2(0, 0); super(); name = _arg1; position.x = _arg2; position.y = _arg3; } } }//package animation
Section 5
//AnimationConversionTool (animation.AnimationConversionTool) package animation { import flash.events.*; import flash.display.*; import managers.resources.*; import debug.*; public final class AnimationConversionTool extends Sprite { private var _movieClip:MovieClip; private var _sceneIndex:int; private var _animatedObjectData:AnimatedObjectData; private var _resource:Resource; private var id:int;// = 0 private static var uid:int = 0; private static var lockFrame:int = 0; public function AnimationConversionTool(_arg1:MovieClip, _arg2:Resource){ id = ++uid; _arg1.stop(); this.visible = false; _resource = _arg2; _animatedObjectData = new AnimatedObjectData(); _movieClip = _arg1; _sceneIndex = 0; this.addChild(_movieClip); this.addEventListener(Event.ADDED_TO_STAGE, addedToStage); } private function addedToStage(_arg1:Event):void{ this.removeEventListener(Event.ADDED_TO_STAGE, addedToStage); this.stage.addEventListener(Event.ENTER_FRAME, enterFrame); } private function enterFrame(_arg1:Event):void{ var _local2:Boolean; if ((((lockFrame == 0)) || ((lockFrame == id)))){ lockFrame = id; _local2 = _animatedObjectData.createFromMovieClipArray(_resource._id, _movieClip, _sceneIndex); _sceneIndex++; if (!_local2){ _resource._loader = null; _resource._data = _animatedObjectData; _resource._isLoaded = true; _animatedObjectData.debugString = ((((("Compiled AnimatedObjectData : " + _resource._id) + " ") + _animatedObjectData) + "\n\n") + _animatedObjectData.debugString); DebugFileWriter.SaveFile((("debug/animatedObjectData_" + _resource._id) + ".txt"), _animatedObjectData.debugString); trace((("debug/animatedObjectData_" + _resource._id) + ".txt"), _animatedObjectData.debugString); this.stage.removeEventListener(Event.ENTER_FRAME, enterFrame); this.removeChild(_movieClip); this.parent.removeChild(this); _movieClip = null; _animatedObjectData = null; lockFrame = 0; }; }; } } }//package animation
Section 6
//AnimationFrame (animation.AnimationFrame) package animation { import physic.*; final class AnimationFrame { private var anchorList:Array; public var duration:Number;// = 0 public var startTime:Number;// = 0 public var imageIndex:int;// = 0 public var label:String;// = null function AnimationFrame(){ anchorList = new Array(); super(); } public function Debug_GetAnchorList():Array{ var _local2:AnimationAnchor; var _local1:Array = []; for each (_local2 in anchorList) { _local1.push(_local2.name); }; return (_local1); } public function hasAnchor(_arg1:String):Boolean{ var _local2:AnimationAnchor; for each (_local2 in anchorList) { if (_local2.name == _arg1){ return (true); }; }; return (false); } public function getAnchor(_arg1:String):Vec2{ var _local2:AnimationAnchor; for each (_local2 in anchorList) { if (_local2.name == _arg1){ return (_local2.position); }; }; return (AnimationAnchor.DEFAULT); } public function toString():String{ var _local2:AnimationAnchor; var _local1:String = ((((((("FRAME startTime=" + Math.round((startTime * 1000))) + " duration=") + Math.round((duration * 1000))) + " imageIndex=") + imageIndex) + " label=") + label); for each (_local2 in anchorList) { _local1 = (_local1 + ((((((" [" + _local2.name) + " ") + Math.round(_local2.position.x)) + ",") + Math.round(_local2.position.y)) + "]")); }; return (_local1); } public function compareAnchors(_arg1:AnimationFrame):Boolean{ var _local2:AnimationAnchor; if (this.anchorList.length != _arg1.anchorList.length){ return (false); }; for each (_local2 in _arg1.anchorList) { if (((!((this.getAnchor(_local2.name).x == _local2.position.x))) || (!((this.getAnchor(_local2.name).y == _local2.position.y))))){ return (false); }; }; return (true); } public function addAnchor(_arg1:AnimationAnchor):void{ anchorList.push(_arg1); } } }//package animation
Section 7
//AnimationImage (animation.AnimationImage) package animation { import flash.display.*; import physic.*; public final class AnimationImage { public var bitmapData:BitmapData; public var offset:Vec2; public function AnimationImage(_arg1:BitmapData, _arg2:Vec2){ bitmapData = _arg1; offset = _arg2; } public function destroy():void{ bitmapData.dispose(); bitmapData = null; offset = null; } } }//package animation
Section 8
//IAnimatedObject (animation.IAnimatedObject) package animation { import physic.*; public interface IAnimatedObject extends IDisplayableObject { function getCurrentAnimation():String; function isPlaying():Boolean; function playAnim(_arg1:String, _arg2:Boolean=true):void; function update(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void; function getAnchor(_arg1:String):Vec2; function playAnimIndex(_arg1:int, _arg2:Boolean=true):void; function hasAnimNamed(_arg1:String):Boolean; function hasAnchor(_arg1:String):Boolean; function getCurrentTime():Number; function stopAnim():void; function setSpeedFactor(_arg1:Number):void; function setTriggerFunction(_arg1:Function=null, _arg2:Object=null):void; } }//package animation
Section 9
//IDisplayableObject (animation.IDisplayableObject) package animation { import physic.*; public interface IDisplayableObject { function getData():String; function setMirror(_arg1:Boolean):void; function set rotation(_arg1:Number):void; function set visible(_arg1:Boolean):void; function get rotation():Number; function get y():Number; function set scaleX(_arg1:Number):void; function setData(_arg1:String, _arg2:Vec2=null):void; function set scaleY(_arg1:Number):void; function get scaleX():Number; function get scaleY():Number; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set scale(_arg1:Number):void; function getMirror():Boolean; function get x():Number; function get visible():Boolean; function destroy():void; function set alpha(_arg1:Number):void; function get alpha():Number; } }//package animation
Section 10
//Image (animation.Image) package animation { import flash.display.*; import physic.*; import flash.geom.*; import managers.resources.*; public final class Image extends Bitmap implements IDisplayableObject { private var _position:Vec2; private var _data:ImageData;// = null private var _cosValue:Number;// = 1 public var fff:Boolean;// = true private var _offset:Vec2; private var _dataName:String;// = "" private var _sinValue:Number;// = 0 private var _mirror:Boolean;// = false private var _scaleX:Number;// = 1 private var _scaleY:Number;// = 1 public function Image(_arg1:String="", _arg2:Vec2=null){ _position = new Vec2(); _offset = new Vec2(); super(); setData(_arg1, _arg2); } override public function get y():Number{ return (_position.y); } override public function set y(_arg1:Number):void{ _position.y = _arg1; update(); } public function debugShowMask(_arg1:int=0):void{ var _local3:int; var _local4:uint; var _local2:int; while (_local2 < _data.bitmapData.height) { _local3 = 0; while (_local3 < _data.bitmapData.width) { _local4 = _data.bitmapData.getPixel32(_local3, _local2); _data.bitmapData.setPixel32(_local3, _local2, ((((_local4 >> 24) & 0xFF))>_arg1) ? 4294967295 : 0); _local3++; }; _local2++; }; } override public function set bitmapData(_arg1:BitmapData):void{ throw ("You can't set bitmapData directly, use Image.setData()"); } override public function set rotation(_arg1:Number):void{ super.rotation = _arg1; var _local2:Number = ((super.rotation * Math.PI) / 180); _cosValue = Math.cos(_local2); _sinValue = Math.sin(_local2); update(); } public function set scale(_arg1:Number):void{ _scaleX = _arg1; _scaleY = _arg1; update(); } public function setOffset(_arg1:Vec2):void{ _offset.x = _arg1.x; _offset.y = _arg1.y; update(); } override public function set scaleX(_arg1:Number):void{ _scaleX = _arg1; update(); } override public function set scaleY(_arg1:Number):void{ _scaleY = _arg1; update(); } public function getData():String{ return (_dataName); } public function setData(_arg1:String, _arg2:Vec2=null):void{ if (((_arg1) && (!((_arg1 == ""))))){ if (_arg1 == _dataName){ return; }; _data = (ResourceManager.getInstance().getResource(_arg1) as ImageData); if (_data){ if (_arg2){ _offset.x = _arg2.x; _offset.y = _arg2.y; } else { _offset.x = (-(_data.bitmapData.width) / 2); _offset.y = (-(_data.bitmapData.height) / 2); }; _dataName = _arg1; super.bitmapData = _data.bitmapData; update(); return; } else { trace("Invalid Image Data:", _arg1); }; }; super.bitmapData = null; _data = null; _dataName = ""; } override public function get height():Number{ return (super.height); } public function getMirror():Boolean{ return (_mirror); } public function hitPoint(_arg1:Vec2, _arg2:int=0):Boolean{ var _local3:Vec2; var _local4:Vec2; var _local5:Matrix; var _local6:Point; var _local7:uint; if (_data){ _local3 = new Vec2(); _local4 = new Vec2(); _local5 = this.transform.concatenatedMatrix.clone(); _local5.invert(); _local6 = _local5.transformPoint(new Point(_arg1.x, _arg1.y)); _local4.x = (_local6.x / _data.bitmapData.width); _local4.y = (_local6.y / _data.bitmapData.height); if ((((((((_local4.x < 0)) || ((_local4.x > 1)))) || ((_local4.y < 0)))) || ((_local4.y > 1)))){ return (false); }; _local3.x = (_local4.x * _data.bitmapData.width); _local3.y = (_local4.y * _data.bitmapData.height); _local7 = _data.bitmapData.getPixel32(_local3.x, _local3.y); return ((((_local7 >> 24) & 0xFF) > _arg2)); }; return (false); } public function setMirror(_arg1:Boolean):void{ _mirror = _arg1; update(); } override public function get width():Number{ return (super.width); } private function update():void{ if (_mirror){ super.x = (_position.x - (((-(_offset.x) * _scaleX) * _cosValue) - ((_offset.y * _scaleY) * _sinValue))); super.y = (_position.y + (((_offset.y * _scaleY) * _cosValue) + ((-(_offset.x) * _scaleX) * _sinValue))); super.scaleX = -(_scaleX); } else { super.x = (_position.x + (((_offset.x * _scaleX) * _cosValue) - ((_offset.y * _scaleY) * _sinValue))); super.y = (_position.y + (((_offset.y * _scaleY) * _cosValue) + ((_offset.x * _scaleX) * _sinValue))); super.scaleX = _scaleX; }; super.scaleY = _scaleY; } override public function set visible(_arg1:Boolean):void{ super.visible = _arg1; } override public function set x(_arg1:Number):void{ _position.x = _arg1; update(); } override public function get x():Number{ return (_position.x); } public function destroy():void{ super.bitmapData = null; _data = null; _dataName = ""; } } }//package animation
Section 11
//ImageConversionTool (animation.ImageConversionTool) package animation { import flash.events.*; import flash.display.*; import managers.resources.*; public final class ImageConversionTool extends Sprite { private var _imageData:ImageData;// = null private var _resource:Resource; private var _bitmap:Bitmap;// = null public function ImageConversionTool(_arg1:Bitmap, _arg2:Resource){ this.visible = false; _resource = _arg2; _imageData = new ImageData(); _bitmap = _arg1; this.addEventListener(Event.ADDED_TO_STAGE, addedToStage); } private function enterFrame(_arg1:Event):void{ _imageData.bitmapData = _bitmap.bitmapData; if (_resource._loader){ (_resource._loader as Loader).unload(); _resource._loader = null; }; _resource._data = _imageData; _resource._isLoaded = true; this.stage.removeEventListener(Event.ENTER_FRAME, enterFrame); this.parent.removeChild(this); _imageData = null; } private function addedToStage(_arg1:Event):void{ this.removeEventListener(Event.ADDED_TO_STAGE, addedToStage); this.stage.addEventListener(Event.ENTER_FRAME, enterFrame); } } }//package animation
Section 12
//ImageData (animation.ImageData) package animation { import flash.display.*; import managers.resources.*; final class ImageData implements ICompiledResource { public var bitmapData:BitmapData;// = null public function getBitmapWidth():int{ return ((bitmapData) ? bitmapData.width : 0); } public function getBitmapHeight():int{ return ((bitmapData) ? bitmapData.height : 0); } public function destroy():void{ bitmapData.dispose(); bitmapData = null; } } }//package animation
Section 13
//SwfAnimation (animation.SwfAnimation) package animation { import flash.display.*; import physic.*; import debug.*; public final class SwfAnimation { public var name:String;// = "" public var frameArray:Array; public var totalFrames:int;// = 0 public var duration:Number;// = 0 public static var debugExcludedList:Array = []; public function SwfAnimation(_arg1:String, _arg2:MovieClip, _arg3:int, _arg4:String, _arg5:SwfObjectData, _arg6:Array){ var _local7:Number; var _local16:AnimationFrame; var _local17:AnimationFrame; var _local18:FrameLabel; var _local19:int; var _local20:MovieClip; var _local21:String; frameArray = new Array(); super(); _local7 = _arg2.loaderInfo.frameRate; var _local8:Number = 0; var _local9:Number = 0; var _local10:Number = 0; var _local11:int; var _local12:String; var _local13:Number = (1 / _local7); var _local14:int; var _local15:int; while (_local15 < _arg3) { _local17 = new AnimationFrame(); frameArray.push(_local17); _local17.startTime = _local8; _local17.duration = _local13; _local17.imageIndex = (_local15 + 1); for each (_local18 in _arg2.currentLabels) { if ((_local18.frame - 1) == _local15){ _local17.label = _local18.name; }; }; _local19 = 0; while (_local19 < _arg2.numChildren) { _local20 = (_arg2.getChildAt(_local19) as MovieClip); if (_local20 != null){ if (validateName(_arg6, _local20.name)){ _local17.addAnchor(new AnimationAnchor(_local20.name, _local20.x, _local20.y)); } else { _local21 = "instance"; if (_local20.name.indexOf(_local21) < 0){ if (debugExcludedList.indexOf(_local20.name) < 0){ debugExcludedList.push(_local20.name); }; }; }; }; _local19++; }; _local8 = (_local8 + _local13); if ((_local15 + 1) < _arg3){ _arg2.nextFrame(); }; _local15++; }; duration = _local8; totalFrames = frameArray.length; name = _arg4; _arg5.debugString = (_arg5.debugString + (((((("\n ANIMATION name[" + name) + "] totalFrames[") + totalFrames) + "] duration[") + Math.round((duration * 1000))) + "]\n")); for each (_local16 in frameArray) { _arg5.debugString = (_arg5.debugString + ((" " + _local16) + "\n")); }; frameArray.reverse(); } public function Debug_GetTriggerList():Array{ var _local1:Array = []; var _local2:int = (frameArray.length - 1); while (_local2 >= 0) { if (((frameArray[_local2].label) && (!((frameArray[_local2].label == ""))))){ _local1.push((((frameArray[_local2].label + " [Frame ") + ((frameArray.length - _local2) - 1)) + "]")); }; _local2--; }; return (_local1); } private function validateName(_arg1:Array, _arg2:String):Boolean{ var _local3:String; if (_arg1 == null){ _local3 = "instance"; if (_arg2.indexOf(_local3) >= 0){ return (false); }; return (true); }; return ((_arg1.indexOf(_arg2) >= 0)); } private function getFrameIndex(_arg1:Number):int{ var _local2:int; while (_local2 < frameArray.length) { if (frameArray[_local2].startTime <= _arg1){ return (_local2); }; _local2++; }; return (-1); } public function checkTriggers(_arg1:SwfObject, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object):void{ var _local7:int; var _local8:int; if (_arg2 >= duration){ _local7 = frameArray.length; _local8 = 0; } else { _local7 = (_arg4) ? frameArray.length : getFrameIndex(numberModulo((_arg3 - _arg2), duration)); _local8 = getFrameIndex(_arg3); }; var _local9:int = _local7; if (_local9 != _local8){ do { _local9 = (((_local9 - 1) + frameArray.length) % frameArray.length); if (frameArray[_local9].label != null){ _arg5(_arg1, this.name, frameArray[_local9].label, _arg6); }; } while (_local9 != _local8); }; } public function Debug_GetTimeFromFrame(_arg1:int):Number{ if ((((_arg1 < frameArray.length)) && ((_arg1 > 0)))){ return (frameArray[((frameArray.length - _arg1) - 1)].startTime); }; return (0); } public function getImage(_arg1:Number):int{ return (getFrame(_arg1).imageIndex); } public function getDuration():Number{ return (duration); } public function Debug_GetTrigger(_arg1:Number):String{ return (getFrame(_arg1).label); } public function hasAnchor(_arg1:String, _arg2:Number):Boolean{ return (getFrame(_arg2).hasAnchor(_arg1)); } public function getAnchor(_arg1:String, _arg2:Number):Vec2{ return (getFrame(_arg2).getAnchor(_arg1)); } private function getFrame(_arg1:Number):AnimationFrame{ var _local2:AnimationFrame; for each (_local2 in frameArray) { if (_local2.startTime <= _arg1){ return (_local2); }; }; return (null); } public function Debug_GetAnchorListByFrame(_arg1:int):Array{ if ((((_arg1 < 0)) || ((_arg1 >= frameArray.length)))){ return ([]); }; return (frameArray[_arg1].Debug_GetAnchorList()); } public function destroy():void{ } private function getOrigin(_arg1:MovieClip):void{ var _local5:MovieClip; var _local2 = ""; _local2 = (_local2 + (("MC num [" + _arg1.numChildren) + "] ")); var _local3:Boolean; _local2 = (_local2 + "["); var _local4:int; while (_local4 < _arg1.numChildren) { _local5 = (_arg1.getChildAt(_local4) as MovieClip); if (_local5 != null){ if (!_local3){ _local2 = (_local2 + ", "); }; _local2 = (_local2 + (((((_local5.name + "(") + _local5.x) + ",") + _local5.y) + ")")); _local3 = false; }; _local4++; }; _local2 = (_local2 + "]"); Debug.trace(_local2); } public function Debug_GetAnchorList(_arg1:Number):Array{ return (getFrame(_arg1).Debug_GetAnchorList()); } private function numberModulo(_arg1:Number, _arg2:Number):Number{ while (_arg1 < 0) { _arg1 = (_arg1 + _arg2); }; while (_arg1 >= _arg2) { _arg1 = (_arg1 - _arg2); }; return (_arg1); } } }//package animation
Section 14
//SwfAnimationConversionTool (animation.SwfAnimationConversionTool) package animation { import flash.events.*; import flash.display.*; import managers.resources.*; import debug.*; public final class SwfAnimationConversionTool extends Sprite { private var _movieClip:MovieClip; private var _sceneIndex:int; private var _swfObjectData:SwfObjectData; private var _resource:Resource; private var id:int;// = 0 private static const DISABLE_LOCK:Boolean = true; private static var uid:int = 0; private static var lockFrame:int = 0; public static var validAnchorNameList:Array = null; public function SwfAnimationConversionTool(_arg1:MovieClip, _arg2:Resource){ id = ++uid; _arg1.stop(); this.visible = false; _resource = _arg2; _swfObjectData = new SwfObjectData(); _sceneIndex = 0; _movieClip = _arg1; this.addChild(_movieClip); this.addEventListener(Event.ADDED_TO_STAGE, addedToStage); } private function addedToStage(_arg1:Event):void{ this.removeEventListener(Event.ADDED_TO_STAGE, addedToStage); this.stage.addEventListener(Event.ENTER_FRAME, enterFrame); } private function enterFrame(_arg1:Event):void{ var _local2:Boolean; if ((((((lockFrame == 0)) || ((lockFrame == id)))) || (DISABLE_LOCK))){ lockFrame = id; _local2 = _swfObjectData.createFromMovieClipArray(_resource._id, _movieClip, _sceneIndex, validAnchorNameList); _sceneIndex++; if (!_local2){ _resource._loader = null; _resource._data = _swfObjectData; _resource._isLoaded = true; _swfObjectData.debugString = ((((("Compiled SwfObjectData : " + _resource._id) + " ") + _swfObjectData) + "\n\n") + _swfObjectData.debugString); DebugFileWriter.SaveFile((("debug/swfObjectData_" + _resource._id) + ".txt"), _swfObjectData.debugString); this.stage.removeEventListener(Event.ENTER_FRAME, enterFrame); this.removeChild(_movieClip); this.parent.removeChild(this); _movieClip = null; _swfObjectData = null; lockFrame = 0; }; }; } } }//package animation
Section 15
//SwfObject (animation.SwfObject) package animation { import flash.display.*; import physic.*; import managers.resources.*; public final class SwfObject extends Sprite implements IAnimatedObject { private var bNeedUpdate:Boolean;// = false private var _bLoop:Boolean;// = false private var _cloneData:MovieClip; private var position:Vec2; private var currentAnim:String;// = "" private var bJustStarted:Boolean;// = false private var currentSpeedFactor:Number;// = 1 private var bAnimIsPlaying:Boolean;// = false private var _scaleY:Number;// = 1 private var _scaleX:Number;// = 1 private var _data:SwfObjectData;// = null private var _cosValue:Number;// = 1 private var triggerFunction:Function;// = null private var _dataName:String;// = "" private var triggerParam:Object;// = null private var delta:Vec2; private var mirror:Boolean;// = false private var _sinValue:Number;// = 0 private var currentTime:Number;// = 0 public static var useClones:Boolean = true; public function SwfObject(_arg1:String=""){ position = Vec2.ZERO; delta = new Vec2(); super(); setData(_arg1); } private function numberModulo(_arg1:Number, _arg2:Number):Number{ while (_arg1 > _arg2) { _arg1 = (_arg1 - _arg2); }; return (_arg1); } public function getData():String{ return (_dataName); } public function setLoop(_arg1:Boolean=true):void{ if (_arg1){ bAnimIsPlaying = true; }; _bLoop = _arg1; bNeedUpdate = true; } public function setData(_arg1:String, _arg2:Vec2=null):void{ if (((((_data) && (_cloneData))) && (this.contains(_cloneData)))){ this.removeChild(_cloneData); }; _data = null; _dataName = ((_arg1)==null) ? "" : _arg1; playAnimIndex(0, false); } public function hasAnimNamed(_arg1:String):Boolean{ if (dataIsBinded()){ return (_data.hasAnimNamed(_arg1)); }; return (false); } private function dataIsBinded():Boolean{ if (((!(_data)) && (!((_dataName == ""))))){ _data = (ResourceManager.getInstance().getResource(_dataName) as SwfObjectData); if (_data){ if (useClones){ _cloneData = new ((Object(_data.data).constructor as Class)); } else { _cloneData = _data.data; }; this.addChild(_cloneData); }; }; return (!((_data == null))); } public function stopAnim():void{ bAnimIsPlaying = false; } override public function get scaleY():Number{ return (_scaleY); } public function playIdleAnim(_arg1:String):void{ playAnim(_arg1, true); if (dataIsBinded()){ currentTime = (_data.getAnimDuration(currentAnim) * Math.random()); }; } public function getRelativeDirection(_arg1:Vec2, _arg2:Boolean=false):Vec2{ if (((mirror) && (!(_arg2)))){ return (new Vec2(-(((_arg1.x * _cosValue) + (_arg1.y * _sinValue))), ((_arg1.y * _cosValue) - (_arg1.x * _sinValue)))); }; return (new Vec2(((_arg1.x * _cosValue) - (_arg1.y * _sinValue)), ((_arg1.y * _cosValue) + (_arg1.x * _sinValue)))); } public function playAnim(_arg1:String, _arg2:Boolean=true):void{ if (((!(bAnimIsPlaying)) || (!((currentAnim == _arg1))))){ currentAnim = _arg1; currentTime = 0; bJustStarted = true; bAnimIsPlaying = true; } else { if (!_arg2){ currentTime = 0; }; }; _bLoop = _arg2; bNeedUpdate = true; } public function setTime(_arg1:Number):void{ currentTime = _arg1; bNeedUpdate = true; } public function playAnimIndex(_arg1:int, _arg2:Boolean=true):void{ if (dataIsBinded()){ playAnim(_data.getAnimNameByIndex(_arg1), _arg2); }; } public function Debug_SetAnim(_arg1:String):void{ currentAnim = _arg1; currentTime = 0; bJustStarted = true; bNeedUpdate = true; } public function Debug_GetCurrentCurrentTime():Number{ return (currentTime); } override public function get x():Number{ return (position.x); } override public function get scaleX():Number{ return (_scaleX); } override public function get y():Number{ return (position.y); } public function Debug_GetCurrentAnimationName():String{ return (currentAnim); } public function getCurrentAnimation():String{ return (currentAnim); } public function set scale(_arg1:Number):void{ _scaleX = _arg1; _scaleY = _arg1; bNeedUpdate = true; } override public function set scaleX(_arg1:Number):void{ _scaleX = _arg1; bNeedUpdate = true; } public function isPlaying():Boolean{ return (bAnimIsPlaying); } override public function set scaleY(_arg1:Number):void{ _scaleY = _arg1; bNeedUpdate = true; } public function getAnchor(_arg1:String):Vec2{ var _local2:Vec2; var _local3:Vec2; if (dataIsBinded()){ _local2 = _data.getAnchor("origin", currentAnim, currentTime); _local3 = _data.getAnchor(_arg1, currentAnim, currentTime).clone(); if (mirror){ delta.x = ((_local2.x - _local3.x) * _scaleX); } else { delta.x = ((_local3.x - _local2.x) * _scaleX); }; delta.y = ((_local3.y - _local2.y) * _scaleY); _local3.x = (position.x + ((delta.x * _cosValue) - (delta.y * _sinValue))); _local3.y = (position.y + ((delta.y * _cosValue) + (delta.x * _sinValue))); return (_local3); }; return (null); } public function setSpeedFactor(_arg1:Number):void{ currentSpeedFactor = _arg1; } public function Debug_GetCurrentFrame():int{ if (_data){ return (_data.getSwfFrame(currentAnim, currentTime)); }; return (0); } public function setMirror(_arg1:Boolean):void{ mirror = _arg1; bNeedUpdate = true; } public function getMirror():Boolean{ return (mirror); } public function update(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local4:Boolean; var _local5:Number; var _local6:Number; var _local7:Vec2; var _local8:Vec2; if (((dataIsBinded()) && (bNeedUpdate))){ _local4 = false; if (bAnimIsPlaying){ _local4 = true; _local5 = _data.getAnimDuration(currentAnim); if (_local5 == 0){ return; }; _local6 = (_arg1 * currentSpeedFactor); currentTime = (currentTime + _local6); if (_bLoop){ currentTime = numberModulo(currentTime, _local5); } else { if (currentTime > _local5){ currentTime = _local5; bNeedUpdate = false; bAnimIsPlaying = false; }; }; }; if (!_arg2){ _cloneData.gotoAndStop(_data.getSwfFrame(currentAnim, currentTime), currentAnim); }; _local7 = _data.getOffset(currentAnim, currentTime); _local8 = _data.getAnchor("origin", currentAnim, currentTime); if (mirror){ delta.x = ((_local8.x - _local7.x) * _scaleX); super.scaleX = -(_scaleX); } else { delta.x = ((_local7.x - _local8.x) * _scaleX); super.scaleX = _scaleX; }; delta.y = ((_local7.y - _local8.y) * _scaleY); super.scaleY = _scaleY; super.x = (position.x + ((delta.x * _cosValue) - (delta.y * _sinValue))); super.y = (position.y + ((delta.y * _cosValue) + (delta.x * _sinValue))); if (!_arg3){ if (((!((triggerFunction == null))) && (_local4))){ _data.checkTriggers(this, currentAnim, _local6, currentTime, bJustStarted, triggerFunction, triggerParam); }; }; bJustStarted = false; }; } public function Debug_SetCurrentFrame(_arg1:int):void{ if (_data){ currentTime = _data.Debug_GetTimeFromFrame(currentAnim, _arg1); }; } public function getCurrentTime():Number{ return (currentTime); } override public function set visible(_arg1:Boolean):void{ super.visible = _arg1; bNeedUpdate = true; } public function setTriggerFunction(_arg1:Function=null, _arg2:Object=null):void{ triggerFunction = _arg1; triggerParam = _arg2; } public function hasAnchor(_arg1:String):Boolean{ if (dataIsBinded()){ return (_data.hasAnchor(_arg1, currentAnim, currentTime)); }; return (false); } override public function set y(_arg1:Number):void{ position.y = _arg1; bNeedUpdate = true; } override public function set x(_arg1:Number):void{ position.x = _arg1; bNeedUpdate = true; } public function destroy():void{ _dataName = ""; _data = null; while (this.numChildren > 0) { this.removeChildAt(0); }; } override public function set rotation(_arg1:Number):void{ super.rotation = _arg1; var _local2:Number = ((super.rotation * Math.PI) / 180); _cosValue = Math.cos(_local2); _sinValue = Math.sin(_local2); bNeedUpdate = true; } public static function stopAllRecursive(_arg1:DisplayObject):void{ var _local3:int; if ((_arg1 is DisplayObjectContainer)){ if ((_arg1 is MovieClip)){ (_arg1 as MovieClip).stop(); }; _local3 = 0; while (_local3 < (_arg1 as DisplayObjectContainer).numChildren) { arguments.callee((_arg1 as DisplayObjectContainer).getChildAt(_local3)); _local3++; }; }; } public static function updateAnimationRecursive(_arg1:DisplayObject, _arg2:Number):void{ var _local4:int; if ((_arg1 is SwfObject)){ (_arg1 as SwfObject).update(_arg2); } else { if ((_arg1 is DisplayObjectContainer)){ _local4 = 0; while (_local4 < (_arg1 as DisplayObjectContainer).numChildren) { arguments.callee((_arg1 as DisplayObjectContainer).getChildAt(_local4), _arg2); _local4++; }; }; }; } public static function removeAllFrameScriptRecursive(_arg1:DisplayObject):void{ var _local3:int; var _local4:MovieClip; var _local5:Scene; if ((_arg1 is DisplayObjectContainer)){ if ((_arg1 is MovieClip)){ _local4 = (_arg1 as MovieClip); for each (_local5 in _local4.scenes) { _local4.gotoAndStop(0, _local5.name); _local3 = 0; while (_local3 < _local4.totalFrames) { _local4.addFrameScript(_local3, null); _local3++; }; }; }; _local3 = 0; while (_local3 < (_arg1 as DisplayObjectContainer).numChildren) { arguments.callee((_arg1 as DisplayObjectContainer).getChildAt(_local3)); _local3++; }; }; } } }//package animation
Section 16
//SwfObjectData (animation.SwfObjectData) package animation { import flash.display.*; import physic.*; import managers.resources.*; import animation.*; class SwfObjectData implements ICompiledResource { private var animationList:Array; public var debugString:String;// = "" public var data:MovieClip; function SwfObjectData(){ animationList = new Array(); super(); } public function getSwfFrame(_arg1:String, _arg2:Number):int{ var _local3:SwfAnimation = getAnimation(_arg1); if (_local3){ return (_local3.getImage(_arg2)); }; return (0); } public function getOffset(_arg1:String, _arg2:Number):Vec2{ var _local3:SwfAnimation = getAnimation(_arg1); if (_local3){ return (Vec2.ZERO); }; return (AnimationAnchor.DEFAULT); } public function Debug_GetTimeFromFrame(_arg1:String, _arg2:int):Number{ var _local3:SwfAnimation = getAnimation(_arg1); if (_local3){ return (_local3.Debug_GetTimeFromFrame(_arg2)); }; return (0); } private function getAnimation(_arg1:String):SwfAnimation{ var _local2:SwfAnimation; for each (_local2 in animationList) { if (_local2.name == _arg1){ return (_local2); }; }; return (null); } public function deserialization():void{ } public function destroy():void{ while (animationList.length > 0) { (animationList.pop() as SwfAnimation).destroy(); }; } public function Debug_GetAnchorListByFrame(_arg1:String, _arg2:int):Array{ var _local3:SwfAnimation = getAnimation(_arg1); if (_local3){ return (_local3.Debug_GetAnchorListByFrame(_arg2)); }; return ([]); } public function checkTriggers(_arg1:SwfObject, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Boolean, _arg6:Function, _arg7:Object):void{ var _local8:SwfAnimation; if (_arg6 != null){ _local8 = getAnimation(_arg2); if (_local8){ _local8.checkTriggers(_arg1, _arg3, _arg4, _arg5, _arg6, _arg7); }; }; } public function Debug_GetFrameCount(_arg1:String):int{ var _local2:SwfAnimation = getAnimation(_arg1); if (_local2){ return (_local2.totalFrames); }; return (0); } public function getAnimNameByIndex(_arg1:int):String{ if ((((_arg1 >= 0)) && ((_arg1 < animationList.length)))){ return ((animationList[_arg1] as SwfAnimation).name); }; return (""); } public function getAnchor(_arg1:String, _arg2:String, _arg3:Number):Vec2{ var _local4:SwfAnimation = getAnimation(_arg2); if (_local4){ return (_local4.getAnchor(_arg1, _arg3)); }; return (AnimationAnchor.DEFAULT); } public function Debug_GetTriggerList(_arg1:String):Array{ var _local2:SwfAnimation = getAnimation(_arg1); if (_local2){ return (_local2.Debug_GetTriggerList()); }; return ([]); } public function hasAnimNamed(_arg1:String):Boolean{ var _local2:SwfAnimation; for each (_local2 in animationList) { if (_local2.name == _arg1){ return (true); }; }; return (false); } public function hasAnchor(_arg1:String, _arg2:String, _arg3:Number):Boolean{ var _local4:SwfAnimation = getAnimation(_arg2); if (_local4){ return (_local4.hasAnchor(_arg1, _arg3)); }; return (false); } public function serialization():void{ } public function toString():String{ var _local3:SwfAnimation; var _local1:int; var _local2 = ""; for each (_local3 in animationList) { _local2 = (_local2 + (((_local3.name + "[") + _local3.totalFrames) + "] ")); _local1 = (_local1 + _local3.totalFrames); }; _local2 = (_local2 + (("\n TOTAL IMAGE COUNT = [" + _local1) + "] ")); return (_local2); } public function Debug_GetTrigger(_arg1:String, _arg2:Number):String{ var _local3:SwfAnimation = getAnimation(_arg1); if (_local3){ return (_local3.Debug_GetTrigger(_arg2)); }; return (""); } public function getAnimDuration(_arg1:String):Number{ var _local2:SwfAnimation = getAnimation(_arg1); if (_local2){ return (_local2.getDuration()); }; return (0); } public function Debug_GetAnchorList(_arg1:String, _arg2:Number):Array{ var _local3:SwfAnimation = getAnimation(_arg1); if (_local3){ return (_local3.Debug_GetAnchorList(_arg2)); }; return ([]); } public function createFromMovieClipArray(_arg1:String, _arg2:DisplayObject, _arg3:int, _arg4:Array=null):Boolean{ data = (_arg2 as MovieClip); if (!((!((_arg2 == null))) && ((_arg2 is MovieClip)))){ return (false); }; var _local5:MovieClip = (_arg2 as MovieClip); if (_arg3 >= _local5.scenes.length){ return (false); }; _local5.gotoAndStop(1, _local5.scenes[_arg3].name); var _local6:Scene = _local5.currentScene; var _local7:SwfAnimation = new SwfAnimation(_arg1, _local5, _local6.numFrames, _local6.name, this, _arg4); animationList.push(_local7); _local5.nextScene(); _local5.stop(); return (true); } } }//package animation
Section 17
//HMAC (com.hurlant.crypto.hash.HMAC) package com.hurlant.crypto.hash { import flash.utils.*; public class HMAC { private var bits:uint; private var hash:IHash; public function HMAC(_arg1:IHash, _arg2:uint=0){ this.hash = _arg1; this.bits = _arg2; } public function getHashSize():uint{ if (bits != 0){ return ((bits / 8)); }; return (hash.getHashSize()); } public function dispose():void{ hash = null; bits = 0; } public function compute(_arg1:ByteArray, _arg2:ByteArray):ByteArray{ var _local3:ByteArray; var _local4:ByteArray; var _local5:ByteArray; var _local6:uint; var _local7:ByteArray; var _local8:ByteArray; if (_arg1.length > hash.getInputSize()){ _local3 = hash.hash(_arg1); } else { _local3 = new ByteArray(); _local3.writeBytes(_arg1); }; while (_local3.length < hash.getInputSize()) { _local3[_local3.length] = 0; }; _local4 = new ByteArray(); _local5 = new ByteArray(); _local6 = 0; while (_local6 < _local3.length) { _local4[_local6] = (_local3[_local6] ^ 54); _local5[_local6] = (_local3[_local6] ^ 92); _local6++; }; _local4.position = _local3.length; _local4.writeBytes(_arg2); _local7 = hash.hash(_local4); _local5.position = _local3.length; _local5.writeBytes(_local7); _local8 = hash.hash(_local5); if ((((bits > 0)) && ((bits < (8 * _local8.length))))){ _local8.length = (bits / 8); }; return (_local8); } public function toString():String{ return ((("hmac-" + ((bits > 0)) ? (bits + "-") : "") + hash.toString())); } } }//package com.hurlant.crypto.hash
Section 18
//IHash (com.hurlant.crypto.hash.IHash) package com.hurlant.crypto.hash { import flash.utils.*; public interface IHash { function toString():String; function getHashSize():uint; function getInputSize():uint; function hash(_arg1:ByteArray):ByteArray; } }//package com.hurlant.crypto.hash
Section 19
//MD2 (com.hurlant.crypto.hash.MD2) package com.hurlant.crypto.hash { import flash.utils.*; public class MD2 implements IHash { public static const HASH_SIZE:int = 16; private static const S:Array = [41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, 138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, 39, 53, 62, 204, 231, 191, 247, 151, 3, 0xFF, 25, 48, 179, 72, 165, 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210, 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, 203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228, 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, 31, 26, 219, 153, 141, 51, 159, 17, 131, 20]; public function getHashSize():uint{ return (HASH_SIZE); } public function toString():String{ return ("md2"); } public function getInputSize():uint{ return (16); } public function hash(_arg1:ByteArray):ByteArray{ var _local2:uint; var _local3:uint; var _local4:uint; var _local5:ByteArray; var _local6:uint; var _local7:ByteArray; var _local8:uint; var _local9:uint; var _local10:uint; _local2 = _arg1.length; _local3 = (((16 - (_arg1.length % 16))) || (16)); do { _arg1[_arg1.length] = _local3; } while ((_arg1.length % 16) != 0); _local4 = _arg1.length; _local5 = new ByteArray(); _local6 = 0; _local3 = 0; while (_local3 < _local4) { _local8 = 0; while (_local8 < 16) { _local6 = (_local5[_local8] = (_local5[_local8] ^ S[(_arg1[(_local3 + _local8)] ^ _local6)])); _local8++; }; _local3 = (_local3 + 16); }; _arg1.position = _arg1.length; _arg1.writeBytes(_local5); _local4 = (_local4 + 16); _local7 = new ByteArray(); _local3 = 0; while (_local3 < _local4) { _local8 = 0; while (_local8 < 16) { _local7[(32 + _local8)] = ((_local7[(16 + _local8)] = _arg1[(_local3 + _local8)]) ^ _local7[_local8]); _local8++; }; _local9 = 0; _local8 = 0; while (_local8 < 18) { _local10 = 0; while (_local10 < 48) { _local9 = (_local7[_local10] ^ S[_local9]); _local7[_local10] = _local9; _local10++; }; _local9 = ((_local9 + _local8) & 0xFF); _local8++; }; _local3 = (_local3 + 16); }; _local7.length = 16; _arg1.length = _local2; return (_local7); } } }//package com.hurlant.crypto.hash
Section 20
//MD5 (com.hurlant.crypto.hash.MD5) package com.hurlant.crypto.hash { import flash.utils.*; public class MD5 implements IHash { public static const HASH_SIZE:int = 16; private function ff(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } private function hh(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } private function cmn(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint):uint{ return ((rol((((_arg2 + _arg1) + _arg4) + _arg6), _arg5) + _arg3)); } public function getHashSize():uint{ return (HASH_SIZE); } private function ii(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } private function rol(_arg1:uint, _arg2:uint):uint{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } public function toString():String{ return ("md5"); } public function getInputSize():uint{ return (64); } private function gg(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint, _arg5:uint, _arg6:uint, _arg7:uint):uint{ return (cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public function hash(_arg1:ByteArray):ByteArray{ var _local2:uint; var _local3:String; var _local4:Array; var _local5:uint; var _local6:Array; var _local7:ByteArray; _local2 = (_arg1.length * 8); _local3 = _arg1.endian; while ((_arg1.length % 4) != 0) { _arg1[_arg1.length] = 0; }; _arg1.position = 0; _local4 = []; _arg1.endian = Endian.LITTLE_ENDIAN; _local5 = 0; while (_local5 < _arg1.length) { _local4.push(_arg1.readUnsignedInt()); _local5 = (_local5 + 4); }; _local6 = core_md5(_local4, _local2); _local7 = new ByteArray(); _local7.endian = Endian.LITTLE_ENDIAN; _local5 = 0; while (_local5 < 4) { _local7.writeUnsignedInt(_local6[_local5]); _local5++; }; _arg1.length = (_local2 / 8); _arg1.endian = _local3; return (_local7); } private function core_md5(_arg1:Array, _arg2:uint):Array{ var _local3:uint; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; _local3 = 1732584193; _local4 = 4023233417; _local5 = 2562383102; _local6 = 271733878; _local7 = 0; while (_local7 < _arg1.length) { _arg1[_local7] = ((_arg1[_local7]) || (0)); _arg1[(_local7 + 1)] = ((_arg1[(_local7 + 1)]) || (0)); _arg1[(_local7 + 2)] = ((_arg1[(_local7 + 2)]) || (0)); _arg1[(_local7 + 3)] = ((_arg1[(_local7 + 3)]) || (0)); _arg1[(_local7 + 4)] = ((_arg1[(_local7 + 4)]) || (0)); _arg1[(_local7 + 5)] = ((_arg1[(_local7 + 5)]) || (0)); _arg1[(_local7 + 6)] = ((_arg1[(_local7 + 6)]) || (0)); _arg1[(_local7 + 7)] = ((_arg1[(_local7 + 7)]) || (0)); _arg1[(_local7 + 8)] = ((_arg1[(_local7 + 8)]) || (0)); _arg1[(_local7 + 9)] = ((_arg1[(_local7 + 9)]) || (0)); _arg1[(_local7 + 10)] = ((_arg1[(_local7 + 10)]) || (0)); _arg1[(_local7 + 11)] = ((_arg1[(_local7 + 11)]) || (0)); _arg1[(_local7 + 12)] = ((_arg1[(_local7 + 12)]) || (0)); _arg1[(_local7 + 13)] = ((_arg1[(_local7 + 13)]) || (0)); _arg1[(_local7 + 14)] = ((_arg1[(_local7 + 14)]) || (0)); _arg1[(_local7 + 15)] = ((_arg1[(_local7 + 15)]) || (0)); _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, 3614090360); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, 3905402710); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, 3250441966); _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, 4118548399); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, 2821735955); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, 4249261313); _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, 2336552879); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, 4294925233); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, 2304563134); _local3 = ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, 4254626195); _local5 = ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, 2792965006); _local4 = ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, 4129170786); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, 3225465664); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, 3921069994); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, 3593408605); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, 3634488961); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, 3889429448); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, 3275163606); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, 4107603335); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, 2850285829); _local6 = gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, 4243563512); _local5 = gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, 2368359562); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, 4294588738); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, 2272392833); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, 4259657740); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, 2763975236); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, 4139469664); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, 3200236656); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, 3936430074); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, 3572445317); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, 3654602809); _local6 = hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, 3873151461); _local5 = hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, 3299628645); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, 4096336452); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, 2878612391); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, 4237533241); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, 2399980690); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, 4293915773); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, 2240044497); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, 4264355552); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, 2734768916); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, 4149444226); _local6 = ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, 3174756917); _local5 = ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, 3951481745); _local3 = (_local3 + _local8); _local4 = (_local4 + _local9); _local5 = (_local5 + _local10); _local6 = (_local6 + _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } } }//package com.hurlant.crypto.hash
Section 21
//SHA1 (com.hurlant.crypto.hash.SHA1) package com.hurlant.crypto.hash { public class SHA1 extends SHABase implements IHash { public static const HASH_SIZE:int = 20; private function ft(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint):uint{ if (_arg1 < 20){ return (((_arg2 & _arg3) | (~(_arg2) & _arg4))); }; if (_arg1 < 40){ return (((_arg2 ^ _arg3) ^ _arg4)); }; if (_arg1 < 60){ return ((((_arg2 & _arg3) | (_arg2 & _arg4)) | (_arg3 & _arg4))); }; return (((_arg2 ^ _arg3) ^ _arg4)); } private function kt(_arg1:uint):uint{ return (((_arg1)<20) ? 1518500249 : ((_arg1)<40) ? 1859775393 : ((_arg1)<60) ? 2400959708 : 3395469782); } override public function toString():String{ return ("sha1"); } override public function getHashSize():uint{ return (HASH_SIZE); } private function rol(_arg1:uint, _arg2:uint):uint{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } override protected function core(_arg1:Array, _arg2:uint):Array{ var _local3:Array; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:uint; var _local14:uint; var _local15:uint; var _local16:uint; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (24 - (_arg2 % 32)))); _arg1[((((_arg2 + 64) >> 9) << 4) + 15)] = _arg2; _local3 = []; _local4 = 1732584193; _local5 = 4023233417; _local6 = 2562383102; _local7 = 271733878; _local8 = 3285377520; _local9 = 0; while (_local9 < _arg1.length) { _local10 = _local4; _local11 = _local5; _local12 = _local6; _local13 = _local7; _local14 = _local8; _local15 = 0; while (_local15 < 80) { if (_local15 < 16){ _local3[_local15] = ((_arg1[(_local9 + _local15)]) || (0)); } else { _local3[_local15] = rol((((_local3[(_local15 - 3)] ^ _local3[(_local15 - 8)]) ^ _local3[(_local15 - 14)]) ^ _local3[(_local15 - 16)]), 1); }; _local16 = ((((rol(_local4, 5) + ft(_local15, _local5, _local6, _local7)) + _local8) + _local3[_local15]) + kt(_local15)); _local8 = _local7; _local7 = _local6; _local6 = rol(_local5, 30); _local5 = _local4; _local4 = _local16; _local15++; }; _local4 = (_local4 + _local10); _local5 = (_local5 + _local11); _local6 = (_local6 + _local12); _local7 = (_local7 + _local13); _local8 = (_local8 + _local14); _local9 = (_local9 + 16); }; return ([_local4, _local5, _local6, _local7, _local8]); } } }//package com.hurlant.crypto.hash
Section 22
//SHA224 (com.hurlant.crypto.hash.SHA224) package com.hurlant.crypto.hash { public class SHA224 extends SHA256 { public function SHA224(){ h = [3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]; } override public function getHashSize():uint{ return (28); } override public function toString():String{ return ("sha224"); } } }//package com.hurlant.crypto.hash
Section 23
//SHA256 (com.hurlant.crypto.hash.SHA256) package com.hurlant.crypto.hash { public class SHA256 extends SHABase implements IHash { protected var h:Array; protected static const k:Array = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298]; public function SHA256(){ h = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]; super(); } protected function rrol(_arg1:uint, _arg2:uint):uint{ return (((_arg1 << (32 - _arg2)) | (_arg1 >>> _arg2))); } override public function toString():String{ return ("sha256"); } override public function getHashSize():uint{ return (32); } override protected function core(_arg1:Array, _arg2:uint):Array{ var _local3:Array; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:uint; var _local14:uint; var _local15:uint; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:uint; var _local22:uint; var _local23:uint; var _local24:uint; var _local25:uint; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (24 - (_arg2 % 32)))); _arg1[((((_arg2 + 64) >> 9) << 4) + 15)] = _arg2; _local3 = []; _local4 = h[0]; _local5 = h[1]; _local6 = h[2]; _local7 = h[3]; _local8 = h[4]; _local9 = h[5]; _local10 = h[6]; _local11 = h[7]; _local12 = 0; while (_local12 < _arg1.length) { _local13 = _local4; _local14 = _local5; _local15 = _local6; _local16 = _local7; _local17 = _local8; _local18 = _local9; _local19 = _local10; _local20 = _local11; _local21 = 0; while (_local21 < 64) { if (_local21 < 16){ _local3[_local21] = ((_arg1[(_local12 + _local21)]) || (0)); } else { _local24 = ((rrol(_local3[(_local21 - 15)], 7) ^ rrol(_local3[(_local21 - 15)], 18)) ^ (_local3[(_local21 - 15)] >>> 3)); _local25 = ((rrol(_local3[(_local21 - 2)], 17) ^ rrol(_local3[(_local21 - 2)], 19)) ^ (_local3[(_local21 - 2)] >>> 10)); _local3[_local21] = (((_local3[(_local21 - 16)] + _local24) + _local3[(_local21 - 7)]) + _local25); }; _local22 = (((rrol(_local4, 2) ^ rrol(_local4, 13)) ^ rrol(_local4, 22)) + (((_local4 & _local5) ^ (_local4 & _local6)) ^ (_local5 & _local6))); _local23 = ((((_local11 + ((rrol(_local8, 6) ^ rrol(_local8, 11)) ^ rrol(_local8, 25))) + ((_local8 & _local9) ^ (_local10 & ~(_local8)))) + k[_local21]) + _local3[_local21]); _local11 = _local10; _local10 = _local9; _local9 = _local8; _local8 = (_local7 + _local23); _local7 = _local6; _local6 = _local5; _local5 = _local4; _local4 = (_local23 + _local22); _local21++; }; _local4 = (_local4 + _local13); _local5 = (_local5 + _local14); _local6 = (_local6 + _local15); _local7 = (_local7 + _local16); _local8 = (_local8 + _local17); _local9 = (_local9 + _local18); _local10 = (_local10 + _local19); _local11 = (_local11 + _local20); _local12 = (_local12 + 16); }; return ([_local4, _local5, _local6, _local7, _local8, _local9, _local10, _local11]); } } }//package com.hurlant.crypto.hash
Section 24
//SHABase (com.hurlant.crypto.hash.SHABase) package com.hurlant.crypto.hash { import flash.utils.*; public class SHABase implements IHash { public function getHashSize():uint{ return (0); } public function toString():String{ return ("sha"); } public function getInputSize():uint{ return (64); } public function hash(_arg1:ByteArray):ByteArray{ var _local2:uint; var _local3:String; var _local4:uint; var _local5:Array; var _local6:uint; var _local7:Array; var _local8:ByteArray; var _local9:uint; _local2 = _arg1.length; _local3 = _arg1.endian; _arg1.endian = Endian.BIG_ENDIAN; _local4 = (_local2 * 8); while ((_arg1.length % 4) != 0) { _arg1[_arg1.length] = 0; }; _arg1.position = 0; _local5 = []; _local6 = 0; while (_local6 < _arg1.length) { _local5.push(_arg1.readUnsignedInt()); _local6 = (_local6 + 4); }; _local7 = core(_local5, _local4); _local8 = new ByteArray(); _local9 = (getHashSize() / 4); _local6 = 0; while (_local6 < _local9) { _local8.writeUnsignedInt(_local7[_local6]); _local6++; }; _arg1.length = _local2; _arg1.endian = _local3; return (_local8); } protected function core(_arg1:Array, _arg2:uint):Array{ return (null); } } }//package com.hurlant.crypto.hash
Section 25
//ARC4 (com.hurlant.crypto.prng.ARC4) package com.hurlant.crypto.prng { import flash.utils.*; import com.hurlant.crypto.symmetric.*; import com.hurlant.util.*; public class ARC4 implements IPRNG, IStreamCipher { private const psize:uint = 0x0100; private var S:ByteArray; private var i:int;// = 0 private var j:int;// = 0 public function ARC4(_arg1:ByteArray=null){ i = 0; j = 0; super(); S = new ByteArray(); if (_arg1){ init(_arg1); }; } public function decrypt(_arg1:ByteArray):void{ encrypt(_arg1); } public function init(_arg1:ByteArray):void{ var _local2:int; var _local3:int; var _local4:int; _local2 = 0; while (_local2 < 0x0100) { S[_local2] = _local2; _local2++; }; _local3 = 0; _local2 = 0; while (_local2 < 0x0100) { _local3 = (((_local3 + S[_local2]) + _arg1[(_local2 % _arg1.length)]) & 0xFF); _local4 = S[_local2]; S[_local2] = S[_local3]; S[_local3] = _local4; _local2++; }; this.i = 0; this.j = 0; } public function dispose():void{ var _local1:uint; _local1 = 0; if (S != null){ _local1 = 0; while (_local1 < S.length) { S[_local1] = (Math.random() * 0x0100); _local1++; }; S.length = 0; S = null; }; this.i = 0; this.j = 0; Memory.gc(); } public function encrypt(_arg1:ByteArray):void{ var _local2:uint; _local2 = 0; while (_local2 < _arg1.length) { var _temp1 = _local2; _local2 = (_local2 + 1); var _local3 = _temp1; _arg1[_local3] = (_arg1[_local3] ^ next()); }; } public function next():uint{ var _local1:int; i = ((i + 1) & 0xFF); j = ((j + S[i]) & 0xFF); _local1 = S[i]; S[i] = S[j]; S[j] = _local1; return (S[((_local1 + S[i]) & 0xFF)]); } public function getBlockSize():uint{ return (1); } public function getPoolSize():uint{ return (psize); } public function toString():String{ return ("rc4"); } } }//package com.hurlant.crypto.prng
Section 26
//IPRNG (com.hurlant.crypto.prng.IPRNG) package com.hurlant.crypto.prng { import flash.utils.*; public interface IPRNG { function init(_arg1:ByteArray):void; function next():uint; function dispose():void; function getPoolSize():uint; function toString():String; } }//package com.hurlant.crypto.prng
Section 27
//Random (com.hurlant.crypto.prng.Random) package com.hurlant.crypto.prng { import flash.utils.*; import com.hurlant.util.*; import flash.system.*; import flash.text.*; public class Random { private var psize:int; private var ready:Boolean;// = false private var seeded:Boolean;// = false private var state:IPRNG; private var pool:ByteArray; private var pptr:int; public function Random(_arg1:Class=null){ var _local2:uint; ready = false; seeded = false; super(); if (_arg1 == null){ _arg1 = ARC4; }; state = (new (_arg1) as IPRNG); psize = state.getPoolSize(); pool = new ByteArray(); pptr = 0; while (pptr < psize) { _local2 = (65536 * Math.random()); var _local3 = pptr++; pool[_local3] = (_local2 >>> 8); var _local4 = pptr++; pool[_local4] = (_local2 & 0xFF); }; pptr = 0; seed(); } public function seed(_arg1:int=0):void{ if (_arg1 == 0){ _arg1 = new Date().getTime(); }; var _local2 = pptr++; pool[_local2] = (pool[_local2] ^ (_arg1 & 0xFF)); var _local3 = pptr++; pool[_local3] = (pool[_local3] ^ ((_arg1 >> 8) & 0xFF)); var _local4 = pptr++; pool[_local4] = (pool[_local4] ^ ((_arg1 >> 16) & 0xFF)); var _local5 = pptr++; pool[_local5] = (pool[_local5] ^ ((_arg1 >> 24) & 0xFF)); pptr = (pptr % psize); seeded = true; } public function toString():String{ return (("random-" + state.toString())); } public function dispose():void{ var _local1:uint; _local1 = 0; while (_local1 < pool.length) { pool[_local1] = (Math.random() * 0x0100); _local1++; }; pool.length = 0; pool = null; state.dispose(); state = null; psize = 0; pptr = 0; Memory.gc(); } public function autoSeed():void{ var _local1:ByteArray; var _local2:Array; var _local3:Font; _local1 = new ByteArray(); _local1.writeUnsignedInt(System.totalMemory); _local1.writeUTF(Capabilities.serverString); _local1.writeUnsignedInt(getTimer()); _local1.writeUnsignedInt(new Date().getTime()); _local2 = Font.enumerateFonts(true); for each (_local3 in _local2) { _local1.writeUTF(_local3.fontName); _local1.writeUTF(_local3.fontStyle); _local1.writeUTF(_local3.fontType); }; _local1.position = 0; while (_local1.bytesAvailable >= 4) { seed(_local1.readUnsignedInt()); }; } public function nextByte():int{ if (!ready){ if (!seeded){ autoSeed(); }; state.init(pool); pool.length = 0; pptr = 0; ready = true; }; return (state.next()); } public function nextBytes(_arg1:ByteArray, _arg2:int):void{ while (_arg2--) { _arg1.writeByte(nextByte()); }; } } }//package com.hurlant.crypto.prng
Section 28
//RSAKey (com.hurlant.crypto.rsa.RSAKey) package com.hurlant.crypto.rsa { import flash.utils.*; import com.hurlant.math.*; import com.hurlant.crypto.prng.*; import com.hurlant.util.*; public class RSAKey { public var dmp1:BigInteger; protected var canDecrypt:Boolean; public var d:BigInteger; public var e:int; public var dmq1:BigInteger; public var n:BigInteger; public var p:BigInteger; public var q:BigInteger; protected var canEncrypt:Boolean; public var coeff:BigInteger; public function RSAKey(_arg1:BigInteger, _arg2:int, _arg3:BigInteger=null, _arg4:BigInteger=null, _arg5:BigInteger=null, _arg6:BigInteger=null, _arg7:BigInteger=null, _arg8:BigInteger=null){ this.n = _arg1; this.e = _arg2; this.d = _arg3; this.p = _arg4; this.q = _arg5; this.dmp1 = _arg6; this.dmq1 = _arg7; this.coeff = _arg8; canEncrypt = ((!((n == null))) && (!((e == 0)))); canDecrypt = ((canEncrypt) && (!((d == null)))); } public function verify(_arg1:ByteArray, _arg2:ByteArray, _arg3:uint, _arg4:Function=null):void{ _decrypt(doPublic, _arg1, _arg2, _arg3, _arg4, 1); } public function dump():String{ var _local1:String; _local1 = ((((("N=" + n.toString(16)) + "\n") + "E=") + e.toString(16)) + "\n"); if (canDecrypt){ _local1 = (_local1 + (("D=" + d.toString(16)) + "\n")); if (((!((p == null))) && (!((q == null))))){ _local1 = (_local1 + (("P=" + p.toString(16)) + "\n")); _local1 = (_local1 + (("Q=" + q.toString(16)) + "\n")); _local1 = (_local1 + (("DMP1=" + dmp1.toString(16)) + "\n")); _local1 = (_local1 + (("DMQ1=" + dmq1.toString(16)) + "\n")); _local1 = (_local1 + (("IQMP=" + coeff.toString(16)) + "\n")); }; }; return (_local1); } protected function doPrivate2(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; var _local3:BigInteger; var _local4:BigInteger; if ((((p == null)) && ((q == null)))){ return (_arg1.modPow(d, n)); }; _local2 = _arg1.mod(p).modPow(dmp1, p); _local3 = _arg1.mod(q).modPow(dmq1, q); while (_local2.compareTo(_local3) < 0) { _local2 = _local2.add(p); }; _local4 = _local2.subtract(_local3).multiply(coeff).mod(p).multiply(q).add(_local3); return (_local4); } public function decrypt(_arg1:ByteArray, _arg2:ByteArray, _arg3:uint, _arg4:Function=null):void{ _decrypt(doPrivate2, _arg1, _arg2, _arg3, _arg4, 2); } private function _decrypt(_arg1:Function, _arg2:ByteArray, _arg3:ByteArray, _arg4:uint, _arg5:Function, _arg6:int):void{ var _local7:uint; var _local8:int; var _local9:BigInteger; var _local10:BigInteger; var _local11:ByteArray; if (_arg5 == null){ _arg5 = pkcs1unpad; }; if (_arg2.position >= _arg2.length){ _arg2.position = 0; }; _local7 = getBlockSize(); _local8 = (_arg2.position + _arg4); while (_arg2.position < _local8) { _local9 = new BigInteger(_arg2, _arg4); _local10 = _arg1(_local9); _local11 = _arg5(_local10, _local7); _arg3.writeBytes(_local11); }; } protected function doPublic(_arg1:BigInteger):BigInteger{ return (_arg1.modPowInt(e, n)); } public function dispose():void{ e = 0; n.dispose(); n = null; Memory.gc(); } private function _encrypt(_arg1:Function, _arg2:ByteArray, _arg3:ByteArray, _arg4:uint, _arg5:Function, _arg6:int):void{ var _local7:uint; var _local8:int; var _local9:BigInteger; var _local10:BigInteger; if (_arg5 == null){ _arg5 = pkcs1pad; }; if (_arg2.position >= _arg2.length){ _arg2.position = 0; }; _local7 = getBlockSize(); _local8 = (_arg2.position + _arg4); while (_arg2.position < _local8) { _local9 = new BigInteger(_arg5(_arg2, _local8, _local7, _arg6), _local7); _local10 = _arg1(_local9); _local10.toArray(_arg3); }; } private function rawpad(_arg1:ByteArray, _arg2:int, _arg3:uint):ByteArray{ return (_arg1); } public function encrypt(_arg1:ByteArray, _arg2:ByteArray, _arg3:uint, _arg4:Function=null):void{ _encrypt(doPublic, _arg1, _arg2, _arg3, _arg4, 2); } private function pkcs1pad(_arg1:ByteArray, _arg2:int, _arg3:uint, _arg4:uint=2):ByteArray{ var _local5:ByteArray; var _local6:uint; var _local7:int; var _local8:Random; var _local9:int; _local5 = new ByteArray(); _local6 = _arg1.position; _arg2 = Math.min(_arg2, _arg1.length, ((_local6 + _arg3) - 11)); _arg1.position = _arg2; _local7 = (_arg2 - 1); while ((((_local7 >= _local6)) && ((_arg3 > 11)))) { --_arg3; var _local10 = _arg3; var _temp1 = _local7; _local7 = (_local7 - 1); _local5[_local10] = _arg1[_temp1]; }; --_arg3; _local10 = _arg3; _local5[_local10] = 0; _local8 = new Random(); while (_arg3 > 2) { _local9 = 0; while (_local9 == 0) { _local9 = ((_arg4)==2) ? _local8.nextByte() : 0xFF; }; --_arg3; var _local11 = _arg3; _local5[_local11] = _local9; }; --_arg3; _local11 = _arg3; _local5[_local11] = _arg4; --_arg3; var _local12 = _arg3; _local5[_local12] = 0; return (_local5); } private function pkcs1unpad(_arg1:BigInteger, _arg2:uint, _arg3:uint=2):ByteArray{ var _local4:ByteArray; var _local5:ByteArray; var _local6:int; _local4 = _arg1.toByteArray(); _local5 = new ByteArray(); _local6 = 0; while ((((_local6 < _local4.length)) && ((_local4[_local6] == 0)))) { _local6++; }; if (((!(((_local4.length - _local6) == (_arg2 - 1)))) || ((_local4[_local6] > 2)))){ trace(((("PKCS#1 unpad: i=" + _local6) + ", expected b[i]==[0,1,2], got b[i]=") + _local4[_local6].toString(16))); return (null); }; _local6++; while (_local4[_local6] != 0) { ++_local6; if (_local6 >= _local4.length){ trace((((("PKCS#1 unpad: i=" + _local6) + ", b[i-1]!=0 (=") + _local4[(_local6 - 1)].toString(16)) + ")")); return (null); }; }; while (++_local6 < _local4.length) { _local5.writeByte(_local4[_local6]); }; _local5.position = 0; return (_local5); } public function getBlockSize():uint{ return (((n.bitLength() + 7) / 8)); } public function toString():String{ return ("rsa"); } public function sign(_arg1:ByteArray, _arg2:ByteArray, _arg3:uint, _arg4:Function=null):void{ _encrypt(doPrivate2, _arg1, _arg2, _arg3, _arg4, 1); } protected function doPrivate(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; var _local3:BigInteger; if ((((p == null)) || ((q == null)))){ return (_arg1.modPow(d, n)); }; _local2 = _arg1.mod(p).modPow(dmp1, p); _local3 = _arg1.mod(q).modPow(dmq1, q); while (_local2.compareTo(_local3) < 0) { _local2 = _local2.add(p); }; return (_local2.subtract(_local3).multiply(coeff).mod(p).multiply(q).add(_local3)); } protected static function bigRandom(_arg1:int, _arg2:Random):BigInteger{ var _local3:ByteArray; var _local4:BigInteger; if (_arg1 < 2){ return (BigInteger.nbv(1)); }; _local3 = new ByteArray(); _arg2.nextBytes(_local3, (_arg1 >> 3)); _local3.position = 0; _local4 = new BigInteger(_local3); _local4.primify(_arg1, 1); return (_local4); } public static function parsePublicKey(_arg1:String, _arg2:String):RSAKey{ return (new RSAKey(new BigInteger(_arg1, 16), parseInt(_arg2, 16))); } public static function generate(_arg1:uint, _arg2:String):RSAKey{ var _local3:Random; var _local4:uint; var _local5:RSAKey; var _local6:BigInteger; var _local7:BigInteger; var _local8:BigInteger; var _local9:BigInteger; var _local10:BigInteger; _local3 = new Random(); _local4 = (_arg1 >> 1); _local5 = new RSAKey(null, 0, null); _local5.e = parseInt(_arg2, 16); _local6 = new BigInteger(_arg2, 16); while (true) { while (true) { _local5.p = bigRandom((_arg1 - _local4), _local3); if ((((_local5.p.subtract(BigInteger.ONE).gcd(_local6).compareTo(BigInteger.ONE) == 0)) && (_local5.p.isProbablePrime(10)))){ break; }; }; while (true) { _local5.q = bigRandom(_local4, _local3); if ((((_local5.q.subtract(BigInteger.ONE).gcd(_local6).compareTo(BigInteger.ONE) == 0)) && (_local5.q.isProbablePrime(10)))){ break; }; }; if (_local5.p.compareTo(_local5.q) <= 0){ _local10 = _local5.p; _local5.p = _local5.q; _local5.q = _local10; }; _local7 = _local5.p.subtract(BigInteger.ONE); _local8 = _local5.q.subtract(BigInteger.ONE); _local9 = _local7.multiply(_local8); if (_local9.gcd(_local6).compareTo(BigInteger.ONE) == 0){ _local5.n = _local5.p.multiply(_local5.q); _local5.d = _local6.modInverse(_local9); _local5.dmp1 = _local5.d.mod(_local7); _local5.dmq1 = _local5.d.mod(_local8); _local5.coeff = _local5.q.modInverse(_local5.p); break; }; }; return (_local5); } public static function parsePrivateKey(_arg1:String, _arg2:String, _arg3:String, _arg4:String=null, _arg5:String=null, _arg6:String=null, _arg7:String=null, _arg8:String=null):RSAKey{ if (_arg4 == null){ return (new RSAKey(new BigInteger(_arg1, 16), parseInt(_arg2, 16), new BigInteger(_arg3, 16))); }; return (new RSAKey(new BigInteger(_arg1, 16), parseInt(_arg2, 16), new BigInteger(_arg3, 16), new BigInteger(_arg4, 16), new BigInteger(_arg5, 16), new BigInteger(_arg6, 16), new BigInteger(_arg7), new BigInteger(_arg8))); } } }//package com.hurlant.crypto.rsa
Section 29
//AESKey (com.hurlant.crypto.symmetric.AESKey) package com.hurlant.crypto.symmetric { import flash.utils.*; import com.hurlant.crypto.prng.*; import com.hurlant.util.*; public class AESKey implements ISymmetricKey { private var state:ByteArray; private var tmp:ByteArray; private var Nr:uint; private var keyLength:uint; private var key:ByteArray; private static const _Xtime2:Array = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 27, 25, 31, 29, 19, 17, 23, 21, 11, 9, 15, 13, 3, 1, 7, 5, 59, 57, 63, 61, 51, 49, 55, 53, 43, 41, 47, 45, 35, 33, 39, 37, 91, 89, 95, 93, 83, 81, 87, 85, 75, 73, 79, 77, 67, 65, 71, 69, 123, 121, 127, 125, 115, 113, 119, 117, 107, 105, 111, 109, 99, 97, 103, 101, 155, 153, 159, 157, 147, 145, 151, 149, 139, 137, 143, 141, 131, 129, 135, 133, 187, 185, 191, 189, 179, 177, 183, 181, 171, 169, 175, 173, 163, 161, 167, 165, 219, 217, 223, 221, 211, 209, 215, 213, 203, 201, 207, 205, 195, 193, 199, 197, 251, 249, 0xFF, 253, 243, 241, 247, 245, 235, 233, 239, 237, 227, 225, 231, 229]; private static const _Xtime9:Array = [0, 9, 18, 27, 36, 45, 54, 63, 72, 65, 90, 83, 108, 101, 126, 119, 144, 153, 130, 139, 180, 189, 166, 175, 216, 209, 202, 195, 252, 245, 238, 231, 59, 50, 41, 32, 31, 22, 13, 4, 115, 122, 97, 104, 87, 94, 69, 76, 171, 162, 185, 176, 143, 134, 157, 148, 227, 234, 241, 248, 199, 206, 213, 220, 118, 127, 100, 109, 82, 91, 64, 73, 62, 55, 44, 37, 26, 19, 8, 1, 230, 239, 244, 253, 194, 203, 208, 217, 174, 167, 188, 181, 138, 131, 152, 145, 77, 68, 95, 86, 105, 96, 123, 114, 5, 12, 23, 30, 33, 40, 51, 58, 221, 212, 207, 198, 249, 240, 235, 226, 149, 156, 135, 142, 177, 184, 163, 170, 236, 229, 254, 247, 200, 193, 218, 211, 164, 173, 182, 191, 128, 137, 146, 155, 124, 117, 110, 103, 88, 81, 74, 67, 52, 61, 38, 47, 16, 25, 2, 11, 215, 222, 197, 204, 243, 250, 225, 232, 159, 150, 141, 132, 187, 178, 169, 160, 71, 78, 85, 92, 99, 106, 113, 120, 15, 6, 29, 20, 43, 34, 57, 48, 154, 147, 136, 129, 190, 183, 172, 165, 210, 219, 192, 201, 246, 0xFF, 228, 237, 10, 3, 24, 17, 46, 39, 60, 53, 66, 75, 80, 89, 102, 111, 116, 125, 161, 168, 179, 186, 133, 140, 151, 158, 233, 224, 251, 242, 205, 196, 223, 214, 49, 56, 35, 42, 21, 28, 7, 14, 121, 112, 107, 98, 93, 84, 79, 70]; private static const Nb:uint = 4; private static const _XtimeB:Array = [0, 11, 22, 29, 44, 39, 58, 49, 88, 83, 78, 69, 116, 127, 98, 105, 176, 187, 166, 173, 156, 151, 138, 129, 232, 227, 254, 245, 196, 207, 210, 217, 123, 112, 109, 102, 87, 92, 65, 74, 35, 40, 53, 62, 15, 4, 25, 18, 203, 192, 221, 214, 231, 236, 241, 250, 147, 152, 133, 142, 191, 180, 169, 162, 246, 253, 224, 235, 218, 209, 204, 199, 174, 165, 184, 179, 130, 137, 148, 159, 70, 77, 80, 91, 106, 97, 124, 119, 30, 21, 8, 3, 50, 57, 36, 47, 141, 134, 155, 144, 161, 170, 183, 188, 213, 222, 195, 200, 249, 242, 239, 228, 61, 54, 43, 32, 17, 26, 7, 12, 101, 110, 115, 120, 73, 66, 95, 84, 247, 252, 225, 234, 219, 208, 205, 198, 175, 164, 185, 178, 131, 136, 149, 158, 71, 76, 81, 90, 107, 96, 125, 118, 31, 20, 9, 2, 51, 56, 37, 46, 140, 135, 154, 145, 160, 171, 182, 189, 212, 223, 194, 201, 248, 243, 238, 229, 60, 55, 42, 33, 16, 27, 6, 13, 100, 111, 114, 121, 72, 67, 94, 85, 1, 10, 23, 28, 45, 38, 59, 48, 89, 82, 79, 68, 117, 126, 99, 104, 177, 186, 167, 172, 157, 150, 139, 128, 233, 226, 0xFF, 244, 197, 206, 211, 216, 122, 113, 108, 103, 86, 93, 64, 75, 34, 41, 52, 63, 14, 5, 24, 19, 202, 193, 220, 215, 230, 237, 240, 251, 146, 153, 132, 143, 190, 181, 168, 163]; private static const _XtimeE:Array = [0, 14, 28, 18, 56, 54, 36, 42, 112, 126, 108, 98, 72, 70, 84, 90, 224, 238, 252, 242, 216, 214, 196, 202, 144, 158, 140, 130, 168, 166, 180, 186, 219, 213, 199, 201, 227, 237, 0xFF, 241, 171, 165, 183, 185, 147, 157, 143, 129, 59, 53, 39, 41, 3, 13, 31, 17, 75, 69, 87, 89, 115, 125, 111, 97, 173, 163, 177, 191, 149, 155, 137, 135, 221, 211, 193, 207, 229, 235, 249, 247, 77, 67, 81, 95, 117, 123, 105, 103, 61, 51, 33, 47, 5, 11, 25, 23, 118, 120, 106, 100, 78, 64, 82, 92, 6, 8, 26, 20, 62, 48, 34, 44, 150, 152, 138, 132, 174, 160, 178, 188, 230, 232, 250, 244, 222, 208, 194, 204, 65, 79, 93, 83, 121, 119, 101, 107, 49, 63, 45, 35, 9, 7, 21, 27, 161, 175, 189, 179, 153, 151, 133, 139, 209, 223, 205, 195, 233, 231, 245, 251, 154, 148, 134, 136, 162, 172, 190, 176, 234, 228, 246, 248, 210, 220, 206, 192, 122, 116, 102, 104, 66, 76, 94, 80, 10, 4, 22, 24, 50, 60, 46, 32, 236, 226, 240, 254, 212, 218, 200, 198, 156, 146, 128, 142, 164, 170, 184, 182, 12, 2, 16, 30, 52, 58, 40, 38, 124, 114, 96, 110, 68, 74, 88, 86, 55, 57, 43, 37, 15, 1, 19, 29, 71, 73, 91, 85, 127, 113, 99, 109, 215, 217, 203, 197, 239, 225, 243, 253, 167, 169, 187, 181, 159, 145, 131, 141]; private static const _Xtime2Sbox:Array = [198, 248, 238, 246, 0xFF, 214, 222, 145, 96, 2, 206, 86, 231, 181, 77, 236, 143, 31, 137, 250, 239, 178, 142, 251, 65, 179, 95, 69, 35, 83, 228, 155, 117, 225, 61, 76, 108, 126, 245, 131, 104, 81, 209, 249, 226, 171, 98, 42, 8, 149, 70, 157, 48, 55, 10, 47, 14, 36, 27, 223, 205, 78, 127, 234, 18, 29, 88, 52, 54, 220, 180, 91, 164, 118, 183, 125, 82, 221, 94, 19, 166, 185, 0, 193, 64, 227, 121, 182, 212, 141, 103, 114, 148, 152, 176, 133, 187, 197, 79, 237, 134, 154, 102, 17, 138, 233, 4, 254, 160, 120, 37, 75, 162, 93, 128, 5, 63, 33, 112, 241, 99, 119, 175, 66, 32, 229, 253, 191, 129, 24, 38, 195, 190, 53, 136, 46, 147, 85, 252, 122, 200, 186, 50, 230, 192, 25, 158, 163, 68, 84, 59, 11, 140, 199, 107, 40, 167, 188, 22, 173, 219, 100, 116, 20, 146, 12, 72, 184, 159, 189, 67, 196, 57, 49, 211, 242, 213, 139, 110, 218, 1, 177, 156, 73, 216, 172, 243, 207, 202, 244, 71, 16, 111, 240, 74, 92, 56, 87, 115, 151, 203, 161, 232, 62, 150, 97, 13, 15, 224, 124, 113, 204, 144, 6, 247, 28, 194, 106, 174, 105, 23, 153, 58, 39, 217, 235, 43, 34, 210, 169, 7, 51, 45, 60, 21, 201, 135, 170, 80, 165, 3, 89, 9, 26, 101, 215, 132, 208, 130, 41, 90, 30, 123, 168, 109, 44]; private static const _Xtime3Sbox:Array = [165, 132, 153, 141, 13, 189, 177, 84, 80, 3, 169, 125, 25, 98, 230, 154, 69, 157, 64, 135, 21, 235, 201, 11, 236, 103, 253, 234, 191, 247, 150, 91, 194, 28, 174, 106, 90, 65, 2, 79, 92, 244, 52, 8, 147, 115, 83, 63, 12, 82, 101, 94, 40, 161, 15, 181, 9, 54, 155, 61, 38, 105, 205, 159, 27, 158, 116, 46, 45, 178, 238, 251, 246, 77, 97, 206, 123, 62, 113, 151, 245, 104, 0, 44, 96, 31, 200, 237, 190, 70, 217, 75, 222, 212, 232, 74, 107, 42, 229, 22, 197, 215, 85, 148, 207, 16, 6, 129, 240, 68, 186, 227, 243, 254, 192, 138, 173, 188, 72, 4, 223, 193, 117, 99, 48, 26, 14, 109, 76, 20, 53, 47, 225, 162, 204, 57, 87, 242, 130, 71, 172, 231, 43, 149, 160, 152, 209, 127, 102, 126, 171, 131, 202, 41, 211, 60, 121, 226, 29, 118, 59, 86, 78, 30, 219, 10, 108, 228, 93, 110, 239, 166, 168, 164, 55, 139, 50, 67, 89, 183, 140, 100, 210, 224, 180, 250, 7, 37, 175, 142, 233, 24, 213, 136, 111, 114, 36, 241, 199, 81, 35, 124, 156, 33, 221, 220, 134, 133, 144, 66, 196, 170, 216, 5, 1, 18, 163, 95, 249, 208, 145, 88, 39, 185, 56, 19, 179, 51, 187, 112, 137, 167, 182, 34, 146, 32, 73, 0xFF, 120, 122, 143, 248, 128, 23, 218, 49, 198, 184, 195, 176, 119, 17, 203, 252, 214, 58]; private static const _InvSbox:Array = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 0xFF, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125]; private static const _XtimeD:Array = [0, 13, 26, 23, 52, 57, 46, 35, 104, 101, 114, 127, 92, 81, 70, 75, 208, 221, 202, 199, 228, 233, 254, 243, 184, 181, 162, 175, 140, 129, 150, 155, 187, 182, 161, 172, 143, 130, 149, 152, 211, 222, 201, 196, 231, 234, 253, 240, 107, 102, 113, 124, 95, 82, 69, 72, 3, 14, 25, 20, 55, 58, 45, 32, 109, 96, 119, 122, 89, 84, 67, 78, 5, 8, 31, 18, 49, 60, 43, 38, 189, 176, 167, 170, 137, 132, 147, 158, 213, 216, 207, 194, 225, 236, 251, 246, 214, 219, 204, 193, 226, 239, 248, 245, 190, 179, 164, 169, 138, 135, 144, 157, 6, 11, 28, 17, 50, 63, 40, 37, 110, 99, 116, 121, 90, 87, 64, 77, 218, 215, 192, 205, 238, 227, 244, 249, 178, 191, 168, 165, 134, 139, 156, 145, 10, 7, 16, 29, 62, 51, 36, 41, 98, 111, 120, 117, 86, 91, 76, 65, 97, 108, 123, 118, 85, 88, 79, 66, 9, 4, 19, 30, 61, 48, 39, 42, 177, 188, 171, 166, 133, 136, 159, 146, 217, 212, 195, 206, 237, 224, 247, 250, 183, 186, 173, 160, 131, 142, 153, 148, 223, 210, 197, 200, 235, 230, 241, 252, 103, 106, 125, 112, 83, 94, 73, 68, 15, 2, 21, 24, 59, 54, 33, 44, 12, 1, 22, 27, 56, 53, 34, 47, 100, 105, 126, 115, 80, 93, 74, 71, 220, 209, 198, 203, 232, 229, 242, 0xFF, 180, 185, 174, 163, 128, 141, 154, 151]; private static const _Sbox:Array = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 0xFF, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22]; private static var XtimeE:ByteArray = new ByteArray(); private static var i:uint = 0; private static var Xtime2Sbox:ByteArray = new ByteArray(); private static var Xtime3Sbox:ByteArray = new ByteArray(); private static var _Rcon:Array = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]; private static var Sbox:ByteArray = new ByteArray(); private static var Rcon:ByteArray = new ByteArray(); private static var InvSbox:ByteArray = new ByteArray(); private static var Xtime2:ByteArray = new ByteArray(); private static var Xtime9:ByteArray = new ByteArray(); private static var XtimeB:ByteArray = new ByteArray(); private static var XtimeD:ByteArray = new ByteArray(); public function AESKey(_arg1:ByteArray){ tmp = new ByteArray(); state = new ByteArray(); keyLength = _arg1.length; this.key = new ByteArray(); this.key.writeBytes(_arg1); expandKey(); } public function toString():String{ return (("aes" + (8 * keyLength))); } public function decrypt(_arg1:ByteArray, _arg2:uint=0):void{ var _local3:uint; state.position = 0; state.writeBytes(_arg1, _arg2, (Nb * 4)); addRoundKey(key, ((Nr * Nb) * 4)); invShiftRows(); _local3 = Nr; while (_local3--) { addRoundKey(key, ((_local3 * Nb) * 4)); if (_local3){ invMixSubColumns(); }; }; _arg1.position = _arg2; _arg1.writeBytes(state); } protected function invShiftRows():void{ var _local1:uint; state[0] = InvSbox[state[0]]; state[4] = InvSbox[state[4]]; state[8] = InvSbox[state[8]]; state[12] = InvSbox[state[12]]; _local1 = InvSbox[state[13]]; state[13] = InvSbox[state[9]]; state[9] = InvSbox[state[5]]; state[5] = InvSbox[state[1]]; state[1] = _local1; _local1 = InvSbox[state[2]]; state[2] = InvSbox[state[10]]; state[10] = _local1; _local1 = InvSbox[state[6]]; state[6] = InvSbox[state[14]]; state[14] = _local1; _local1 = InvSbox[state[3]]; state[3] = InvSbox[state[7]]; state[7] = InvSbox[state[11]]; state[11] = InvSbox[state[15]]; state[15] = _local1; } public function dispose():void{ var _local1:uint; var _local2:Random; _local2 = new Random(); _local1 = 0; while (_local1 < key.length) { key[_local1] = _local2.nextByte(); _local1++; }; Nr = _local2.nextByte(); _local1 = 0; while (_local1 < state.length) { state[_local1] = _local2.nextByte(); _local1++; }; _local1 = 0; while (_local1 < tmp.length) { tmp[_local1] = _local2.nextByte(); _local1++; }; key.length = 0; keyLength = 0; state.length = 0; tmp.length = 0; key = null; state = null; tmp = null; Nr = 0; Memory.gc(); } protected function invMixSubColumns():void{ var _local1:uint; tmp.length = 0; tmp[0] = (((XtimeE[state[0]] ^ XtimeB[state[1]]) ^ XtimeD[state[2]]) ^ Xtime9[state[3]]); tmp[5] = (((Xtime9[state[0]] ^ XtimeE[state[1]]) ^ XtimeB[state[2]]) ^ XtimeD[state[3]]); tmp[10] = (((XtimeD[state[0]] ^ Xtime9[state[1]]) ^ XtimeE[state[2]]) ^ XtimeB[state[3]]); tmp[15] = (((XtimeB[state[0]] ^ XtimeD[state[1]]) ^ Xtime9[state[2]]) ^ XtimeE[state[3]]); tmp[4] = (((XtimeE[state[4]] ^ XtimeB[state[5]]) ^ XtimeD[state[6]]) ^ Xtime9[state[7]]); tmp[9] = (((Xtime9[state[4]] ^ XtimeE[state[5]]) ^ XtimeB[state[6]]) ^ XtimeD[state[7]]); tmp[14] = (((XtimeD[state[4]] ^ Xtime9[state[5]]) ^ XtimeE[state[6]]) ^ XtimeB[state[7]]); tmp[3] = (((XtimeB[state[4]] ^ XtimeD[state[5]]) ^ Xtime9[state[6]]) ^ XtimeE[state[7]]); tmp[8] = (((XtimeE[state[8]] ^ XtimeB[state[9]]) ^ XtimeD[state[10]]) ^ Xtime9[state[11]]); tmp[13] = (((Xtime9[state[8]] ^ XtimeE[state[9]]) ^ XtimeB[state[10]]) ^ XtimeD[state[11]]); tmp[2] = (((XtimeD[state[8]] ^ Xtime9[state[9]]) ^ XtimeE[state[10]]) ^ XtimeB[state[11]]); tmp[7] = (((XtimeB[state[8]] ^ XtimeD[state[9]]) ^ Xtime9[state[10]]) ^ XtimeE[state[11]]); tmp[12] = (((XtimeE[state[12]] ^ XtimeB[state[13]]) ^ XtimeD[state[14]]) ^ Xtime9[state[15]]); tmp[1] = (((Xtime9[state[12]] ^ XtimeE[state[13]]) ^ XtimeB[state[14]]) ^ XtimeD[state[15]]); tmp[6] = (((XtimeD[state[12]] ^ Xtime9[state[13]]) ^ XtimeE[state[14]]) ^ XtimeB[state[15]]); tmp[11] = (((XtimeB[state[12]] ^ XtimeD[state[13]]) ^ Xtime9[state[14]]) ^ XtimeE[state[15]]); _local1 = 0; while (_local1 < (4 * Nb)) { state[_local1] = InvSbox[tmp[_local1]]; _local1++; }; } private function expandKey():void{ var _local1:uint; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:uint; _local7 = (key.length / 4); Nr = (_local7 + 6); _local6 = _local7; while (_local6 < (Nb * (Nr + 1))) { _local1 = key[((4 * _local6) - 4)]; _local2 = key[((4 * _local6) - 3)]; _local3 = key[((4 * _local6) - 2)]; _local4 = key[((4 * _local6) - 1)]; if (!(_local6 % _local7)){ _local5 = _local4; _local4 = Sbox[_local1]; _local1 = (Sbox[_local2] ^ Rcon[(_local6 / _local7)]); _local2 = Sbox[_local3]; _local3 = Sbox[_local5]; } else { if ((((_local7 > 6)) && (((_local6 % _local7) == 4)))){ _local1 = Sbox[_local1]; _local2 = Sbox[_local2]; _local3 = Sbox[_local3]; _local4 = Sbox[_local4]; }; }; key[((4 * _local6) + 0)] = (key[(((4 * _local6) - (4 * _local7)) + 0)] ^ _local1); key[((4 * _local6) + 1)] = (key[(((4 * _local6) - (4 * _local7)) + 1)] ^ _local2); key[((4 * _local6) + 2)] = (key[(((4 * _local6) - (4 * _local7)) + 2)] ^ _local3); key[((4 * _local6) + 3)] = (key[(((4 * _local6) - (4 * _local7)) + 3)] ^ _local4); _local6++; }; } protected function addRoundKey(_arg1:ByteArray, _arg2:uint):void{ var _local3:uint; _local3 = 0; while (_local3 < 16) { state[_local3] = (state[_local3] ^ _arg1[(_local3 + _arg2)]); _local3++; }; } public function encrypt(_arg1:ByteArray, _arg2:uint=0):void{ var _local3:uint; state.position = 0; state.writeBytes(_arg1, _arg2, (Nb * 4)); addRoundKey(key, 0); _local3 = 1; while (_local3 < (Nr + 1)) { if (_local3 < Nr){ mixSubColumns(); } else { shiftRows(); }; addRoundKey(key, ((_local3 * Nb) * 4)); _local3++; }; _arg1.position = _arg2; _arg1.writeBytes(state); } protected function mixSubColumns():void{ tmp.length = 0; tmp[0] = (((Xtime2Sbox[state[0]] ^ Xtime3Sbox[state[5]]) ^ Sbox[state[10]]) ^ Sbox[state[15]]); tmp[1] = (((Sbox[state[0]] ^ Xtime2Sbox[state[5]]) ^ Xtime3Sbox[state[10]]) ^ Sbox[state[15]]); tmp[2] = (((Sbox[state[0]] ^ Sbox[state[5]]) ^ Xtime2Sbox[state[10]]) ^ Xtime3Sbox[state[15]]); tmp[3] = (((Xtime3Sbox[state[0]] ^ Sbox[state[5]]) ^ Sbox[state[10]]) ^ Xtime2Sbox[state[15]]); tmp[4] = (((Xtime2Sbox[state[4]] ^ Xtime3Sbox[state[9]]) ^ Sbox[state[14]]) ^ Sbox[state[3]]); tmp[5] = (((Sbox[state[4]] ^ Xtime2Sbox[state[9]]) ^ Xtime3Sbox[state[14]]) ^ Sbox[state[3]]); tmp[6] = (((Sbox[state[4]] ^ Sbox[state[9]]) ^ Xtime2Sbox[state[14]]) ^ Xtime3Sbox[state[3]]); tmp[7] = (((Xtime3Sbox[state[4]] ^ Sbox[state[9]]) ^ Sbox[state[14]]) ^ Xtime2Sbox[state[3]]); tmp[8] = (((Xtime2Sbox[state[8]] ^ Xtime3Sbox[state[13]]) ^ Sbox[state[2]]) ^ Sbox[state[7]]); tmp[9] = (((Sbox[state[8]] ^ Xtime2Sbox[state[13]]) ^ Xtime3Sbox[state[2]]) ^ Sbox[state[7]]); tmp[10] = (((Sbox[state[8]] ^ Sbox[state[13]]) ^ Xtime2Sbox[state[2]]) ^ Xtime3Sbox[state[7]]); tmp[11] = (((Xtime3Sbox[state[8]] ^ Sbox[state[13]]) ^ Sbox[state[2]]) ^ Xtime2Sbox[state[7]]); tmp[12] = (((Xtime2Sbox[state[12]] ^ Xtime3Sbox[state[1]]) ^ Sbox[state[6]]) ^ Sbox[state[11]]); tmp[13] = (((Sbox[state[12]] ^ Xtime2Sbox[state[1]]) ^ Xtime3Sbox[state[6]]) ^ Sbox[state[11]]); tmp[14] = (((Sbox[state[12]] ^ Sbox[state[1]]) ^ Xtime2Sbox[state[6]]) ^ Xtime3Sbox[state[11]]); tmp[15] = (((Xtime3Sbox[state[12]] ^ Sbox[state[1]]) ^ Sbox[state[6]]) ^ Xtime2Sbox[state[11]]); state.position = 0; state.writeBytes(tmp, 0, (Nb * 4)); } protected function shiftRows():void{ var _local1:uint; state[0] = Sbox[state[0]]; state[4] = Sbox[state[4]]; state[8] = Sbox[state[8]]; state[12] = Sbox[state[12]]; _local1 = Sbox[state[1]]; state[1] = Sbox[state[5]]; state[5] = Sbox[state[9]]; state[9] = Sbox[state[13]]; state[13] = _local1; _local1 = Sbox[state[2]]; state[2] = Sbox[state[10]]; state[10] = _local1; _local1 = Sbox[state[6]]; state[6] = Sbox[state[14]]; state[14] = _local1; _local1 = Sbox[state[15]]; state[15] = Sbox[state[11]]; state[11] = Sbox[state[7]]; state[7] = Sbox[state[3]]; state[3] = _local1; } public function getBlockSize():uint{ return (16); } while (i < 0x0100) { Sbox[i] = _Sbox[i]; InvSbox[i] = _InvSbox[i]; Xtime2Sbox[i] = _Xtime2Sbox[i]; Xtime3Sbox[i] = _Xtime3Sbox[i]; Xtime2[i] = _Xtime2[i]; Xtime9[i] = _Xtime9[i]; XtimeB[i] = _XtimeB[i]; XtimeD[i] = _XtimeD[i]; XtimeE[i] = _XtimeE[i]; i++; }; i = 0; while (i < _Rcon.length) { Rcon[i] = _Rcon[i]; i++; }; } }//package com.hurlant.crypto.symmetric
Section 30
//BlowFishKey (com.hurlant.crypto.symmetric.BlowFishKey) package com.hurlant.crypto.symmetric { import flash.utils.*; import com.hurlant.util.*; public class BlowFishKey implements ISymmetricKey { private var S3:Array; private var S2:Array; private var P:Array; private var key:ByteArray;// = null private var S0:Array; private var S1:Array; private static const KP:Array = [608135816, 2242054355, 320440878, 57701188, 2752067618, 698298832, 137296536, 3964562569, 1160258022, 953160567, 3193202383, 887688300, 3232508343, 3380367581, 1065670069, 3041331479, 2450970073, 2306472731]; private static const KS0:Array = [3509652390, 2564797868, 805139163, 3491422135, 3101798381, 1780907670, 3128725573, 4046225305, 614570311, 3012652279, 134345442, 2240740374, 1667834072, 1901547113, 2757295779, 4103290238, 227898511, 1921955416, 1904987480, 2182433518, 2069144605, 3260701109, 2620446009, 720527379, 3318853667, 677414384, 3393288472, 3101374703, 2390351024, 1614419982, 1822297739, 2954791486, 3608508353, 3174124327, 2024746970, 1432378464, 3864339955, 2857741204, 1464375394, 1676153920, 1439316330, 715854006, 3033291828, 289532110, 2706671279, 2087905683, 3018724369, 1668267050, 732546397, 1947742710, 3462151702, 2609353502, 2950085171, 1814351708, 2050118529, 680887927, 999245976, 1800124847, 3300911131, 1713906067, 1641548236, 4213287313, 1216130144, 1575780402, 4018429277, 3917837745, 3693486850, 3949271944, 596196993, 3549867205, 258830323, 2213823033, 772490370, 2760122372, 1774776394, 2652871518, 566650946, 4142492826, 1728879713, 2882767088, 1783734482, 3629395816, 2517608232, 2874225571, 1861159788, 326777828, 3124490320, 2130389656, 2716951837, 967770486, 1724537150, 2185432712, 2364442137, 1164943284, 2105845187, 998989502, 3765401048, 2244026483, 1075463327, 1455516326, 1322494562, 910128902, 469688178, 1117454909, 936433444, 3490320968, 3675253459, 1240580251, 122909385, 2157517691, 634681816, 4142456567, 3825094682, 3061402683, 2540495037, 79693498, 3249098678, 1084186820, 1583128258, 426386531, 1761308591, 1047286709, 322548459, 995290223, 1845252383, 2603652396, 3431023940, 2942221577, 3202600964, 3727903485, 1712269319, 422464435, 3234572375, 1170764815, 3523960633, 3117677531, 1434042557, 442511882, 3600875718, 1076654713, 1738483198, 4213154764, 2393238008, 3677496056, 1014306527, 4251020053, 793779912, 2902807211, 842905082, 4246964064, 1395751752, 1040244610, 2656851899, 3396308128, 445077038, 3742853595, 3577915638, 679411651, 2892444358, 2354009459, 1767581616, 3150600392, 3791627101, 3102740896, 284835224, 4246832056, 1258075500, 768725851, 2589189241, 3069724005, 3532540348, 1274779536, 3789419226, 2764799539, 1660621633, 3471099624, 4011903706, 913787905, 3497959166, 737222580, 2514213453, 2928710040, 3937242737, 1804850592, 3499020752, 2949064160, 2386320175, 2390070455, 2415321851, 4061277028, 2290661394, 2416832540, 1336762016, 1754252060, 3520065937, 3014181293, 791618072, 3188594551, 3933548030, 2332172193, 3852520463, 3043980520, 413987798, 3465142937, 3030929376, 4245938359, 2093235073, 3534596313, 375366246, 2157278981, 2479649556, 555357303, 3870105701, 2008414854, 3344188149, 4221384143, 3956125452, 2067696032, 3594591187, 2921233993, 2428461, 544322398, 577241275, 1471733935, 610547355, 4027169054, 1432588573, 1507829418, 2025931657, 3646575487, 545086370, 48609733, 2200306550, 1653985193, 298326376, 1316178497, 3007786442, 2064951626, 458293330, 2589141269, 3591329599, 3164325604, 727753846, 2179363840, 146436021, 1461446943, 4069977195, 705550613, 3059967265, 3887724982, 4281599278, 3313849956, 1404054877, 2845806497, 146425753, 1854211946]; private static const KS1:Array = [1266315497, 3048417604, 3681880366, 3289982499, 2909710000, 1235738493, 2632868024, 2414719590, 3970600049, 1771706367, 1449415276, 3266420449, 422970021, 1963543593, 2690192192, 3826793022, 1062508698, 1531092325, 1804592342, 2583117782, 2714934279, 4024971509, 1294809318, 4028980673, 1289560198, 2221992742, 1669523910, 35572830, 157838143, 1052438473, 1016535060, 1802137761, 1753167236, 1386275462, 3080475397, 2857371447, 1040679964, 2145300060, 2390574316, 1461121720, 2956646967, 4031777805, 4028374788, 33600511, 2920084762, 1018524850, 629373528, 3691585981, 3515945977, 2091462646, 2486323059, 586499841, 988145025, 935516892, 3367335476, 2599673255, 2839830854, 265290510, 3972581182, 2759138881, 3795373465, 1005194799, 847297441, 406762289, 1314163512, 1332590856, 1866599683, 4127851711, 750260880, 613907577, 1450815602, 3165620655, 3734664991, 3650291728, 3012275730, 3704569646, 1427272223, 778793252, 1343938022, 2676280711, 2052605720, 1946737175, 3164576444, 3914038668, 3967478842, 3682934266, 1661551462, 3294938066, 4011595847, 840292616, 3712170807, 616741398, 312560963, 711312465, 1351876610, 322626781, 1910503582, 271666773, 2175563734, 1594956187, 70604529, 3617834859, 1007753275, 1495573769, 4069517037, 2549218298, 2663038764, 504708206, 2263041392, 3941167025, 2249088522, 1514023603, 1998579484, 1312622330, 694541497, 2582060303, 2151582166, 1382467621, 776784248, 2618340202, 3323268794, 2497899128, 2784771155, 503983604, 4076293799, 907881277, 423175695, 432175456, 1378068232, 4145222326, 3954048622, 3938656102, 3820766613, 2793130115, 2977904593, 26017576, 3274890735, 3194772133, 1700274565, 1756076034, 4006520079, 3677328699, 720338349, 1533947780, 354530856, 688349552, 3973924725, 1637815568, 332179504, 3949051286, 53804574, 2852348879, 3044236432, 1282449977, 3583942155, 3416972820, 4006381244, 1617046695, 2628476075, 3002303598, 1686838959, 431878346, 2686675385, 1700445008, 1080580658, 1009431731, 832498133, 3223435511, 2605976345, 2271191193, 2516031870, 1648197032, 4164389018, 2548247927, 300782431, 375919233, 238389289, 3353747414, 2531188641, 2019080857, 1475708069, 455242339, 2609103871, 448939670, 3451063019, 1395535956, 2413381860, 1841049896, 1491858159, 885456874, 4264095073, 4001119347, 1565136089, 3898914787, 1108368660, 540939232, 1173283510, 2745871338, 3681308437, 4207628240, 3343053890, 4016749493, 1699691293, 1103962373, 3625875870, 2256883143, 3830138730, 1031889488, 3479347698, 1535977030, 4236805024, 3251091107, 2132092099, 1774941330, 1199868427, 1452454533, 157007616, 2904115357, 342012276, 595725824, 1480756522, 206960106, 497939518, 591360097, 863170706, 2375253569, 3596610801, 1814182875, 2094937945, 3421402208, 1082520231, 3463918190, 2785509508, 435703966, 3908032597, 1641649973, 2842273706, 3305899714, 1510255612, 2148256476, 2655287854, 3276092548, 4258621189, 236887753, 3681803219, 274041037, 1734335097, 3815195456, 3317970021, 1899903192, 1026095262, 4050517792, 356393447, 2410691914, 3873677099, 3682840055]; private static const KS3:Array = [976866871, 3556439503, 2881648439, 1522871579, 1555064734, 1336096578, 3548522304, 2579274686, 3574697629, 3205460757, 3593280638, 3338716283, 3079412587, 564236357, 2993598910, 1781952180, 1464380207, 3163844217, 3332601554, 1699332808, 1393555694, 1183702653, 3581086237, 1288719814, 691649499, 2847557200, 2895455976, 3193889540, 2717570544, 1781354906, 1676643554, 2592534050, 3230253752, 1126444790, 2770207658, 2633158820, 2210423226, 2615765581, 2414155088, 3127139286, 673620729, 2805611233, 1269405062, 4015350505, 3341807571, 4149409754, 1057255273, 2012875353, 2162469141, 2276492801, 2601117357, 993977747, 3918593370, 2654263191, 753973209, 36408145, 2530585658, 25011837, 3520020182, 2088578344, 530523599, 2918365339, 1524020338, 1518925132, 3760827505, 3759777254, 1202760957, 3985898139, 3906192525, 674977740, 4174734889, 2031300136, 2019492241, 3983892565, 4153806404, 3822280332, 352677332, 2297720250, 60907813, 90501309, 3286998549, 1016092578, 2535922412, 2839152426, 457141659, 509813237, 4120667899, 652014361, 1966332200, 2975202805, 55981186, 2327461051, 676427537, 3255491064, 2882294119, 3433927263, 1307055953, 942726286, 933058658, 2468411793, 3933900994, 4215176142, 1361170020, 2001714738, 2830558078, 3274259782, 1222529897, 1679025792, 2729314320, 3714953764, 1770335741, 151462246, 3013232138, 1682292957, 1483529935, 471910574, 1539241949, 458788160, 3436315007, 1807016891, 3718408830, 978976581, 1043663428, 3165965781, 1927990952, 4200891579, 2372276910, 3208408903, 3533431907, 1412390302, 2931980059, 4132332400, 1947078029, 3881505623, 4168226417, 2941484381, 1077988104, 1320477388, 886195818, 18198404, 3786409000, 2509781533, 112762804, 3463356488, 1866414978, 891333506, 18488651, 661792760, 1628790961, 3885187036, 3141171499, 876946877, 2693282273, 1372485963, 791857591, 2686433993, 3759982718, 3167212022, 3472953795, 2716379847, 445679433, 3561995674, 3504004811, 3574258232, 54117162, 3331405415, 2381918588, 3769707343, 4154350007, 1140177722, 4074052095, 668550556, 3214352940, 367459370, 261225585, 2610173221, 4209349473, 3468074219, 3265815641, 314222801, 3066103646, 3808782860, 282218597, 3406013506, 3773591054, 379116347, 1285071038, 846784868, 2669647154, 3771962079, 3550491691, 2305946142, 453669953, 1268987020, 3317592352, 3279303384, 3744833421, 2610507566, 3859509063, 266596637, 3847019092, 517658769, 3462560207, 3443424879, 370717030, 4247526661, 2224018117, 4143653529, 4112773975, 2788324899, 2477274417, 1456262402, 2901442914, 1517677493, 1846949527, 2295493580, 3734397586, 2176403920, 1280348187, 1908823572, 3871786941, 846861322, 1172426758, 3287448474, 3383383037, 1655181056, 3139813346, 901632758, 1897031941, 2986607138, 3066810236, 3447102507, 1393639104, 373351379, 950779232, 625454576, 3124240540, 4148612726, 2007998917, 544563296, 2244738638, 2330496472, 2058025392, 1291430526, 424198748, 50039436, 29584100, 3605783033, 2429876329, 2791104160, 1057563949, 3255363231, 3075367218, 3463963227, 1469046755, 985887462]; private static const ROUNDS:uint = 16; private static const KS2:Array = [3913112168, 2491498743, 4132185628, 2489919796, 1091903735, 1979897079, 3170134830, 3567386728, 3557303409, 857797738, 1136121015, 1342202287, 507115054, 2535736646, 337727348, 3213592640, 1301675037, 2528481711, 1895095763, 1721773893, 3216771564, 62756741, 2142006736, 835421444, 2531993523, 1442658625, 3659876326, 2882144922, 676362277, 1392781812, 170690266, 3921047035, 1759253602, 3611846912, 1745797284, 664899054, 1329594018, 3901205900, 3045908486, 2062866102, 2865634940, 3543621612, 3464012697, 1080764994, 553557557, 3656615353, 3996768171, 991055499, 499776247, 1265440854, 648242737, 3940784050, 980351604, 3713745714, 1749149687, 3396870395, 4211799374, 3640570775, 1161844396, 3125318951, 1431517754, 545492359, 4268468663, 3499529547, 1437099964, 2702547544, 3433638243, 2581715763, 2787789398, 1060185593, 1593081372, 2418618748, 4260947970, 69676912, 2159744348, 86519011, 2512459080, 3838209314, 1220612927, 3339683548, 133810670, 1090789135, 1078426020, 1569222167, 845107691, 3583754449, 4072456591, 1091646820, 628848692, 1613405280, 3757631651, 526609435, 236106946, 48312990, 2942717905, 3402727701, 1797494240, 859738849, 992217954, 4005476642, 2243076622, 3870952857, 3732016268, 765654824, 3490871365, 2511836413, 1685915746, 3888969200, 1414112111, 2273134842, 3281911079, 4080962846, 172450625, 2569994100, 980381355, 4109958455, 2819808352, 2716589560, 2568741196, 3681446669, 3329971472, 1835478071, 660984891, 3704678404, 4045999559, 3422617507, 3040415634, 1762651403, 1719377915, 3470491036, 2693910283, 3642056355, 3138596744, 1364962596, 2073328063, 1983633131, 926494387, 3423689081, 2150032023, 4096667949, 1749200295, 3328846651, 309677260, 2016342300, 1779581495, 3079819751, 111262694, 1274766160, 443224088, 298511866, 1025883608, 3806446537, 1145181785, 168956806, 3641502830, 3584813610, 1689216846, 3666258015, 3200248200, 1692713982, 2646376535, 4042768518, 1618508792, 1610833997, 3523052358, 4130873264, 2001055236, 3610705100, 2202168115, 4028541809, 2961195399, 1006657119, 2006996926, 3186142756, 1430667929, 3210227297, 1314452623, 4074634658, 4101304120, 2273951170, 1399257539, 3367210612, 3027628629, 1190975929, 2062231137, 2333990788, 2221543033, 2438960610, 1181637006, 548689776, 2362791313, 3372408396, 3104550113, 3145860560, 296247880, 1970579870, 3078560182, 3769228297, 1714227617, 3291629107, 3898220290, 166772364, 1251581989, 493813264, 448347421, 195405023, 2709975567, 677966185, 3703036547, 1463355134, 2715995803, 1338867538, 1343315457, 2802222074, 2684532164, 233230375, 2599980071, 2000651841, 3277868038, 1638401717, 4028070440, 3237316320, 6314154, 819756386, 300326615, 590932579, 1405279636, 3267499572, 3150704214, 2428286686, 3959192993, 3461946742, 1862657033, 1266418056, 963775037, 2089974820, 2263052895, 1917689273, 448879540, 3550394620, 3981727096, 150775221, 3627908307, 1303187396, 508620638, 2975983352, 2726630617, 1817252668, 1876281319, 1457606340, 908771278, 3720792119, 3617206836, 2455994898, 1729034894, 1080033504]; private static const BLOCK_SIZE:uint = 8; private static const P_SZ:uint = (ROUNDS + 2); private static const SBOX_SK:uint = 0x0100; public function BlowFishKey(_arg1:ByteArray){ key = null; super(); this.key = _arg1; setKey(_arg1); } private function F(_arg1:uint):uint{ return ((((S0[(_arg1 >>> 24)] + S1[((_arg1 >>> 16) & 0xFF)]) ^ S2[((_arg1 >>> 8) & 0xFF)]) + S3[(_arg1 & 0xFF)])); } private function BytesTo32bits(_arg1:ByteArray, _arg2:uint):uint{ return ((((((_arg1[_arg2] & 0xFF) << 24) | ((_arg1[(_arg2 + 1)] & 0xFF) << 16)) | ((_arg1[(_arg2 + 2)] & 0xFF) << 8)) | (_arg1[(_arg2 + 3)] & 0xFF))); } public function decrypt(_arg1:ByteArray, _arg2:uint=0):void{ decryptBlock(_arg1, _arg2, _arg1, _arg2); } private function decryptBlock(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray, _arg4:uint):void{ var _local5:uint; var _local6:uint; var _local7:uint; _local5 = BytesTo32bits(_arg1, _arg2); _local6 = BytesTo32bits(_arg1, (_arg2 + 4)); _local5 = (_local5 ^ P[(ROUNDS + 1)]); _local7 = ROUNDS; while (_local7 > 0) { _local6 = (_local6 ^ (F(_local5) ^ P[_local7])); _local5 = (_local5 ^ (F(_local6) ^ P[(_local7 - 1)])); _local7 = (_local7 - 2); }; _local6 = (_local6 ^ P[0]); Bits32ToBytes(_local6, _arg3, _arg4); Bits32ToBytes(_local5, _arg3, (_arg4 + 4)); } private function setKey(_arg1:ByteArray):void{ var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:uint; S0 = KS0.concat(); S1 = KS1.concat(); S2 = KS2.concat(); S3 = KS3.concat(); P = KP.concat(); _local2 = _arg1.length; _local3 = 0; _local4 = 0; while (_local4 < P_SZ) { _local5 = 0; _local6 = 0; while (_local6 < 4) { var _temp1 = _local3; _local3 = (_local3 + 1); _local5 = ((_local5 << 8) | (_arg1[_temp1] & 0xFF)); if (_local3 >= _local2){ _local3 = 0; }; _local6++; }; P[_local4] = (P[_local4] ^ _local5); _local4++; }; processTable(0, 0, P); processTable(P[(P_SZ - 2)], P[(P_SZ - 1)], S0); processTable(S0[(SBOX_SK - 2)], S0[(SBOX_SK - 1)], S1); processTable(S1[(SBOX_SK - 2)], S1[(SBOX_SK - 1)], S2); processTable(S2[(SBOX_SK - 2)], S2[(SBOX_SK - 1)], S3); } public function dispose():void{ var _local1:uint; _local1 = 0; _local1 = 0; while (_local1 < S0.length) { S0[_local1] = 0; _local1++; }; _local1 = 0; while (_local1 < S1.length) { S1[_local1] = 0; _local1++; }; _local1 = 0; while (_local1 < S2.length) { S2[_local1] = 0; _local1++; }; _local1 = 0; while (_local1 < S3.length) { S3[_local1] = 0; _local1++; }; _local1 = 0; while (_local1 < P.length) { P[_local1] = 0; _local1++; }; S0 = null; S1 = null; S2 = null; S3 = null; P = null; _local1 = 0; while (_local1 < key.length) { key[_local1] = 0; _local1++; }; key.length = 0; key = null; Memory.gc(); } private function encryptBlock(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray, _arg4:uint):void{ var _local5:uint; var _local6:uint; var _local7:uint; _local5 = BytesTo32bits(_arg1, _arg2); _local6 = BytesTo32bits(_arg1, (_arg2 + 4)); _local5 = (_local5 ^ P[0]); _local7 = 1; while (_local7 < ROUNDS) { _local6 = (_local6 ^ (F(_local5) ^ P[_local7])); _local5 = (_local5 ^ (F(_local6) ^ P[(_local7 + 1)])); _local7 = (_local7 + 2); }; _local6 = (_local6 ^ P[(ROUNDS + 1)]); Bits32ToBytes(_local6, _arg3, _arg4); Bits32ToBytes(_local5, _arg3, (_arg4 + 4)); } public function encrypt(_arg1:ByteArray, _arg2:uint=0):void{ encryptBlock(_arg1, _arg2, _arg1, _arg2); } private function Bits32ToBytes(_arg1:uint, _arg2:ByteArray, _arg3:uint):void{ _arg2[(_arg3 + 3)] = _arg1; _arg2[(_arg3 + 2)] = (_arg1 >> 8); _arg2[(_arg3 + 1)] = (_arg1 >> 16); _arg2[_arg3] = (_arg1 >> 24); } private function processTable(_arg1:uint, _arg2:uint, _arg3:Array):void{ var _local4:uint; var _local5:uint; var _local6:uint; _local4 = _arg3.length; _local5 = 0; while (_local5 < _local4) { _arg1 = (_arg1 ^ P[0]); _local6 = 1; while (_local6 < ROUNDS) { _arg2 = (_arg2 ^ (F(_arg1) ^ P[_local6])); _arg1 = (_arg1 ^ (F(_arg2) ^ P[(_local6 + 1)])); _local6 = (_local6 + 2); }; _arg2 = (_arg2 ^ P[(ROUNDS + 1)]); _arg3[_local5] = _arg2; _arg3[(_local5 + 1)] = _arg1; _arg2 = _arg1; _arg1 = _arg3[_local5]; _local5 = (_local5 + 2); }; } public function toString():String{ return ("blowfish"); } public function getBlockSize():uint{ return (BLOCK_SIZE); } } }//package com.hurlant.crypto.symmetric
Section 31
//CBCMode (com.hurlant.crypto.symmetric.CBCMode) package com.hurlant.crypto.symmetric { import flash.utils.*; public class CBCMode extends IVMode implements IMode { public function CBCMode(_arg1:ISymmetricKey, _arg2:IPad=null){ super(_arg1, _arg2); } public function toString():String{ return ((key.toString() + "-cbc")); } public function decrypt(_arg1:ByteArray):void{ var _local2:ByteArray; var _local3:ByteArray; var _local4:uint; var _local5:uint; _local2 = getIV4d(); _local3 = new ByteArray(); _local4 = 0; while (_local4 < _arg1.length) { _local3.position = 0; _local3.writeBytes(_arg1, _local4, blockSize); key.decrypt(_arg1, _local4); _local5 = 0; while (_local5 < blockSize) { _arg1[(_local4 + _local5)] = (_arg1[(_local4 + _local5)] ^ _local2[_local5]); _local5++; }; _local2.position = 0; _local2.writeBytes(_local3, 0, blockSize); _local4 = (_local4 + blockSize); }; padding.unpad(_arg1); } public function encrypt(_arg1:ByteArray):void{ var _local2:ByteArray; var _local3:uint; var _local4:uint; padding.pad(_arg1); _local2 = getIV4e(); _local3 = 0; while (_local3 < _arg1.length) { _local4 = 0; while (_local4 < blockSize) { _arg1[(_local3 + _local4)] = (_arg1[(_local3 + _local4)] ^ _local2[_local4]); _local4++; }; key.encrypt(_arg1, _local3); _local2.position = 0; _local2.writeBytes(_arg1, _local3, blockSize); _local3 = (_local3 + blockSize); }; } } }//package com.hurlant.crypto.symmetric
Section 32
//CFB8Mode (com.hurlant.crypto.symmetric.CFB8Mode) package com.hurlant.crypto.symmetric { import flash.utils.*; public class CFB8Mode extends IVMode implements IMode { public function CFB8Mode(_arg1:ISymmetricKey, _arg2:IPad=null){ super(_arg1, null); } public function toString():String{ return ((key.toString() + "-cfb8")); } public function decrypt(_arg1:ByteArray):void{ var _local2:ByteArray; var _local3:ByteArray; var _local4:uint; var _local5:uint; var _local6:uint; _local2 = getIV4d(); _local3 = new ByteArray(); _local4 = 0; while (_local4 < _arg1.length) { _local5 = _arg1[_local4]; _local3.position = 0; _local3.writeBytes(_local2); key.encrypt(_local2); _arg1[_local4] = (_arg1[_local4] ^ _local2[0]); _local6 = 0; while (_local6 < (blockSize - 1)) { _local2[_local6] = _local3[(_local6 + 1)]; _local6++; }; _local2[(blockSize - 1)] = _local5; _local4++; }; } public function encrypt(_arg1:ByteArray):void{ var _local2:ByteArray; var _local3:ByteArray; var _local4:uint; var _local5:uint; _local2 = getIV4e(); _local3 = new ByteArray(); _local4 = 0; while (_local4 < _arg1.length) { _local3.position = 0; _local3.writeBytes(_local2); key.encrypt(_local2); _arg1[_local4] = (_arg1[_local4] ^ _local2[0]); _local5 = 0; while (_local5 < (blockSize - 1)) { _local2[_local5] = _local3[(_local5 + 1)]; _local5++; }; _local2[(blockSize - 1)] = _arg1[_local4]; _local4++; }; } } }//package com.hurlant.crypto.symmetric
Section 33
//CFBMode (com.hurlant.crypto.symmetric.CFBMode) package com.hurlant.crypto.symmetric { import flash.utils.*; public class CFBMode extends IVMode implements IMode { public function CFBMode(_arg1:ISymmetricKey, _arg2:IPad=null){ super(_arg1, null); } public function toString():String{ return ((key.toString() + "-cfb")); } public function decrypt(_arg1:ByteArray):void{ var _local2:uint; var _local3:ByteArray; var _local4:ByteArray; var _local5:uint; var _local6:uint; var _local7:uint; _local2 = _arg1.length; _local3 = getIV4d(); _local4 = new ByteArray(); _local5 = 0; while (_local5 < _arg1.length) { key.encrypt(_local3); _local6 = (((_local5 + blockSize))<_local2) ? blockSize : (_local2 - _local5); _local4.position = 0; _local4.writeBytes(_arg1, _local5, _local6); _local7 = 0; while (_local7 < _local6) { _arg1[(_local5 + _local7)] = (_arg1[(_local5 + _local7)] ^ _local3[_local7]); _local7++; }; _local3.position = 0; _local3.writeBytes(_local4); _local5 = (_local5 + blockSize); }; } public function encrypt(_arg1:ByteArray):void{ var _local2:uint; var _local3:ByteArray; var _local4:uint; var _local5:uint; var _local6:uint; _local2 = _arg1.length; _local3 = getIV4e(); _local4 = 0; while (_local4 < _arg1.length) { key.encrypt(_local3); _local5 = (((_local4 + blockSize))<_local2) ? blockSize : (_local2 - _local4); _local6 = 0; while (_local6 < _local5) { _arg1[(_local4 + _local6)] = (_arg1[(_local4 + _local6)] ^ _local3[_local6]); _local6++; }; _local3.position = 0; _local3.writeBytes(_arg1, _local4, _local5); _local4 = (_local4 + blockSize); }; } } }//package com.hurlant.crypto.symmetric
Section 34
//CTRMode (com.hurlant.crypto.symmetric.CTRMode) package com.hurlant.crypto.symmetric { import flash.utils.*; public class CTRMode extends IVMode implements IMode { public function CTRMode(_arg1:ISymmetricKey, _arg2:IPad=null){ super(_arg1, _arg2); } public function toString():String{ return ((key.toString() + "-ctr")); } private function core(_arg1:ByteArray, _arg2:ByteArray):void{ var _local3:ByteArray; var _local4:ByteArray; var _local5:uint; var _local6:uint; _local3 = new ByteArray(); _local4 = new ByteArray(); _local3.writeBytes(_arg2); _local5 = 0; while (_local5 < _arg1.length) { _local4.position = 0; _local4.writeBytes(_local3); key.encrypt(_local4); _local6 = 0; while (_local6 < blockSize) { _arg1[(_local5 + _local6)] = (_arg1[(_local5 + _local6)] ^ _local4[_local6]); _local6++; }; _local6 = (blockSize - 1); while (_local6 >= 0) { var _local7 = _local3; var _local8 = _local6; var _local9 = (_local7[_local8] + 1); _local7[_local8] = _local9; if (_local3[_local6] != 0){ break; }; _local6--; }; _local5 = (_local5 + blockSize); }; } public function decrypt(_arg1:ByteArray):void{ var _local2:ByteArray; _local2 = getIV4d(); core(_arg1, _local2); padding.unpad(_arg1); } public function encrypt(_arg1:ByteArray):void{ var _local2:ByteArray; padding.pad(_arg1); _local2 = getIV4e(); core(_arg1, _local2); } } }//package com.hurlant.crypto.symmetric
Section 35
//DESKey (com.hurlant.crypto.symmetric.DESKey) package com.hurlant.crypto.symmetric { import flash.utils.*; import com.hurlant.util.*; public class DESKey implements ISymmetricKey { protected var encKey:Array; protected var key:ByteArray; protected var decKey:Array; private static const SP8:Array = [268439616, 0x1000, 262144, 268701760, 268435456, 268439616, 64, 268435456, 262208, 268697600, 268701760, 266240, 268701696, 266304, 0x1000, 64, 268697600, 268435520, 268439552, 4160, 266240, 262208, 268697664, 268701696, 4160, 0, 0, 268697664, 268435520, 268439552, 266304, 262144, 266304, 262144, 268701696, 0x1000, 64, 268697664, 0x1000, 266304, 268439552, 64, 268435520, 268697600, 268697664, 268435456, 262144, 268439616, 0, 268701760, 262208, 268435520, 268697600, 268439552, 268439616, 0, 268701760, 266240, 266240, 4160, 4160, 262208, 268435456, 268701696]; private static const bytebit:Array = [128, 64, 32, 16, 8, 4, 2, 1]; private static const bigbyte:Array = [0x800000, 0x400000, 0x200000, 0x100000, 524288, 262144, 131072, 65536, 0x8000, 0x4000, 0x2000, 0x1000, 0x0800, 0x0400, 0x0200, 0x0100, 128, 64, 32, 16, 8, 4, 2, 1]; private static const pc1:Array = [56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3]; private static const pc2:Array = [13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9, 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1, 40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47, 43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31]; private static const Df_Key:Array = [1, 35, 69, 103, 137, 171, 205, 239, 254, 220, 186, 152, 118, 84, 50, 16, 137, 171, 205, 239, 1, 35, 69, 103]; private static const totrot:Array = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; private static const SP1:Array = [16843776, 0, 65536, 16843780, 16842756, 66564, 4, 65536, 0x0400, 16843776, 16843780, 0x0400, 16778244, 16842756, 16777216, 4, 0x0404, 16778240, 16778240, 66560, 66560, 16842752, 16842752, 16778244, 65540, 16777220, 16777220, 65540, 0, 0x0404, 66564, 16777216, 65536, 16843780, 4, 16842752, 16843776, 16777216, 16777216, 0x0400, 16842756, 65536, 66560, 16777220, 0x0400, 4, 16778244, 66564, 16843780, 65540, 16842752, 16778244, 16777220, 0x0404, 66564, 16843776, 0x0404, 16778240, 16778240, 0, 65540, 66560, 0, 16842756]; private static const SP2:Array = [2148565024, 2147516416, 0x8000, 1081376, 0x100000, 32, 2148532256, 2147516448, 2147483680, 2148565024, 2148564992, 2147483648, 2147516416, 0x100000, 32, 2148532256, 0x108000, 0x100020, 2147516448, 0, 2147483648, 0x8000, 1081376, 2148532224, 0x100020, 2147483680, 0, 0x108000, 32800, 2148564992, 2148532224, 32800, 0, 1081376, 2148532256, 0x100000, 2147516448, 2148532224, 2148564992, 0x8000, 2148532224, 2147516416, 32, 2148565024, 1081376, 32, 0x8000, 2147483648, 32800, 2148564992, 0x100000, 2147483680, 0x100020, 2147516448, 2147483680, 0x100020, 0x108000, 0, 2147516416, 32800, 2147483648, 2148532256, 2148565024, 0x108000]; private static const SP3:Array = [520, 134349312, 0, 134348808, 134218240, 0, 131592, 134218240, 131080, 134217736, 134217736, 131072, 134349320, 131080, 134348800, 520, 134217728, 8, 134349312, 0x0200, 131584, 134348800, 134348808, 131592, 134218248, 131584, 131072, 134218248, 8, 134349320, 0x0200, 134217728, 134349312, 134217728, 131080, 520, 131072, 134349312, 134218240, 0, 0x0200, 131080, 134349320, 134218240, 134217736, 0x0200, 0, 134348808, 134218248, 131072, 134217728, 134349320, 8, 131592, 131584, 134217736, 134348800, 134218248, 520, 134348800, 131592, 8, 134348808, 131584]; private static const SP4:Array = [8396801, 8321, 8321, 128, 8396928, 0x800081, 0x800001, 8193, 0, 0x802000, 0x802000, 8396929, 129, 0, 0x800080, 0x800001, 1, 0x2000, 0x800000, 8396801, 128, 0x800000, 8193, 8320, 0x800081, 1, 8320, 0x800080, 0x2000, 8396928, 8396929, 129, 0x800080, 0x800001, 0x802000, 8396929, 129, 0, 0, 0x802000, 8320, 0x800080, 0x800081, 1, 8396801, 8321, 8321, 128, 8396929, 129, 1, 0x2000, 0x800001, 8193, 8396928, 0x800081, 8193, 8320, 0x800000, 8396801, 128, 0x800000, 0x2000, 8396928]; private static const SP5:Array = [0x0100, 34078976, 34078720, 1107296512, 524288, 0x0100, 1073741824, 34078720, 1074266368, 524288, 33554688, 1074266368, 1107296512, 1107820544, 524544, 1073741824, 33554432, 1074266112, 1074266112, 0, 1073742080, 1107820800, 1107820800, 33554688, 1107820544, 1073742080, 0, 1107296256, 34078976, 33554432, 1107296256, 524544, 524288, 1107296512, 0x0100, 33554432, 1073741824, 34078720, 1107296512, 1074266368, 33554688, 1073741824, 1107820544, 34078976, 1074266368, 0x0100, 33554432, 1107820544, 1107820800, 524544, 1107296256, 1107820800, 34078720, 0, 1074266112, 1107296256, 524544, 33554688, 1073742080, 524288, 0, 1074266112, 34078976, 1073742080]; private static const SP6:Array = [536870928, 541065216, 0x4000, 541081616, 541065216, 16, 541081616, 0x400000, 536887296, 4210704, 0x400000, 536870928, 0x400010, 536887296, 536870912, 16400, 0, 0x400010, 536887312, 0x4000, 0x404000, 536887312, 16, 541065232, 541065232, 0, 4210704, 541081600, 16400, 0x404000, 541081600, 536870912, 536887296, 16, 541065232, 0x404000, 541081616, 0x400000, 16400, 536870928, 0x400000, 536887296, 536870912, 16400, 536870928, 541081616, 0x404000, 541065216, 4210704, 541081600, 0, 541065232, 16, 0x4000, 541065216, 4210704, 0x4000, 0x400010, 536887312, 0, 541081600, 536870912, 0x400010, 536887312]; private static const SP7:Array = [0x200000, 69206018, 67110914, 0, 0x0800, 67110914, 2099202, 69208064, 69208066, 0x200000, 0, 67108866, 2, 67108864, 69206018, 2050, 67110912, 2099202, 0x200002, 67110912, 67108866, 69206016, 69208064, 0x200002, 69206016, 0x0800, 2050, 69208066, 0x200800, 2, 67108864, 0x200800, 67108864, 0x200800, 0x200000, 67110914, 67110914, 69206018, 69206018, 2, 0x200002, 67108864, 67110912, 0x200000, 69208064, 2050, 2099202, 69208064, 2050, 67108866, 69208066, 69206016, 0x200800, 0, 2, 69208066, 0, 2099202, 69206016, 0x0800, 67108866, 67110912, 0x0800, 0x200002]; public function DESKey(_arg1:ByteArray){ this.key = _arg1; this.encKey = generateWorkingKey(true, _arg1, 0); this.decKey = generateWorkingKey(false, _arg1, 0); } protected function generateWorkingKey(_arg1:Boolean, _arg2:ByteArray, _arg3:uint):Array{ var _local4:Array; var _local5:ByteArray; var _local6:ByteArray; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:uint; _local4 = []; _local5 = new ByteArray(); _local6 = new ByteArray(); _local8 = 0; while (_local8 < 56) { _local7 = pc1[_local8]; _local5[_local8] = !(((_arg2[(_arg3 + (_local7 >>> 3))] & bytebit[(_local7 & 7)]) == 0)); _local8++; }; _local9 = 0; while (_local9 < 16) { if (_arg1){ _local10 = (_local9 << 1); } else { _local10 = ((15 - _local9) << 1); }; _local11 = (_local10 + 1); _local4[_local10] = (_local4[_local11] = 0); _local8 = 0; while (_local8 < 28) { _local7 = (_local8 + totrot[_local9]); if (_local7 < 28){ _local6[_local8] = _local5[_local7]; } else { _local6[_local8] = _local5[(_local7 - 28)]; }; _local8++; }; _local8 = 28; while (_local8 < 56) { _local7 = (_local8 + totrot[_local9]); if (_local7 < 56){ _local6[_local8] = _local5[_local7]; } else { _local6[_local8] = _local5[(_local7 - 28)]; }; _local8++; }; _local8 = 0; while (_local8 < 24) { if (_local6[pc2[_local8]]){ _local4[_local10] = (_local4[_local10] | bigbyte[_local8]); }; if (_local6[pc2[(_local8 + 24)]]){ _local4[_local11] = (_local4[_local11] | bigbyte[_local8]); }; _local8++; }; _local9++; }; _local9 = 0; while (_local9 != 32) { _local12 = _local4[_local9]; _local13 = _local4[(_local9 + 1)]; _local4[_local9] = (((((_local12 & 0xFC0000) << 6) | ((_local12 & 4032) << 10)) | ((_local13 & 0xFC0000) >>> 10)) | ((_local13 & 4032) >>> 6)); _local4[(_local9 + 1)] = (((((_local12 & 258048) << 12) | ((_local12 & 63) << 16)) | ((_local13 & 258048) >>> 4)) | (_local13 & 63)); _local9 = (_local9 + 2); }; return (_local4); } public function encrypt(_arg1:ByteArray, _arg2:uint=0):void{ desFunc(encKey, _arg1, _arg2, _arg1, _arg2); } public function decrypt(_arg1:ByteArray, _arg2:uint=0):void{ desFunc(decKey, _arg1, _arg2, _arg1, _arg2); } public function dispose():void{ var _local1:uint; _local1 = 0; _local1 = 0; while (_local1 < encKey.length) { encKey[_local1] = 0; _local1++; }; _local1 = 0; while (_local1 < decKey.length) { decKey[_local1] = 0; _local1++; }; encKey = null; decKey = null; _local1 = 0; while (_local1 < key.length) { key[_local1] = 0; _local1++; }; key.length = 0; key = null; Memory.gc(); } protected function desFunc(_arg1:Array, _arg2:ByteArray, _arg3:uint, _arg4:ByteArray, _arg5:uint):void{ var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:uint; _local8 = ((_arg2[(_arg3 + 0)] & 0xFF) << 24); _local8 = (_local8 | ((_arg2[(_arg3 + 1)] & 0xFF) << 16)); _local8 = (_local8 | ((_arg2[(_arg3 + 2)] & 0xFF) << 8)); _local8 = (_local8 | (_arg2[(_arg3 + 3)] & 0xFF)); _local7 = ((_arg2[(_arg3 + 4)] & 0xFF) << 24); _local7 = (_local7 | ((_arg2[(_arg3 + 5)] & 0xFF) << 16)); _local7 = (_local7 | ((_arg2[(_arg3 + 6)] & 0xFF) << 8)); _local7 = (_local7 | (_arg2[(_arg3 + 7)] & 0xFF)); _local6 = (((_local8 >>> 4) ^ _local7) & 252645135); _local7 = (_local7 ^ _local6); _local8 = (_local8 ^ (_local6 << 4)); _local6 = (((_local8 >>> 16) ^ _local7) & 0xFFFF); _local7 = (_local7 ^ _local6); _local8 = (_local8 ^ (_local6 << 16)); _local6 = (((_local7 >>> 2) ^ _local8) & 858993459); _local8 = (_local8 ^ _local6); _local7 = (_local7 ^ (_local6 << 2)); _local6 = (((_local7 >>> 8) ^ _local8) & 0xFF00FF); _local8 = (_local8 ^ _local6); _local7 = (_local7 ^ (_local6 << 8)); _local7 = (((_local7 << 1) | ((_local7 >>> 31) & 1)) & 4294967295); _local6 = ((_local8 ^ _local7) & 2863311530); _local8 = (_local8 ^ _local6); _local7 = (_local7 ^ _local6); _local8 = (((_local8 << 1) | ((_local8 >>> 31) & 1)) & 4294967295); _local9 = 0; while (_local9 < 8) { _local6 = ((_local7 << 28) | (_local7 >>> 4)); _local6 = (_local6 ^ _arg1[((_local9 * 4) + 0)]); _local10 = SP7[(_local6 & 63)]; _local10 = (_local10 | SP5[((_local6 >>> 8) & 63)]); _local10 = (_local10 | SP3[((_local6 >>> 16) & 63)]); _local10 = (_local10 | SP1[((_local6 >>> 24) & 63)]); _local6 = (_local7 ^ _arg1[((_local9 * 4) + 1)]); _local10 = (_local10 | SP8[(_local6 & 63)]); _local10 = (_local10 | SP6[((_local6 >>> 8) & 63)]); _local10 = (_local10 | SP4[((_local6 >>> 16) & 63)]); _local10 = (_local10 | SP2[((_local6 >>> 24) & 63)]); _local8 = (_local8 ^ _local10); _local6 = ((_local8 << 28) | (_local8 >>> 4)); _local6 = (_local6 ^ _arg1[((_local9 * 4) + 2)]); _local10 = SP7[(_local6 & 63)]; _local10 = (_local10 | SP5[((_local6 >>> 8) & 63)]); _local10 = (_local10 | SP3[((_local6 >>> 16) & 63)]); _local10 = (_local10 | SP1[((_local6 >>> 24) & 63)]); _local6 = (_local8 ^ _arg1[((_local9 * 4) + 3)]); _local10 = (_local10 | SP8[(_local6 & 63)]); _local10 = (_local10 | SP6[((_local6 >>> 8) & 63)]); _local10 = (_local10 | SP4[((_local6 >>> 16) & 63)]); _local10 = (_local10 | SP2[((_local6 >>> 24) & 63)]); _local7 = (_local7 ^ _local10); _local9++; }; _local7 = ((_local7 << 31) | (_local7 >>> 1)); _local6 = ((_local8 ^ _local7) & 2863311530); _local8 = (_local8 ^ _local6); _local7 = (_local7 ^ _local6); _local8 = ((_local8 << 31) | (_local8 >>> 1)); _local6 = (((_local8 >>> 8) ^ _local7) & 0xFF00FF); _local7 = (_local7 ^ _local6); _local8 = (_local8 ^ (_local6 << 8)); _local6 = (((_local8 >>> 2) ^ _local7) & 858993459); _local7 = (_local7 ^ _local6); _local8 = (_local8 ^ (_local6 << 2)); _local6 = (((_local7 >>> 16) ^ _local8) & 0xFFFF); _local8 = (_local8 ^ _local6); _local7 = (_local7 ^ (_local6 << 16)); _local6 = (((_local7 >>> 4) ^ _local8) & 252645135); _local8 = (_local8 ^ _local6); _local7 = (_local7 ^ (_local6 << 4)); _arg4[(_arg5 + 0)] = ((_local7 >>> 24) & 0xFF); _arg4[(_arg5 + 1)] = ((_local7 >>> 16) & 0xFF); _arg4[(_arg5 + 2)] = ((_local7 >>> 8) & 0xFF); _arg4[(_arg5 + 3)] = (_local7 & 0xFF); _arg4[(_arg5 + 4)] = ((_local8 >>> 24) & 0xFF); _arg4[(_arg5 + 5)] = ((_local8 >>> 16) & 0xFF); _arg4[(_arg5 + 6)] = ((_local8 >>> 8) & 0xFF); _arg4[(_arg5 + 7)] = (_local8 & 0xFF); } public function toString():String{ return ("des"); } public function getBlockSize():uint{ return (8); } } }//package com.hurlant.crypto.symmetric
Section 36
//ECBMode (com.hurlant.crypto.symmetric.ECBMode) package com.hurlant.crypto.symmetric { import flash.utils.*; import com.hurlant.util.*; public class ECBMode implements IMode, ICipher { private var key:ISymmetricKey; private var padding:IPad; public function ECBMode(_arg1:ISymmetricKey, _arg2:IPad=null){ this.key = _arg1; if (_arg2 == null){ _arg2 = new PKCS5(_arg1.getBlockSize()); } else { _arg2.setBlockSize(_arg1.getBlockSize()); }; this.padding = _arg2; } public function encrypt(_arg1:ByteArray):void{ var _local2:uint; var _local3:ByteArray; var _local4:ByteArray; var _local5:uint; padding.pad(_arg1); _arg1.position = 0; _local2 = key.getBlockSize(); _local3 = new ByteArray(); _local4 = new ByteArray(); _local5 = 0; while (_local5 < _arg1.length) { _local3.length = 0; _arg1.readBytes(_local3, 0, _local2); key.encrypt(_local3); _local4.writeBytes(_local3); _local5 = (_local5 + _local2); }; _arg1.length = 0; _arg1.writeBytes(_local4); } public function decrypt(_arg1:ByteArray):void{ var _local2:uint; var _local3:ByteArray; var _local4:ByteArray; var _local5:uint; _arg1.position = 0; _local2 = key.getBlockSize(); if ((_arg1.length % _local2) != 0){ throw (new Error(("ECB mode cipher length must be a multiple of blocksize " + _local2))); }; _local3 = new ByteArray(); _local4 = new ByteArray(); _local5 = 0; while (_local5 < _arg1.length) { _local3.length = 0; _arg1.readBytes(_local3, 0, _local2); key.decrypt(_local3); _local4.writeBytes(_local3); _local5 = (_local5 + _local2); }; padding.unpad(_local4); _arg1.length = 0; _arg1.writeBytes(_local4); } public function dispose():void{ key.dispose(); key = null; padding = null; Memory.gc(); } public function getBlockSize():uint{ return (key.getBlockSize()); } public function toString():String{ return ((key.toString() + "-ecb")); } } }//package com.hurlant.crypto.symmetric
Section 37
//ICipher (com.hurlant.crypto.symmetric.ICipher) package com.hurlant.crypto.symmetric { import flash.utils.*; public interface ICipher { function encrypt(_arg1:ByteArray):void; function dispose():void; function getBlockSize():uint; function toString():String; function decrypt(_arg1:ByteArray):void; } }//package com.hurlant.crypto.symmetric
Section 38
//IMode (com.hurlant.crypto.symmetric.IMode) package com.hurlant.crypto.symmetric { public interface IMode extends ICipher { } }//package com.hurlant.crypto.symmetric
Section 39
//IPad (com.hurlant.crypto.symmetric.IPad) package com.hurlant.crypto.symmetric { import flash.utils.*; public interface IPad { function pad(_arg1:ByteArray):void; function unpad(_arg1:ByteArray):void; function setBlockSize(_arg1:uint):void; } }//package com.hurlant.crypto.symmetric
Section 40
//IStreamCipher (com.hurlant.crypto.symmetric.IStreamCipher) package com.hurlant.crypto.symmetric { public interface IStreamCipher extends ICipher { } }//package com.hurlant.crypto.symmetric
Section 41
//ISymmetricKey (com.hurlant.crypto.symmetric.ISymmetricKey) package com.hurlant.crypto.symmetric { import flash.utils.*; public interface ISymmetricKey { function encrypt(_arg1:ByteArray, _arg2:uint=0):void; function dispose():void; function getBlockSize():uint; function toString():String; function decrypt(_arg1:ByteArray, _arg2:uint=0):void; } }//package com.hurlant.crypto.symmetric
Section 42
//IVMode (com.hurlant.crypto.symmetric.IVMode) package com.hurlant.crypto.symmetric { import flash.utils.*; import com.hurlant.crypto.prng.*; import com.hurlant.util.*; public class IVMode { protected var lastIV:ByteArray; protected var iv:ByteArray; protected var blockSize:uint; protected var padding:IPad; protected var prng:Random; protected var key:ISymmetricKey; public function IVMode(_arg1:ISymmetricKey, _arg2:IPad=null){ this.key = _arg1; blockSize = _arg1.getBlockSize(); if (_arg2 == null){ _arg2 = new PKCS5(blockSize); } else { _arg2.setBlockSize(blockSize); }; this.padding = _arg2; prng = new Random(); iv = null; lastIV = new ByteArray(); } public function set IV(_arg1:ByteArray):void{ iv = _arg1; lastIV.length = 0; lastIV.writeBytes(iv); } protected function getIV4d():ByteArray{ var _local1:ByteArray; _local1 = new ByteArray(); if (iv){ _local1.writeBytes(iv); } else { throw (new Error("an IV must be set before calling decrypt()")); }; return (_local1); } protected function getIV4e():ByteArray{ var _local1:ByteArray; _local1 = new ByteArray(); if (iv){ _local1.writeBytes(iv); } else { prng.nextBytes(_local1, blockSize); }; lastIV.length = 0; lastIV.writeBytes(_local1); return (_local1); } public function get IV():ByteArray{ return (lastIV); } public function dispose():void{ var _local1:uint; if (iv != null){ _local1 = 0; while (_local1 < iv.length) { iv[_local1] = prng.nextByte(); _local1++; }; iv.length = 0; iv = null; }; if (lastIV != null){ _local1 = 0; while (_local1 < iv.length) { lastIV[_local1] = prng.nextByte(); _local1++; }; lastIV.length = 0; lastIV = null; }; key.dispose(); key = null; padding = null; prng.dispose(); prng = null; Memory.gc(); } public function getBlockSize():uint{ return (key.getBlockSize()); } } }//package com.hurlant.crypto.symmetric
Section 43
//NullPad (com.hurlant.crypto.symmetric.NullPad) package com.hurlant.crypto.symmetric { import flash.utils.*; public class NullPad implements IPad { public function pad(_arg1:ByteArray):void{ } public function unpad(_arg1:ByteArray):void{ } public function setBlockSize(_arg1:uint):void{ } } }//package com.hurlant.crypto.symmetric
Section 44
//OFBMode (com.hurlant.crypto.symmetric.OFBMode) package com.hurlant.crypto.symmetric { import flash.utils.*; public class OFBMode extends IVMode implements IMode { public function OFBMode(_arg1:ISymmetricKey, _arg2:IPad=null){ super(_arg1, null); } public function toString():String{ return ((key.toString() + "-ofb")); } private function core(_arg1:ByteArray, _arg2:ByteArray):void{ var _local3:uint; var _local4:ByteArray; var _local5:uint; var _local6:uint; var _local7:uint; _local3 = _arg1.length; _local4 = new ByteArray(); _local5 = 0; while (_local5 < _arg1.length) { key.encrypt(_arg2); _local4.position = 0; _local4.writeBytes(_arg2); _local6 = (((_local5 + blockSize))<_local3) ? blockSize : (_local3 - _local5); _local7 = 0; while (_local7 < _local6) { _arg1[(_local5 + _local7)] = (_arg1[(_local5 + _local7)] ^ _arg2[_local7]); _local7++; }; _arg2.position = 0; _arg2.writeBytes(_local4); _local5 = (_local5 + blockSize); }; } public function decrypt(_arg1:ByteArray):void{ var _local2:ByteArray; _local2 = getIV4d(); core(_arg1, _local2); } public function encrypt(_arg1:ByteArray):void{ var _local2:ByteArray; _local2 = getIV4e(); core(_arg1, _local2); } } }//package com.hurlant.crypto.symmetric
Section 45
//PKCS5 (com.hurlant.crypto.symmetric.PKCS5) package com.hurlant.crypto.symmetric { import flash.utils.*; public class PKCS5 implements IPad { private var blockSize:uint; public function PKCS5(_arg1:uint=0){ this.blockSize = _arg1; } public function unpad(_arg1:ByteArray):void{ var _local2:uint; var _local3:uint; var _local4:uint; _local2 = (_arg1.length % blockSize); if (_local2 != 0){ throw (new Error("PKCS#5::unpad: ByteArray.length isn't a multiple of the blockSize")); }; _local2 = _arg1[(_arg1.length - 1)]; _local3 = _local2; while (_local3 > 0) { _local4 = _arg1[(_arg1.length - 1)]; _arg1.length--; if (_local2 != _local4){ throw (new Error((((("PKCS#5:unpad: Invalid padding value. expected [" + _local2) + "], found [") + _local4) + "]"))); }; _local3--; }; } public function pad(_arg1:ByteArray):void{ var _local2:uint; var _local3:uint; _local2 = (blockSize - (_arg1.length % blockSize)); _local3 = 0; while (_local3 < _local2) { _arg1[_arg1.length] = _local2; _local3++; }; } public function setBlockSize(_arg1:uint):void{ blockSize = _arg1; } } }//package com.hurlant.crypto.symmetric
Section 46
//SimpleIVMode (com.hurlant.crypto.symmetric.SimpleIVMode) package com.hurlant.crypto.symmetric { import flash.utils.*; import com.hurlant.util.*; public class SimpleIVMode implements IMode, ICipher { protected var mode:IVMode; protected var cipher:ICipher; public function SimpleIVMode(_arg1:IVMode){ this.mode = _arg1; cipher = (_arg1 as ICipher); } public function encrypt(_arg1:ByteArray):void{ var _local2:ByteArray; cipher.encrypt(_arg1); _local2 = new ByteArray(); _local2.writeBytes(mode.IV); _local2.writeBytes(_arg1); _arg1.position = 0; _arg1.writeBytes(_local2); } public function decrypt(_arg1:ByteArray):void{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeBytes(_arg1, 0, getBlockSize()); mode.IV = _local2; _local2 = new ByteArray(); _local2.writeBytes(_arg1, getBlockSize()); cipher.decrypt(_local2); _arg1.length = 0; _arg1.writeBytes(_local2); } public function dispose():void{ mode.dispose(); mode = null; cipher = null; Memory.gc(); } public function toString():String{ return (("simple-" + cipher.toString())); } public function getBlockSize():uint{ return (mode.getBlockSize()); } } }//package com.hurlant.crypto.symmetric
Section 47
//TripleDESKey (com.hurlant.crypto.symmetric.TripleDESKey) package com.hurlant.crypto.symmetric { import flash.utils.*; import com.hurlant.util.*; public class TripleDESKey extends DESKey { protected var decKey2:Array; protected var decKey3:Array; protected var encKey2:Array; protected var encKey3:Array; public function TripleDESKey(_arg1:ByteArray){ super(_arg1); encKey2 = generateWorkingKey(false, _arg1, 8); decKey2 = generateWorkingKey(true, _arg1, 8); if (_arg1.length > 16){ encKey3 = generateWorkingKey(true, _arg1, 16); decKey3 = generateWorkingKey(false, _arg1, 16); } else { encKey3 = encKey; decKey3 = decKey; }; } override public function decrypt(_arg1:ByteArray, _arg2:uint=0):void{ desFunc(decKey3, _arg1, _arg2, _arg1, _arg2); desFunc(decKey2, _arg1, _arg2, _arg1, _arg2); desFunc(decKey, _arg1, _arg2, _arg1, _arg2); } override public function encrypt(_arg1:ByteArray, _arg2:uint=0):void{ desFunc(encKey, _arg1, _arg2, _arg1, _arg2); desFunc(encKey2, _arg1, _arg2, _arg1, _arg2); desFunc(encKey3, _arg1, _arg2, _arg1, _arg2); } override public function dispose():void{ var _local1:uint; super.dispose(); _local1 = 0; if (encKey2 != null){ _local1 = 0; while (_local1 < encKey2.length) { encKey2[_local1] = 0; _local1++; }; encKey2 = null; }; if (encKey3 != null){ _local1 = 0; while (_local1 < encKey3.length) { encKey3[_local1] = 0; _local1++; }; encKey3 = null; }; if (decKey2 != null){ _local1 = 0; while (_local1 < decKey2.length) { decKey2[_local1] = 0; _local1++; }; decKey2 = null; }; if (decKey3 != null){ _local1 = 0; while (_local1 < decKey3.length) { decKey3[_local1] = 0; _local1++; }; decKey3 = null; }; Memory.gc(); } override public function toString():String{ return ("3des"); } } }//package com.hurlant.crypto.symmetric
Section 48
//XTeaKey (com.hurlant.crypto.symmetric.XTeaKey) package com.hurlant.crypto.symmetric { import flash.utils.*; import com.hurlant.crypto.prng.*; import com.hurlant.util.*; public class XTeaKey implements ISymmetricKey { public const NUM_ROUNDS:uint = 64; private var k:Array; public function XTeaKey(_arg1:ByteArray){ _arg1.position = 0; k = [_arg1.readUnsignedInt(), _arg1.readUnsignedInt(), _arg1.readUnsignedInt(), _arg1.readUnsignedInt()]; } public function dispose():void{ var _local1:Random; var _local2:uint; _local1 = new Random(); _local2 = 0; while (_local2 < k.length) { k[_local2] = _local1.nextByte(); delete k[_local2]; _local2++; }; k = null; Memory.gc(); } public function encrypt(_arg1:ByteArray, _arg2:uint=0):void{ var _local3:uint; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:uint; _arg1.position = _arg2; _local3 = _arg1.readUnsignedInt(); _local4 = _arg1.readUnsignedInt(); _local6 = 0; _local7 = 2654435769; _local5 = 0; while (_local5 < NUM_ROUNDS) { _local3 = (_local3 + ((((_local4 << 4) ^ (_local4 >> 5)) + _local4) ^ (_local6 + k[(_local6 & 3)]))); _local6 = (_local6 + _local7); _local4 = (_local4 + ((((_local3 << 4) ^ (_local3 >> 5)) + _local3) ^ (_local6 + k[((_local6 >> 11) & 3)]))); _local5++; }; _arg1.position = (_arg1.position - 8); _arg1.writeUnsignedInt(_local3); _arg1.writeUnsignedInt(_local4); } public function decrypt(_arg1:ByteArray, _arg2:uint=0):void{ var _local3:uint; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:uint; _arg1.position = _arg2; _local3 = _arg1.readUnsignedInt(); _local4 = _arg1.readUnsignedInt(); _local6 = 2654435769; _local7 = (_local6 * NUM_ROUNDS); _local5 = 0; while (_local5 < NUM_ROUNDS) { _local4 = (_local4 - ((((_local3 << 4) ^ (_local3 >> 5)) + _local3) ^ (_local7 + k[((_local7 >> 11) & 3)]))); _local7 = (_local7 - _local6); _local3 = (_local3 - ((((_local4 << 4) ^ (_local4 >> 5)) + _local4) ^ (_local7 + k[(_local7 & 3)]))); _local5++; }; _arg1.position = (_arg1.position - 8); _arg1.writeUnsignedInt(_local3); _arg1.writeUnsignedInt(_local4); } public function toString():String{ return ("xtea"); } public function getBlockSize():uint{ return (8); } public static function parseKey(_arg1:String):XTeaKey{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeUnsignedInt(parseInt(_arg1.substr(0, 8), 16)); _local2.writeUnsignedInt(parseInt(_arg1.substr(8, 8), 16)); _local2.writeUnsignedInt(parseInt(_arg1.substr(16, 8), 16)); _local2.writeUnsignedInt(parseInt(_arg1.substr(24, 8), 16)); _local2.position = 0; return (new XTeaKey(_local2)); } } }//package com.hurlant.crypto.symmetric
Section 49
//Crypto (com.hurlant.crypto.Crypto) package com.hurlant.crypto { import flash.utils.*; import com.hurlant.crypto.symmetric.*; import com.hurlant.crypto.hash.*; import com.hurlant.crypto.rsa.*; import com.hurlant.crypto.prng.*; import com.hurlant.util.*; public class Crypto { private var b64:Base64; public static function getCipher(_arg1:String, _arg2:ByteArray, _arg3:IPad=null):ICipher{ var _local4:Array; var _local5:ICipher; _local4 = _arg1.split("-"); switch (_local4[0]){ case "simple": _local4.shift(); _arg1 = _local4.join("-"); _local5 = getCipher(_arg1, _arg2, _arg3); if ((_local5 is IVMode)){ return (new SimpleIVMode((_local5 as IVMode))); }; return (_local5); case "aes": case "aes128": case "aes192": case "aes256": _local4.shift(); if ((_arg2.length * 8) == _local4[0]){ _local4.shift(); }; return (getMode(_local4[0], new AESKey(_arg2), _arg3)); case "bf": case "blowfish": _local4.shift(); return (getMode(_local4[0], new BlowFishKey(_arg2), _arg3)); case "des": _local4.shift(); if (((!((_local4[0] == "ede"))) && (!((_local4[0] == "ede3"))))){ return (getMode(_local4[0], new DESKey(_arg2), _arg3)); }; if (_local4.length == 1){ _local4.push("ecb"); }; case "3des": case "des3": _local4.shift(); return (getMode(_local4[0], new TripleDESKey(_arg2), _arg3)); case "xtea": _local4.shift(); return (getMode(_local4[0], new XTeaKey(_arg2), _arg3)); case "rc4": _local4.shift(); return (new ARC4(_arg2)); }; return (null); } public static function getHash(_arg1:String):IHash{ switch (_arg1){ case "md2": return (new MD2()); case "md5": return (new MD5()); case "sha": case "sha1": return (new SHA1()); case "sha224": return (new SHA224()); case "sha256": return (new SHA256()); }; return (null); } public static function getRSA(_arg1:String, _arg2:String):RSAKey{ return (RSAKey.parsePublicKey(_arg2, _arg1)); } private static function getMode(_arg1:String, _arg2:ISymmetricKey, _arg3:IPad=null):IMode{ switch (_arg1){ case "ecb": return (new ECBMode(_arg2, _arg3)); case "cfb": return (new CFBMode(_arg2, _arg3)); case "cfb8": return (new CFB8Mode(_arg2, _arg3)); case "ofb": return (new OFBMode(_arg2, _arg3)); case "ctr": return (new CTRMode(_arg2, _arg3)); case "cbc": default: return (new CBCMode(_arg2, _arg3)); }; } public static function getKeySize(_arg1:String):uint{ var _local2:Array; _local2 = _arg1.split("-"); switch (_local2[0]){ case "simple": _local2.shift(); return (getKeySize(_local2.join("-"))); case "aes128": return (16); case "aes192": return (24); case "aes256": return (32); case "aes": _local2.shift(); return ((parseInt(_local2[0]) / 8)); case "bf": case "blowfish": return (16); case "des": _local2.shift(); switch (_local2[0]){ case "ede": return (16); case "ede3": return (24); default: return (8); }; case "3des": case "des3": return (24); case "xtea": return (8); case "rc4": if (parseInt(_local2[1]) > 0){ return ((parseInt(_local2[1]) / 8)); }; return (16); }; return (0); } public static function getPad(_arg1:String):IPad{ switch (_arg1){ case "null": return (new NullPad()); case "pkcs5": default: return (new PKCS5()); }; } public static function getHMAC(_arg1:String):HMAC{ var _local2:Array; var _local3:uint; _local2 = _arg1.split("-"); if (_local2[0] == "hmac"){ _local2.shift(); }; _local3 = 0; if (_local2.length > 1){ _local3 = parseInt(_local2[1]); }; return (new HMAC(getHash(_local2[0]), _local3)); } } }//package com.hurlant.crypto
Section 50
//BarrettReduction (com.hurlant.math.BarrettReduction) package com.hurlant.math { import com.hurlant.math.*; class BarrettReduction implements IReduction { private var r2:BigInteger; private var q3:BigInteger; private var mu:BigInteger; private var m:BigInteger; function BarrettReduction(_arg1:BigInteger){ r2 = new BigInteger(); q3 = new BigInteger(); BigInteger.ONE.dlShiftTo((2 * _arg1.t), r2); mu = r2.divide(_arg1); this.m = _arg1; } public function reduce(_arg1:BigInteger):void{ var _local2:BigInteger; _local2 = (_arg1 as BigInteger); _local2.drShiftTo((m.t - 1), r2); if (_local2.t > (m.t + 1)){ _local2.t = (m.t + 1); _local2.clamp(); }; mu.multiplyUpperTo(r2, (m.t + 1), q3); m.multiplyLowerTo(q3, (m.t + 1), r2); while (_local2.compareTo(r2) < 0) { _local2.dAddOffset(1, (m.t + 1)); }; _local2.subTo(r2, _local2); while (_local2.compareTo(m) >= 0) { _local2.subTo(m, _local2); }; } public function revert(_arg1:BigInteger):BigInteger{ return (_arg1); } public function convert(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; if ((((_arg1.s < 0)) || ((_arg1.t > (2 * m.t))))){ return (_arg1.mod(m)); }; if (_arg1.compareTo(m) < 0){ return (_arg1); }; _local2 = new BigInteger(); _arg1.copyTo(_local2); reduce(_local2); return (_local2); } public function sqrTo(_arg1:BigInteger, _arg2:BigInteger):void{ _arg1.squareTo(_arg2); reduce(_arg2); } public function mulTo(_arg1:BigInteger, _arg2:BigInteger, _arg3:BigInteger):void{ _arg1.multiplyTo(_arg2, _arg3); reduce(_arg3); } } }//package com.hurlant.math
Section 51
//bi_internal (com.hurlant.math.bi_internal) package com.hurlant.math { public namespace bi_internal = "http://crypto.hurlant.com/BigInteger"; }//package com.hurlant.math
Section 52
//BigInteger (com.hurlant.math.BigInteger) package com.hurlant.math { import flash.utils.*; import com.hurlant.crypto.prng.*; import com.hurlant.util.*; public class BigInteger { bi_internal var a:Array; bi_internal var s:int; public var t:int; public static const ONE:BigInteger = nbv(1); public static const ZERO:BigInteger = nbv(0); public static const DM:int = (DV - 1); public static const F1:int = 22; public static const F2:int = 8; public static const lplim:int = ((1 << 26) / lowprimes[(lowprimes.length - 1)]); public static const lowprimes:Array = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 0x0101, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509]; public static const FV:Number = Math.pow(2, BI_FP); public static const BI_FP:int = 52; public static const DV:int = (1 << DB); public static const DB:int = 30; public function BigInteger(_arg1=null, _arg2:int=0){ var _local3:ByteArray; var _local4:int; super(); a = new Array(); if ((_arg1 is String)){ _arg1 = Hex.toArray(_arg1); _arg2 = 0; }; if ((_arg1 is ByteArray)){ _local3 = (_arg1 as ByteArray); _local4 = ((_arg2) || ((_local3.length - _local3.position))); fromArray(_local3, _local4); }; } public function clearBit(_arg1:int):BigInteger{ return (changeBit(_arg1, op_andnot)); } public function negate():BigInteger{ var _local1:BigInteger; _local1 = nbi(); ZERO.subTo(this, _local1); return (_local1); } public function andNot(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); bitwiseTo(_arg1, op_andnot, _local2); return (_local2); } public function modPow(_arg1:BigInteger, _arg2:BigInteger):BigInteger{ var _local3:int; var _local4:int; var _local5:BigInteger; var _local6:IReduction; var _local7:Array; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:Boolean; var _local14:BigInteger; var _local15:BigInteger; var _local16:BigInteger; _local3 = _arg1.bitLength(); _local5 = nbv(1); if (_local3 <= 0){ return (_local5); }; if (_local3 < 18){ _local4 = 1; } else { if (_local3 < 48){ _local4 = 3; } else { if (_local3 < 144){ _local4 = 4; } else { if (_local3 < 0x0300){ _local4 = 5; } else { _local4 = 6; }; }; }; }; if (_local3 < 8){ _local6 = new ClassicReduction(_arg2); } else { if (_arg2.isEven()){ _local6 = new BarrettReduction(_arg2); } else { _local6 = new MontgomeryReduction(_arg2); }; }; _local7 = []; _local8 = 3; _local9 = (_local4 - 1); _local10 = ((1 << _local4) - 1); _local7[1] = _local6.convert(this); if (_local4 > 1){ _local16 = new BigInteger(); _local6.sqrTo(_local7[1], _local16); while (_local8 <= _local10) { _local7[_local8] = new BigInteger(); _local6.mulTo(_local16, _local7[(_local8 - 2)], _local7[_local8]); _local8 = (_local8 + 2); }; }; _local11 = (_arg1.t - 1); _local13 = true; _local14 = new BigInteger(); _local3 = (nbits(_arg1.a[_local11]) - 1); while (_local11 >= 0) { if (_local3 >= _local9){ _local12 = ((_arg1.a[_local11] >> (_local3 - _local9)) & _local10); } else { _local12 = ((_arg1.a[_local11] & ((1 << (_local3 + 1)) - 1)) << (_local9 - _local3)); if (_local11 > 0){ _local12 = (_local12 | (_arg1.a[(_local11 - 1)] >> ((DB + _local3) - _local9))); }; }; _local8 = _local4; while ((_local12 & 1) == 0) { _local12 = (_local12 >> 1); _local8--; }; _local3 = (_local3 - _local8); if (_local3 < 0){ _local3 = (_local3 + DB); _local11--; }; if (_local13){ _local7[_local12].copyTo(_local5); _local13 = false; } else { while (_local8 > 1) { _local6.sqrTo(_local5, _local14); _local6.sqrTo(_local14, _local5); _local8 = (_local8 - 2); }; if (_local8 > 0){ _local6.sqrTo(_local5, _local14); } else { _local15 = _local5; _local5 = _local14; _local14 = _local15; }; _local6.mulTo(_local14, _local7[_local12], _local5); }; while ((((_local11 >= 0)) && (((_arg1.a[_local11] & (1 << _local3)) == 0)))) { _local6.sqrTo(_local5, _local14); _local15 = _local5; _local5 = _local14; _local14 = _local15; --_local3; if (_local3 < 0){ _local3 = (DB - 1); _local11--; }; }; }; return (_local6.revert(_local5)); } public function isProbablePrime(_arg1:int):Boolean{ var _local2:int; var _local3:BigInteger; var _local4:int; var _local5:int; _local3 = abs(); if ((((_local3.t == 1)) && ((_local3.a[0] <= lowprimes[(lowprimes.length - 1)])))){ _local2 = 0; while (_local2 < lowprimes.length) { if (_local3[0] == lowprimes[_local2]){ return (true); }; _local2++; }; return (false); }; if (_local3.isEven()){ return (false); }; _local2 = 1; while (_local2 < lowprimes.length) { _local4 = lowprimes[_local2]; _local5 = (_local2 + 1); while ((((_local5 < lowprimes.length)) && ((_local4 < lplim)))) { var _temp1 = _local5; _local5 = (_local5 + 1); _local4 = (_local4 * lowprimes[_temp1]); }; _local4 = _local3.modInt(_local4); while (_local2 < _local5) { var _temp2 = _local4; var _temp3 = _local2; _local2 = (_local2 + 1); if ((_temp2 % lowprimes[_temp3]) == 0){ return (false); }; }; }; return (_local3.millerRabin(_arg1)); } private function op_or(_arg1:int, _arg2:int):int{ return ((_arg1 | _arg2)); } public function mod(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = nbi(); abs().divRemTo(_arg1, null, _local2); if ((((s < 0)) && ((_local2.compareTo(ZERO) > 0)))){ _arg1.subTo(_local2, _local2); }; return (_local2); } protected function addTo(_arg1:BigInteger, _arg2:BigInteger):void{ var _local3:int; var _local4:int; var _local5:int; _local3 = 0; _local4 = 0; _local5 = Math.min(_arg1.t, t); while (_local3 < _local5) { _local4 = (_local4 + (this.a[_local3] + _arg1.a[_local3])); var _temp1 = _local3; _local3 = (_local3 + 1); var _local6 = _temp1; _arg2.a[_local6] = (_local4 & DM); _local4 = (_local4 >> DB); }; if (_arg1.t < t){ _local4 = (_local4 + _arg1.s); while (_local3 < t) { _local4 = (_local4 + this.a[_local3]); var _temp2 = _local3; _local3 = (_local3 + 1); _local6 = _temp2; _arg2.a[_local6] = (_local4 & DM); _local4 = (_local4 >> DB); }; _local4 = (_local4 + s); } else { _local4 = (_local4 + s); while (_local3 < _arg1.t) { _local4 = (_local4 + _arg1.a[_local3]); var _temp3 = _local3; _local3 = (_local3 + 1); _local6 = _temp3; _arg2.a[_local6] = (_local4 & DM); _local4 = (_local4 >> DB); }; _local4 = (_local4 + _arg1.s); }; _arg2.s = ((_local4)<0) ? -1 : 0; if (_local4 > 0){ var _temp4 = _local3; _local3 = (_local3 + 1); _local6 = _temp4; _arg2.a[_local6] = _local4; } else { if (_local4 < -1){ var _temp5 = _local3; _local3 = (_local3 + 1); _local6 = _temp5; _arg2.a[_local6] = (DV + _local4); }; }; _arg2.t = _local3; _arg2.clamp(); } protected function bitwiseTo(_arg1:BigInteger, _arg2:Function, _arg3:BigInteger):void{ var _local4:int; var _local5:int; var _local6:int; _local6 = Math.min(_arg1.t, t); _local4 = 0; while (_local4 < _local6) { _arg3.a[_local4] = _arg2(this.a[_local4], _arg1.a[_local4]); _local4++; }; if (_arg1.t < t){ _local5 = (_arg1.s & DM); _local4 = _local6; while (_local4 < t) { _arg3.a[_local4] = _arg2(this.a[_local4], _local5); _local4++; }; _arg3.t = t; } else { _local5 = (s & DM); _local4 = _local6; while (_local4 < _arg1.t) { _arg3.a[_local4] = _arg2(_local5, _arg1.a[_local4]); _local4++; }; _arg3.t = _arg1.t; }; _arg3.s = _arg2(s, _arg1.s); _arg3.clamp(); } protected function modInt(_arg1:int):int{ var _local2:int; var _local3:int; var _local4:int; if (_arg1 <= 0){ return (0); }; _local2 = (DV % _arg1); _local3 = ((s)<0) ? (_arg1 - 1) : 0; if (t > 0){ if (_local2 == 0){ _local3 = (a[0] % _arg1); } else { _local4 = (t - 1); while (_local4 >= 0) { _local3 = (((_local2 * _local3) + a[_local4]) % _arg1); _local4--; }; }; }; return (_local3); } protected function chunkSize(_arg1:Number):int{ return (Math.floor(((Math.LN2 * DB) / Math.log(_arg1)))); } bi_internal function dAddOffset(_arg1:int, _arg2:int):void{ while (t <= _arg2) { var _local3 = t++; a[_local3] = 0; }; a[_arg2] = (a[_arg2] + _arg1); while (a[_arg2] >= DV) { a[_arg2] = (a[_arg2] - DV); ++_arg2; if (_arg2 >= t){ _local3 = t++; a[_local3] = 0; }; _local3 = a; var _local4 = _arg2; var _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; }; } bi_internal function lShiftTo(_arg1:int, _arg2:BigInteger):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; _local3 = (_arg1 % DB); _local4 = (DB - _local3); _local5 = ((1 << _local4) - 1); _local6 = (_arg1 / DB); _local7 = ((s << _local3) & DM); _local8 = (t - 1); while (_local8 >= 0) { _arg2.a[((_local8 + _local6) + 1)] = ((a[_local8] >> _local4) | _local7); _local7 = ((a[_local8] & _local5) << _local3); _local8--; }; _local8 = (_local6 - 1); while (_local8 >= 0) { _arg2.a[_local8] = 0; _local8--; }; _arg2.a[_local6] = _local7; _arg2.t = ((t + _local6) + 1); _arg2.s = s; _arg2.clamp(); } public function getLowestSetBit():int{ var _local1:int; _local1 = 0; while (_local1 < t) { if (a[_local1] != 0){ return (((_local1 * DB) + lbit(a[_local1]))); }; _local1++; }; if (s < 0){ return ((t * DB)); }; return (-1); } public function subtract(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); subTo(_arg1, _local2); return (_local2); } public function primify(_arg1:int, _arg2:int):void{ if (!testBit((_arg1 - 1))){ bitwiseTo(BigInteger.ONE.shiftLeft((_arg1 - 1)), op_or, this); }; if (isEven()){ dAddOffset(1, 0); }; while (!(isProbablePrime(_arg2))) { dAddOffset(2, 0); while (bitLength() > _arg1) { subTo(BigInteger.ONE.shiftLeft((_arg1 - 1)), this); }; }; } public function gcd(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; var _local3:BigInteger; var _local4:int; var _local5:int; var _local6:BigInteger; _local2 = ((s)<0) ? negate() : clone(); _local3 = ((_arg1.s)<0) ? _arg1.negate() : _arg1.clone(); if (_local2.compareTo(_local3) < 0){ _local6 = _local2; _local2 = _local3; _local3 = _local6; }; _local4 = _local2.getLowestSetBit(); _local5 = _local3.getLowestSetBit(); if (_local5 < 0){ return (_local2); }; if (_local4 < _local5){ _local5 = _local4; }; if (_local5 > 0){ _local2.rShiftTo(_local5, _local2); _local3.rShiftTo(_local5, _local3); }; while (_local2.sigNum() > 0) { _local4 = _local2.getLowestSetBit(); if (_local4 > 0){ _local2.rShiftTo(_local4, _local2); }; _local4 = _local3.getLowestSetBit(); if (_local4 > 0){ _local3.rShiftTo(_local4, _local3); }; if (_local2.compareTo(_local3) >= 0){ _local2.subTo(_local3, _local2); _local2.rShiftTo(1, _local2); } else { _local3.subTo(_local2, _local3); _local3.rShiftTo(1, _local3); }; }; if (_local5 > 0){ _local3.lShiftTo(_local5, _local3); }; return (_local3); } bi_internal function multiplyLowerTo(_arg1:BigInteger, _arg2:int, _arg3:BigInteger):void{ var _local4:int; var _local5:int; _local4 = Math.min((t + _arg1.t), _arg2); _arg3.s = 0; _arg3.t = _local4; while (_local4 > 0) { --_local4; var _local6 = _local4; _arg3.a[_local6] = 0; }; _local5 = (_arg3.t - t); while (_local4 < _local5) { _arg3.a[(_local4 + t)] = am(0, _arg1.a[_local4], _arg3, _local4, 0, t); _local4++; }; _local5 = Math.min(_arg1.t, _arg2); while (_local4 < _local5) { am(0, _arg1.a[_local4], _arg3, _local4, 0, (_arg2 - _local4)); _local4++; }; _arg3.clamp(); } public function modPowInt(_arg1:int, _arg2:BigInteger):BigInteger{ var _local3:IReduction; if ((((_arg1 < 0x0100)) || (_arg2.isEven()))){ _local3 = new ClassicReduction(_arg2); } else { _local3 = new MontgomeryReduction(_arg2); }; return (exp(_arg1, _local3)); } bi_internal function intAt(_arg1:String, _arg2:int):int{ return (parseInt(_arg1.charAt(_arg2), 36)); } public function testBit(_arg1:int):Boolean{ var _local2:int; _local2 = Math.floor((_arg1 / DB)); if (_local2 >= t){ return (!((s == 0))); }; return (!(((a[_local2] & (1 << (_arg1 % DB))) == 0))); } bi_internal function exp(_arg1:int, _arg2:IReduction):BigInteger{ var _local3:BigInteger; var _local4:BigInteger; var _local5:BigInteger; var _local6:int; var _local7:BigInteger; if ((((_arg1 > 4294967295)) || ((_arg1 < 1)))){ return (ONE); }; _local3 = nbi(); _local4 = nbi(); _local5 = _arg2.convert(this); _local6 = (nbits(_arg1) - 1); _local5.copyTo(_local3); while (--_local6 >= 0) { _arg2.sqrTo(_local3, _local4); if ((_arg1 & (1 << _local6)) > 0){ _arg2.mulTo(_local4, _local5, _local3); } else { _local7 = _local3; _local3 = _local4; _local4 = _local7; }; }; return (_arg2.revert(_local3)); } public function toArray(_arg1:ByteArray):uint{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:Boolean; var _local8:int; _local2 = 8; _local3 = ((1 << 8) - 1); _local4 = 0; _local5 = t; _local6 = (DB - ((_local5 * DB) % _local2)); _local7 = false; _local8 = 0; var _temp1 = _local5; _local5 = (_local5 - 1); if (_temp1 > 0){ if ((((_local6 < DB)) && (((a[_local5] >> _local6) > 0)))){ _local7 = true; _arg1.writeByte(_local4); _local8++; }; while (_local5 >= 0) { if (_local6 < _local2){ _local4 = ((a[_local5] & ((1 << _local6) - 1)) << (_local2 - _local6)); var _temp2 = _local4; _local5 = (_local5 - 1); _local6 = (_local6 + (DB - _local2)); _local4 = (_temp2 | (a[_local5] >> _local6)); } else { _local6 = (_local6 - _local2); _local4 = ((a[_local5] >> _local6) & _local3); if (_local6 <= 0){ _local6 = (_local6 + DB); _local5--; }; }; if (_local4 > 0){ _local7 = true; }; if (_local7){ _arg1.writeByte(_local4); _local8++; }; }; }; return (_local8); } public function dispose():void{ var _local1:Random; var _local2:uint; _local1 = new Random(); _local2 = 0; while (_local2 < a.length) { a[_local2] = _local1.nextByte(); delete a[_local2]; _local2++; }; a = null; t = 0; s = 0; Memory.gc(); } private function lbit(_arg1:int):int{ var _local2:int; if (_arg1 == 0){ return (-1); }; _local2 = 0; if ((_arg1 & 0xFFFF) == 0){ _arg1 = (_arg1 >> 16); _local2 = (_local2 + 16); }; if ((_arg1 & 0xFF) == 0){ _arg1 = (_arg1 >> 8); _local2 = (_local2 + 8); }; if ((_arg1 & 15) == 0){ _arg1 = (_arg1 >> 4); _local2 = (_local2 + 4); }; if ((_arg1 & 3) == 0){ _arg1 = (_arg1 >> 2); _local2 = (_local2 + 2); }; if ((_arg1 & 1) == 0){ _local2++; }; return (_local2); } bi_internal function divRemTo(_arg1:BigInteger, _arg2:BigInteger=null, _arg3:BigInteger=null):void{ var pm:BigInteger; var pt:BigInteger; var y:BigInteger; var ts:int; var ms:int; var nsh:int; var ys:int; var y0:int; var yt:Number; var d1:Number; var d2:Number; var e:Number; var i:int; var j:int; var t:BigInteger; var qd:int; var m = _arg1; var q = _arg2; var r = _arg3; pm = m.abs(); if (pm.t <= 0){ return; }; pt = abs(); if (pt.t < pm.t){ if (q != null){ q.fromInt(0); }; if (r != null){ copyTo(r); }; return; }; if (r == null){ r = nbi(); }; y = nbi(); ts = s; ms = m.s; nsh = (DB - nbits(pm.a[(pm.t - 1)])); if (nsh > 0){ pm.lShiftTo(nsh, y); pt.lShiftTo(nsh, r); } else { pm.copyTo(y); pt.copyTo(r); }; ys = y.t; y0 = y.a[(ys - 1)]; if (y0 == 0){ return; }; yt = ((y0 * (1 << F1)) + ((ys)>1) ? (y.a[(ys - 2)] >> F2) : 0); d1 = (FV / yt); d2 = ((1 << F1) / yt); e = (1 << F2); i = r.t; j = (i - ys); t = ((q)==null) ? nbi() : q; y.dlShiftTo(j, t); if (r.compareTo(t) >= 0){ var _local5 = r.t++; r.a[_local5] = 1; r.subTo(t, r); }; ONE.dlShiftTo(ys, t); t.subTo(y, y); while (y.t < ys) { y.(y.t++); //not popped }; while ((j = (j - 1)), (j - 1) >= 0) { i = (i - 1); qd = ((r.a[(i - 1)])==y0) ? DM : ((Number(r.a[i]) * d1) + ((Number(r.a[(i - 1)]) + e) * d2)); if ((r.a[i] = (r.a[i] + y.am(0, qd, r, j, 0, ys))) < qd){ y.dlShiftTo(j, t); r.subTo(t, r); while ((qd = (qd - 1)), r.a[i] < (qd - 1)) { r.subTo(t, r); }; }; }; if (q != null){ r.drShiftTo(ys, q); if (ts != ms){ ZERO.subTo(q, q); }; }; r.t = ys; r.clamp(); if (nsh > 0){ r.rShiftTo(nsh, r); }; if (ts < 0){ ZERO.subTo(r, r); }; } public function remainder(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); divRemTo(_arg1, null, _local2); return (_local2); } public function divide(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); divRemTo(_arg1, _local2, null); return (_local2); } public function divideAndRemainder(_arg1:BigInteger):Array{ var _local2:BigInteger; var _local3:BigInteger; _local2 = new BigInteger(); _local3 = new BigInteger(); divRemTo(_arg1, _local2, _local3); return ([_local2, _local3]); } public function valueOf():Number{ var _local1:Number; var _local2:Number; var _local3:uint; _local1 = 1; _local2 = 0; _local3 = 0; while (_local3 < t) { _local2 = (_local2 + (a[_local3] * _local1)); _local1 = (_local1 * DV); _local3++; }; return (_local2); } public function shiftLeft(_arg1:int):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); if (_arg1 < 0){ rShiftTo(-(_arg1), _local2); } else { lShiftTo(_arg1, _local2); }; return (_local2); } public function multiply(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); multiplyTo(_arg1, _local2); return (_local2); } bi_internal function am(_arg1:int, _arg2:int, _arg3:BigInteger, _arg4:int, _arg5:int, _arg6:int):int{ var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; _local7 = (_arg2 & 32767); _local8 = (_arg2 >> 15); while (--_arg6 >= 0) { _local9 = (a[_arg1] & 32767); var _temp1 = _arg1; _arg1 = (_arg1 + 1); _local10 = (a[_temp1] >> 15); _local11 = ((_local8 * _local9) + (_local10 * _local7)); _local9 = ((((_local7 * _local9) + ((_local11 & 32767) << 15)) + _arg3.a[_arg4]) + (_arg5 & 1073741823)); _arg5 = ((((_local9 >>> 30) + (_local11 >>> 15)) + (_local8 * _local10)) + (_arg5 >>> 30)); var _temp2 = _arg4; _arg4 = (_arg4 + 1); var _local12 = _temp2; _arg3.a[_local12] = (_local9 & 1073741823); }; return (_arg5); } bi_internal function drShiftTo(_arg1:int, _arg2:BigInteger):void{ var _local3:int; _local3 = _arg1; while (_local3 < t) { _arg2.a[(_local3 - _arg1)] = a[_local3]; _local3++; }; _arg2.t = Math.max((t - _arg1), 0); _arg2.s = s; } public function add(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); addTo(_arg1, _local2); return (_local2); } bi_internal function multiplyUpperTo(_arg1:BigInteger, _arg2:int, _arg3:BigInteger):void{ var _local4:int; _arg2--; _local4 = (_arg3.t = ((t + _arg1.t) - _arg2)); _arg3.s = 0; while (--_local4 >= 0) { _arg3.a[_local4] = 0; }; _local4 = Math.max((_arg2 - t), 0); while (_local4 < _arg1.t) { _arg3.a[((t + _local4) - _arg2)] = am((_arg2 - _local4), _arg1.a[_local4], _arg3, 0, 0, ((t + _local4) - _arg2)); _local4++; }; _arg3.clamp(); _arg3.drShiftTo(1, _arg3); } protected function nbi(){ return (new BigInteger()); } protected function millerRabin(_arg1:int):Boolean{ var _local2:BigInteger; var _local3:int; var _local4:BigInteger; var _local5:BigInteger; var _local6:int; var _local7:BigInteger; var _local8:int; _local2 = subtract(BigInteger.ONE); _local3 = _local2.getLowestSetBit(); if (_local3 <= 0){ return (false); }; _local4 = _local2.shiftRight(_local3); _arg1 = ((_arg1 + 1) >> 1); if (_arg1 > lowprimes.length){ _arg1 = lowprimes.length; }; _local5 = new BigInteger(); _local6 = 0; while (_local6 < _arg1) { _local5.fromInt(lowprimes[_local6]); _local7 = _local5.modPow(_local4, this); if (((!((_local7.compareTo(BigInteger.ONE) == 0))) && (!((_local7.compareTo(_local2) == 0))))){ _local8 = 1; while ((((_local8++ < _local3)) && (!((_local7.compareTo(_local2) == 0))))) { _local7 = _local7.modPowInt(2, this); if (_local7.compareTo(BigInteger.ONE) == 0){ return (false); }; }; if (_local7.compareTo(_local2) != 0){ return (false); }; }; _local6++; }; return (true); } bi_internal function dMultiply(_arg1:int):void{ a[t] = am(0, (_arg1 - 1), this, 0, 0, t); t++; clamp(); } private function op_andnot(_arg1:int, _arg2:int):int{ return ((_arg1 & ~(_arg2))); } bi_internal function clamp():void{ var _local1:int; _local1 = (s & DM); while ((((t > 0)) && ((a[(t - 1)] == _local1)))) { t--; }; } bi_internal function invDigit():int{ var _local1:int; var _local2:int; if (t < 1){ return (0); }; _local1 = a[0]; if ((_local1 & 1) == 0){ return (0); }; _local2 = (_local1 & 3); _local2 = ((_local2 * (2 - ((_local1 & 15) * _local2))) & 15); _local2 = ((_local2 * (2 - ((_local1 & 0xFF) * _local2))) & 0xFF); _local2 = ((_local2 * (2 - (((_local1 & 0xFFFF) * _local2) & 0xFFFF))) & 0xFFFF); _local2 = ((_local2 * (2 - ((_local1 * _local2) % DV))) % DV); return (((_local2)>0) ? (DV - _local2) : -(_local2)); } protected function changeBit(_arg1:int, _arg2:Function):BigInteger{ var _local3:BigInteger; _local3 = BigInteger.ONE.shiftLeft(_arg1); bitwiseTo(_local3, _arg2, _local3); return (_local3); } public function equals(_arg1:BigInteger):Boolean{ return ((compareTo(_arg1) == 0)); } public function compareTo(_arg1:BigInteger):int{ var _local2:int; var _local3:int; _local2 = (s - _arg1.s); if (_local2 != 0){ return (_local2); }; _local3 = t; _local2 = (_local3 - _arg1.t); if (_local2 != 0){ return (_local2); }; while (--_local3 >= 0) { _local2 = (a[_local3] - _arg1.a[_local3]); if (_local2 != 0){ return (_local2); }; }; return (0); } public function shiftRight(_arg1:int):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); if (_arg1 < 0){ lShiftTo(-(_arg1), _local2); } else { rShiftTo(_arg1, _local2); }; return (_local2); } bi_internal function multiplyTo(_arg1:BigInteger, _arg2:BigInteger):void{ var _local3:BigInteger; var _local4:BigInteger; var _local5:int; _local3 = abs(); _local4 = _arg1.abs(); _local5 = _local3.t; _arg2.t = (_local5 + _local4.t); while (--_local5 >= 0) { _arg2.a[_local5] = 0; }; _local5 = 0; while (_local5 < _local4.t) { _arg2.a[(_local5 + _local3.t)] = _local3.am(0, _local4.a[_local5], _arg2, _local5, 0, _local3.t); _local5++; }; _arg2.s = 0; _arg2.clamp(); if (s != _arg1.s){ ZERO.subTo(_arg2, _arg2); }; } public function bitCount():int{ var _local1:int; var _local2:int; var _local3:int; _local1 = 0; _local2 = (s & DM); _local3 = 0; while (_local3 < t) { _local1 = (_local1 + cbit((a[_local3] ^ _local2))); _local3++; }; return (_local1); } public function byteValue():int{ return (((t)==0) ? s : ((a[0] << 24) >> 24)); } private function cbit(_arg1:int):int{ var _local2:uint; _local2 = 0; while (_arg1 != 0) { _arg1 = (_arg1 & (_arg1 - 1)); _local2++; }; return (_local2); } bi_internal function rShiftTo(_arg1:int, _arg2:BigInteger):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; _arg2.s = s; _local3 = (_arg1 / DB); if (_local3 >= t){ _arg2.t = 0; return; }; _local4 = (_arg1 % DB); _local5 = (DB - _local4); _local6 = ((1 << _local4) - 1); _arg2.a[0] = (a[_local3] >> _local4); _local7 = (_local3 + 1); while (_local7 < t) { _arg2.a[((_local7 - _local3) - 1)] = (_arg2.a[((_local7 - _local3) - 1)] | ((a[_local7] & _local6) << _local5)); _arg2.a[(_local7 - _local3)] = (a[_local7] >> _local4); _local7++; }; if (_local4 > 0){ _arg2.a[((t - _local3) - 1)] = (_arg2.a[((t - _local3) - 1)] | ((s & _local6) << _local5)); }; _arg2.t = (t - _local3); _arg2.clamp(); } public function modInverse(_arg1:BigInteger):BigInteger{ var _local2:Boolean; var _local3:BigInteger; var _local4:BigInteger; var _local5:BigInteger; var _local6:BigInteger; var _local7:BigInteger; var _local8:BigInteger; _local2 = _arg1.isEven(); if (((((isEven()) && (_local2))) || ((_arg1.sigNum() == 0)))){ return (BigInteger.ZERO); }; _local3 = _arg1.clone(); _local4 = clone(); _local5 = nbv(1); _local6 = nbv(0); _local7 = nbv(0); _local8 = nbv(1); while (_local3.sigNum() != 0) { while (_local3.isEven()) { _local3.rShiftTo(1, _local3); if (_local2){ if (((!(_local5.isEven())) || (!(_local6.isEven())))){ _local5.addTo(this, _local5); _local6.subTo(_arg1, _local6); }; _local5.rShiftTo(1, _local5); } else { if (!_local6.isEven()){ _local6.subTo(_arg1, _local6); }; }; _local6.rShiftTo(1, _local6); }; while (_local4.isEven()) { _local4.rShiftTo(1, _local4); if (_local2){ if (((!(_local7.isEven())) || (!(_local8.isEven())))){ _local7.addTo(this, _local7); _local8.subTo(_arg1, _local8); }; _local7.rShiftTo(1, _local7); } else { if (!_local8.isEven()){ _local8.subTo(_arg1, _local8); }; }; _local8.rShiftTo(1, _local8); }; if (_local3.compareTo(_local4) >= 0){ _local3.subTo(_local4, _local3); if (_local2){ _local5.subTo(_local7, _local5); }; _local6.subTo(_local8, _local6); } else { _local4.subTo(_local3, _local4); if (_local2){ _local7.subTo(_local5, _local7); }; _local8.subTo(_local6, _local8); }; }; if (_local4.compareTo(BigInteger.ONE) != 0){ return (BigInteger.ZERO); }; if (_local8.compareTo(_arg1) >= 0){ return (_local8.subtract(_arg1)); }; if (_local8.sigNum() < 0){ _local8.addTo(_arg1, _local8); } else { return (_local8); }; if (_local8.sigNum() < 0){ return (_local8.add(_arg1)); }; return (_local8); } bi_internal function fromArray(_arg1:ByteArray, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; _local3 = _arg1.position; _local4 = (_local3 + _arg2); _local5 = 0; _local6 = 8; t = 0; s = 0; while (--_local4 >= _local3) { _local7 = ((_local4 < _arg1.length)) ? _arg1[_local4] : 0; if (_local5 == 0){ var _local8 = t++; a[_local8] = _local7; } else { if ((_local5 + _local6) > DB){ a[(t - 1)] = (a[(t - 1)] | ((_local7 & ((1 << (DB - _local5)) - 1)) << _local5)); _local8 = t++; a[_local8] = (_local7 >> (DB - _local5)); } else { a[(t - 1)] = (a[(t - 1)] | (_local7 << _local5)); }; }; _local5 = (_local5 + _local6); if (_local5 >= DB){ _local5 = (_local5 - DB); }; }; clamp(); _arg1.position = Math.min((_local3 + _arg2), _arg1.length); } bi_internal function copyTo(_arg1:BigInteger):void{ var _local2:int; _local2 = (t - 1); while (_local2 >= 0) { _arg1.a[_local2] = a[_local2]; _local2--; }; _arg1.t = t; _arg1.s = s; } public function intValue():int{ if (s < 0){ if (t == 1){ return ((a[0] - DV)); }; if (t == 0){ return (-1); }; } else { if (t == 1){ return (a[0]); }; if (t == 0){ return (0); }; }; return ((((a[1] & ((1 << (32 - DB)) - 1)) << DB) | a[0])); } public function min(_arg1:BigInteger):BigInteger{ return (((compareTo(_arg1))<0) ? this : _arg1); } public function bitLength():int{ if (t <= 0){ return (0); }; return (((DB * (t - 1)) + nbits((a[(t - 1)] ^ (s & DM))))); } public function shortValue():int{ return (((t)==0) ? s : ((a[0] << 16) >> 16)); } public function and(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); bitwiseTo(_arg1, op_and, _local2); return (_local2); } protected function toRadix(_arg1:uint=10):String{ var _local2:int; var _local3:Number; var _local4:BigInteger; var _local5:BigInteger; var _local6:BigInteger; var _local7:String; if ((((((sigNum() == 0)) || ((_arg1 < 2)))) || ((_arg1 > 32)))){ return ("0"); }; _local2 = chunkSize(_arg1); _local3 = Math.pow(_arg1, _local2); _local4 = nbv(_local3); _local5 = nbi(); _local6 = nbi(); _local7 = ""; divRemTo(_local4, _local5, _local6); while (_local5.sigNum() > 0) { _local7 = ((_local3 + _local6.intValue()).toString(_arg1).substr(1) + _local7); _local5.divRemTo(_local4, _local5, _local6); }; return ((_local6.intValue().toString(_arg1) + _local7)); } public function not():BigInteger{ var _local1:BigInteger; var _local2:int; _local1 = new BigInteger(); _local2 = 0; while (_local2 < t) { _local1[_local2] = (DM & ~(a[_local2])); _local2++; }; _local1.t = t; _local1.s = ~(s); return (_local1); } bi_internal function subTo(_arg1:BigInteger, _arg2:BigInteger):void{ var _local3:int; var _local4:int; var _local5:int; _local3 = 0; _local4 = 0; _local5 = Math.min(_arg1.t, t); while (_local3 < _local5) { _local4 = (_local4 + (a[_local3] - _arg1.a[_local3])); var _temp1 = _local3; _local3 = (_local3 + 1); var _local6 = _temp1; _arg2.a[_local6] = (_local4 & DM); _local4 = (_local4 >> DB); }; if (_arg1.t < t){ _local4 = (_local4 - _arg1.s); while (_local3 < t) { _local4 = (_local4 + a[_local3]); var _temp2 = _local3; _local3 = (_local3 + 1); _local6 = _temp2; _arg2.a[_local6] = (_local4 & DM); _local4 = (_local4 >> DB); }; _local4 = (_local4 + s); } else { _local4 = (_local4 + s); while (_local3 < _arg1.t) { _local4 = (_local4 - _arg1.a[_local3]); var _temp3 = _local3; _local3 = (_local3 + 1); _local6 = _temp3; _arg2.a[_local6] = (_local4 & DM); _local4 = (_local4 >> DB); }; _local4 = (_local4 - _arg1.s); }; _arg2.s = ((_local4)<0) ? -1 : 0; if (_local4 < -1){ var _temp4 = _local3; _local3 = (_local3 + 1); _local6 = _temp4; _arg2.a[_local6] = (DV + _local4); } else { if (_local4 > 0){ var _temp5 = _local3; _local3 = (_local3 + 1); _local6 = _temp5; _arg2.a[_local6] = _local4; }; }; _arg2.t = _local3; _arg2.clamp(); } public function clone():BigInteger{ var _local1:BigInteger; _local1 = new BigInteger(); this.copyTo(_local1); return (_local1); } public function pow(_arg1:int):BigInteger{ return (exp(_arg1, new NullReduction())); } public function flipBit(_arg1:int):BigInteger{ return (changeBit(_arg1, op_xor)); } public function xor(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); bitwiseTo(_arg1, op_xor, _local2); return (_local2); } public function or(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); bitwiseTo(_arg1, op_or, _local2); return (_local2); } public function max(_arg1:BigInteger):BigInteger{ return (((compareTo(_arg1))>0) ? this : _arg1); } bi_internal function fromInt(_arg1:int):void{ t = 1; s = ((_arg1)<0) ? -1 : 0; if (_arg1 > 0){ a[0] = _arg1; } else { if (_arg1 < -1){ a[0] = (_arg1 + DV); } else { t = 0; }; }; } bi_internal function isEven():Boolean{ return ((((t)>0) ? (a[0] & 1) : s == 0)); } public function toString(_arg1:Number=16):String{ var _local2:int; var _local3:int; var _local4:int; var _local5:Boolean; var _local6:String; var _local7:int; var _local8:int; if (s < 0){ return (("-" + negate().toString(_arg1))); }; switch (_arg1){ case 2: _local2 = 1; break; case 4: _local2 = 2; break; case 8: _local2 = 3; break; case 16: _local2 = 4; break; case 32: _local2 = 5; break; }; _local3 = ((1 << _local2) - 1); _local4 = 0; _local5 = false; _local6 = ""; _local7 = t; _local8 = (DB - ((_local7 * DB) % _local2)); var _temp1 = _local7; _local7 = (_local7 - 1); if (_temp1 > 0){ if ((((_local8 < DB)) && (((a[_local7] >> _local8) > 0)))){ _local5 = true; _local6 = _local4.toString(36); }; while (_local7 >= 0) { if (_local8 < _local2){ _local4 = ((a[_local7] & ((1 << _local8) - 1)) << (_local2 - _local8)); var _temp2 = _local4; _local7 = (_local7 - 1); _local8 = (_local8 + (DB - _local2)); _local4 = (_temp2 | (a[_local7] >> _local8)); } else { _local8 = (_local8 - _local2); _local4 = ((a[_local7] >> _local8) & _local3); if (_local8 <= 0){ _local8 = (_local8 + DB); _local7--; }; }; if (_local4 > 0){ _local5 = true; }; if (_local5){ _local6 = (_local6 + _local4.toString(36)); }; }; }; return ((_local5) ? _local6 : "0"); } public function setBit(_arg1:int):BigInteger{ return (changeBit(_arg1, op_or)); } public function abs():BigInteger{ return (((s)<0) ? negate() : this); } bi_internal function nbits(_arg1:int):int{ var _local2:int; var _local3:int; _local2 = 1; _local3 = (_arg1 >>> 16); if (_local3 != 0){ _arg1 = _local3; _local2 = (_local2 + 16); }; _local3 = (_arg1 >> 8); if (_local3 != 0){ _arg1 = _local3; _local2 = (_local2 + 8); }; _local3 = (_arg1 >> 4); if (_local3 != 0){ _arg1 = _local3; _local2 = (_local2 + 4); }; _local3 = (_arg1 >> 2); if (_local3 != 0){ _arg1 = _local3; _local2 = (_local2 + 2); }; _local3 = (_arg1 >> 1); if (_local3 != 0){ _arg1 = _local3; _local2 = (_local2 + 1); }; return (_local2); } public function sigNum():int{ if (s < 0){ return (-1); }; if ((((t <= 0)) || ((((t == 1)) && ((a[0] <= 0)))))){ return (0); }; return (1); } public function toByteArray():ByteArray{ var _local1:int; var _local2:ByteArray; var _local3:int; var _local4:int; var _local5:int; _local1 = t; _local2 = new ByteArray(); _local2[0] = s; _local3 = (DB - ((_local1 * DB) % 8)); _local5 = 0; var _temp1 = _local1; _local1 = (_local1 - 1); if (_temp1 > 0){ if ((((_local3 < DB)) && (!(((a[_local1] >> _local3) == ((s & DM) >> _local3)))))){ var _temp2 = _local5; _local5 = (_local5 + 1); var _local6 = _temp2; _local2[_local6] = (_local4 | (s << (DB - _local3))); }; while (_local1 >= 0) { if (_local3 < 8){ _local4 = ((a[_local1] & ((1 << _local3) - 1)) << (8 - _local3)); var _temp3 = _local4; _local1 = (_local1 - 1); _local3 = (_local3 + (DB - 8)); _local4 = (_temp3 | (a[_local1] >> _local3)); } else { _local3 = (_local3 - 8); _local4 = ((a[_local1] >> _local3) & 0xFF); if (_local3 <= 0){ _local3 = (_local3 + DB); _local1--; }; }; if ((_local4 & 128) != 0){ _local4 = (_local4 | -256); }; if ((((_local5 == 0)) && (!(((s & 128) == (_local4 & 128)))))){ _local5++; }; if ((((_local5 > 0)) || (!((_local4 == s))))){ var _temp4 = _local5; _local5 = (_local5 + 1); _local6 = _temp4; _local2[_local6] = _local4; }; }; }; return (_local2); } bi_internal function squareTo(_arg1:BigInteger):void{ var _local2:BigInteger; var _local3:int; var _local4:int; _local2 = abs(); _local3 = (_arg1.t = (2 * _local2.t)); while (--_local3 >= 0) { _arg1.a[_local3] = 0; }; _local3 = 0; while (_local3 < (_local2.t - 1)) { _local4 = _local2.am(_local3, _local2.a[_local3], _arg1, (2 * _local3), 0, 1); if ((_arg1.a[(_local3 + _local2.t)] = (_arg1.a[(_local3 + _local2.t)] + _local2.am((_local3 + 1), (2 * _local2.a[_local3]), _arg1, ((2 * _local3) + 1), _local4, ((_local2.t - _local3) - 1)))) >= DV){ _arg1.a[(_local3 + _local2.t)] = (_arg1.a[(_local3 + _local2.t)] - DV); _arg1.a[((_local3 + _local2.t) + 1)] = 1; }; _local3++; }; if (_arg1.t > 0){ _arg1.a[(_arg1.t - 1)] = (_arg1.a[(_arg1.t - 1)] + _local2.am(_local3, _local2.a[_local3], _arg1, (2 * _local3), 0, 1)); }; _arg1.s = 0; _arg1.clamp(); } private function op_and(_arg1:int, _arg2:int):int{ return ((_arg1 & _arg2)); } protected function fromRadix(_arg1:String, _arg2:int=10):void{ var _local3:int; var _local4:Number; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:int; var _local9:int; fromInt(0); _local3 = chunkSize(_arg2); _local4 = Math.pow(_arg2, _local3); _local5 = false; _local6 = 0; _local7 = 0; _local8 = 0; while (_local8 < _arg1.length) { _local9 = intAt(_arg1, _local8); if (_local9 < 0){ if ((((_arg1.charAt(_local8) == "-")) && ((sigNum() == 0)))){ _local5 = true; }; } else { _local7 = ((_arg2 * _local7) + _local9); ++_local6; if (_local6 >= _local3){ dMultiply(_local4); dAddOffset(_local7, 0); _local6 = 0; _local7 = 0; }; }; _local8++; }; if (_local6 > 0){ dMultiply(Math.pow(_arg2, _local6)); dAddOffset(_local7, 0); }; if (_local5){ BigInteger.ZERO.subTo(this, this); }; } bi_internal function dlShiftTo(_arg1:int, _arg2:BigInteger):void{ var _local3:int; _local3 = (t - 1); while (_local3 >= 0) { _arg2.a[(_local3 + _arg1)] = a[_local3]; _local3--; }; _local3 = (_arg1 - 1); while (_local3 >= 0) { _arg2.a[_local3] = 0; _local3--; }; _arg2.t = (t + _arg1); _arg2.s = s; } private function op_xor(_arg1:int, _arg2:int):int{ return ((_arg1 ^ _arg2)); } public static function nbv(_arg1:int):BigInteger{ var _local2:BigInteger; _local2 = new (BigInteger); _local2.fromInt(_arg1); return (_local2); } } }//package com.hurlant.math
Section 53
//ClassicReduction (com.hurlant.math.ClassicReduction) package com.hurlant.math { import com.hurlant.math.*; class ClassicReduction implements IReduction { private var m:BigInteger; function ClassicReduction(_arg1:BigInteger){ this.m = _arg1; } public function revert(_arg1:BigInteger):BigInteger{ return (_arg1); } public function reduce(_arg1:BigInteger):void{ _arg1.divRemTo(m, null, _arg1); } public function convert(_arg1:BigInteger):BigInteger{ if ((((_arg1.s < 0)) || ((_arg1.compareTo(m) >= 0)))){ return (_arg1.mod(m)); }; return (_arg1); } public function sqrTo(_arg1:BigInteger, _arg2:BigInteger):void{ _arg1.squareTo(_arg2); reduce(_arg2); } public function mulTo(_arg1:BigInteger, _arg2:BigInteger, _arg3:BigInteger):void{ _arg1.multiplyTo(_arg2, _arg3); reduce(_arg3); } } }//package com.hurlant.math
Section 54
//IReduction (com.hurlant.math.IReduction) package com.hurlant.math { import com.hurlant.math.*; interface IReduction { function convert(_arg1:BigInteger):BigInteger; function revert(_arg1:BigInteger):BigInteger; function reduce(_arg1:BigInteger):void; function sqrTo(_arg1:BigInteger, _arg2:BigInteger):void; function mulTo(_arg1:BigInteger, _arg2:BigInteger, _arg3:BigInteger):void; } }//package com.hurlant.math
Section 55
//MontgomeryReduction (com.hurlant.math.MontgomeryReduction) package com.hurlant.math { import com.hurlant.math.*; class MontgomeryReduction implements IReduction { private var um:int; private var mp:int; private var mph:int; private var mpl:int; private var mt2:int; private var m:BigInteger; function MontgomeryReduction(_arg1:BigInteger){ this.m = _arg1; mp = _arg1.invDigit(); mpl = (mp & 32767); mph = (mp >> 15); um = ((1 << (BigInteger.DB - 15)) - 1); mt2 = (2 * _arg1.t); } public function mulTo(_arg1:BigInteger, _arg2:BigInteger, _arg3:BigInteger):void{ _arg1.multiplyTo(_arg2, _arg3); reduce(_arg3); } public function revert(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); _arg1.copyTo(_local2); reduce(_local2); return (_local2); } public function convert(_arg1:BigInteger):BigInteger{ var _local2:BigInteger; _local2 = new BigInteger(); _arg1.abs().dlShiftTo(m.t, _local2); _local2.divRemTo(m, null, _local2); if ((((_arg1.s < 0)) && ((_local2.compareTo(BigInteger.ZERO) > 0)))){ m.subTo(_local2, _local2); }; return (_local2); } public function reduce(_arg1:BigInteger):void{ var _local2:int; var _local3:int; var _local4:int; while (_arg1.t <= mt2) { var _local5 = _arg1.t++; _arg1.a[_local5] = 0; }; _local2 = 0; while (_local2 < m.t) { _local3 = (_arg1.a[_local2] & 32767); _local4 = (((_local3 * mpl) + ((((_local3 * mph) + ((_arg1.a[_local2] >> 15) * mpl)) & um) << 15)) & BigInteger.DM); _local3 = (_local2 + m.t); _arg1.a[_local3] = (_arg1.a[_local3] + m.am(0, _local4, _arg1, _local2, 0, m.t)); while (_arg1.a[_local3] >= BigInteger.DV) { _arg1.a[_local3] = (_arg1.a[_local3] - BigInteger.DV); _local5 = _arg1.a; ++_local3; var _local6 = _local3; var _local7 = (_local5[_local6] + 1); _local5[_local6] = _local7; }; _local2++; }; _arg1.clamp(); _arg1.drShiftTo(m.t, _arg1); if (_arg1.compareTo(m) >= 0){ _arg1.subTo(m, _arg1); }; } public function sqrTo(_arg1:BigInteger, _arg2:BigInteger):void{ _arg1.squareTo(_arg2); reduce(_arg2); } } }//package com.hurlant.math
Section 56
//NullReduction (com.hurlant.math.NullReduction) package com.hurlant.math { public class NullReduction implements IReduction { public function reduce(_arg1:BigInteger):void{ } public function revert(_arg1:BigInteger):BigInteger{ return (_arg1); } public function mulTo(_arg1:BigInteger, _arg2:BigInteger, _arg3:BigInteger):void{ _arg1.multiplyTo(_arg2, _arg3); } public function convert(_arg1:BigInteger):BigInteger{ return (_arg1); } public function sqrTo(_arg1:BigInteger, _arg2:BigInteger):void{ _arg1.squareTo(_arg2); } } }//package com.hurlant.math
Section 57
//Base64 (com.hurlant.util.Base64) package com.hurlant.util { import flash.utils.*; public class Base64 { public static const version:String = "1.0.0"; private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; public function Base64(){ throw (new Error("Base64 class is static container only")); } public static function encode(_arg1:String):String{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeUTFBytes(_arg1); return (encodeByteArray(_local2)); } public static function encodeByteArray(_arg1:ByteArray):String{ var _local2:String; var _local3:Array; var _local4:Array; var _local5:uint; var _local6:uint; var _local7:uint; _local2 = ""; _local4 = new Array(4); _arg1.position = 0; while (_arg1.bytesAvailable > 0) { _local3 = new Array(); _local5 = 0; while ((((_local5 < 3)) && ((_arg1.bytesAvailable > 0)))) { _local3[_local5] = _arg1.readUnsignedByte(); _local5++; }; _local4[0] = ((_local3[0] & 252) >> 2); _local4[1] = (((_local3[0] & 3) << 4) | (_local3[1] >> 4)); _local4[2] = (((_local3[1] & 15) << 2) | (_local3[2] >> 6)); _local4[3] = (_local3[2] & 63); _local6 = _local3.length; while (_local6 < 3) { _local4[(_local6 + 1)] = 64; _local6++; }; _local7 = 0; while (_local7 < _local4.length) { _local2 = (_local2 + BASE64_CHARS.charAt(_local4[_local7])); _local7++; }; }; return (_local2); } public static function decode(_arg1:String):String{ var _local2:ByteArray; _local2 = decodeToByteArray(_arg1); return (_local2.readUTFBytes(_local2.length)); } public static function decodeToByteArray(_arg1:String):ByteArray{ var _local2:ByteArray; var _local3:Array; var _local4:Array; var _local5:uint; var _local6:uint; var _local7:uint; _local2 = new ByteArray(); _local3 = new Array(4); _local4 = new Array(3); _local5 = 0; while (_local5 < _arg1.length) { _local6 = 0; while ((((_local6 < 4)) && (((_local5 + _local6) < _arg1.length)))) { _local3[_local6] = BASE64_CHARS.indexOf(_arg1.charAt((_local5 + _local6))); _local6++; }; _local4[0] = ((_local3[0] << 2) + ((_local3[1] & 48) >> 4)); _local4[1] = (((_local3[1] & 15) << 4) + ((_local3[2] & 60) >> 2)); _local4[2] = (((_local3[2] & 3) << 6) + _local3[3]); _local7 = 0; while (_local7 < _local4.length) { if (_local3[(_local7 + 1)] == 64){ break; }; _local2.writeByte(_local4[_local7]); _local7++; }; _local5 = (_local5 + 4); }; _local2.position = 0; return (_local2); } } }//package com.hurlant.util
Section 58
//Hex (com.hurlant.util.Hex) package com.hurlant.util { import flash.utils.*; public class Hex { public static function fromString(_arg1:String, _arg2:Boolean=false):String{ var _local3:ByteArray; _local3 = new ByteArray(); _local3.writeUTFBytes(_arg1); return (fromArray(_local3, _arg2)); } public static function toString(_arg1:String):String{ var _local2:ByteArray; _local2 = toArray(_arg1); return (_local2.readUTFBytes(_local2.length)); } public static function toArray(_arg1:String):ByteArray{ var _local2:ByteArray; var _local3:uint; _arg1 = _arg1.replace(/\s|:/gm, ""); _local2 = new ByteArray(); if ((_arg1.length & (1 == 1))){ _arg1 = ("0" + _arg1); }; _local3 = 0; while (_local3 < _arg1.length) { _local2[(_local3 / 2)] = parseInt(_arg1.substr(_local3, 2), 16); _local3 = (_local3 + 2); }; return (_local2); } public static function fromArray(_arg1:ByteArray, _arg2:Boolean=false):String{ var _local3:String; var _local4:uint; _local3 = ""; _local4 = 0; while (_local4 < _arg1.length) { _local3 = (_local3 + ("0" + _arg1[_local4].toString(16)).substr(-2, 2)); if (_arg2){ if (_local4 < (_arg1.length - 1)){ _local3 = (_local3 + ":"); }; }; _local4++; }; return (_local3); } } }//package com.hurlant.util
Section 59
//Memory (com.hurlant.util.Memory) package com.hurlant.util { import flash.system.*; import flash.net.*; public class Memory { public static function gc():void{ try { new LocalConnection().connect("foo"); new LocalConnection().connect("foo"); } catch(e) { }; } public static function get used():uint{ return (System.totalMemory); } } }//package com.hurlant.util
Section 60
//MochiBot (com.mochibot.MochiBot) package com.mochibot { import flash.display.*; import flash.system.*; import flash.net.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package com.mochibot
Section 61
//Debug (debug.Debug) package debug { import global.*; import flash.external.*; public class Debug { public static const DEBUG_MODE:Boolean = false; public static function error(... _args):void{ var args = _args; var str:String; var i:uint; while (i < args.length) { if (str){ str = (str + (" " + String(args[i]))); } else { str = String(args[i]); }; i = (i + 1); }; DebugDisplay._trace(str, DebugDisplay.FONT_TYPE_ERROR); if (GlobalData.USE_EXTERNAL_CONSOLE){ try { ExternalInterface.call("console.log", str); } catch(error:Error) { }; }; DebugDisplay.forceShowConsole(); } public static function warning(... _args):void{ var args = _args; var str:String; var i:uint; while (i < args.length) { if (str){ str = (str + (" " + String(args[i]))); } else { str = String(args[i]); }; i = (i + 1); }; DebugDisplay._trace(str, DebugDisplay.FONT_TYPE_WARNING); if (GlobalData.USE_EXTERNAL_CONSOLE){ try { ExternalInterface.call("console.log", str); } catch(error:Error) { }; }; } public static function trace(... _args):void{ var args = _args; var str:String; var i:uint; while (i < args.length) { if (str){ str = (str + (" " + String(args[i]))); } else { str = String(args[i]); }; i = (i + 1); }; DebugDisplay._trace(str, DebugDisplay.FONT_TYPE_NORMAL); if (GlobalData.USE_EXTERNAL_CONSOLE){ try { ExternalInterface.call("console.log", str); } catch(error:Error) { }; }; } } }//package debug
Section 62
//DebugDisplay (debug.DebugDisplay) package debug { import flash.events.*; import global.*; import flash.display.*; import flash.utils.*; import flash.text.*; import flash.filters.*; import flash.system.*; public class DebugDisplay extends Sprite { private const offsetY:Number = 464; private var _staticTextField:TextField; private var _minFPStime:Number;// = 0 private var _consoleString:String; private var _consoleStringArray:Array; private var _deltaTimeArray:Array; private var _consoleTextField:TextField; private var _avgFPS:Number;// = 0 private var _min:int;// = 0 private var _minFPS:Number;// = 0 private var maxTotalMemory:uint;// = 0 private var _lastTime:int;// = 0 public var staticStr:String;// = "" private var _max:int;// = 0 private var _dynamicTextField:TextField; private var _fps:int;// = 0 private var dynamicStr:String;// = "" private static const CONSOLE_TRIGGER_KEY:uint = 8; public static const FONT_TYPE_ERROR:int = 2; private static const CONSOLE_LINES:uint = 46; public static const FONT_TYPE_NORMAL:int = 0; public static const FONT_TYPE_WARNING:int = 1; private static var instance:DebugDisplay; private static var displayTreeStr:String = ""; private static var showConsole:Boolean = false; private static var keyIsDown:Boolean = false; private static var childList:Array; private static var displayTreeChildList:Array; public static var childrenTreeStr:String = ""; public function DebugDisplay(){ _consoleStringArray = new Array(); _deltaTimeArray = new Array(); super(); instance = this; this.addEventListener(Event.ADDED_TO_STAGE, handleAddedToStage); this.addEventListener(Event.REMOVED_FROM_STAGE, handleRemovedFromStage); if (GlobalData.DEBUG_USE_INTERNAL_CONSOLE){ this.filters = [new GlowFilter(0, 1, 6, 6)]; }; this.mouseChildren = false; this.mouseEnabled = false; } public function handleAddedToStage(_arg1:Event):void{ if (GlobalData.DEBUG_USE_INTERNAL_CONSOLE){ stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown); stage.addEventListener(KeyboardEvent.KEY_UP, keyUp); }; Debug.trace("DebugDisplay: Added To Stage"); dynamicStr = "FPS"; staticStr = (((((((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY) + " ") + (Capabilities.avHardwareDisable) ? " [SOFTWARE]" : " [HARDWARE]") + "\n") + Capabilities.version.toString()) + (Capabilities.isDebugger) ? " [DEBUG]" : ""); var _local2:TextField = new TextField(); staticStr = GlobalData.getBuildName(); _staticTextField = new TextField(); _staticTextField.defaultTextFormat = new TextFormat(null, 9); _staticTextField.embedFonts = false; _staticTextField.selectable = false; _staticTextField.tabEnabled = false; _staticTextField.autoSize = "left"; _staticTextField.text = staticStr; _staticTextField.scaleX = 1; _staticTextField.scaleY = 1; _staticTextField.textColor = 0xFFFFFF; _staticTextField.sharpness = 1; _staticTextField.x = 1; _staticTextField.y = offsetY; _staticTextField.cacheAsBitmap = true; addChild(_staticTextField); _staticTextField.visible = showConsole; _dynamicTextField = new TextField(); _dynamicTextField.defaultTextFormat = new TextFormat(null, 9); _dynamicTextField.embedFonts = false; _dynamicTextField.selectable = false; _dynamicTextField.tabEnabled = false; _dynamicTextField.autoSize = "left"; _dynamicTextField.text = "Debug Display"; _dynamicTextField.scaleX = 1; _dynamicTextField.scaleY = 1; _dynamicTextField.textColor = 0xFFFFFF; _dynamicTextField.sharpness = 1; _dynamicTextField.x = 1; _dynamicTextField.y = (offsetY - 10); _dynamicTextField.cacheAsBitmap = false; addChild(_dynamicTextField); _dynamicTextField.visible = showConsole; if (((GlobalData.DEBUG_USE_INTERNAL_CONSOLE) && (Debug.DEBUG_MODE))){ _consoleTextField = new TextField(); _consoleTextField.defaultTextFormat = new TextFormat(null, 10); _consoleTextField.embedFonts = false; _consoleTextField.selectable = false; _consoleTextField.tabEnabled = false; _consoleTextField.autoSize = "left"; _consoleTextField.text = staticStr; _consoleTextField.scaleX = 1; _consoleTextField.scaleY = 1; _consoleTextField.textColor = 0xFFFFFF; _consoleTextField.sharpness = 1; _consoleTextField.x = 1; _consoleTextField.y = 1; _consoleTextField.cacheAsBitmap = true; addChild(_consoleTextField); _consoleTextField.visible = showConsole; }; this.addEventListener(Event.ENTER_FRAME, handleEnterFrame); } public function handleRemovedFromStage(_arg1:Event):void{ if (GlobalData.DEBUG_USE_INTERNAL_CONSOLE){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDown); stage.removeEventListener(KeyboardEvent.KEY_UP, keyUp); }; trace("DebugDisplay: Removed From Stage"); this.removeEventListener(Event.ENTER_FRAME, handleEnterFrame); } public function handleEnterFrame(_arg1:Event):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local2:int = getTimer(); var _local3:int = (_local2 - _lastTime); _lastTime = _local2; _fps = Math.round((1000 / _local3)); _avgFPS = ((_avgFPS)<1) ? _fps : ((_avgFPS * 0.96) + (_fps * 0.04)); if ((((_minFPS > _fps)) || ((_minFPStime < _local2)))){ _minFPS = _fps; _minFPStime = (_local2 + 2000); }; if (GlobalData.DEBUG_MODE){ _deltaTimeArray.push(_local3); if (_deltaTimeArray.length > 250){ _deltaTimeArray.shift(); }; _local5 = 80; _local6 = 550; _local7 = 710; _local8 = 40; _local9 = 0; _local10 = ((_max - _min) * 0.1); _min = (_min + _local10); _max = (_max - _local10); for each (_local10 in _deltaTimeArray) { if (_local10 < _min){ _min = _local10; }; if (_local10 > _max){ _max = _local10; }; _local9 = (_local9 + _local10); }; _local9 = (_local9 / _deltaTimeArray.length); if (_max != _min){ this.graphics.clear(); this.graphics.lineStyle(2, 0xFF00, 1); this.graphics.moveTo(_local5, (_local6 + (((_local9 - _min) / (_max - _min)) * _local8))); this.graphics.lineTo((_local5 + _local7), (_local6 + (((_local9 - _min) / (_max - _min)) * _local8))); this.graphics.endFill(); this.graphics.lineStyle(2, 0xFF0000, 1); this.graphics.moveTo(_local5, _local6); _local10 = 0; while (_local10 < _deltaTimeArray.length) { this.graphics.lineTo((_local5 + ((Number(_local10) / _deltaTimeArray.length) * _local7)), (_local6 + (((_deltaTimeArray[_local10] - _min) / (_max - _min)) * _local8))); _local10++; }; this.graphics.endFill(); }; }; var _local4:uint = System.totalMemory; maxTotalMemory = ((_local4)>maxTotalMemory) ? _local4 : maxTotalMemory; dynamicStr = ((((("FPS " + Math.round(_avgFPS)) + " [") + _fps) + "] ") + _minFPS); _dynamicTextField.text = dynamicStr; } private static function strReplace(_arg1:String, _arg2:String, _arg3:String):String{ var _local4:String; var _local5:String; if (_arg1.indexOf(_arg2) >= 0){ _local4 = null; for each (_local5 in _arg1.split(_arg2)) { if (_local4){ _local4 = (_local4 + (_arg3 + _local5)); } else { _local4 = _local5; }; }; return (_local4); }; return (_arg1); } public static function _trace(_arg1:String, _arg2:int=0):void{ var _local3:String; var _local4:Array; if (GlobalData.DEBUG_USE_INTERNAL_CONSOLE){ _local3 = ""; _arg1 = strReplace(_arg1, "&", "&amp"); _arg1 = strReplace(_arg1, "<", "&lt"); _arg1 = strReplace(_arg1, ">", "&gt"); _local4 = _arg1.split("\n"); for each (_local3 in _local4) { switch (_arg2){ case FONT_TYPE_NORMAL: instance._consoleStringArray.push(_local3); break; case FONT_TYPE_WARNING: instance._consoleStringArray.push((("<font color=\"#eeff00\">" + _local3) + "</font>")); break; case FONT_TYPE_ERROR: instance._consoleStringArray.push((("<font color=\"#ff3333\">" + _local3) + "</font>")); break; }; }; while (instance._consoleStringArray.length > CONSOLE_LINES) { instance._consoleStringArray.shift(); }; instance._consoleString = ""; for each (_local3 in instance._consoleStringArray) { instance._consoleString = (instance._consoleString + (_local3 + "\n")); }; if (((instance._consoleTextField) && (showConsole))){ instance._consoleTextField.text = instance._consoleString; }; if (instance._consoleTextField){ instance._consoleTextField.htmlText = instance._consoleString; }; }; trace(_arg1); } public static function getDisplayTree(_arg1:DisplayObjectContainer):String{ var _local2:String; displayTreeStr = ""; if (_arg1 != null){ displayTreeChildList = new Array(); staticPopulateStageChildrenTreeRec(" ", _arg1); displayTreeChildList.reverse(); for each (_local2 in displayTreeChildList) { displayTreeStr = (displayTreeStr + ("\n" + _local2)); }; }; return (displayTreeStr); } private static function staticPopulateStageChildrenTreeRec(_arg1:String, _arg2:DisplayObjectContainer):void{ var _local4:uint; var _local3:String = _arg1; if (_arg2 == null){ _local3 = (_local3 + "null"); } else { _local3 = (_local3 + (((getQualifiedClassName(_arg2) + "[") + _arg2.numChildren) + "]")); if ((_arg2 is MovieClip)){ _local3 = (_local3 + ((" (" + (_arg2 as MovieClip).totalFrames) + " frames)")); }; _local4 = 0; while (_local4 < _arg2.numChildren) { staticPopulateStageChildrenTreeRec((_arg1 + "-"), (_arg2.getChildAt(_local4) as DisplayObjectContainer)); _local4++; }; }; displayTreeChildList.push(_local3); } public static function populateStageChildrenTree(_arg1:DisplayObjectContainer):void{ var _local2:String; var _local3:uint; var _local4:String; childrenTreeStr = ""; if (_arg1 != null){ childList = new Array(); populateStageChildrenTreeRec("", _arg1); childList.reverse(); _local2 = ""; _local3 = 0; for each (_local4 in childList) { if (_local4 == _local2){ _local3++; } else { if (_local3 > 1){ childrenTreeStr = (childrenTreeStr + ((" x [" + _local3) + "]")); }; childrenTreeStr = (childrenTreeStr + ("\n" + _local4)); _local2 = _local4; _local3 = 1; }; }; }; } private static function keyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == CONSOLE_TRIGGER_KEY){ if (!keyIsDown){ showConsole = !(showConsole); instance._consoleTextField.visible = showConsole; }; keyIsDown = true; }; } private static function keyUp(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == CONSOLE_TRIGGER_KEY){ keyIsDown = false; }; } private static function populateStageChildrenTreeRec(_arg1:String, _arg2:DisplayObjectContainer):void{ var _local4:uint; var _local3:String = _arg1; if (_arg2 == null){ _local3 = (_local3 + "null"); } else { _local3 = (_local3 + (((getQualifiedClassName(_arg2) + "[") + _arg2.numChildren) + "]")); _local4 = 0; while (_local4 < _arg2.numChildren) { populateStageChildrenTreeRec((_arg1 + "-"), (_arg2.getChildAt(_local4) as DisplayObjectContainer)); _local4++; }; }; childList.push(_local3); } public static function forceShowConsole():void{ if (GlobalData.DEBUG_USE_INTERNAL_CONSOLE){ showConsole = false; instance._consoleTextField.visible = showConsole; }; } public static function getChildrenCountRecursive(_arg1:DisplayObject):uint{ var _local3:DisplayObjectContainer; var _local4:int; var _local2:uint; if ((_arg1 is DisplayObjectContainer)){ _local3 = (_arg1 as DisplayObjectContainer); _local4 = 0; while (_local4 < _local3.numChildren) { _local2 = (_local2 + getChildrenCountRecursive(_local3.getChildAt(_local4))); _local4++; }; }; return ((_local2 + 1)); } } }//package debug
Section 63
//DebugFileWriter (debug.DebugFileWriter) package debug { public final class DebugFileWriter { private var saveFunction:Function; private var loadFunction:Function; private static var _instance:DebugFileWriter = new DebugFileWriter(PrivateClass); ; public function DebugFileWriter(_arg1:Class){ if (_instance){ throw (new Error("Invalid Singleton access.")); }; instanceConstructor(); } private function instanceConstructor():void{ } public function setFunctions(_arg1:Function, _arg2:Function):void{ saveFunction = _arg1; loadFunction = _arg2; } public static function SaveFile(_arg1:String, _arg2:String):void{ if (_instance.saveFunction != null){ _instance.saveFunction(_arg1, _arg2); }; } public static function getInstance():DebugFileWriter{ return (_instance); } public static function LoadFile(_arg1:String, _arg2:Function):void{ if (_instance.loadFunction != null){ _instance.loadFunction(_arg1, _arg2); }; } } }//package debug class PrivateClass { private function PrivateClass(){ } }
Section 64
//GameTimer (global.GameTimer) package global { import flash.utils.*; public final class GameTimer { private var timerType:int;// = 0 private static const TIMER_TYPE_COUNT:int = 1; public static const PAUSE_2:int = 2; public static const PAUSE_1:int = 1; public static const TIMER_ABSOLUTE:int = 0; public static const UNPAUSE:int = 0; private static var deltaArray:Array = [0, 0, 0]; private static var currentPauseLevel:int = 0; private static var timerArray:Array = [0, 0, 0]; private static var previousTime:int = 0; public static var timeScaleFactor:Number = 1; public function GameTimer(_arg1:int=0){ timerType = _arg1; } public static function getDeltaTimeByType(_arg1:int):Number{ return (deltaArray[_arg1]); } public static function getTime():Number{ return (timerArray[0]); } public static function reset():void{ var _local1:int = getTimer(); previousTime = _local1; var _local2:int; while (_local2 < TIMER_TYPE_COUNT) { timerArray[_local2] = 0; deltaArray[_local2] = 0; _local2++; }; } public static function UpdateTimers():void{ var _local1:int = getTimer(); var _local2:Number = (Number((_local1 - previousTime)) / 1000); _local2 = Math.min(0.1, _local2); _local2 = (_local2 * timeScaleFactor); var _local3:int; while (_local3 < TIMER_TYPE_COUNT) { if (_local3 <= currentPauseLevel){ timerArray[_local3] = (timerArray[_local3] + _local2); deltaArray[_local3] = _local2; } else { deltaArray[_local3] = 0; }; _local3++; }; previousTime = _local1; } public static function SetPauseLevel(_arg1:int):void{ currentPauseLevel = _arg1; } public static function getTimerByType(_arg1:int):Number{ return (timerArray[_arg1]); } public static function getDeltaTime():Number{ return (deltaArray[0]); } public static function setPause(_arg1:Boolean):void{ timeScaleFactor = (_arg1) ? 0 : 1; } public static function isPaused():Boolean{ return ((timeScaleFactor == 0)); } } }//package global
Section 65
//GlobalData (global.GlobalData) package global { import flash.filters.*; public class GlobalData { public static const DEBUG_DISABLE_COMMUNITY:Boolean = false; public static const DEFAULT_PASSWORD:String = "678910"; public static const applicationHeight:Number = 480; public static const DEBUG_USE_INTERNAL_CONSOLE:Boolean = false; public static const navMeshThresholdX:Number = 16; public static const navMeshThresholdY:Number = 32; public static const applicationFrameRate:Number = 240; public static const CHEAT_LAUCH_BOSS_FIGHT_1:String = "bf1"; public static const gameName:String = "BloodFeud"; public static const DEBUG_USE_EXTERNAL_CONSOLE:Boolean = false; public static const GO_TYPE_UNDEFINED:uint = 0xFF00; public static const DEBUG_MODE:Boolean = false; public static const DEFAULT_USERNAME:String = "12345"; public static const windowHeight:Number = 480; public static const windowWidth:Number = 640; public static const CHEAT_NO_CLIP_MODE:String = "noClip"; public static const CHEAT_INVULNERABILITY:String = "idkfa"; public static const CHEAT_TOGGLE_SOUND:String = "noSound"; public static const CHEAT_END_LEVEL:String = "TheEnd"; public static const CHEAT_UNLOCK_ALL_CARDS:String = "unlockCards"; public static const USE_CHEATS:Boolean = false; public static const applicationWidth:Number = 640; public static const CHEAT_UNLOCK_MISSIONS:String = "unlockMissions"; public static const DEBUG_TEST_TEXT_FIELD_SIZE:Boolean = false; public static const CHEAT_LAUCH_BOSS_FIGHT_3:String = "bf3"; public static const CHEAT_LAUCH_BOSS_FIGHT_4:String = "bf4"; public static const CHEAT_LOCALIZATION_TEST_ACCENTS:String = "accents"; public static const CHEAT_LAUCH_BOSS_FIGHT_2:String = "bf2"; private static var _instance:GlobalData = new GlobalData(PrivateClass); ; public static var ITEMSELECTORRADIUS:Number = 0; public static var firstLoginStep:int = 4; public static var USE_EXTERNAL_CONSOLE:Boolean; public static var MOUSELISTENER:Boolean = false; public static var BUILD_VERSION:String = ""; public static var enableSound:Boolean = false; public static var currentFrame:uint = 0; public function GlobalData(_arg1:Class){ if (_instance){ throw (new Error("Invalid Singleton access.")); }; instanceConstructor(); } private function instanceConstructor():void{ } public static function CRASH():void{ (null as Object).constructor(); } public static function getInstance():GlobalData{ return (_instance); } private static function linearinterp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return ((((1 - _arg3) * _arg1) + (_arg3 * _arg2))); } public static function formatNumber(_arg1:Number, _arg2:int=2):String{ var _local3:String = String(Math.floor(_arg1)); while (_local3.length < _arg2) { _local3 = ("0" + _local3); }; return (_local3); } public static function getTimeStamp():String{ var _local1:Date = new Date(); return ((((((formatNumber((_local1.getFullYear() % 100)) + formatNumber((_local1.getMonth() + 1))) + formatNumber(_local1.getDate())) + formatNumber(_local1.getHours())) + formatNumber(_local1.getMinutes())) + formatNumber(_local1.getSeconds()))); } public static function getBuildName():String{ return (BUILD_VERSION); } } }//package global class PrivateClass { private function PrivateClass(){ } }
Section 66
//JaludoUtil (jaludo.utils.JaludoUtil) package jaludo.utils { import flash.utils.*; import com.hurlant.crypto.symmetric.*; import com.hurlant.util.*; import com.hurlant.crypto.*; public class JaludoUtil { public static const GAME_OVER:String = "game over"; public static const COMPLETED_GAME:String = "completed game"; public static const INTRO:String = "intro"; public static const KIBA_VERSION:Boolean = true; public static const PRELOADER:String = "preloader"; public static const BETWEEN_LEVELS:String = "between levels"; public static const GAME:String = "game"; public static const SHOP:String = "shop"; public static const START_MENU:String = "start menu"; public static var Goto:String; public static var sendHighscore:Function; public static var openLink:Function; private static var type:String = "simple-des-ecb"; public static function encrypt(_arg1:String=""):String{ var _local2:ByteArray = Hex.toArray(Hex.fromString(_arg1)); var _local3:IPad = new PKCS5(); var _local4:ICipher = Crypto.getCipher(type, Hex.toArray(Hex.fromString("arold345")), _local3); _local3.setBlockSize(_local4.getBlockSize()); _local4.encrypt(_local2); return (Base64.encodeByteArray(_local2)); } } }//package jaludo.utils
Section 67
//SplashEvent (jaludo.utils.SplashEvent) package jaludo.utils { import flash.events.*; public final class SplashEvent extends Event { public static const END:String = "splashEnd"; public function SplashEvent(_arg1:String){ super(_arg1); } } }//package jaludo.utils
Section 68
//LoadingScreen (managers.modules.LoadingScreen) package managers.modules { import flash.display.*; import flash.utils.*; public class LoadingScreen extends Sprite { private var timeStart:int; public function loadingProgress(_arg1:Boolean, _arg2:Number):void{ } public function destroy():void{ trace("Loading time: ", (getTimer() - timeStart), "ms"); } public function create():void{ timeStart = getTimer(); } public function isReadyToStart():Boolean{ return (true); } } }//package managers.modules
Section 69
//Module (managers.modules.Module) package managers.modules { import flash.display.*; public class Module extends Sprite { protected var _paramList:ParameterList; protected var _resultParamList:ParameterList; final public function setParamList(_arg1:ParameterList):void{ _paramList = _arg1; } public function uninitialize():Boolean{ return (true); } final public function setResultParam(_arg1:ParameterList):void{ _resultParamList = _arg1; } public function initialize():Boolean{ return (true); } public function execute():void{ } public function render():void{ } public function destroy():void{ } final protected function invalidate():void{ if (stage){ stage.invalidate(); }; } public function create():void{ } } }//package managers.modules
Section 70
//ModuleDefinition (managers.modules.ModuleDefinition) package managers.modules { public final class ModuleDefinition { public var visible:Boolean;// = true public var resourcePackageList:Array; public var defaultParamList:ParameterList; public var name:String;// = "name" public var url:String;// = "url" public function ModuleDefinition(){ resourcePackageList = new Array(); defaultParamList = new ParameterList(); super(); } } }//package managers.modules
Section 71
//ModuleLoader (managers.modules.ModuleLoader) package managers.modules { import flash.events.*; import flash.display.*; import debug.*; import flash.system.*; import flash.net.*; public final class ModuleLoader { public var loaded:Boolean;// = false public var bytesTotal:Number;// = 0 private var _module:Module;// = null private var _paramList:ParameterList;// = null public var bytesLoaded:Number;// = 0 private var _loader:Loader;// = null private var _url:String;// = "" public function ModuleLoader(){ loaded = false; } public function loadEmbeddedModuleCallback(_arg1:Object, _arg2:ParameterList):void{ _module = (_arg1 as Module); _module.setParamList(_arg2); loaded = true; } private function handleModuleLoadComplete(_arg1:Event):void{ _loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, handleModuleLoadProgress); _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleModuleLoadComplete); _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleModuleLoadError); _module = (_loader.content as Module); _module.setParamList(_paramList); bytesLoaded = _loader.contentLoaderInfo.bytesLoaded; bytesTotal = _loader.contentLoaderInfo.bytesTotal; loaded = true; } public function unloadModule():void{ _module = null; loaded = false; System.gc(); } private function handleModuleLoadProgress(_arg1:ProgressEvent):void{ bytesLoaded = _arg1.bytesLoaded; bytesTotal = _arg1.bytesTotal; } public function get module():Module{ return (_module); } public function loadModule(_arg1:String, _arg2:ParameterList):void{ Debug.trace(("Loading Module at url = " + _arg1)); _module = null; loaded = false; _paramList = _arg2; _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, handleModuleLoadProgress, false, 0, true); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleModuleLoadComplete, false, 0, true); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleModuleLoadError, false, 0, true); _loader.load(new URLRequest(_arg1)); } private function handleModuleLoadError(_arg1:IOErrorEvent):void{ Debug.error("[ModuleManager] ERROR: Could not load module!", _arg1.text); _module = null; loaded = true; } } }//package managers.modules
Section 72
//ModuleManager (managers.modules.ModuleManager) package managers.modules { import flash.events.*; import utils.*; import global.*; import managers.ui.*; import flash.display.*; import managers.resources.*; import debug.*; import flash.system.*; import flash.net.*; public final class ModuleManager extends Sprite { private var _moduleLayer:Sprite; private var _loadingScreenLayer:Sprite; private var _requestPush:Boolean; private var _currentModuleInitialized:Boolean; private var _resultParam:ParameterList; private var _currentModule:Module; private var btnMessageOk:ButtonCallback; private var _loadingScreen:LoadingScreen; private var _moduleStack:Array; private var _embeddedResourceList:IEmbeddedData; private var _showErrorMessage:Boolean; public var testLayer:Sprite; private var _requestPop:Boolean; private var _messageLayer:Sprite; private var _embeddedModuleList:IEmbeddedData; private var _moduleDefinitionList:StringHashtable; public static const MESSAGE_ERROR_W_BTN:int = 3; public static const MESSAGE_INFO:int = 0; public static const MESSAGE_FATAL_ERROR:int = 4; public static const MESSAGE_WARNING_W_BTN:int = 2; public static const MESSAGE_INFO_W_BTN:int = 1; private static var _instance:ModuleManager = new ModuleManager(PrivateClass); ; public function ModuleManager(_arg1:Class){ if (_instance){ throw (new Error("Invalid Singleton access.")); }; instanceConstructor(); } private function hangGame():void{ stage.removeEventListener(Event.ENTER_FRAME, handleEnterFrame); stage.removeEventListener(Event.RENDER, handleRender); } private function handleMasterLoadComplete(_arg1:Event):void{ var masterXML:XML; var resListFilename:String; var event = _arg1; try { masterXML = new XML(event.target.data); resListFilename = String(masterXML.@resList); ResourceManager.getInstance().loadMaster(resListFilename, (_embeddedResourceList) ? _embeddedResourceList.getDataList() : null); _embeddedResourceList = null; compileMaster(masterXML); } catch(e:Error) { Debug.error("[ModuleManager] ERROR: Could not parse Master XML", e.message); showMessage("ERROR: Could not parse Master XML", MESSAGE_FATAL_ERROR); }; } public function updateFocus():void{ if (((!(_loadingScreen)) && (_currentModule))){ }; } public function getCurrentModule():Module{ return (_currentModule); } public function popModule(_arg1:ParameterList=null):void{ _resultParam = _arg1; _requestPop = true; } private function instanceConstructor():void{ _requestPop = false; _resultParam = null; _moduleDefinitionList = new StringHashtable(); _moduleStack = new Array(); _moduleLayer = new Sprite(); _loadingScreenLayer = new Sprite(); _messageLayer = new Sprite(); testLayer = new Sprite(); this.addChild(_moduleLayer); this.addChild(_loadingScreenLayer); this.addChild(_messageLayer); this.addChild(testLayer); _currentModuleInitialized = false; _showErrorMessage = false; } public function pushModule(_arg1:String, _arg2:LoadingScreen=null, _arg3:ParameterList=null, _arg4:Array=null):void{ var _local7:String; var _local12:String; _requestPush = true; Debug.trace("PUSH MODULE", _currentModule); if (_loadingScreen){ Debug.warning("[ModuleManager] ERROR: cannot load 2 modules at the same time"); return; }; if (!isLoadingFinished()){ Debug.warning("[ModuleManager] ERROR: cannot push Module while loading ResourceManager"); return; }; if (_currentModule){ _moduleLayer.removeChild(_currentModule); _currentModule = null; }; var _local5:ModuleDefinition = (_moduleDefinitionList.getElement(_arg1) as ModuleDefinition); var _local6:Array = new Array(); for each (_local7 in _local5.resourcePackageList) { _local6.push(_local7); }; if (_arg4){ for each (_local7 in _arg4) { if (_local6.indexOf(_local7) < 0){ _local6.push(_local7); }; }; }; _loadingScreen = (_arg2) ? _arg2 : new LoadingScreen(); _loadingScreenLayer.addChild(_loadingScreen); _loadingScreen.create(); _loadingScreen.loadingProgress(false, 0); var _local8:ParameterList = _local5.defaultParamList.clone(); if (_arg3){ _local8.mergeWith(_arg3); }; Debug.trace("PARAMS:", _local8.toString()); ResourceManager.getInstance().loadPackages(_local6); var _local9:ModuleLoader = new ModuleLoader(); _moduleStack.unshift(_local9); var _local10:Boolean; var _local11:String = _arg1; if (_embeddedModuleList){ for each (_local12 in _embeddedModuleList.getDataList().keys()) { if (_arg1.indexOf(_local12) >= 0){ _local11 = _local12; _local10 = true; break; }; }; }; if (_local10){ this.stage.addChild(new EmbeddedMovieClipConversionTool((new ((_embeddedModuleList.getDataList().getElement(_local11) as Class)) as MovieClip), _local9.loadEmbeddedModuleCallback, _local8)); } else { _local9.loadModule(_local5.url, _local8); }; } public function handleEnterFrame(_arg1:Event):void{ var loader:ModuleLoader; var isDone:Boolean; var progress:ProgressInfo; var event = _arg1; if (!_showErrorMessage){ GlobalData.currentFrame++; if (_loadingScreen){ loader = (_moduleStack[0] as ModuleLoader); isDone = ResourceManager.getInstance().isLoadingFinished(); progress = ResourceManager.getInstance().getProgess(); progress.bytesLoaded = (progress.bytesLoaded + loader.bytesLoaded); progress.bytesTotal = (progress.bytesTotal + loader.bytesTotal); _loadingScreen.loadingProgress(isDone, (progress.bytesTotal) ? Number((progress.bytesLoaded / progress.bytesTotal)) : 0); if (((((loader.loaded) && (isDone))) && (_loadingScreen.isReadyToStart()))){ _loadingScreen.destroy(); _loadingScreenLayer.removeChild(_loadingScreen); _loadingScreen = null; _currentModule = loader.module; _moduleLayer.addChild(_currentModule); try { _currentModule.create(); } catch(error:Error) { Debug.error("ERROR Module.create()", error.message, "\n", error.getStackTrace()); showMessage("ERROR Module.create", MESSAGE_FATAL_ERROR); }; _currentModuleInitialized = false; System.gc(); }; } else { if (_currentModule){ if (_requestPop){ if (_currentModule.uninitialize()){ _currentModuleInitialized = false; _requestPop = false; internalPopModule(); }; } else { if (_currentModuleInitialized){ try { _currentModule.execute(); } catch(error:Error) { Debug.error("ERROR Module.execute()", error.message, "\n", error.getStackTrace(), "\n", error.errorID, "\n", error.name); showMessage("ERROR Module.execute", MESSAGE_FATAL_ERROR); }; } else { try { _currentModuleInitialized = _currentModule.initialize(); } catch(error:Error) { Debug.error("ERROR Module.initialize()", error.message, "\n", error.getStackTrace()); showMessage("ERROR Module.initialize", MESSAGE_FATAL_ERROR); }; if (_currentModuleInitialized){ InputManager.getInstance().reset(); }; }; }; }; }; }; } public function isLoadingFinished():Boolean{ return (ResourceManager.getInstance().isMasterLoaded()); } public function showMessage(_arg1:String, _arg2:int):void{ var titleString:String; var useButton:Boolean; var str = _arg1; var messageType = _arg2; while (_messageLayer.numChildren > 0) { _messageLayer.removeChildAt(0); }; _messageLayer.graphics.clear(); _messageLayer.graphics.beginFill(0, 0.85); _messageLayer.graphics.drawRect(0, 0, GlobalData.applicationWidth, GlobalData.applicationHeight); switch (messageType){ case MESSAGE_INFO: titleString = "INFORMATION"; useButton = false; _showErrorMessage = false; break; case MESSAGE_INFO_W_BTN: titleString = "INFORMATION"; useButton = true; _showErrorMessage = true; break; case MESSAGE_WARNING_W_BTN: titleString = "WARNING"; useButton = true; _showErrorMessage = true; break; case MESSAGE_ERROR_W_BTN: titleString = "ERROR"; useButton = true; _showErrorMessage = true; break; case MESSAGE_FATAL_ERROR: default: titleString = "FATAL ERROR"; useButton = false; _showErrorMessage = true; hangGame(); break; }; var mc:MovieClip = (ResourceManager.getInstance().getResource("popup") as MovieClip); if (mc){ if (!useButton){ mc.hintBox.hintButtonText.visible = false; } else { mc.hintBox.hintButtonText.visible = true; btnMessageOk = new ButtonCallback(mc.hintBox.hintButtonText, function ():void{ btnMessageOk = null; hideMessage(); }); mc.hintBox.hintButtonText.text = "Ok"; }; mc.hintBox.hintTitle.text = titleString; mc.hintBox.hintText.text = str; _messageLayer.addChild(mc); }; } public function getModuleCount():int{ return (_moduleDefinitionList.size()); } public function handleNetworkError(_arg1:int):Boolean{ var _local2 = (("Network Error Code[" + _arg1) + "]"); showMessage(_local2, MESSAGE_FATAL_ERROR); return (true); } public function pushModuleIndex(_arg1:int, _arg2:LoadingScreen=null):void{ pushModule((_moduleDefinitionList.keys()[_arg1] as String), _arg2, null); } public function getModuleDefinitionAtIndex(_arg1:int):ModuleDefinition{ return ((_moduleDefinitionList.getElement((_moduleDefinitionList.keys()[_arg1] as String)) as ModuleDefinition)); } public function handleRender(_arg1:Event):void{ if (((((!(_loadingScreen)) && (_currentModule))) && (_currentModuleInitialized))){ _currentModule.render(); }; } private function internalPopModule():void{ var moduleLoader:ModuleLoader; Debug.trace("POP MODULE", _currentModule); if (_moduleStack.length > 0){ moduleLoader = (_moduleStack.shift() as ModuleLoader); try { moduleLoader.module.destroy(); } catch(error:Error) { Debug.error("ERROR Module.destroy()", error.message, "\n", error.getStackTrace()); showMessage("ERROR Module.destroy", MESSAGE_FATAL_ERROR); }; _moduleLayer.removeChild(moduleLoader.module); moduleLoader.unloadModule(); _currentModule = null; }; InputManager.getInstance().reset(); if (_moduleStack.length > 0){ moduleLoader = (_moduleStack[0] as ModuleLoader); _currentModule = moduleLoader.module; _moduleLayer.addChild(_currentModule); if (_resultParam){ _currentModule.setResultParam(_resultParam); _resultParam = null; }; }; } public function setMaster(_arg1:XML, _arg2:XML, _arg3:IEmbeddedData, _arg4:IEmbeddedData):void{ _embeddedModuleList = _arg3; ResourceManager.getInstance().setMaster(_arg2, (_arg4) ? _arg4.getDataList() : null); compileMaster(_arg1); } public function hideMessage():void{ _messageLayer.graphics.clear(); while (_messageLayer.numChildren > 0) { _messageLayer.removeChildAt(0); }; _showErrorMessage = false; } public function loadMaster(_arg1:String, _arg2:IEmbeddedData, _arg3:IEmbeddedData):void{ _embeddedModuleList = _arg2; _embeddedResourceList = _arg3; var _local4:URLLoader = new URLLoader(); _local4.dataFormat = URLLoaderDataFormat.TEXT; _local4.addEventListener(Event.COMPLETE, handleMasterLoadComplete, false, 0, true); _local4.load(new URLRequest(_arg1)); } public function getModuleCountVisible():int{ var _local2:ModuleDefinition; var _local1:int; for each (_local2 in _moduleDefinitionList.elements()) { if (_local2.visible){ _local1++; }; }; return (_local1); } private function compileMaster(_arg1:XML):void{ var _local3:ModuleDefinition; var _local4:XML; var _local2:int; while (_local2 < _arg1.module.length()) { _local3 = new ModuleDefinition(); _local3.name = String(_arg1.module[_local2].@name); _local3.url = String(_arg1.module[_local2].@url); _local3.visible = ((String(_arg1.module[_local2].@visible).toLowerCase())=="true") ? true : false; for each (_local4 in _arg1..module[_local2].resourcePackage) { _local3.resourcePackageList.push(String(_local4.@name)); }; for each (_local4 in _arg1..module[_local2].param) { _local3.defaultParamList.set(String(_local4.@name), String(_local4.@value)); }; _moduleDefinitionList.put(_local3.name, _local3); _local2++; }; stage.addEventListener(Event.ENTER_FRAME, handleEnterFrame); stage.addEventListener(Event.RENDER, handleRender); } public static function getInstance():ModuleManager{ return (_instance); } } }//package managers.modules class PrivateClass { private function PrivateClass(){ } }
Section 73
//ParameterList (managers.modules.ParameterList) package managers.modules { import utils.*; public final class ParameterList { private var _paramList:StringHashtable; public function ParameterList(_arg1:Object=null){ _paramList = new StringHashtable(_arg1); } public function size():int{ return (_paramList.size()); } public function getNames():Array{ return (_paramList.keys()); } public function remove(_arg1:String):void{ _paramList.remove(_arg1); } public function get(_arg1:String):String{ if (_paramList.containsKey(_arg1)){ return ((_paramList.getElement(_arg1) as String)); }; return (""); } public function set(_arg1:String, _arg2:String):void{ if (_paramList.containsKey(_arg1)){ _paramList.remove(_arg1); }; _paramList.put(_arg1, _arg2); } public function toString():String{ var _local2:String; var _local3:String; var _local1:Array = _paramList.keys(); _local2 = (("PARAM LIST [" + _local1.length) + "]\n"); for each (_local3 in _local1) { _local2 = (_local2 + (((((" KEY='" + _local3) + "'") + " VALUE='") + (_paramList.getElement(_local3) as String)) + "'\n")); }; return (_local2); } public function clone():ParameterList{ var _local2:String; var _local1:ParameterList = new ParameterList(); for each (_local2 in _paramList.keys()) { _local1._paramList.put(_local2, _paramList.getElement(_local2)); }; return (_local1); } public function mergeWith(_arg1:ParameterList, _arg2:Boolean=true):void{ var _local3:String; for each (_local3 in _arg1._paramList.keys()) { _paramList.put(_local3, _arg1._paramList.getElement(_local3)); }; } } }//package managers.modules
Section 74
//AnchorData (managers.objects.AnchorData) package managers.objects { public final class AnchorData { private var _id:int; private var _anchor:String; public function AnchorData(_arg1:int, _arg2:String){ _id = _arg1; _anchor = _arg2; } public function get anchorId():String{ return (_anchor); } public function get objectId():int{ return (_id); } } }//package managers.objects
Section 75
//FXObject (managers.objects.FXObject) package managers.objects { import animation.*; public final class FXObject { public var animatedObject:AnimatedObject;// = null public var attachToObject:AnchorData;// = null public var inUse:Boolean;// = false public var startTime:Number; public var timeToLive:Number; public var timerType:int; } }//package managers.objects
Section 76
//FXObjectDefinition (managers.objects.FXObjectDefinition) package managers.objects { public class FXObjectDefinition { public var visualDataAnim:String; public var visualDataType:String; public var type:String; public var timerType:int; } }//package managers.objects
Section 77
//FXObjectManager (managers.objects.FXObjectManager) package managers.objects { import utils.*; import global.*; import flash.display.*; import physic.*; import debug.*; import animation.*; public final class FXObjectManager { private const MAX_FXOBJECT_INSTANCE_COUNT:int = 32; private var _fxObjectList:Array; private var _fxObjectDefinitions:StringHashtable; private var _layer:Sprite; public function FXObjectManager(_arg1:Sprite){ _layer = _arg1; _fxObjectDefinitions = new StringHashtable(); _fxObjectList = new Array(MAX_FXOBJECT_INSTANCE_COUNT); var _local2:int; while (_local2 < _fxObjectList.length) { _fxObjectList[_local2] = new FXObject(); _local2++; }; } public function update():void{ var _local1:Number; var _local2:Number; var _local3:FXObject; var _local4:Vec2; for each (_local3 in _fxObjectList) { if (_local3.inUse){ _local1 = GameTimer.getTimerByType(_local3.timerType); _local2 = GameTimer.getDeltaTimeByType(_local3.timerType); if (((!(_local3.animatedObject.isPlaying())) || (((_local3.startTime + _local3.timeToLive) < _local1)))){ destroyFXObject(_local3); } else { _local3.animatedObject.update(_local2); if (_local3.attachToObject){ _local4 = GameObjectManager.getInstance().getAnchorPosition(_local3.attachToObject); if (_local4){ _local3.animatedObject.x = _local4.x; _local3.animatedObject.y = _local4.y; }; }; }; }; }; } private function destroyFXObject(_arg1:FXObject):void{ if (this._layer.contains(_arg1.animatedObject)){ this._layer.removeChild(_arg1.animatedObject); }; _arg1.animatedObject.destroy(); _arg1.animatedObject = null; _arg1.inUse = false; } public function CreateFXObject(_arg1:String, _arg2:Object, _arg3:Boolean=false):Boolean{ var _local5:FXObject; var _local6:Vec2; var _local4:FXObjectDefinition = (_fxObjectDefinitions.getElement(_arg1) as FXObjectDefinition); if (!_local4){ Debug.trace(("ERROR: FXObject definition not found for type " + _arg1)); return (false); }; for each (_local5 in _fxObjectList) { if (!_local5.inUse){ _local5.animatedObject = new AnimatedObject(); this._layer.addChild(_local5.animatedObject); _local5.animatedObject.setData(_local4.visualDataType); _local5.animatedObject.playAnim(_local4.visualDataAnim, false); _local5.animatedObject.setMirror(_arg3); if ((_arg2 is Vec2)){ _local5.attachToObject = null; _local5.animatedObject.x = _arg2.x; _local5.animatedObject.y = _arg2.y; } else { if ((_arg2 is AnchorData)){ _local5.attachToObject = (_arg2 as AnchorData); _local6 = GameObjectManager.getInstance().getAnchorPosition(_local5.attachToObject); if (_local6){ _local5.animatedObject.x = _local6.x; _local5.animatedObject.y = _local6.y; }; }; }; _local5.startTime = GameTimer.getTimerByType(GameTimer.TIMER_ABSOLUTE); _local5.timeToLive = 2; _local5.inUse = true; return (true); }; }; return (false); } public function InjectFXObjectDefinition(_arg1:FXObjectDefinition):void{ _fxObjectDefinitions.put(_arg1.type, _arg1); } public function destroy():void{ _fxObjectDefinitions = null; _fxObjectList = null; } } }//package managers.objects
Section 78
//GameLayerManager (managers.objects.GameLayerManager) package managers.objects { import global.*; import flash.display.*; import physic.*; import debug.*; public final class GameLayerManager { private const _cameraFlashDuration:Number = 1; private var _cameraFlashTime:Number;// = 0 private var _layerParallaxSpeed:Array; public var CameraPosition:Vec2; private var _cameraShakeTime:Number;// = 0 private var _overlay:Sprite; private var _cameraShakeVec:Vec2; public var _freeCameraMode:Boolean; private var _initialized:Boolean; private var _cameraFlashMode:Boolean;// = false public var CameraBottomBound:Vec2; private var _layers:Array; private var _debugLayer:Sprite; private var _cameraShakeMode:Boolean;// = false private var _hudLayer:Sprite; public static const LAYER_BACKGOUND_1:int = 6; public static const LAYER_BACKGOUND_2:int = 8; public static const LAYER_FOREGROUND_1:int = 2; public static const LAYER_BACKGOUND_3:int = 9; public static const LAYER_BACKGOUND_4:int = 10; private static const LAYER_COUNT:int = 12; public static const LAYER_BACKGOUND_TEST:int = 7; public static const LAYER_FARTHEST:int = 11; public static const LAYER_CLOSEST:int = 0; public static const LAYER_GAME_1:int = 1; public static const LAYER_GAME_2:int = 3; public static const LAYER_GAME_3:int = 4; public static const LAYER_GAME_4:int = 5; private static var _instance:GameLayerManager = new GameLayerManager(PrivateClass); ; public function GameLayerManager(_arg1:Class){ _cameraShakeVec = new Vec2(); super(); if (_instance){ throw (new Error("Invalid Singleton access.")); }; instanceConstructor(); } public function destroy():void{ var _local2:Sprite; var _local1:int; while (_local1 < LAYER_COUNT) { _local2 = (_layers[_local1] as Sprite); removeChildrenRecursive(_local2); if (_local2.parent){ _local2.parent.removeChild(_local2); }; if (_local2){ while (_local2.numChildren > 0) { _local2.removeChildAt(0); }; }; _local1++; }; if (_overlay.parent){ _overlay.parent.removeChild(_overlay); }; _overlay = null; if (_hudLayer.parent){ _hudLayer.parent.removeChild(_hudLayer); }; _hudLayer = null; if (_debugLayer.parent){ _debugLayer.parent.removeChild(_debugLayer); }; _debugLayer = null; _layers = null; _layerParallaxSpeed = null; CameraBottomBound = null; CameraPosition = null; _initialized = false; } public function create(_arg1:DisplayObjectContainer):void{ _layers = new Array(LAYER_COUNT); _layerParallaxSpeed = new Array(LAYER_COUNT); CameraBottomBound = new Vec2(0, 0); CameraPosition = new Vec2(0, 0); _freeCameraMode = false; setParentDisplayObject(_arg1); _initialized = true; if (!_overlay){ _overlay = new Sprite(); }; if (!_hudLayer){ _hudLayer = new Sprite(); }; if (!_debugLayer){ _debugLayer = new Sprite(); }; } public function isInitialized():Boolean{ return (_initialized); } public function cameraFlash():void{ _cameraFlashMode = true; _cameraFlashTime = GameTimer.getTimerByType(GameTimer.TIMER_ABSOLUTE); } public function getHudLayer():Sprite{ return (_hudLayer); } public function set CameraInFreeMode(_arg1:Boolean):void{ _freeCameraMode = _arg1; } public function getLayer(_arg1:int):Sprite{ return ((_layers[_arg1] as Sprite)); } private function instanceConstructor():void{ _initialized = false; _cameraShakeMode = false; } public function setLayerParallaxSpeed(_arg1:int, _arg2:Number):void{ _layerParallaxSpeed[_arg1] = _arg2; } public function Update(_arg1:Number):void{ var _local3:Number; var _local4:Sprite; var _local5:Number; if (_cameraShakeMode){ _cameraShakeVec.x = ((Math.random() * 4) - 2); _cameraShakeVec.y = ((Math.random() * 4) - 2); if (_cameraShakeTime < GameTimer.getTimerByType(GameTimer.TIMER_ABSOLUTE)){ _cameraShakeMode = false; _cameraShakeVec.x = 0; _cameraShakeVec.y = 0; }; }; if (_cameraFlashMode){ _overlay.graphics.clear(); _local3 = ((GameTimer.getTimerByType(GameTimer.TIMER_ABSOLUTE) - _cameraFlashTime) / _cameraFlashDuration); _local3 = (1 - Math.max(0, Math.min(1, _local3))); if (_local3 <= 0){ _cameraFlashMode = false; } else { _overlay.graphics.beginFill(0xFFFFFF, (_local3 * _local3)); _overlay.graphics.drawRect(0, 0, GlobalData.applicationWidth, GlobalData.applicationHeight); }; }; var _local2:int = LAYER_CLOSEST; while (_local2 < LAYER_COUNT) { _local4 = (_layers[_local2] as Sprite); _local5 = (_layerParallaxSpeed[_local2] as Number); if (_local4 != null){ _local4.x = ((CameraPosition.x + _cameraShakeVec.x) * _local5); _local4.y = ((CameraPosition.y + _cameraShakeVec.y) * _local5); }; _local2++; }; } private function setParentDisplayObject(_arg1:DisplayObjectContainer):void{ var _local2:int; var _local3:Sprite; var _local4:Number; if (_arg1 != null){ _local2 = 0; while (_local2 < LAYER_COUNT) { _local3 = new Sprite(); _arg1.addChildAt(_local3, 0); _layers[_local2] = _local3; _local4 = 1; setLayerParallaxSpeed(_local2, 1); _local2++; }; if (!_overlay){ _overlay = new Sprite(); }; _arg1.addChild(_overlay); if (!_hudLayer){ _hudLayer = new Sprite(); }; _arg1.addChild(_hudLayer); if (!_debugLayer){ _debugLayer = new Sprite(); }; _arg1.addChild(_debugLayer); setLayerParallaxSpeed(LAYER_BACKGOUND_TEST, 0); setLayerParallaxSpeed(LAYER_BACKGOUND_2, 0.8); setLayerParallaxSpeed(LAYER_BACKGOUND_3, 0.6); setLayerParallaxSpeed(LAYER_BACKGOUND_4, 0.4); } else { Debug.trace("stage passed to GameLayerManager::setStage is null"); }; } public function cameraShake():void{ _cameraShakeMode = true; _cameraShakeTime = (GameTimer.getTimerByType(GameTimer.TIMER_ABSOLUTE) + 1.5); } public function cameraReset():void{ _cameraFlashMode = false; _cameraFlashTime = 0; _cameraShakeMode = false; _cameraShakeTime = 0; } public function getDebugLayer():Sprite{ return (_debugLayer); } public function getLayerParallaxSpeed(_arg1:int):Number{ return ((_layerParallaxSpeed[_arg1] as Number)); } public function get isFreeCameraMode():Boolean{ return (_freeCameraMode); } public static function getInstance():GameLayerManager{ return (_instance); } public static function removeChildrenRecursive(_arg1:DisplayObject):void{ var _local2:DisplayObjectContainer; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _local2 = (_arg1 as DisplayObjectContainer); while (_local2.numChildren > 0) { _local3 = _local2.getChildAt(0); removeChildrenRecursive(_local3); _local2.removeChild(_local3); }; }; } } }//package managers.objects class PrivateClass { private function PrivateClass(){ } }
Section 79
//GameObject (managers.objects.GameObject) package managers.objects { import global.*; import managers.sounds.*; import flash.display.*; import physic.*; import animation.*; public class GameObject implements IGameObject { public var active:Boolean;// = true public var velocity:Vec2; public var timerType:int; private var _displayObject:IDisplayableObject; public var position:Vec2; public var relativeBoundingBox:Rect; public var onScreen:Boolean; private var _id:uint;// = 0 public function get type():uint{ return (GlobalData.GO_TYPE_UNDEFINED); } final public function set displayObject(_arg1:IDisplayableObject):void{ _displayObject = _arg1; } final public function get boundingBox():Rect{ return (new Rect((relativeBoundingBox.x + position.x), (relativeBoundingBox.y + position.y), relativeBoundingBox.width, relativeBoundingBox.height)); } final public function get id():uint{ return (_id); } final public function selfDestruction():void{ GameObjectManager.getInstance().destroyGameObject(_id); } final public function debugDisplayObject(_arg1:Graphics):void{ if (Physic.SHOW_DEBUG_STUFF){ _arg1.beginFill((active) ? 0xFF0000 : 0xFF, 0.2); _arg1.drawRect(boundingBox.x, boundingBox.y, boundingBox.width, boundingBox.height); _arg1.endFill(); }; } public function update(_arg1:Number, _arg2:Number):void{ } protected function internalDestroy():void{ } protected function internalCreate():void{ } final public function destroy():void{ internalDestroy(); if (((_displayObject) && ((_displayObject is IDisplayableObject)))){ (_displayObject as IDisplayableObject).destroy(); }; _displayObject = null; velocity = null; position = null; relativeBoundingBox = null; } public function get layer():int{ return (GameLayerManager.LAYER_CLOSEST); } final public function get displayObject():IDisplayableObject{ return (_displayObject); } final public function playProximitySound(_arg1:String):void{ var _local2:Number = ((-(GameLayerManager.getInstance().CameraPosition.x) + (GlobalData.applicationWidth / 2)) - position.x); _local2 = (_local2 / -(GlobalData.applicationWidth)); SoundManager.getInstance().playProximitySound(_arg1, _local2); } final public function set id(_arg1:uint):void{ _id = _arg1; } final public function create():void{ _displayObject = null; velocity = new Vec2(); position = new Vec2(); relativeBoundingBox = new Rect(); internalCreate(); } } }//package managers.objects
Section 80
//GameObjectManager (managers.objects.GameObjectManager) package managers.objects { import global.*; import flash.display.*; import physic.*; import debug.*; import animation.*; public class GameObjectManager { private var _gameObjects:Array;// = null private var _projectileManager:ProjectileManager;// = null private var _destroyRequestList:Array;// = null private var _fxObjectManager:FXObjectManager;// = null public static const onScreenBoxBorder:Number = 50; public static const onScreenBox:Rect = new Rect(); private static const DEBUG_MODE:Boolean = true; private static var UID_PROVIDER:uint = 1; private static var _instance:GameObjectManager = new GameObjectManager(PrivateClass); ; public function GameObjectManager(_arg1:Class){ if (_instance){ throw (new Error("Invalid Singleton access.")); }; instanceConstructor(); } public function destroy():void{ while (_gameObjects.length > 0) { (_gameObjects.pop() as IGameObject).destroy(); }; _gameObjects = null; _destroyRequestList = null; _fxObjectManager.destroy(); _projectileManager.destroy(); } public function get projectileManager():ProjectileManager{ return (_projectileManager); } public function getGameObject(_arg1:uint):GameObject{ var _local2:GameObject; for each (_local2 in _gameObjects) { if (_arg1 == _local2.id){ return (_local2); }; }; return (null); } public function update():void{ var _local2:GameObject; fxObjectManager.update(); projectileManager.update(); var _local1:Graphics; if (DEBUG_MODE){ if (GameLayerManager.getInstance().isInitialized()){ _local1 = GameLayerManager.getInstance().getLayer(GameLayerManager.LAYER_FOREGROUND_1).graphics; _local1.clear(); }; }; for each (_local2 in _gameObjects) { _local2.onScreen = Physic.isRectIntersectRect(onScreenBox, _local2.boundingBox); _local2.update(GameTimer.getTimerByType(_local2.timerType), GameTimer.getDeltaTimeByType(_local2.timerType)); if (_local2.displayObject){ if (_local2.onScreen){ if ((_local2.displayObject is IAnimatedObject)){ _local2.displayObject.visible = true; (_local2.displayObject as IAnimatedObject).update(GameTimer.getDeltaTimeByType(_local2.timerType)); }; if (((DEBUG_MODE) && (_local1))){ _local2.debugDisplayObject(_local1); }; } else { _local2.displayObject.visible = false; }; }; }; while (_destroyRequestList.length > 0) { internalDestroyGameObject(_destroyRequestList.pop()); }; } private function instanceConstructor():void{ } public function createGameObject(_arg1:Class, ... _args):uint{ var _local6:Object; var _local7:Sprite; var _local3:int = UID_PROVIDER++; var _local4:GameObject = new (_arg1); var _local5:int = _local4.layer; _local4.id = _local3; _local4.create(); for each (_local6 in _args) { if ((_local6 is Vec2)){ _local4.position.x = (_local6 as Vec2).x; _local4.position.y = (_local6 as Vec2).y; }; }; _local7 = GameLayerManager.getInstance().getLayer(_local5); if (_local7){ if (_local4.displayObject){ _local7.addChild((_local4.displayObject as DisplayObject)); } else { Debug.trace((("New object of type " + _arg1) + " has no graphics !")); }; } else { Debug.trace(("Cannot find layer=" + _local5)); }; _gameObjects.push(_local4); return (_local3); } private function internalDestroyGameObject(_arg1:uint):void{ var _local2:GameObject = getGameObject(_arg1); if (_local2){ _local2.destroy(); _gameObjects.splice(_gameObjects.indexOf(_local2), 1); }; } public function create():void{ _gameObjects = new Array(); _destroyRequestList = new Array(); _projectileManager = new ProjectileManager(GameLayerManager.getInstance().getLayer(GameLayerManager.LAYER_GAME_2)); _fxObjectManager = new FXObjectManager(GameLayerManager.getInstance().getLayer(GameLayerManager.LAYER_GAME_2)); } public function getGameObjectsByType(_arg1:uint):Array{ var _local3:GameObject; var _local2:Array = new Array(); for each (_local3 in _gameObjects) { if ((_local3.type & _arg1) != 0){ _local2.push(_local3); }; }; return (_local2); } public function destroyGameObject(_arg1:uint):void{ _destroyRequestList.push(_arg1); } public function getAnchorPosition(_arg1:AnchorData):Vec2{ var _local3:IAnimatedObject; var _local2:IGameObject = getGameObject(_arg1.objectId); if (_local2){ _local3 = (_local2.displayObject as IAnimatedObject); if (_local3){ return (_local3.getAnchor(_arg1.anchorId)); }; }; return (null); } public function get fxObjectManager():FXObjectManager{ return (_fxObjectManager); } public static function objectIs(_arg1:GameObject, _arg2:uint):Boolean{ return (!(((_arg1.type & _arg2) == 0))); } public static function getInstance():GameObjectManager{ return (_instance); } public static function setNewLayer(_arg1:GameObject, _arg2:uint):void{ var _local3:int; var _local4:Sprite; if (((_arg1.layer) && (_arg1.displayObject))){ _local3 = _arg1.layer; _local4 = GameLayerManager.getInstance().getLayer(_local3); (_arg1.displayObject as DisplayObject).parent.removeChild((_arg1.displayObject as DisplayObject)); _local4 = GameLayerManager.getInstance().getLayer(_arg2); _local4.addChild((_arg1.displayObject as DisplayObject)); }; } } }//package managers.objects class PrivateClass { private function PrivateClass(){ } }
Section 81
//IGameObject (managers.objects.IGameObject) package managers.objects { import flash.display.*; import animation.*; public interface IGameObject { function get displayObject():IDisplayableObject; function set displayObject(_arg1:IDisplayableObject):void; function set id(_arg1:uint):void; function get type():uint; function update(_arg1:Number, _arg2:Number):void; function destroy():void; function get id():uint; function create():void; function debugDisplayObject(_arg1:Graphics):void; } }//package managers.objects
Section 82
//Projectile (managers.objects.Projectile) package managers.objects { import flash.display.*; import physic.*; import animation.*; public final class Projectile { public var type:int; public var boundingBox:Rect; public var firingObjectId:uint; public var startTime:Number; public var offset:Vec2; public var hitPoints:Number;// = 1 public var velocity:Vec2; public var timerType:int; public var displayObject:DisplayObject;// = null public var inUse:Boolean;// = false public var position:Vec2; public var toBeCleared:Boolean;// = false public var oldPosition:Vec2; public var velocityMultiplier:Number; public function LoadFromDefinition(_arg1:ProjectileDefinition, _arg2:Boolean):void{ type = _arg1.type; timerType = _arg1.timerType; velocityMultiplier = _arg1.velocityMultiplier; boundingBox = _arg1.boundingBox; offset = _arg1.offset; displayObject = new Image(); (displayObject as Image).setData(_arg1.templateVisualData, offset); (displayObject as Image).setMirror(_arg2); } } }//package managers.objects
Section 83
//ProjectileDefinition (managers.objects.ProjectileDefinition) package managers.objects { import physic.*; public class ProjectileDefinition { public var stopFX:String;// = "" public var templateVisualData:String; public var boundingBox:Rect; public var maximumOnScreen:int; public var collisionFX:String;// = "" public var offset:Vec2; public var type:int; public var startFX:String;// = "" public var velocityMultiplier:Number; public var timerType:int; public function ProjectileDefinition(){ offset = Vec2.ZERO; super(); } } }//package managers.objects
Section 84
//ProjectileManager (managers.objects.ProjectileManager) package managers.objects { import utils.*; import global.*; import flash.display.*; import physic.*; import debug.*; import animation.*; public final class ProjectileManager { private const MAX_PROJECTILE_INSTANCE_COUNT:int = 64; private const MAX_PROJECTILE_DEFINITION:int = 16; private var _projectiles:Hashtable; private var _layer:Sprite; private var _projectileDefinitions:Hashtable; private var debugGraphics:Graphics;// = null public static const maximumScreenProjectiles:int = 10; private static const DEBUG_MODE:Boolean = true; public function ProjectileManager(_arg1:Sprite){ _layer = _arg1; _projectileDefinitions = new Hashtable(); _projectiles = new Hashtable(); } public function checkForNearCollision(_arg1:Vec2, _arg2:Number):Boolean{ var _local3:Number; var _local4:Number; var _local6:int; var _local7:Array; var _local8:Projectile; _arg2 = (_arg2 * _arg2); var _local5:Array = _projectiles.keys(); for each (_local6 in _local5) { _local7 = (_projectiles.getElement(_local6) as Array); for each (_local8 in _local7) { if (_local8.inUse){ if (_arg2 > Vec2.distanceSquared(_local8.position, _arg1)){ return (true); }; }; }; }; return (false); } public function CreateProjectile(_arg1:uint, _arg2:int, _arg3:Object, _arg4:Vec2, _arg5:Number, _arg6:Boolean=false):Boolean{ var _local9:Projectile; var _local10:Vec2; var _local7:ProjectileDefinition = (_projectileDefinitions.getElement(_arg2) as ProjectileDefinition); if (!_local7){ Debug.trace(("ERROR: projectile definition not found for type " + _arg2)); return (false); }; var _local8:Array = (_projectiles.getElement(_arg2) as Array); for each (_local9 in _local8) { if (!_local9.inUse){ _local9.LoadFromDefinition(_local7, _arg6); if ((_arg3 is Vec2)){ _local9.position = _arg3.clone(); } else { if ((_arg3 is AnchorData)){ _local10 = GameObjectManager.getInstance().getAnchorPosition((_arg3 as AnchorData)); if (_local10){ _local9.position = _local10.clone(); }; }; }; _local9.hitPoints = _arg5; _local9.oldPosition = _local9.position.clone(); _local9.firingObjectId = _arg1; _local9.velocity = _arg4; _layer.addChild(_local9.displayObject); _local9.inUse = true; launchFXObject(_local7.startFX, _arg3, _arg6); return (true); }; }; Debug.trace(("WARNING: not enough projectile in pool for type " + _arg2)); return (false); } private function launchFXObject(_arg1:String, _arg2:Object, _arg3:Boolean=false):void{ if (((_arg1) && (!((_arg1 == ""))))){ GameObjectManager.getInstance().fxObjectManager.CreateFXObject(_arg1, _arg2, _arg3); }; } public function update():void{ var _local1:Number; var _local2:Number; var _local5:int; var _local6:ProjectileDefinition; var _local7:Array; var _local8:Projectile; var _local9:Vec2; if (((DEBUG_MODE) && (Physic.SHOW_DEBUG_STUFF))){ if (GameLayerManager.getInstance().isInitialized()){ debugGraphics = GameLayerManager.getInstance().getLayer(GameLayerManager.LAYER_FOREGROUND_1).graphics; }; }; var _local3:Array = _projectiles.keys(); var _local4:int = _projectiles.size(); for each (_local5 in _local3) { _local6 = (_projectileDefinitions.getElement(_local5) as ProjectileDefinition); _local7 = (_projectiles.getElement(_local5) as Array); for each (_local8 in _local7) { if (_local8.inUse){ _local1 = GameTimer.getTimerByType(_local8.timerType); _local2 = GameTimer.getDeltaTimeByType(_local8.timerType); if (_local8.toBeCleared){ _layer.removeChild(_local8.displayObject); if ((_local8.displayObject is AnimatedObject)){ (_local8.displayObject as AnimatedObject).destroy(); }; _local8.inUse = false; _local8.toBeCleared = false; } else { _local9 = _local8.velocity.getMultiplyBy((_local8.velocityMultiplier * _local2)); _local8.oldPosition.x = _local8.position.x; _local8.oldPosition.y = _local8.position.y; if (!Physic.isVecIntersectRect(_local8.position, GameObjectManager.onScreenBox)){ _local8.toBeCleared = true; } else { if ((((((((_local8.position.x < 0)) || ((_local8.position.x > 10000)))) || ((_local8.position.y < 0)))) || ((_local8.position.y > 10000)))){ _local8.toBeCleared = true; } else { if (Physic.updateProjectilePosition(_local8.oldPosition, _local8.position, _local9)){ _local8.toBeCleared = true; launchFXObject(_local6.stopFX, _local8.position); }; }; }; if ((_local8.displayObject is AnimatedObject)){ (_local8.displayObject as AnimatedObject).update(_local2); }; _local8.displayObject.x = _local8.position.x; _local8.displayObject.y = _local8.position.y; }; if (((((DEBUG_MODE) && (Physic.SHOW_DEBUG_STUFF))) && (debugGraphics))){ debugGraphics.beginFill(0xFFFF, 0.2); debugGraphics.drawCircle(_local8.position.x, _local8.position.y, 5); debugGraphics.endFill(); }; }; }; }; } public function InjectProjectileDefinition(_arg1:ProjectileDefinition):void{ _projectileDefinitions.put(_arg1.type, _arg1); var _local2:Array = new Array(_arg1.maximumOnScreen); var _local3:int; while (_local3 < _arg1.maximumOnScreen) { _local2[_local3] = new Projectile(); _local3++; }; _projectiles.put(_arg1.type, _local2); } public function checkForCollision(_arg1:uint, _arg2:Rect, _arg3:Function):void{ var _local4:Number; var _local5:Number; var _local9:int; var _local10:ProjectileDefinition; var _local11:Array; var _local12:Projectile; var _local6:Array = _projectiles.keys(); var _local7:Line = new Line(); var _local8:Rect = new Rect(); for each (_local9 in _local6) { _local10 = (_projectileDefinitions.getElement(_local9) as ProjectileDefinition); _local11 = (_projectiles.getElement(_local9) as Array); for each (_local12 in _local11) { if (((_local12.inUse) && (!((_local12.firingObjectId == _arg1))))){ _local7.pt1 = _local12.oldPosition; _local7.pt2 = _local12.position; _local8.x = Math.min(_local7.pt1.x, _local7.pt2.x); _local8.y = Math.min(_local7.pt1.y, _local7.pt2.y); _local8.width = Math.abs((_local7.pt1.x - _local7.pt2.x)); _local8.height = Math.abs((_local7.pt1.y - _local7.pt2.y)); if (Physic.isRectIntersectRect(_arg2, _local8)){ _arg3(_local9, _local12.velocity, _local12.hitPoints); _local12.toBeCleared = true; launchFXObject(_local10.stopFX, _local12.position); }; }; }; }; } public function destroy():void{ _layer = null; _projectiles.clear(); _projectileDefinitions.clear(); } } }//package managers.objects
Section 85
//EmbeddedMovieClipConversionTool (managers.resources.EmbeddedMovieClipConversionTool) package managers.resources { import flash.events.*; import flash.display.*; public final class EmbeddedMovieClipConversionTool extends Sprite { private var _loader:Loader; private var _callback:Function; private var _param:Object; public function EmbeddedMovieClipConversionTool(_arg1:MovieClip, _arg2:Function, _arg3:Object){ _param = _arg3; _loader = (_arg1.getChildAt(0) as Loader); _callback = _arg2; this.addEventListener(Event.ADDED_TO_STAGE, addedToStage); this.visible = false; } private function enterFrame(_arg1:Event):void{ if (_loader.content){ _callback(_loader.content, _param); _param = null; _callback = null; _loader = null; this.stage.removeEventListener(Event.ENTER_FRAME, enterFrame); this.parent.removeChild(this); }; } private function addedToStage(_arg1:Event):void{ this.removeEventListener(Event.ADDED_TO_STAGE, addedToStage); this.stage.addEventListener(Event.ENTER_FRAME, enterFrame); } } }//package managers.resources
Section 86
//ICompiledResource (managers.resources.ICompiledResource) package managers.resources { public interface ICompiledResource { } }//package managers.resources
Section 87
//IEmbeddedData (managers.resources.IEmbeddedData) package managers.resources { import utils.*; public interface IEmbeddedData { function getDataList():StringHashtable; } }//package managers.resources
Section 88
//LocalizationManager (managers.resources.LocalizationManager) package managers.resources { import utils.*; import flash.display.*; import physic.*; import debug.*; import flash.text.*; public final class LocalizationManager { private var localizationData:XML; private var _stringDictionary:StringHashtable; private var selectedLocale:String;// = "en_US" private static var _instance:LocalizationManager = new LocalizationManager(PrivateClass); ; private static var strTextFieldSize:StringHashtable = new StringHashtable(); public function LocalizationManager(_arg1:Class){ localizationData = <strings> <string name="_language" value="english" locale="en_US"/> <string name="_language" value="français" locale="fr_FR"/> <string name="_language" value="español" locale="sp_SP"/> <string name="language" value="language" locale="en_US"/> <string name="language" value="langue" locale="fr_FR"/> <string name="language" value="idioma" locale="sp_SP"/> </strings> ; super(); if (_instance){ throw (new Error("Invalid Singleton access.")); }; instanceConstructor(); } private function instanceConstructor():void{ _stringDictionary = new StringHashtable(); } public function getString(_arg1:String):String{ var _local2:String = (_stringDictionary.getElement(_arg1) as String); if (_local2 == null){ Debug.warning("\n*******************************************************"); Debug.warning((((("WARNING: [LocalizationManager] String id '" + _arg1) + "' undefined for locale '") + selectedLocale) + "'!")); Debug.warning("*******************************************************\n"); return ("INVALID TEXT"); }; return (_local2); } private function getTextFieldSizeRec(_arg1:DisplayObject):void{ var _local2:int; var _local3:TextField; var _local4:String; var _local5:Vec2; var _local6:BitmapData; var _local7:int; var _local8:BitmapData; if ((_arg1 is DisplayObjectContainer)){ _local2 = 0; while (_local2 < (_arg1 as DisplayObjectContainer).numChildren) { getTextFieldSizeRec((_arg1 as DisplayObjectContainer).getChildAt(_local2)); _local2++; }; return; }; if ((_arg1 is TextField)){ _local3 = (_arg1 as TextField); _local4 = _local3.text; _local5 = new Vec2(_local3.width, _local3.height); if (((((((getIdFromString(_local4)) && (isStringIdValid(getIdFromString(_local4))))) && ((_local5.x > 0)))) && ((_local5.y > 0)))){ _local6 = null; _local7 = 1; while (_local7 < 20) { _local3.text = getWString(_local7); _local8 = null; _local8 = new BitmapData(_local5.x, _local5.y, true, 0xFFFFFF); _local8.draw(_local3); if (_local6){ if (_local8.compare(_local6) == 0){ strTextFieldSize.put(getIdFromString(_local4), String((_local7 - 1))); break; }; }; _local6 = _local8; _local7++; }; _local3.text = _local4; }; }; } public function setCurrentLocale():void{ } private function getWString(_arg1:int):String{ var _local2 = ""; while (--_arg1 >= 0) { _local2 = (_local2 + "W"); }; return (_local2); } public function getDefaultLocale():void{ } public function getTextFieldSizeList():String{ var _local2:String; var _local1 = ""; for each (_local2 in _stringDictionary.keys()) { if (strTextFieldSize.containsKey(_local2)){ _local1 = (_local1 + (((_local2 + ";") + strTextFieldSize.getElement(_local2)) + "\n")); } else { _local1 = (_local1 + (((_local2 + ";") + "?") + "\n")); }; }; return (_local1); } public function getTextFieldSize(_arg1:DisplayObject):void{ if (_arg1){ getTextFieldSizeRec(_arg1); }; } public function setDefaultLocale():void{ } public function getCurrentLocale():void{ } public function isStringIdValid(_arg1:String):Boolean{ return (!((_stringDictionary.getElement(_arg1) == null))); } public function loadLocalization(_arg1:XML):void{ var _local4:XML; var _local5:String; var _local6:String; localizationData = _arg1; selectedLocale = String(localizationData.@locale); var _local2:XMLList = localizationData.strings.elements("string"); var _local3:int; while (_local3 < _local2.length()) { _local4 = _local2[_local3]; _local5 = String(_local4.@id); _local6 = String(_local4.@value); _local6 = replacePattern("\\n", "\n", _local6); _local6 = replacePattern("\\t", "\t", _local6); _stringDictionary.put(_local5, _local6); _local3++; }; Debug.trace((("current locale '" + selectedLocale) + "'")); } public static function getIdFromString(_arg1:String):String{ var _local2:int = _arg1.indexOf("<", 0); if (_local2 < 0){ return (null); }; var _local3:int = _arg1.indexOf(">", (_local2 + 1)); if (_local3 < 0){ return (null); }; return (_arg1.substring((_local2 + 1), _local3)); } public static function getInstance():LocalizationManager{ return (_instance); } private static function replacePattern(_arg1:String, _arg2:String, _arg3:String):String{ var _local4:Array = _arg3.split(_arg1); _arg3 = (_local4[0] as String); var _local5 = 1; while (_local5 < _local4.length) { _arg3 = (_arg3 + ((_arg2 + _local4[_local5]) as String)); _local5++; }; return (_arg3); } } }//package managers.resources class PrivateClass { private function PrivateClass(){ } }
Section 89
//ProgressInfo (managers.resources.ProgressInfo) package managers.resources { public class ProgressInfo { public var bytesLoaded:Number;// = 0 public var bytesTotal:Number;// = 0 } }//package managers.resources
Section 90
//Resource (managers.resources.Resource) package managers.resources { import flash.events.*; import flash.display.*; import managers.modules.*; import debug.*; import flash.media.*; import flash.net.*; public class Resource { public var _package:String;// = "" public var _data:Object;// = null public var embedded:Boolean; public var bytesLoaded:uint;// = 0 public var bytesTotal:uint;// = 0 public var _loader:Object;// = null public var _type:String;// = "" public var _isLoaded:Boolean;// = false public var _size:uint;// = 0 public var _url:String;// = "" public var _id:String;// = "" public static const RES_XML_DATA:String = "xml_data"; public static const RES_SWF_NORMAL:String = "swf"; public static const RES_PURE_SWF_NEEDCOMPILATION:String = "pure_swf_needcompilation"; public static const RES_SOUND:String = "sound"; public static const RES_SWF_NEEDCOMPILATION:String = "swf_needcompilation"; public static const RES_UNDEFINED:String = "undefined"; public static const RES_SWF_SINGLEFRAME:String = "swf_singleframe"; public static const RES_IMG_NEEDCOMPILATION:String = "img_needcompilation"; public function handleLoadError(_arg1:IOErrorEvent):void{ Debug.warning("\n#######################################################"); Debug.warning("ERROR: [Resource] Load Error :", _id, _arg1.text); Debug.warning("#######################################################\n"); bytesLoaded = (bytesTotal = 0); _loader = null; _isLoaded = true; _data = null; } public function handleLoadComplete(_arg1:Event):void{ if ((_arg1.target is Sound)){ _data = (_arg1.target as Sound); }; if ((_arg1.target is URLLoader)){ _data = (_arg1.target as URLLoader).data; } else { if ((_arg1.target is LoaderInfo)){ _data = (_arg1.target as LoaderInfo).loader.content; }; }; ResourceManager.getInstance().compileResource(this); bytesLoaded = bytesTotal; } public function handleLoadProgress(_arg1:ProgressEvent):void{ bytesLoaded = _arg1.bytesLoaded; bytesTotal = _arg1.bytesTotal; ModuleManager.getInstance().handleEnterFrame(null); } } }//package managers.resources
Section 91
//ResourceManager (managers.resources.ResourceManager) package managers.resources { import flash.events.*; import utils.*; import managers.ui.*; import flash.display.*; import managers.modules.*; import debug.*; import animation.*; import flash.media.*; import flash.system.*; import flash.net.*; public final class ResourceManager extends Sprite { private var _loadingPendingResourceList:Array; private var _loadedResourceList:Array; private var embeddedDataList:StringHashtable; private var totalDownloadedBytes:Number; private var _masterLoaded:Boolean; private var _dictionary:StringHashtable; private static var _instance:ResourceManager = new ResourceManager(PrivateClass); ; public static var GAMEASSET_PATH:String = ""; public function ResourceManager(_arg1:Class){ if (_instance){ throw (new Error("Invalid Singleton access.")); }; instanceConstructor(); } public function loadPackages(_arg1:Array):void{ var _local3:String; var _local4:String; var _local5:Resource; var _local2:Array = new Array(); for each (_local3 in _arg1) { Debug.trace((("[ResourceManager] Load package '" + _local3) + "'")); for each (_local5 in _dictionary.elements()) { if (_local5._package == _local3){ if (_local2.indexOf(_local5._id) < 0){ _local2.push(_local5._id); }; }; }; }; for each (_local4 in _local2) { if (!internalIsResourceLoaded(_local4)){ internalLoadResource(_local4); }; }; } public function isLoadingFinished():Boolean{ var _local1:String; var _local2:Resource; if (_loadingPendingResourceList.length > 0){ for each (_local1 in _loadingPendingResourceList) { _local2 = (_dictionary.getElement(_local1) as Resource); if (!_local2._isLoaded){ return (false); }; }; while (_loadingPendingResourceList.length > 0) { _loadedResourceList.push(_loadingPendingResourceList.pop()); }; }; return (true); } public function loadPackage(_arg1:String):void{ var _local2:Resource; Debug.trace((("[ResourceManager] Load package '" + _arg1) + "'")); for each (_local2 in _dictionary.elements()) { if (_local2._package == _arg1){ internalLoadResource(_local2._id); }; }; } private function handleMasterLoadComplete(_arg1:Event):void{ var event = _arg1; try { compileResourceList(new XML(event.target.data)); Debug.trace("[ResourceManager] Loading of Resource Master List Completed"); } catch(e:Error) { Debug.error("[ResourceManager] ERROR: Could not parse Resource Master List", e.message); }; } public function loadAllResources():void{ var _local1:String; Debug.trace("[Resource Manager] Load All Resources"); for each (_local1 in _dictionary.keys()) { if (!internalIsResourceLoaded(_local1)){ internalLoadResource(_local1); }; }; } private function compileEmbeddedResource(_arg1:Object, _arg2:Object):void{ (_arg2 as Resource)._data = _arg1; compileResource((_arg2 as Resource)); } private function getPackageList():Array{ var _local2:Resource; var _local1:Array = new Array(); for each (_local2 in _dictionary.elements()) { if (_local1.indexOf(_local2._package) < 0){ _local1.push(_local2._package); }; }; return (_local1); } public function isMasterLoaded():Boolean{ return (_masterLoaded); } public function loadResource(_arg1:String):void{ internalLoadResource(_arg1); } public function unloadPackage(_arg1:String):void{ var _local3:Resource; var _local2:Array = _dictionary.elements(); for each (_local3 in _local2) { if (_local3._package == _arg1){ unloadResource(_local3._id); }; }; } public function setResource(_arg1:String, _arg2:Object, _arg3:String="undefined"):void{ var _local4:Resource = (_dictionary.getElement(_arg1) as Resource); if (!_local4){ Debug.warning("\n*******************************************************"); Debug.warning((("WARNING: [ResourceManager] Resource id '" + _arg1) + "' not found!")); Debug.warning("*******************************************************\n"); _local4 = new Resource(); _local4._data = _arg2; _local4._id = _arg1; _local4._type = _arg3; _local4._isLoaded = true; _dictionary.put(_local4._id, _local4); Debug.trace((("[ResourceManager] Resource added to dictionary '" + _local4._id) + "'")); return; }; _local4._data = _arg2; } private function internalIsResourceLoaded(_arg1:String):Boolean{ var _local2:Resource = (_dictionary.getElement(_arg1) as Resource); if (_local2){ return (_local2._isLoaded); }; return (false); } public function getResource(_arg1:String):Object{ var _local2:Resource = (_dictionary.getElement(_arg1) as Resource); if (!_local2){ Debug.warning("\n*******************************************************"); Debug.warning((("WARNING: [ResourceManager] Resource id '" + _arg1) + "' not found!")); Debug.warning("*******************************************************\n"); return (null); }; return (_local2._data); } private function compileResourceList(_arg1:XML):void{ var _local4:XML; var _local5:Resource; GAMEASSET_PATH = _arg1.@resPath; var _local2:XMLList = _arg1.children(); var _local3:int; while (_local3 < _local2.length()) { _local4 = _local2[_local3]; _local5 = new Resource(); _local5._id = _local4.@id; _local5._url = _local4.@url; _local5._package = _local4.@packageId; _local5._type = _local4.@type; _local5._size = _local4.@size; if (_local5._size){ _local5.bytesTotal = _local5._size; }; _local5._isLoaded = false; if (((!((_local5._url == ""))) && (!((_local5._id == ""))))){ _dictionary.put(_local5._id, _local5); }; _local3++; }; _masterLoaded = true; } public function compileResource(_arg1:Resource):void{ if (_arg1._loader){ removeListenersFromResource((_arg1._loader as IEventDispatcher), _arg1); }; switch (_arg1._type){ case Resource.RES_SWF_NORMAL: InputManager.getInstance().registerExternalEventDispatcher((_arg1._data as MovieClip)); case Resource.RES_XML_DATA: _arg1._isLoaded = true; break; case Resource.RES_PURE_SWF_NEEDCOMPILATION: this.stage.addChild(new SwfAnimationConversionTool((_arg1._data as MovieClip), _arg1)); break; case Resource.RES_SWF_NEEDCOMPILATION: this.stage.addChild(new AnimationConversionTool((_arg1._data as MovieClip), _arg1)); break; case Resource.RES_IMG_NEEDCOMPILATION: this.stage.addChild(new ImageConversionTool((_arg1._data as Bitmap), _arg1)); break; case Resource.RES_SOUND: _arg1._isLoaded = true; break; case Resource.RES_UNDEFINED: _arg1._isLoaded = true; Debug.warning(((("[Resource Manager] UNDEFINED RESOURCE : " + _arg1._package) + "/") + _arg1._id)); break; default: Debug.error(((("[Resource Manager] UNDEFINED RESOURCE : " + _arg1._package) + "/") + _arg1._id)); break; }; } private function removeListenersFromResource(_arg1:IEventDispatcher, _arg2:Resource):void{ _arg1.removeEventListener(Event.COMPLETE, _arg2.handleLoadComplete); _arg1.removeEventListener(ProgressEvent.PROGRESS, _arg2.handleLoadProgress); _arg1.removeEventListener(IOErrorEvent.IO_ERROR, _arg2.handleLoadError); } public function unloadAllResources():void{ var _local2:String; var _local1:Array = _dictionary.keys(); for each (_local2 in _local1) { unloadResource(_local2); }; } private function instanceConstructor():void{ totalDownloadedBytes = 0; _masterLoaded = false; this.visible = false; this.addEventListener(Event.ADDED_TO_STAGE, handleAddedToStage); _dictionary = new StringHashtable(); _loadedResourceList = new Array(); _loadingPendingResourceList = new Array(); } public function loadMaster(_arg1:String, _arg2:StringHashtable):void{ embeddedDataList = _arg2; Debug.trace("[ResourceManager] Loading Resource Master List"); _masterLoaded = false; var _local3:URLLoader = new URLLoader(); _local3.dataFormat = URLLoaderDataFormat.TEXT; _local3.addEventListener(Event.COMPLETE, handleMasterLoadComplete); _local3.load(new URLRequest(_arg1)); } public function displaySizeOfResources():void{ var _local1:Resource; for each (_local1 in _dictionary.elements()) { trace((((((((((("<resource id=\"" + _local1._id) + "\" packageId=\"") + _local1._package) + "\" url=\"") + _local1._url) + "\" type=\"") + _local1._type) + "\" size=\"") + _local1.bytesTotal) + "\" />")); }; } public function unloadResource(_arg1:String):void{ var _local3:Resource; var _local2:int = _loadedResourceList.indexOf(_arg1); if (_local2 >= 0){ Debug.trace((("Unload resource '" + _arg1) + "'")); _local3 = (_dictionary.getElement(_arg1) as Resource); _loadedResourceList.splice(_local2, 1); _local3._isLoaded = false; _local3._data = null; _local3.bytesLoaded = 0; _local3.bytesTotal = 0; _local3._loader = null; }; } public function displaySizeOfPackages():void{ var _local1:String; var _local2:Number; var _local3:Resource; for each (_local1 in getPackageList()) { _local2 = 0; for each (_local3 in _dictionary.elements()) { if (_local3._package == _local1){ _local2 = (_local2 + _local3.bytesTotal); }; }; trace((((("<package id=\"" + _local1) + "\" size=\"") + _local2) + "\" />")); }; } private function internalLoadResource(_arg1:String):void{ var id = _arg1; var resource:Resource = (_dictionary.getElement(id) as Resource); if (!resource){ return; }; if (((resource._isLoaded) || ((_loadingPendingResourceList.indexOf(id) >= 0)))){ return; }; _loadingPendingResourceList.push(id); if (((embeddedDataList) && (embeddedDataList.containsKey(id)))){ resource.embedded = true; resource._data = new ((embeddedDataList.getElement(id) as Class)); if ((resource._data is MovieClip)){ this.stage.addChild(new EmbeddedMovieClipConversionTool((resource._data as MovieClip), compileEmbeddedResource, resource)); } else { compileResource(resource); }; } else { resource.embedded = false; try { resource._isLoaded = false; switch (resource._type){ case Resource.RES_SOUND: resource._loader = new Sound(); addListenersToResource((resource._loader as Sound), resource); (resource._loader as Sound).load(new URLRequest((GAMEASSET_PATH + resource._url)), new SoundLoaderContext(0, false)); case Resource.RES_XML_DATA: resource._loader = new URLLoader(); addListenersToResource((resource._loader as URLLoader), resource); (resource._loader as URLLoader).load(new URLRequest((GAMEASSET_PATH + resource._url))); break; default: resource._loader = new Loader(); addListenersToResource((resource._loader as Loader).contentLoaderInfo, resource); (resource._loader as Loader).load(new URLRequest((GAMEASSET_PATH + resource._url)), new LoaderContext(false, ApplicationDomain.currentDomain)); break; }; } catch(error:SecurityError) { Debug.error("\n#######################################################"); Debug.error("ERROR: [ResourceManager]", error.name, error.errorID, error.message); Debug.error("#######################################################\n"); }; }; } private function handleAddedToStage(_arg1:Event):void{ this.removeEventListener(Event.ADDED_TO_STAGE, handleAddedToStage); } public function setMaster(_arg1:XML, _arg2:StringHashtable):void{ embeddedDataList = _arg2; Debug.trace("[ResourceManager] Setting Resource Master List"); compileResourceList(_arg1); } private function addListenersToResource(_arg1:IEventDispatcher, _arg2:Resource):void{ _arg1.addEventListener(Event.COMPLETE, _arg2.handleLoadComplete, false, 0, true); _arg1.addEventListener(ProgressEvent.PROGRESS, _arg2.handleLoadProgress, false, 0, true); _arg1.addEventListener(IOErrorEvent.IO_ERROR, _arg2.handleLoadError, false, 0, true); } public function getProgess():ProgressInfo{ var _local2:String; var _local3:Resource; var _local1:ProgressInfo = new ProgressInfo(); for each (_local2 in _loadingPendingResourceList) { _local3 = (_dictionary.getElement(_local2) as Resource); _local1.bytesLoaded = (_local1.bytesLoaded + _local3.bytesLoaded); _local1.bytesTotal = (_local1.bytesTotal + _local3.bytesTotal); }; return (_local1); } public function isResourceLoaded(_arg1:String):Boolean{ var _local2:Resource = (_dictionary.getElement(_arg1) as Resource); if (_local2){ return (_local2._isLoaded); }; return (false); } public function setResourceURL(_arg1:String, _arg2:String):void{ var _local3:Resource = (_dictionary.getElement(_arg1) as Resource); if (!_local3){ Debug.warning("\n*******************************************************"); Debug.warning((("WARNING: [ResourceManager] Resource id '" + _arg1) + "' not found!")); Debug.warning("*******************************************************\n"); return; }; _local3._isLoaded = false; _local3._url = _arg2; } public static function getInstance():ResourceManager{ return (_instance); } } }//package managers.resources class PrivateClass { private function PrivateClass(){ } }
Section 92
//SoundManager (managers.sounds.SoundManager) package managers.sounds { import managers.resources.*; import flash.media.*; public final class SoundManager { private var _ambianceMusic:String;// = null private var loopSoundList:Array; private var _currentMusic:String;// = null private var _enableSound:Boolean; private static var _instance:SoundManager = new SoundManager(PrivateClass); ; public function SoundManager(_arg1:Class){ if (_instance){ throw (new Error("Invalid Singleton access.")); }; instanceConstructor(); } public function stopAllSounds():void{ SoundMixer.stopAll(); } private function instanceConstructor():void{ SoundMixer.stopAll(); } public function isMusicEnabled():Boolean{ return (!((_currentMusic == null))); } public function stopMusic():void{ _currentMusic = null; _ambianceMusic = null; SoundMixer.stopAll(); } public function enableSound(_arg1:Boolean):void{ _enableSound = _arg1; if (_enableSound){ internalPlayMusic(_currentMusic, _ambianceMusic); } else { stopAllSounds(); }; } public function playMusic(_arg1:String, _arg2:String=null):void{ if (_currentMusic != _arg1){ _currentMusic = _arg1; _ambianceMusic = _arg2; if (_enableSound){ SoundMixer.stopAll(); internalPlayMusic(_currentMusic, _ambianceMusic); }; }; } private function internalPlayMusic(_arg1:String, _arg2:String):void{ var _local4:Sound; var _local3:SoundTransform = new SoundTransform(1); _local4 = (ResourceManager.getInstance().getResource(_arg1) as Sound); if (_local4){ _local4.play(0, int.MAX_VALUE, _local3); }; _local4 = (ResourceManager.getInstance().getResource(_arg2) as Sound); if (_local4){ _local4.play(0, int.MAX_VALUE, _local3); }; } public function playSound(_arg1:String, _arg2:Boolean=false):void{ var _local3:Sound; if (_enableSound){ _local3 = (ResourceManager.getInstance().getResource(_arg1) as Sound); if (_local3){ _local3.play(0, (_arg2) ? 9999 : 0); }; }; } public function playProximitySound(_arg1:String, _arg2:Number=0):void{ var _local3:Sound; var _local4:SoundChannel; if (_enableSound){ _local3 = (ResourceManager.getInstance().getResource(_arg1) as Sound); if (_local3){ _arg2 = Math.max(-1, Math.min(1, _arg2)); _local4 = _local3.play(0, 0, new SoundTransform(1, _arg2)); }; }; } public static function getInstance():SoundManager{ return (_instance); } } }//package managers.sounds class PrivateClass { private function PrivateClass(){ } }
Section 93
//ButtonCallback (managers.ui.ButtonCallback) package managers.ui { import flash.events.*; public class ButtonCallback { private var _obj:EventDispatcher;// = null private var _fct:Function;// = null public function ButtonCallback(_arg1:EventDispatcher, _arg2:Function){ _obj = _arg1; if (_obj){ _obj.addEventListener(MouseEvent.CLICK, onClick, false, 0, true); _fct = _arg2; }; } private function onClick(_arg1:MouseEvent):void{ if (_fct != null){ _fct(); }; } } }//package managers.ui
Section 94
//IMouseListener (managers.ui.IMouseListener) package managers.ui { import physic.*; public interface IMouseListener { function handleMouseUp(_arg1:Vec2, _arg2:Object):void; function handleMouseLeave(_arg1:Vec2, _arg2:Object):void; function handleMouseMove(_arg1:Vec2, _arg2:Boolean, _arg3:Object):void; function handleMouseDown(_arg1:Vec2, _arg2:Object):void; } }//package managers.ui
Section 95
//InputManager (managers.ui.InputManager) package managers.ui { import flash.events.*; import flash.display.*; import physic.*; import flash.geom.*; import debug.*; import flash.utils.*; import flash.ui.*; public final class InputManager extends Sprite { private var _mouseCursor:DisplayObject; private var _locked:Boolean;// = false private var keyTable:Array; private var _showMouse:Boolean; public var previousMouseTargetObject:DisplayObject;// = null private var _mouseListenerList:Array; private var _mouseCursorOffset:Vec2; private var mouseDown:Boolean;// = false private var _lockObject:Object;// = null public var mousePosition:Vec2; private var keyTablePressed:Array; public var currentMouseTargetObject:DisplayObject;// = null public static const KEY_LEFT:uint = 0; public static const KEY_NUMPAD_ADD:uint = 21; public static const KEY_UP:uint = 2; public static const KEY_NUMPAD_MULTIPLY:uint = 24; public static const KEY_DOWN:uint = 3; public static const KEY_F1:uint = 11; public static const KEY_F4:uint = 12; public static const KEY_F5:uint = 13; public static const KEY_0:uint = 25; public static const KEY_F7:uint = 15; public static const KEY_F8:uint = 16; public static const KEY_F9:uint = 17; public static const KEY_4:uint = 7; public static const KEY_5:uint = 10; public static const KEY_F6:uint = 14; public static const KEY_8:uint = 9; public static const KEY_2:uint = 6; public static const KEY_3:uint = 22; private static const KEY_UNDEF:uint = 25; public static const KEY_6:uint = 8; public static const KEY_7:uint = 23; public static const KEY_ENTER:uint = 4; public static const KEY_1:uint = 21; public static const KEY_NUMPAD_DIVIDE:uint = 23; public static const KEY_NUMPAD_ENTER:uint = 20; public static const KEY_9:uint = 24; public static const KEY_NUMPAD_SUBTRACT:uint = 22; public static const KEY_F10:uint = 18; public static const KEY_SPACE:uint = 5; private static const KEY_COUNT:uint = 26; public static const KEY_DEL:uint = 19; public static const KEY_RIGHT:uint = 1; private static var _instance:InputManager = new InputManager(PrivateClass); ; public function InputManager(_arg1:Class){ mousePosition = new Vec2(); super(); if (_instance){ throw (new Error("Invalid Singleton access.")); }; instanceConstructor(); } private function removeKeyboardListenersFromDispatcher(_arg1:IEventDispatcher):void{ _arg1.removeEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown); _arg1.removeEventListener(KeyboardEvent.KEY_UP, handleKeyUp); } private function handleExternalMouseLeave(_arg1:Event):void{ var _local2:IMouseListener; if (_mouseCursor){ (_mouseCursor.visible = false); }; for each (var _local5 in _mouseListenerList) { _local2 = _local5; _local5; _local2.handleMouseLeave(mousePosition, _arg1.target); }; stage.invalidate(); } private function GetObjectUnderPoint(_arg1:Point):DisplayObject{ var _local3:DisplayObject; var _local2:Array = stage.getObjectsUnderPoint(_arg1); while (_local2.length > 0) { _local3 = _local2.pop(); if (_local3 == this){ _local3 = _local2.pop(); return (_local3); }; }; return (null); } private function handleKeyUp(_arg1:KeyboardEvent):void{ var _local2:uint = getKeyCode(_arg1.keyCode); if (keyTable[_local2]){ keyTablePressed[_local2] = false; keyTable[_local2] = false; }; } public function isKeyPressed(_arg1:uint):Boolean{ return ((_locked) ? false : keyTable[_arg1]); } public function resetMouse():void{ currentMouseTargetObject = null; previousMouseTargetObject = null; } public function setMouseCursor(_arg1:DisplayObject, _arg2:Vec2=null):void{ if (((_mouseCursor) && (this.contains(_mouseCursor)))){ this.removeChild(_mouseCursor); }; _mouseCursorOffset = _arg2; _mouseCursor = _arg1; this.addChild(_mouseCursor); updateMouse(); } public function getInputTable():String{ var _local1 = (("\n\n" + keyTable.length) + "\n"); var _local2:uint; while (_local2 < keyTable.length) { _local1 = (_local1 + ((("\nkey[" + _local2) + "] = ") + keyTable[_local2])); _local2++; }; return (_local1); } public function isKeyPressedOnceLockedMode(_arg1:Object, _arg2:uint):Boolean{ if ((((_lockObject == _arg1)) && (keyTablePressed[_arg2]))){ keyTablePressed[_arg2] = false; return (true); }; return (false); } private function handleExternalMouseDoubleClick(_arg1:MouseEvent):void{ } private function handleMouseDown(_arg1:MouseEvent):void{ var _local2:IMouseListener; for each (_local2 in _mouseListenerList) { _local2.handleMouseDown(new Vec2(_arg1.stageX, _arg1.stageY), _arg1.target); }; } private function addKeyboardListenersToDispatcher(_arg1:IEventDispatcher):void{ _arg1.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); _arg1.addEventListener(KeyboardEvent.KEY_UP, handleKeyUp, false, 0, true); } private function handleMouseDoubleClick(_arg1:MouseEvent):void{ } private function traceObjectUnderPoint(_arg1:Point):void{ var _local3:Object; var _local2:Array = stage.getObjectsUnderPoint(_arg1); for each (_local3 in _local2) { }; } private function instanceConstructor():void{ var _local1:uint; this.addEventListener(Event.ADDED_TO_STAGE, handleAddedToStage); keyTable = new Array(); keyTablePressed = new Array(); while (_local1 < KEY_COUNT) { keyTable.push(new Boolean()); keyTablePressed.push(new Boolean()); _local1++; }; _mouseListenerList = new Array(); _mouseCursor = null; showMouse(true); this.mouseChildren = false; this.mouseEnabled = false; this.visible = true; Mouse.hide(); } public function showMouse(_arg1:Boolean):void{ _showMouse = _arg1; updateMouse(); } private function handleMouseClick(_arg1:MouseEvent):void{ this.stage.invalidate(); } private function handleExternalMouseDown(_arg1:MouseEvent):void{ var _local2:IMouseListener; (mousePosition.x = _arg1.stageX); (mousePosition.y = _arg1.stageY); for each (var _local5 in _mouseListenerList) { _local2 = _local5; _local5; _local2.handleMouseDown(mousePosition, _arg1.target); }; } public function isKeyPressedOnce(_arg1:uint):Boolean{ if (((!(_locked)) && (keyTablePressed[_arg1]))){ keyTablePressed[_arg1] = false; return (true); }; return (false); } private function handleExternalMouseOut(_arg1:MouseEvent):void{ } private function getKeyCode(_arg1:uint):uint{ switch (_arg1){ case Keyboard.NUMPAD_5: return (KEY_5); case Keyboard.NUMPAD_4: return (KEY_4); case Keyboard.LEFT: return (KEY_LEFT); case Keyboard.NUMPAD_6: return (KEY_6); case Keyboard.RIGHT: return (KEY_RIGHT); case Keyboard.NUMPAD_8: return (KEY_8); case Keyboard.UP: return (KEY_UP); case Keyboard.NUMPAD_2: return (KEY_2); case Keyboard.DOWN: return (KEY_DOWN); case Keyboard.NUMPAD_0: return (KEY_0); case Keyboard.NUMPAD_1: return (KEY_1); case Keyboard.NUMPAD_3: return (KEY_3); case Keyboard.NUMPAD_7: return (KEY_7); case Keyboard.NUMPAD_9: return (KEY_9); case Keyboard.NUMPAD_ENTER: return (KEY_NUMPAD_ENTER); case Keyboard.NUMPAD_ADD: return (KEY_NUMPAD_ADD); case Keyboard.NUMPAD_SUBTRACT: return (KEY_NUMPAD_SUBTRACT); case Keyboard.NUMPAD_DIVIDE: return (KEY_NUMPAD_DIVIDE); case Keyboard.NUMPAD_MULTIPLY: return (KEY_NUMPAD_MULTIPLY); case Keyboard.ENTER: return (KEY_ENTER); case Keyboard.SPACE: return (KEY_SPACE); case Keyboard.F1: return (KEY_F1); case Keyboard.F4: return (KEY_F4); case Keyboard.F5: return (KEY_F5); case Keyboard.F6: return (KEY_F6); case Keyboard.F7: return (KEY_F7); case Keyboard.F8: return (KEY_F8); case Keyboard.F9: return (KEY_F9); case Keyboard.F10: return (KEY_F10); case Keyboard.DELETE: return (KEY_DEL); }; return (KEY_UNDEF); } public function unregisterExternalEventDispatcher(_arg1:IEventDispatcher):void{ Debug.trace((("[InputManager] Unregister EventDispatcher '" + getQualifiedClassName(_arg1)) + "' (EXTERNAL)")); removeMouseListenersFromDispatcher(_arg1); } private function addMouseListenersToDispatcher(_arg1:IEventDispatcher):void{ _arg1.addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown, false, 0, true); _arg1.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove, false, 0, true); _arg1.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp, false, 0, true); _arg1.addEventListener(MouseEvent.CLICK, handleMouseClick, false, 0, true); _arg1.addEventListener(MouseEvent.DOUBLE_CLICK, handleMouseDoubleClick, false, 0, true); _arg1.addEventListener(Event.MOUSE_LEAVE, handleMouseLeave, false, 0, true); } public function isKeyPressedLockedMode(_arg1:Object, _arg2:uint):Boolean{ return (((_lockObject)==_arg1) ? keyTable[_arg2] : false); } private function handleExternalMouseMove(_arg1:MouseEvent):void{ var _local2:IMouseListener; stage.invalidate(); if (_mouseCursor){ if (!_mouseCursor.visible){ (_mouseCursor.visible = true); }; (_mouseCursor.x = (_arg1.stageX + (_mouseCursorOffset) ? _mouseCursorOffset.x : 0)); (_mouseCursor.y = (_arg1.stageY + (_mouseCursorOffset) ? _mouseCursorOffset.y : 0)); _arg1.updateAfterEvent(); }; (mousePosition.x = _arg1.stageX); (mousePosition.y = _arg1.stageY); for each (var _local5 in _mouseListenerList) { _local2 = _local5; _local5; _local2.handleMouseMove(mousePosition, _arg1.buttonDown, _arg1.target); }; } private function handleExternalMouseUp(_arg1:MouseEvent):void{ var _local2:IMouseListener; (mousePosition.x = _arg1.stageX); (mousePosition.y = _arg1.stageY); for each (var _local5 in _mouseListenerList) { _local2 = _local5; _local5; _local2.handleMouseUp(mousePosition, _arg1.target); }; } private function handleExternalMouseOver(_arg1:MouseEvent):void{ } private function specialDispatch(_arg1:Point, _arg2:MouseEvent):void{ var _local4:DisplayObject; var _local5:*; var _local3:Array = stage.getObjectsUnderPoint(_arg1); do { _local4 = _local3.pop(); } while (((_local4) && (!((_local4 == currentMouseTargetObject))))); if (_local4){ do { _local4 = _local3.pop(); if ((((_local4 is InteractiveObject)) && ((_arg2.currentTarget == _arg2.target)))){ _local5 = new MouseEvent(MouseEvent.MOUSE_MOVE, true, false, _arg1.x, _arg1.y, (_local4 as InteractiveObject), _arg2.ctrlKey, _arg2.altKey, _arg2.shiftKey, _arg2.buttonDown, _arg2.delta); _local4.dispatchEvent(_local5); }; } while (_local4); }; } public function isLocked():Boolean{ return (_locked); } public function removeMouseListener(_arg1:IMouseListener):void{ Debug.trace((("[InputManager] Remove Mouse Listener '" + getQualifiedClassName(_arg1)) + "'")); if (_mouseListenerList.indexOf(_arg1) >= 0){ _mouseListenerList.splice(_mouseListenerList.indexOf(_arg1), 1); }; } public function reset():void{ var _local1:uint; while (_local1 < KEY_COUNT) { keyTable[_local1] = false; keyTablePressed[_local1] = false; _local1++; }; } public function addMouseListener(_arg1:IMouseListener):void{ Debug.trace((("[InputManager] Add Mouse Listener '" + getQualifiedClassName(_arg1)) + "'")); if (_mouseListenerList.indexOf(_arg1) < 0){ _mouseListenerList.push(_arg1); }; } private function handleKeyDown(_arg1:KeyboardEvent):void{ var _local2:uint = getKeyCode(_arg1.keyCode); if (!keyTable[_local2]){ keyTablePressed[_local2] = true; keyTable[_local2] = true; }; } private function handleMouseLeave(_arg1:Event):void{ var _local2:IMouseListener; if (_mouseCursor){ _mouseCursor.visible = false; }; for each (_local2 in _mouseListenerList) { _local2.handleMouseLeave(mousePosition, _arg1.target); }; stage.invalidate(); } private function updateMouse():void{ if (_mouseCursor){ Mouse.hide(); if (_showMouse){ _mouseCursor.x = (mousePosition.x + (_mouseCursorOffset) ? _mouseCursorOffset.x : 0); _mouseCursor.y = (mousePosition.y + (_mouseCursorOffset) ? _mouseCursorOffset.y : 0); this.visible = true; } else { this.visible = false; }; } else { this.visible = false; if (_showMouse){ Mouse.show(); } else { Mouse.hide(); }; }; } public function lockInputManager(_arg1:Object, _arg2:Boolean):void{ if (_arg2){ _lockObject = _arg1; _locked = true; } else { if (_arg1 == _lockObject){ _lockObject = null; _locked = false; }; }; } private function handleMouseUp(_arg1:MouseEvent):void{ } private function handleExternalMouseClick(_arg1:MouseEvent):void{ stage.invalidate(); } private function addMouseListenersToExternalDispatcher(_arg1:EventDispatcher):void{ _arg1.addEventListener(MouseEvent.MOUSE_DOWN, handleExternalMouseDown, false, 0, true); _arg1.addEventListener(MouseEvent.MOUSE_MOVE, handleExternalMouseMove, false, 0, true); _arg1.addEventListener(MouseEvent.MOUSE_UP, handleExternalMouseUp, false, 0, true); _arg1.addEventListener(MouseEvent.MOUSE_OVER, handleExternalMouseOver, false, 0, true); _arg1.addEventListener(MouseEvent.MOUSE_OUT, handleExternalMouseOut, false, 0, true); _arg1.addEventListener(MouseEvent.ROLL_OVER, handleExternalMouseRollOver, false, 0, true); _arg1.addEventListener(MouseEvent.ROLL_OUT, handleExternalMouseRollOut, false, 0, true); _arg1.addEventListener(MouseEvent.CLICK, handleExternalMouseClick, false, 0, true); _arg1.addEventListener(MouseEvent.DOUBLE_CLICK, handleExternalMouseDoubleClick, false, 0, true); _arg1.addEventListener(Event.MOUSE_LEAVE, handleExternalMouseLeave, false, 0, true); } private function handleAddedToStage(_arg1:Event):void{ this.removeEventListener(Event.ADDED_TO_STAGE, handleAddedToStage); addKeyboardListenersToDispatcher(stage); addMouseListenersToDispatcher(stage); stage.mouseChildren = true; } private function removeMouseListenersFromDispatcher(_arg1:IEventDispatcher):void{ if (_arg1.hasEventListener(MouseEvent.MOUSE_DOWN)){ _arg1.removeEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown); }; if (_arg1.hasEventListener(MouseEvent.MOUSE_MOVE)){ _arg1.removeEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); }; if (_arg1.hasEventListener(MouseEvent.MOUSE_UP)){ _arg1.removeEventListener(MouseEvent.MOUSE_UP, handleMouseUp); }; if (_arg1.hasEventListener(Event.MOUSE_LEAVE)){ _arg1.removeEventListener(Event.MOUSE_LEAVE, handleMouseLeave); }; } private function handleExternalMouseRollOver(_arg1:MouseEvent):void{ } public function registerExternalEventDispatcher(_arg1:EventDispatcher):void{ Debug.trace((("[InputManager] Register EventDispatcher '" + getQualifiedClassName(_arg1)) + "' (EXTERNAL)")); addMouseListenersToExternalDispatcher(_arg1); } private function handleExternalMouseRollOut(_arg1:MouseEvent):void{ } private function handleMouseMove(_arg1:MouseEvent):void{ handleExternalMouseMove(_arg1); if (_mouseCursor){ if (!_mouseCursor.visible){ (_mouseCursor.visible = true); }; (_mouseCursor.x = (_arg1.stageX + (_mouseCursorOffset) ? _mouseCursorOffset.x : 0)); (_mouseCursor.y = (_arg1.stageY + (_mouseCursorOffset) ? _mouseCursorOffset.y : 0)); _arg1.updateAfterEvent(); }; } public static function getInstance():InputManager{ return (_instance); } } }//package managers.ui class PrivateClass { private function PrivateClass(){ } }
Section 96
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "3.0.0.0"; public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } } }//package mx.core
Section 97
//ByteArrayAsset (mx.core.ByteArrayAsset) package mx.core { import flash.utils.*; public class ByteArrayAsset extends ByteArray implements IFlexAsset { mx_internal static const VERSION:String = "3.2.0.3958"; } }//package mx.core
Section 98
//EdgeMetrics (mx.core.EdgeMetrics) package mx.core { public class EdgeMetrics { public var top:Number; public var left:Number; public var bottom:Number; public var right:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0); ; public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.left = _arg1; this.top = _arg2; this.right = _arg3; this.bottom = _arg4; } public function clone():EdgeMetrics{ return (new EdgeMetrics(left, top, right, bottom)); } } }//package mx.core
Section 99
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.0.0.0"; public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ var bitmapData = _arg1; var pixelSnapping = _arg2; var smoothing = _arg3; super(bitmapData, pixelSnapping, smoothing); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 100
//FlexMovieClip (mx.core.FlexMovieClip) package mx.core { import flash.display.*; import mx.utils.*; public class FlexMovieClip extends MovieClip { mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexMovieClip(){ super(); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 101
//IBorder (mx.core.IBorder) package mx.core { public interface IBorder { function get borderMetrics():EdgeMetrics; } }//package mx.core
Section 102
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 103
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(_arg1:Point):Point; function get name():String; function set width(_arg1:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(_arg1:String):void; function set scaleX(_arg1:Number):void; function set scaleY(_arg1:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(_arg1:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(_arg1:Point):Point; function get height():Number; function set blendMode(_arg1:String):void; function get parent():DisplayObjectContainer; function getBounds(_arg1:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(_arg1:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(_arg1:Number):void; function set accessibilityProperties(_arg1:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(_arg1:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(_arg1:Number):void; function set mask(_arg1:DisplayObject):void; function getRect(_arg1:DisplayObject):Rectangle; function get alpha():Number; function set transform(_arg1:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(_arg1:DisplayObject):Boolean; function set opaqueBackground(_arg1:Object):void; function set visible(_arg1:Boolean):void; function get mask():DisplayObject; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function get transform():Transform; function set filters(_arg1:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(_arg1:Number):void; function get stage():Stage; } }//package mx.core
Section 104
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(_arg1:Array):void; function get isDocument():Boolean; function set repeaters(_arg1:Array):void; function initializeRepeaterArrays(_arg1:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(_arg1:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 105
//MovieClipAsset (mx.core.MovieClipAsset) package mx.core { public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder { private var _measuredHeight:Number; private var _measuredWidth:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public function MovieClipAsset(){ _measuredWidth = width; _measuredHeight = height; } public function get measuredWidth():Number{ return (_measuredWidth); } public function get measuredHeight():Number{ return (_measuredHeight); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function get borderMetrics():EdgeMetrics{ if (scale9Grid == null){ return (EdgeMetrics.EMPTY); }; return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom)))); } } }//package mx.core
Section 106
//MovieClipLoaderAsset (mx.core.MovieClipLoaderAsset) package mx.core { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.system.*; public class MovieClipLoaderAsset extends MovieClipAsset implements IFlexAsset, IFlexDisplayObject { protected var initialHeight:Number;// = 0 private var loader:Loader;// = null private var initialized:Boolean;// = false protected var initialWidth:Number;// = 0 private var requestedHeight:Number; private var requestedWidth:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public function MovieClipLoaderAsset(){ var _local1:LoaderContext = new LoaderContext(); _local1.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); if (("allowLoadBytesCodeExecution" in _local1)){ _local1["allowLoadBytesCodeExecution"] = true; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.loadBytes(movieClipData, _local1); addChild(loader); } override public function get width():Number{ if (!initialized){ return (initialWidth); }; return (super.width); } override public function set width(_arg1:Number):void{ if (!initialized){ requestedWidth = _arg1; } else { loader.width = _arg1; }; } override public function get measuredHeight():Number{ return (initialHeight); } private function completeHandler(_arg1:Event):void{ initialized = true; initialWidth = loader.width; initialHeight = loader.height; if (!isNaN(requestedWidth)){ loader.width = requestedWidth; }; if (!isNaN(requestedHeight)){ loader.height = requestedHeight; }; dispatchEvent(_arg1); } override public function set height(_arg1:Number):void{ if (!initialized){ requestedHeight = _arg1; } else { loader.height = _arg1; }; } override public function get measuredWidth():Number{ return (initialWidth); } override public function get height():Number{ if (!initialized){ return (initialHeight); }; return (super.height); } public function get movieClipData():ByteArray{ return (null); } } }//package mx.core
Section 107
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 108
//SoundAsset (mx.core.SoundAsset) package mx.core { import flash.media.*; public class SoundAsset extends Sound implements IFlexAsset { mx_internal static const VERSION:String = "3.0.0.0"; } }//package mx.core
Section 109
//NameUtil (mx.utils.NameUtil) package mx.utils { import flash.display.*; import mx.core.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "3.2.0.3958"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var result:String; var o:DisplayObject; var s:String; var indices:Array; var displayObject = _arg1; try { o = displayObject; while (o != null) { if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){ break; }; s = o.name; if ((o is IRepeaterClient)){ indices = IRepeaterClient(o).instanceIndices; if (indices){ s = (s + (("[" + indices.join("][")) + "]")); }; }; result = ((result == null)) ? s : ((s + ".") + result); o = o.parent; }; } catch(e:SecurityError) { }; return (result); } public static function createUniqueName(_arg1:Object):String{ if (!_arg1){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; var _local4:int = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utils
Section 110
//Circle (physic.Circle) package physic { public final class Circle { public var radius:Number; public var x:Number; public var y:Number; public function Circle(_arg1:Number=0, _arg2:Number=0, _arg3:Number=1){ this.x = _arg1; this.y = _arg2; this.radius = _arg3; } public function clone(_arg1:Circle):Circle{ return (new Circle(x, y, radius)); } } }//package physic
Section 111
//Line (physic.Line) package physic { public final class Line { public var pt1:Vec2; public var pt2:Vec2; public function Line(_arg1:Vec2=null, _arg2:Vec2=null){ pt1 = new Vec2(); pt2 = new Vec2(); super(); if (((_arg1) && (_arg2))){ pt1.x = _arg1.x; pt1.y = _arg1.y; pt2.x = _arg2.x; pt2.y = _arg2.y; }; } public function clone(_arg1:Line):Line{ return (new Line(pt1, pt2)); } } }//package physic
Section 112
//NavMesh (physic.NavMesh) package physic { public final class NavMesh { public static const tileSize:Number = 32; private static var intersection:Vec2 = new Vec2(); public static var segmentList:Array = new Array(); private static function MergeNavSegments(_arg1:NavSegment, _arg2:NavSegment):void{ var _local3:Number = (((_arg2.ptB.y - _arg2.ptA.y) * (_arg1.ptB.x - _arg1.ptA.x)) - ((_arg2.ptB.x - _arg2.ptA.x) * (_arg1.ptB.y - _arg1.ptA.y))); var _local4:Number = (((_arg2.ptB.x - _arg2.ptA.x) * (_arg1.ptA.y - _arg2.ptA.y)) - ((_arg2.ptB.y - _arg2.ptA.y) * (_arg1.ptA.x - _arg2.ptA.x))); var _local5:Number = (((_arg1.ptB.x - _arg1.ptA.x) * (_arg1.ptA.y - _arg2.ptA.y)) - ((_arg1.ptB.y - _arg1.ptA.y) * (_arg1.ptA.x - _arg2.ptA.x))); if (_local3 == 0){ return; }; var _local6:Number = (_local4 / _local3); var _local7:Number = (_local5 / _local3); if ((((((((_local6 >= 0)) && ((_local6 <= 1)))) && ((_local7 >= 0)))) && ((_local7 <= 1)))){ intersection.x = (_arg1.ptA.x + (_local6 * (_arg1.ptB.x - _arg1.ptA.x))); intersection.y = (_arg1.ptA.y + (_local6 * (_arg1.ptB.y - _arg1.ptA.y))); if (_local6 < 0.5){ _arg1.ptA.x = (_arg2.ptB.x = intersection.x); _arg1.ptA.y = (_arg2.ptB.y = intersection.y); } else { _arg1.ptB.x = (_arg2.ptA.x = intersection.x); _arg1.ptB.y = (_arg2.ptA.y = intersection.y); }; }; } public static function optimize():void{ var _local3:int; var _local1:int = segmentList.length; var _local2:int; while (_local2 < _local1) { _local3 = (_local2 + 1); while (_local3 < _local1) { MergeNavSegments((segmentList[_local2] as NavSegment), (segmentList[_local3] as NavSegment)); _local3++; }; _local2++; }; } } }//package physic
Section 113
//NavSegment (physic.NavSegment) package physic { import global.*; public final class NavSegment { public var _ptA:Vec2; public var floorCollision:Boolean;// = false public var boundingBox:Rect; public var offset:Vec2; public var stopped:Boolean; public var skip:Boolean; public var _visualPtA:Vec2; public var _visualPtB:Vec2; public var normal:Vec2; public var visualBoundingBox:Rect; public var isDynamic:Boolean;// = false public var currentVelocity:Vec2; public var debugCollision:int;// = 0 public var _ptB:Vec2; public function NavSegment(){ _ptA = new Vec2(0, 0); _ptB = new Vec2(0, 0); _visualPtA = new Vec2(0, 0); _visualPtB = new Vec2(0, 0); normal = new Vec2(0, 1); offset = new Vec2(0, 0); currentVelocity = new Vec2(); boundingBox = new Rect(); visualBoundingBox = new Rect(); super(); } public function get visualPtA():Vec2{ if (isDynamic){ return (new Vec2((_visualPtA.x + offset.x), (_visualPtA.y + offset.y))); }; return (_visualPtA); } public function get visualPtB():Vec2{ if (isDynamic){ return (new Vec2((_visualPtB.x + offset.x), (_visualPtB.y + offset.y))); }; return (_visualPtB); } public function get ptB():Vec2{ if (isDynamic){ return (new Vec2((_ptB.x + offset.x), (_ptB.y + offset.y))); }; return (_ptB); } public function NavSegmentCtor(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ var _local6:Number; var _local7:Number; stopped = false; _visualPtA.x = (_arg1 * NavMesh.tileSize); _visualPtA.y = (_arg2 * NavMesh.tileSize); _visualPtB.x = (_arg3 * NavMesh.tileSize); _visualPtB.y = (_arg4 * NavMesh.tileSize); normal.x = (_visualPtB.y - _visualPtA.y); normal.y = (_visualPtA.x - _visualPtB.x); normal.normalize(); _ptA.x = _visualPtA.x; _ptA.y = _visualPtA.y; _ptB.x = _visualPtB.x; _ptB.y = _visualPtB.y; var _local5:Vec2 = new Vec2((_ptB.x - _ptA.x), (_ptB.y - _ptA.y)); _local5.normalize(); _local6 = GlobalData.navMeshThresholdX; _local7 = GlobalData.navMeshThresholdY; _ptA.x = (_ptA.x + ((normal.x * _local6) - (_local5.x * _local6))); _ptA.y = (_ptA.y + ((normal.y * _local7) - (_local5.y * _local7))); _ptB.x = (_ptB.x + ((normal.x * _local6) + (_local5.x * _local6))); _ptB.y = (_ptB.y + ((normal.y * _local7) + (_local5.y * _local7))); boundingBox.x = Math.min(_ptA.x, _ptB.x); boundingBox.y = Math.min(_ptA.y, _ptB.y); boundingBox.width = Math.abs((_ptA.x - _ptB.x)); boundingBox.height = Math.abs((_ptA.y - _ptB.y)); visualBoundingBox.x = Math.min(_visualPtA.x, _visualPtB.x); visualBoundingBox.y = Math.min(_visualPtA.y, _visualPtB.y); visualBoundingBox.width = Math.abs((_visualPtA.x - _visualPtB.x)); visualBoundingBox.height = Math.abs((_visualPtA.y - _visualPtB.y)); } public function get ptA():Vec2{ if (isDynamic){ return (new Vec2((_ptA.x + offset.x), (_ptA.y + offset.y))); }; return (_ptA); } } }//package physic
Section 114
//Physic (physic.Physic) package physic { import flash.display.*; import debug.*; import managers.objects.*; public final class Physic { public static const SHOW_DEBUG_STUFF:Boolean = true; private static const movingBox:Rect = new Rect(); public static const Epsilon5:Number = 1E-5; private static const modeTest:Boolean = true; private static const VEC_UNIT_Y_NEG:Vec2 = new Vec2(0, -1); public static const Epsilon10:Number = 1E-10; public static var bFloorCollision:Boolean = false; private static var intersection:Vec2 = new Vec2(); public static var currentFloor:NavSegment = null; private static var len:Number; private static var displacement:Line = new Line(); private static var currentDynFloor:NavSegment = null; public static var lineList:Array = new Array(); private static var relativeVelocity:Vec2 = new Vec2(); private static var penetration:Vec2 = new Vec2(); public static var vec2List:Array = new Array(); private static var navMeshSegment:Line = new Line(); public static var prevDynFloor:NavSegment = null; private static var newPosition:Vec2 = new Vec2(); public static var debugSprite:Sprite = new Sprite(); private static var previousVelocity:Vec2 = new Vec2(); public static var bRoofCollision:Boolean = false; public static function updateAvatar(_arg1:GameObject, _arg2:Number):Boolean{ var _local3:NavSegment; var _local4:NavSegment; var _local5:int; var _local6:Vec2; var _local7:NavSegment; var _local8:Vec2; var _local9:Line; var _local10:Vec2; if (_arg2 == 0){ return (false); }; if (SHOW_DEBUG_STUFF){ while (vec2List.length > 0) { vec2List.pop(); }; while (lineList.length > 0) { lineList.pop(); }; }; bFloorCollision = false; bRoofCollision = false; currentFloor = null; if (_arg1.velocity.lengthSquared() >= Epsilon5){ _local6 = _arg1.velocity.clone(); _local6.normalize(-(Epsilon10)); _arg1.position.x = (_arg1.position.x + _local6.x); _arg1.position.y = (_arg1.position.y + _local6.y); }; prevDynFloor = currentDynFloor; if (currentDynFloor){ _arg1.velocity.x = (_arg1.velocity.x + currentDynFloor.currentVelocity.x); _arg1.velocity.y = (_arg1.velocity.y + currentDynFloor.currentVelocity.y); currentDynFloor = null; }; newPosition.x = (_arg1.position.x + _arg1.velocity.x); newPosition.y = (_arg1.position.y + _arg1.velocity.y); len = _arg1.velocity.length(); movingBox.x = (_arg1.position.x - len); movingBox.y = (_arg1.position.y - len); movingBox.width = (len * 2); movingBox.height = (len * 2); for each (_local3 in NavMesh.segmentList) { _local3.floorCollision = false; _local3.skip = !(Physic.isRectIntersectRect(movingBox, _local3.boundingBox)); }; _local4 = null; _local5 = 3; while (true) { --_local5; if (_local5 < 0){ Debug.warning("[Physic] Something went wrong!!!"); if (prevDynFloor){ prevDynFloor.currentVelocity.x = 0; prevDynFloor.currentVelocity.y = 0; prevDynFloor.stopped = true; }; _local7.currentVelocity.x = 0; _local7.currentVelocity.y = 0; _local7.stopped = true; return (true); }; for each (_local7 in NavMesh.segmentList) { if (_local7.skip){ } else { if (_local4 == _local7){ //unresolved jump }; relativeVelocity.x = (_arg1.velocity.x - _local7.currentVelocity.x); relativeVelocity.y = (_arg1.velocity.y - _local7.currentVelocity.y); if (Vec2.dotProduct(relativeVelocity, _local7.normal) >= 0){ } else { displacement.pt1 = _arg1.position; displacement.pt2.x = (_arg1.position.x + relativeVelocity.x); displacement.pt2.y = (_arg1.position.y + relativeVelocity.y); navMeshSegment.pt1 = _local7.ptA; navMeshSegment.pt2 = _local7.ptB; if (Physic.LineLineIntersection(displacement, navMeshSegment, intersection)){ _local7.floorCollision = true; if (Vec2.dotProduct(VEC_UNIT_Y_NEG, _local7.normal) > 0){ if (_local7.isDynamic){ currentDynFloor = _local7; }; currentFloor = _local7; bFloorCollision = true; } else { if (_local7.normal.y == 1){ bRoofCollision = true; }; }; intersection.x = (intersection.x + _local7.currentVelocity.x); intersection.y = (intersection.y + _local7.currentVelocity.y); penetration.x = (_arg1.velocity.x - (intersection.x - _arg1.position.x)); penetration.y = (_arg1.velocity.y - (intersection.y - _arg1.position.y)); if (penetration.lengthSquared() < Epsilon5){ _arg1.velocity.x = (intersection.x - _arg1.position.x); _arg1.velocity.y = (intersection.y - _arg1.position.y); } else { _local4 = _local7; _local8 = projectionVecSurVec2(penetration, new Vec2((_local7.ptB.x - _local7.ptA.x), (_local7.ptB.y - _local7.ptA.y))); newPosition.x = (_local8.x + intersection.x); newPosition.y = (_local8.y + intersection.y); _arg1.velocity.x = (newPosition.x - _arg1.position.x); _arg1.velocity.y = (newPosition.y - _arg1.position.y); }; if (Math.abs(_arg1.velocity.x) < Epsilon5){ _arg1.velocity.x = 0; }; if (Math.abs(_arg1.velocity.y) < Epsilon5){ _arg1.velocity.y = 0; }; if (SHOW_DEBUG_STUFF){ lineList.push(new Line(new Vec2((intersection.x + penetration.x), (intersection.y + penetration.y)), intersection)); vec2List.push(new Vec2(intersection.x, intersection.y)); vec2List.push(new Vec2(newPosition.x, newPosition.y)); }; }; }; }; }; if (_local4 == null){ break; }; }; _arg1.position.x = (_arg1.position.x + _arg1.velocity.x); _arg1.position.y = (_arg1.position.y + _arg1.velocity.y); if (currentDynFloor){ _arg1.position.x = (_arg1.position.x + (currentDynFloor.normal.x * Epsilon5)); _arg1.position.y = (_arg1.position.y + (currentDynFloor.normal.y * Epsilon5)); }; if (SHOW_DEBUG_STUFF){ debugDisplayNavMesh(); for each (_local9 in lineList) { debugDrawLine(_local9.pt1, _local9.pt2, 0x999999); }; for each (_local10 in vec2List) { debugDrawSphere(_local10, 5, 0x9999); }; }; return (false); } public static function checkRectCollision(_arg1:Vec2, _arg2:int, _arg3:int, _arg4:int, _arg5:int):Boolean{ _arg1.y = (_arg1.y - _arg3); if ((((_arg1.y < 0)) || ((_arg1.y > _arg5)))){ return (false); }; _arg1.x = (_arg1.x - _arg2); if ((((_arg1.x < 0)) || ((_arg1.x > _arg4)))){ return (false); }; return (true); } public static function projectionVecSurVec2(_arg1:Vec2, _arg2:Vec2):Vec2{ var _local3:Vec2 = new Vec2(); var _local4:Number = Vec2.dotProduct(_arg1, _arg2); var _local5:Number = Math.sqrt(((_arg2.x * _arg2.x) + (_arg2.y * _arg2.y))); var _local6:Vec2 = new Vec2(_arg2.x, _arg2.y); _local6.normalize(); _local3.x = ((_local4 / _local5) * _local6.x); _local3.y = ((_local4 / _local5) * _local6.y); return (_local3); } public static function is2SegmentIntersect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Boolean{ var _local5:Number = Math.min(_arg1, _arg2); var _local6:Number = Math.max(_arg1, _arg2); var _local7:Number = Math.min(_arg3, _arg4); var _local8:Number = Math.max(_arg3, _arg4); return ((((_local5 < _local8)) && ((_local7 < _local6)))); } public static function isRectIntersectRect(_arg1:Rect, _arg2:Rect):Boolean{ return ((((((((_arg1.x < (_arg2.x + _arg2.width))) && ((_arg2.x < (_arg1.x + _arg1.width))))) && ((_arg1.y < (_arg2.y + _arg2.height))))) && ((_arg2.y < (_arg1.y + _arg1.height))))); } public static function LineCircleIntersection(_arg1:Line, _arg2:Circle, _arg3:Vec2):Boolean{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Vec2 = new Vec2(); _local8.x = (_arg1.pt2.x - _arg1.pt1.x); _local8.y = (_arg1.pt2.y - _arg1.pt1.y); _local4 = ((_local8.x * _local8.x) + (_local8.y * _local8.y)); _local5 = (2 * ((_local8.x * (_arg1.pt1.x - _arg2.x)) + (_local8.y * (_arg1.pt1.y - _arg2.y)))); _local6 = ((_arg2.x * _arg2.x) + (_arg2.y * _arg2.y)); _local6 = (_local6 + ((_arg1.pt1.x * _arg1.pt1.x) + (_arg1.pt1.y * _arg1.pt1.y))); _local6 = (_local6 - (2 * ((_arg2.x * _arg1.pt1.x) + (_arg2.y * _arg1.pt1.y)))); _local6 = (_local6 - (_arg2.radius * _arg2.radius)); _local7 = ((_local5 * _local5) - ((4 * _local4) * _local6)); if (_local7 < 0){ _arg3.x = 0; _arg3.y = 0; return (false); }; var _local9:Number = Math.sqrt(_local7); var _local10:Number = (-1 / (2 * _local4)); _arg3.x = ((_local5 - _local9) * _local10); _arg3.y = ((_local5 + _local9) * _local10); if ((((((_arg3.x < 0)) && ((_arg3.y < 0)))) || ((((_arg3.x > 1)) && ((_arg3.y > 1)))))){ return (false); }; return (true); } public static function projectionVecSurVecSpecial(_arg1:Vec2, _arg2:Vec2):Vec2{ var _local4:Number; var _local3:Number = Math.sqrt(Vec2.dotProduct(_arg1, _arg1)); if ((((_local3 == 0)) || ((Vec2.dotProduct(_arg1, _arg2) == 0)))){ return (Vec2.ZERO); }; _local4 = (Vec2.dotProduct(_arg1, _arg2) / (_local3 * Math.sqrt(Vec2.dotProduct(_arg2, _arg2)))); var _local5:Number = (_arg1.length() / _local4); var _local6:Vec2 = _arg2.clone(); _local6.normalize(); _local6.x = (_local6.x * _local5); _local6.y = (_local6.y * _local5); return (_local6); } public static function SuperLineLineIntersection(_arg1:Line, _arg2:Line, _arg3:Vec2):Boolean{ var _local4:Number = (((_arg2.pt2.y - _arg2.pt1.y) * (_arg1.pt2.x - _arg1.pt1.x)) - ((_arg2.pt2.x - _arg2.pt1.x) * (_arg1.pt2.y - _arg1.pt1.y))); var _local5:Number = (((_arg2.pt2.x - _arg2.pt1.x) * (_arg1.pt1.y - _arg2.pt1.y)) - ((_arg2.pt2.y - _arg2.pt1.y) * (_arg1.pt1.x - _arg2.pt1.x))); var _local6:Number = (((_arg1.pt2.x - _arg1.pt1.x) * (_arg1.pt1.y - _arg2.pt1.y)) - ((_arg1.pt2.y - _arg1.pt1.y) * (_arg1.pt1.x - _arg2.pt1.x))); if (_local4 == 0){ return (false); }; var _local7:Number = (_local5 / _local4); var _local8:Number = (_local6 / _local4); _arg3.x = (_arg1.pt1.x + (_local7 * (_arg1.pt2.x - _arg1.pt1.x))); _arg3.y = (_arg1.pt1.y + (_local7 * (_arg1.pt2.y - _arg1.pt1.y))); return (true); } public static function isVecIntersectRect(_arg1:Vec2, _arg2:Rect):Boolean{ return ((((((((_arg1.x < (_arg2.x + _arg2.width))) && ((_arg2.x < _arg1.x)))) && ((_arg1.y < (_arg2.y + _arg2.height))))) && ((_arg2.y < _arg1.y)))); } public static function debugDrawRect(_arg1:Rect, _arg2:uint):void{ if (SHOW_DEBUG_STUFF){ debugDrawLine(new Vec2(_arg1.x, _arg1.y), new Vec2(_arg1.x, (_arg1.y + _arg1.height)), _arg2); debugDrawLine(new Vec2(_arg1.x, _arg1.y), new Vec2((_arg1.x + _arg1.width), _arg1.y), _arg2); debugDrawLine(new Vec2(_arg1.x, (_arg1.y + _arg1.height)), new Vec2((_arg1.x + _arg1.width), (_arg1.y + _arg1.height)), _arg2); debugDrawLine(new Vec2((_arg1.x + _arg1.width), _arg1.y), new Vec2((_arg1.x + _arg1.width), (_arg1.y + _arg1.height)), _arg2); }; } private static function debugDisplayNavMesh():void{ var _local1:NavSegment; var _local2:uint; var _local3:Vec2; var _local4:Vec2; var _local5:Vec2; var _local6:Vec2; for each (_local1 in NavMesh.segmentList) { _local2 = ((_local1.isDynamic) ? 0xFF : 170 << 16); _local3 = _local1.ptA.clone(); _local4 = _local1.ptB.clone(); if (_local1.floorCollision){ debugDrawLine(_local3, _local4, 0xFFFF00); } else { debugDrawLine(_local3, _local4, (((_local1.debugCollision)>0) ? 0x7777 : 0 + _local2)); }; _local5 = Vec2.interpolate(_local3, _local4, 0.5); _local6 = new Vec2((_local5.x + (_local1.normal.x * 10)), (_local5.y + (_local1.normal.y * 10))); debugDrawLine(_local5, _local6, (((_local1.debugCollision)>0) ? 43639 : 0xFF00 + _local2)); }; } public static function castRayNavMesh(_arg1:Vec2, _arg2:Number=0):Boolean{ var _local4:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:NavSegment; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local3:Number = (_arg2 * _arg2); var _local5:Vec2 = new Vec2(); var _local6:Boolean; movingBox.x = _arg1.x; movingBox.width = 0; movingBox.y = _arg1.y; movingBox.height = _arg2; Physic.debugDrawLine(_arg1, new Vec2(_arg1.x, (_arg1.y + _arg2)), 0xFFFFFF); for each (_local15 in NavMesh.segmentList) { if ((((((Vec2.dotProduct(Vec2.DOWN, _local15.normal) < 0)) || (_local15.isDynamic))) || (!(Physic.isRectIntersectRect(movingBox, _local15.boundingBox))))){ } else { _local7 = _local15.ptA.x; _local8 = _local15.ptA.y; _local9 = (_local15.ptB.x - _local7); _local10 = (_local15.ptB.y - _local8); _local11 = _arg1.x; _local12 = _arg1.y; _local13 = (_arg1.x - _local11); _local14 = ((_arg1.y + 1) - _local12); _local16 = ((_local14 * _local9) - (_local13 * _local10)); _local17 = ((_local13 * (_local8 - _local12)) - (_local14 * (_local7 - _local11))); _local18 = ((_local9 * (_local8 - _local12)) - (_local10 * (_local7 - _local11))); if (_local16 == 0){ } else { _local19 = (_local18 / _local16); if (_local19 >= 0){ _local20 = (_local17 / _local16); if ((((_local20 >= 0)) && ((_local20 <= 1)))){ _local5.x = (_local7 + (_local20 * _local9)); _local5.y = (_local8 + (_local20 * _local10)); _local4 = Vec2.distanceSquared(_local5, _arg1); if (_local3 > _local4){ _local3 = _local4; _local6 = true; }; }; }; }; }; }; return (_local6); } public static function projectionVecSurVec(_arg1:Vec2, _arg2:Vec2):Vec2{ var _local3:Vec2 = new Vec2(); var _local4:Number = ((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)); _local3.x = ((_local4 / ((_arg2.x * _arg2.x) + (_arg2.y * _arg2.y))) * _arg2.x); _local3.y = ((_local4 / ((_arg2.x * _arg2.x) + (_arg2.y * _arg2.y))) * _arg2.y); return (_local3); } public static function debugDrawLine(_arg1:Vec2, _arg2:Vec2, _arg3:uint):void{ var u = _arg1; var v = _arg2; var color = _arg3; if (SHOW_DEBUG_STUFF){ var _local5 = debugSprite.graphics; with (_local5) { lineStyle(3, color, 1); moveTo(u.x, u.y); lineTo(v.x, v.y); }; }; } public static function BenchmarkShapeCollision():void{ var _local2:Vec2; var _local3:Vec2; var _local1:int; while (_local1 < 3) { switch (_local1){ case 0: _local2 = new Vec2(3, 2); _local3 = new Vec2(2, 0); break; case 1: _local2 = new Vec2(-4, 8); _local3 = new Vec2(3, -7); break; case 2: _local2 = new Vec2(1, 0); _local3 = new Vec2(0, 1); break; }; debugTraceVec2(_local2, "u"); debugTraceVec2(_local3, "v"); debugTraceVec2(projectionVecSurVec2(_local2, _local3), "projectionVecSurVec2"); debugTraceVec2(projectionVecSurVecSpecial(_local2, _local3), "projectionVecSurVecSpecial"); _local1++; }; } public static function LineLineIntersection(_arg1:Line, _arg2:Line, _arg3:Vec2, _arg4:Boolean=false):Boolean{ var _local5:Number = (((_arg2.pt2.y - _arg2.pt1.y) * (_arg1.pt2.x - _arg1.pt1.x)) - ((_arg2.pt2.x - _arg2.pt1.x) * (_arg1.pt2.y - _arg1.pt1.y))); var _local6:Number = (((_arg2.pt2.x - _arg2.pt1.x) * (_arg1.pt1.y - _arg2.pt1.y)) - ((_arg2.pt2.y - _arg2.pt1.y) * (_arg1.pt1.x - _arg2.pt1.x))); var _local7:Number = (((_arg1.pt2.x - _arg1.pt1.x) * (_arg1.pt1.y - _arg2.pt1.y)) - ((_arg1.pt2.y - _arg1.pt1.y) * (_arg1.pt1.x - _arg2.pt1.x))); if (_local5 == 0){ return (false); }; var _local8:Number = (_local6 / _local5); var _local9:Number = (_local7 / _local5); if ((((((((_local8 >= 0)) && ((_local8 <= 1)))) && ((_local9 >= 0)))) && ((_local9 <= 1)))){ _arg3.x = (_arg1.pt1.x + (_local8 * (_arg1.pt2.x - _arg1.pt1.x))); _arg3.y = (_arg1.pt1.y + (_local8 * (_arg1.pt2.y - _arg1.pt1.y))); return (true); }; if (_arg4){ if ((((_local8 >= 0)) && ((_local8 <= 1)))){ _arg3.x = (_arg1.pt1.x + (_local8 * (_arg1.pt2.x - _arg1.pt1.x))); _arg3.y = (_arg1.pt1.y + (_local8 * (_arg1.pt2.y - _arg1.pt1.y))); return (true); }; }; return (false); } private static function validateVec2(_arg1:Vec2):void{ if (((isNaN(_arg1.x)) || (isNaN(_arg1.y)))){ trace("shit!"); }; } public static function updateProjectilePosition(_arg1:Vec2, _arg2:Vec2, _arg3:Vec2):Boolean{ var _local7:NavSegment; var _local8:Number; var _local4:Vec2 = new Vec2(); var _local5:Number = Number.POSITIVE_INFINITY; var _local6:Line = new Line(_arg1, new Vec2((_arg1.x + _arg3.x), (_arg1.y + _arg3.y))); for each (_local7 in NavMesh.segmentList) { if (Vec2.dotProduct(_arg3, _local7.normal) >= 0){ } else { if (LineLineIntersection(new Line(_local7.visualPtA, _local7.visualPtB), _local6, _local4, false)){ _local8 = Vec2.distanceSquared(_local4, _arg1); if (_local8 < _local5){ _local5 = _local8; _arg2.x = _local4.x; _arg2.y = _local4.y; }; }; }; }; if (_local5 != Number.POSITIVE_INFINITY){ return (true); }; _arg2.x = (_arg1.x + _arg3.x); _arg2.y = (_arg1.y + _arg3.y); return (false); } public static function isValBetweenInterval(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Number = Math.min(_arg2, _arg3); var _local5:Number = Math.max(_arg2, _arg3); return ((((_arg1 > _arg2)) && ((_arg1 < _arg3)))); } public static function debugDrawSphere(_arg1:Vec2, _arg2:Number, _arg3:uint):void{ var pt = _arg1; var r = _arg2; var color = _arg3; if (SHOW_DEBUG_STUFF){ var _local5 = debugSprite.graphics; with (_local5) { lineStyle(3, color, 1); drawCircle(pt.x, pt.y, r); }; }; } public static function isCircleIntersectCircle(_arg1:Circle, _arg2:Circle):Boolean{ var _local3:Number = (_arg1.radius + _arg2.radius); var _local4:Number = (_arg1.x - _arg2.y); var _local5:Number = (_arg1.x - _arg2.y); return (((_local3 * _local3) >= ((_local4 * _local4) + (_local5 * _local5)))); } public static function castRay(_arg1:Vec2, _arg2:Vec2, _arg3:Vec2, _arg4:Boolean=false, _arg5:Number=-1):NavSegment{ var _local7:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:NavSegment; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local6:Number = Number.POSITIVE_INFINITY; var _local8:Vec2 = new Vec2(); var _local9:NavSegment; if (_arg5 < 0){ _arg5 = 1000; } else { _local6 = (_arg5 * _arg5); }; if (_arg2.x != 0){ movingBox.x = (_arg1.x + ((_arg2.x)<0) ? (_arg5 * _arg2.x) : 0); movingBox.width = (_arg5 * Math.abs(_arg2.x)); } else { movingBox.x = _arg1.x; movingBox.width = 0; }; if (_arg2.y != 0){ movingBox.y = (_arg1.y + ((_arg2.y)<0) ? (_arg5 * _arg2.y) : 0); movingBox.height = (_arg5 * Math.abs(_arg2.y)); } else { movingBox.y = _arg1.y; movingBox.height = 0; }; for each (_local18 in NavMesh.segmentList) { if ((((((Vec2.dotProduct(_arg2, _local18.normal) >= 0)) || (((_arg4) && (_local18.isDynamic))))) || (!(Physic.isRectIntersectRect(movingBox, _local18.visualBoundingBox))))){ } else { _local10 = _local18.visualPtA.x; _local11 = _local18.visualPtA.y; _local12 = (_local18.visualPtB.x - _local10); _local13 = (_local18.visualPtB.y - _local11); _local14 = _arg1.x; _local15 = _arg1.y; _local16 = ((_arg1.x + _arg2.x) - _local14); _local17 = ((_arg1.y + _arg2.y) - _local15); _local19 = ((_local17 * _local12) - (_local16 * _local13)); _local20 = ((_local16 * (_local11 - _local15)) - (_local17 * (_local10 - _local14))); _local21 = ((_local12 * (_local11 - _local15)) - (_local13 * (_local10 - _local14))); if (_local19 == 0){ } else { _local22 = (_local21 / _local19); if (_local22 >= 0){ _local23 = (_local20 / _local19); if ((((_local23 >= 0)) && ((_local23 <= 1)))){ _local8.x = (_local10 + (_local23 * _local12)); _local8.y = (_local11 + (_local23 * _local13)); _local7 = Vec2.distanceSquared(_local8, _arg1); if (_local6 > _local7){ _local6 = _local7; _arg3.x = _local8.x; _arg3.y = _local8.y; _local9 = _local18; }; }; }; }; }; }; return (_local9); } public static function isVecIntersectMovieClip(_arg1:Vec2, _arg2:MovieClip):Boolean{ return ((((((((_arg1.x < (_arg2.x + _arg2.width))) && ((_arg2.x < _arg1.x)))) && ((_arg1.y < (_arg2.y + _arg2.height))))) && ((_arg2.y < _arg1.y)))); } private static function debugTraceVec2(_arg1:Vec2, _arg2:String=""):void{ trace(((((((" Vec2 '" + _arg2) + "' = [") + _arg1.x) + ", ") + _arg1.y) + "]")); if (((isNaN(_arg1.x)) || (isNaN(_arg1.y)))){ trace("shit!"); }; } } }//package physic
Section 115
//Rect (physic.Rect) package physic { public final class Rect { public var width:Number;// = 0 public var height:Number;// = 0 public var x:Number;// = 0 public var y:Number;// = 0 public function Rect(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.x = _arg1; this.y = _arg2; this.width = _arg3; this.height = _arg4; } public function get right():Number{ return ((x + width)); } public function get bottom():Number{ return ((y + height)); } public function get top():Number{ return (y); } public function get left():Number{ return (x); } public function getTranslateRect(_arg1:Vec2):Rect{ return (new Rect((x + _arg1.x), (y + _arg1.y), width, height)); } public function clone():Rect{ return (new Rect(x, y, width, height)); } } }//package physic
Section 116
//Vec2 (physic.Vec2) package physic { import flash.geom.*; public final class Vec2 { public var x:Number;// = 0 public var y:Number;// = 0 public static const DOWN:Vec2 = new Vec2(0, 1); ; public static const LEFT:Vec2 = new Vec2(-1, 0); ; public static const UP:Vec2 = new Vec2(0, -1); ; public static const RIGHT:Vec2 = new Vec2(1, 0); ; public function Vec2(_arg1:Number=0, _arg2:Number=0){ this.x = _arg1; this.y = _arg2; } public function lengthSquared():Number{ return (((x * x) + (y * y))); } public function fromPoint(_arg1:Point):void{ x = _arg1.x; y = _arg1.y; } public function normalize(_arg1:Number=1):void{ var _local2:Number = (_arg1 / Math.sqrt(((x * x) + (y * y)))); x = (x * _local2); y = (y * _local2); } public function getMultiplyBy(_arg1:Number):Vec2{ return (new Vec2((this.x * _arg1), (this.y * _arg1))); } public function toPoint():Point{ return (new Point(x, y)); } public function multiplyBy(_arg1:Number):void{ this.x = (this.x * _arg1); this.y = (this.y * _arg1); } public function clone():Vec2{ return (new Vec2(x, y)); } public function length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function copyFrom(_arg1:Vec2):void{ x = _arg1.x; y = _arg1.y; } public static function interpolate(_arg1:Vec2, _arg2:Vec2, _arg3:Number):Vec2{ var _local4:Number = (1 - _arg3); return (new Vec2(((_local4 * _arg1.x) + (_arg3 * _arg2.x)), ((_local4 * _arg1.y) + (_arg3 * _arg2.y)))); } private static function Hermite01(_arg1:Number):Number{ return (((((-2 * _arg1) * _arg1) * _arg1) + ((3 * _arg1) * _arg1))); } public static function dotProduct(_arg1:Vec2, _arg2:Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function get ZERO():Vec2{ return (new Vec2(0, 0)); } public static function normalVector(_arg1:Vec2):Vec2{ return (new Vec2(_arg1.y, -(_arg1.x))); } private static function Hermite10(_arg1:Number):Number{ return ((((((2 * _arg1) * _arg1) * _arg1) - ((3 * _arg1) * _arg1)) + 1)); } public static function distanceSquared(_arg1:Vec2, _arg2:Vec2):Number{ var _local3:Number = (_arg2.x - _arg1.x); var _local4:Number = (_arg2.y - _arg1.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function interpolateVec(_arg1:Vec2, _arg2:Vec2, _arg3:Vec2, _arg4:Number):void{ var _local5:Number = (1 - _arg4); _arg1.x = ((_local5 * _arg2.x) + (_arg4 * _arg3.x)); _arg1.y = ((_local5 * _arg2.y) + (_arg4 * _arg3.y)); } public static function distance(_arg1:Vec2, _arg2:Vec2):Number{ var _local3:Number = (_arg2.x - _arg1.x); var _local4:Number = (_arg2.y - _arg1.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function hermiteCubicSpline(_arg1:Vec2, _arg2:Vec2, _arg3:Number):Vec2{ var _local4:Vec2 = new (Vec2); _arg3 = Hermite01(_arg3); _local4.x = ((_arg1.x * (1 - _arg3)) + (_arg2.x * _arg3)); _local4.y = ((_arg1.y * (1 - _arg3)) + (_arg2.y * _arg3)); return (_local4); } public static function projLenAbs(_arg1:Vec2, _arg2:Vec2):Number{ var _local3:Number = dotProduct(_arg2, _arg2); if (_local3 == 0){ return (0); }; return (Math.abs((dotProduct(_arg1, _arg2) / _local3))); } public static function proj(_arg1:Vec2, _arg2:Vec2):Vec2{ var _local3:Number = dotProduct(_arg2, _arg2); if (_local3 == 0){ return (Vec2.ZERO); }; var _local4:Vec2 = _arg2.clone(); _local4.multiplyBy((dotProduct(_arg1, _arg2) / _local3)); return (_local4); } public static function projLen(_arg1:Vec2, _arg2:Vec2):Number{ var _local3:Number = dotProduct(_arg2, _arg2); if (_local3 == 0){ return (0); }; return ((dotProduct(_arg1, _arg2) / _local3)); } } }//package physic
Section 117
//Hashtable (utils.Hashtable) package utils { public final class Hashtable { private var table:Array; public function Hashtable(_arg1:Object=null, _arg2:int=0){ var _local3:Element; var _local4:Object; super(); table = new Array(); if (_arg1){ if ((_arg1 is StringHashtable)){ for each (_local3 in (_arg1 as Hashtable).table) { table.push(_local3); }; } else { for (_local4 in _arg1) { table.push(new Element(int(_local4), _arg1[_local4])); }; }; }; } public function containsKey(_arg1:int):Boolean{ var _local2:Element; for each (_local2 in table) { if (_local2.key == _arg1){ return (true); }; }; return (false); } public function size():int{ return (table.length); } public function isEmpty():Boolean{ return ((table.length == 0)); } public function remove(_arg1:int):Object{ return ((table.splice(indexOf(_arg1), 1)[0] as Element).element); } public function getElement(_arg1:int):Object{ var _local2:Element; for each (_local2 in table) { if (_local2.key == _arg1){ return (_local2.element); }; }; return (null); } private function indexOf(_arg1:int):int{ var _local2:int; while (_local2 < table.length) { if ((table[_local2] as Element).key == _arg1){ return (_local2); }; _local2++; }; return (-1); } public function clear():void{ while (table.length > 0) { table.pop(); }; } public function put(_arg1:int, _arg2:Object):void{ table.push(new Element(_arg1, _arg2)); } public function containsValue(_arg1:Object):Boolean{ var _local2:Element; for each (_local2 in table) { if (_local2.element == _arg1){ return (true); }; }; return (false); } public function keys():Array{ var _local2:Element; var _local1:Array = new Array(); for each (_local2 in table) { _local1.push(_local2.key); }; return (_local1); } public function elements():Array{ var _local2:Element; var _local1:Array = new Array(); for each (_local2 in table) { _local1.push(_local2.element); }; return (_local1); } public function clone():Hashtable{ var _local2:Element; var _local1:Hashtable = new Hashtable(); for each (_local2 in table) { _local1.table.push(_local2); }; return (_local1); } } }//package utils final class Element { public var element:Object; public var key:int; private function Element(_arg1:int, _arg2:Object){ key = _arg1; element = _arg2; } }
Section 118
//StringHashtable (utils.StringHashtable) package utils { public final class StringHashtable { private var table:Array; public function StringHashtable(_arg1:Object=null){ var _local2:Element; var _local3:Object; super(); table = new Array(); if (_arg1){ if ((_arg1 is StringHashtable)){ for each (_local2 in (_arg1 as StringHashtable).table) { table.push(_local2); }; } else { for (_local3 in _arg1) { table.push(new Element((_local3 as String), _arg1[_local3])); }; }; }; } public function containsKey(_arg1:String):Boolean{ var _local2:Element; for each (_local2 in table) { if (_local2.key == _arg1){ return (true); }; }; return (false); } public function size():int{ return (table.length); } public function isEmpty():Boolean{ return ((table.length == 0)); } public function remove(_arg1:String):Object{ return ((table.splice(indexOf(_arg1), 1)[0] as Element).element); } public function getElement(_arg1:String):Object{ var _local2:int = table.length; var _local3:int; while (_local3 < _local2) { if ((table[_local3] as Element).key == _arg1){ return ((table[_local3] as Element).element); }; _local3++; }; return (null); } private function indexOfObject(_arg1:Object):int{ var _local2:int; while (_local2 < table.length) { if ((table[_local2] as Element).element == _arg1){ return (_local2); }; _local2++; }; return (-1); } private function indexOf(_arg1:String):int{ var _local2:int; while (_local2 < table.length) { if ((table[_local2] as Element).key == _arg1){ return (_local2); }; _local2++; }; return (-1); } public function removeObject(_arg1:Object):Object{ return ((table.splice(indexOfObject(_arg1), 1)[0] as Element).element); } public function toString():String{ var _local2:String; var _local1 = ""; for each (_local2 in keys()) { _local1 = (_local1 + (((("['" + _local2) + "', '") + getElement(_local2)) + "']\n")); }; return (_local1); } public function clear():void{ while (table.length > 0) { table.pop(); }; } public function put(_arg1:String, _arg2:Object):void{ var _local3:int = indexOf(_arg1); if (_local3 >= 0){ (table[_local3] as Element).element = _arg2; } else { table.push(new Element(_arg1, _arg2)); }; } public function containsValue(_arg1:Object):Boolean{ var _local2:Element; for each (_local2 in table) { if (_local2.element == _arg1){ return (true); }; }; return (false); } public function keys():Array{ var _local2:Element; var _local1:Array = new Array(); for each (_local2 in table) { _local1.push(_local2.key); }; return (_local1); } public function elements():Array{ var _local2:Element; var _local1:Array = new Array(); for each (_local2 in table) { _local1.push(_local2.element); }; return (_local1); } public function clone():StringHashtable{ var _local2:Element; var _local1:StringHashtable = new StringHashtable(); for each (_local2 in table) { _local1.table.push(_local2); }; return (_local1); } } }//package utils final class Element { public var element:Object; public var key:String; private function Element(_arg1:String, _arg2:Object){ key = _arg1; element = _arg2; } }
Section 119
//EmbeddedModules (EmbeddedModules) package { import utils.*; import managers.resources.*; public class EmbeddedModules implements IEmbeddedData { private static const BloodFeudClass:Class = EmbeddedModules_BloodFeudClass; private static const objectDictionary:Object = {BloodFeud:BloodFeudClass}; public function getDataList():StringHashtable{ return (new StringHashtable(objectDictionary)); } } }//package
Section 120
//EmbeddedModules_BloodFeudClass (EmbeddedModules_BloodFeudClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedModules_BloodFeudClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedModules_BloodFeudClass(){ dataClass = EmbeddedModules_BloodFeudClass_dataClass; super(); initialWidth = (10000 / 20); initialHeight = (7500 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 121
//EmbeddedModules_BloodFeudClass_dataClass (EmbeddedModules_BloodFeudClass_dataClass) package { import mx.core.*; public class EmbeddedModules_BloodFeudClass_dataClass extends ByteArrayAsset { } }//package
Section 122
//EmbeddedResources (EmbeddedResources) package { import utils.*; import managers.resources.*; public class EmbeddedResources implements IEmbeddedData { private static const objectDictionary:Object = {tutorialmc:tutorialmcClass, scoreBoardMC:scoreBoardMCClass, gamemusic:gamemusicClass, swordAtk:swordAtkClass, maceAtk:maceAtkClass, specialAtk:specialAtkClass, arrowFlight:arrowFlightClass, deathElf:deathElfClass, deathOrc:deathOrcClass, mouseOver:mouseOverClass, onClick:onClickClass, replayButton:replayButtonClass, mainmenu:mainmenuClass, victory:victoryClass, failure:failureClass, levelup:levelupClass, ui:uiClass, arrow:arrowClass, meteor:meteorClass, bg_sky:bg_skyClass, bg_far:bg_farClass, bg_middle:bg_middleClass, bg_front:bg_frontClass, doodad_01:doodad_01Class, doodad_02:doodad_02Class, doodad_03:doodad_03Class, doodad_04:doodad_04Class, doodad_05:doodad_05Class, doodad_06:doodad_06Class, orcTowerLvl1:orcTowerLvl1Class, orcTowerLvl2:orcTowerLvl2Class, orcTowerLvl3:orcTowerLvl3Class, orcTowerLvl4:orcTowerLvl4Class, orcTowerLvl5:orcTowerLvl5Class, elfTowerLvl1:elfTowerLvl1Class, elfTowerLvl2:elfTowerLvl2Class, elfTowerLvl3:elfTowerLvl3Class, elfTowerLvl4:elfTowerLvl4Class, elfTowerLvl5:elfTowerLvl5Class, orcWarriorLv1:orcWarriorLv1Class, orcWarriorLv2:orcWarriorLv2Class, orcWarriorLv3:orcWarriorLv3Class, orcWarriorLv4:orcWarriorLv4Class, orcWarriorLv5:orcWarriorLv5Class, orcArcherLv1:orcArcherLv1Class, orcArcherLv2:orcArcherLv2Class, orcArcherLv3:orcArcherLv3Class, orcArcherLv4:orcArcherLv4Class, orcArcherLv5:orcArcherLv5Class, orcCavaleryLv1:orcCavaleryLv1Class, orcCavaleryLv2:orcCavaleryLv2Class, orcCavaleryLv3:orcCavaleryLv3Class, orcCavaleryLv4:orcCavaleryLv4Class, orcCavaleryLv5:orcCavaleryLv5Class, elfWarriorLv1:elfWarriorLv1Class, elfWarriorLv2:elfWarriorLv2Class, elfWarriorLv3:elfWarriorLv3Class, elfWarriorLv4:elfWarriorLv4Class, elfWarriorLv5:elfWarriorLv5Class, elfArcherLv1:elfArcherLv1Class, elfArcherLv2:elfArcherLv2Class, elfArcherLv3:elfArcherLv3Class, elfArcherLv4:elfArcherLv4Class, elfArcherLv5:elfArcherLv5Class, elfCavaleryLv1:elfCavaleryLv1Class, elfCavaleryLv2:elfCavaleryLv2Class, elfCavaleryLv3:elfCavaleryLv3Class, elfCavaleryLv4:elfCavaleryLv4Class, elfCavaleryLv5:elfCavaleryLv5Class, elfMage:elfMageClass, orcMage:orcMageClass, blacksmithXML:blacksmithXMLClass, unitstatsXML:unitstatsXMLClass, basestatsXML:basestatsXMLClass, OrcArcherIcon:OrcArcherIconClass, OrcCavalryIcon:OrcCavalryIconClass, OrcWarriorIcon:OrcWarriorIconClass, ElfArcherIcon:ElfArcherIconClass, ElfCavalryIcon:ElfCavalryIconClass, ElfWarriorIcon:ElfWarriorIconClass, particleSmoke01:particleSmoke01Class, particleSmoke02:particleSmoke02Class, particleSmoke03:particleSmoke03Class, particleBloodSpatter01:particleBloodSpatter01Class, particleBloodSpatter02:particleBloodSpatter02Class, particleBloodSpatter03:particleBloodSpatter03Class, particleStoneWhite01:particleStoneWhite01Class, particleStoneWhite02:particleStoneWhite02Class, particleStoneWhite03:particleStoneWhite03Class, particleStoneBlack01:particleStoneBlack01Class, particleStoneBlack02:particleStoneBlack02Class, particleStoneBlack03:particleStoneBlack03Class, fx_explosion:fx_explosionClass}; private static var ElfWarriorIconClass:Class = EmbeddedResources_ElfWarriorIconClass; private static var OrcCavalryIconClass:Class = EmbeddedResources_OrcCavalryIconClass; private static var replayButtonClass:Class = EmbeddedResources_replayButtonClass; private static var bg_frontClass:Class = EmbeddedResources_bg_frontClass; private static var particleStoneWhite03Class:Class = EmbeddedResources_particleStoneWhite03Class; private static var deathOrcClass:Class = EmbeddedResources_deathOrcClass; private static var failureClass:Class = EmbeddedResources_failureClass; private static var onClickClass:Class = EmbeddedResources_onClickClass; private static var orcWarriorLv4Class:Class = EmbeddedResources_orcWarriorLv4Class; private static var elfCavaleryLv4Class:Class = EmbeddedResources_elfCavaleryLv4Class; private static var elfWarriorLv5Class:Class = EmbeddedResources_elfWarriorLv5Class; private static var orcCavaleryLv2Class:Class = EmbeddedResources_orcCavaleryLv2Class; private static var doodad_02Class:Class = EmbeddedResources_doodad_02Class; private static var elfTowerLvl3Class:Class = EmbeddedResources_elfTowerLvl3Class; private static var arrowFlightClass:Class = EmbeddedResources_arrowFlightClass; private static var blacksmithXMLClass:Class = EmbeddedResources_blacksmithXMLClass; private static var particleStoneBlack02Class:Class = EmbeddedResources_particleStoneBlack02Class; private static var orcArcherLv2Class:Class = EmbeddedResources_orcArcherLv2Class; private static var meteorClass:Class = EmbeddedResources_meteorClass; private static var orcMageClass:Class = EmbeddedResources_orcMageClass; private static var basestatsXMLClass:Class = EmbeddedResources_basestatsXMLClass; private static var elfArcherLv3Class:Class = EmbeddedResources_elfArcherLv3Class; private static var particleStoneBlack01Class:Class = EmbeddedResources_particleStoneBlack01Class; private static var orcTowerLvl4Class:Class = EmbeddedResources_orcTowerLvl4Class; private static var elfCavaleryLv1Class:Class = EmbeddedResources_elfCavaleryLv1Class; private static var orcWarriorLv1Class:Class = EmbeddedResources_orcWarriorLv1Class; private static var uiClass:Class = EmbeddedResources_uiClass; private static var elfMageClass:Class = EmbeddedResources_elfMageClass; private static var particleBloodSpatter01Class:Class = EmbeddedResources_particleBloodSpatter01Class; private static var elfWarriorLv2Class:Class = EmbeddedResources_elfWarriorLv2Class; private static var particleSmoke01Class:Class = EmbeddedResources_particleSmoke01Class; private static var particleSmoke02Class:Class = EmbeddedResources_particleSmoke02Class; private static var orcArcherLv4Class:Class = EmbeddedResources_orcArcherLv4Class; private static var OrcWarriorIconClass:Class = EmbeddedResources_OrcWarriorIconClass; private static var orcCavaleryLv4Class:Class = EmbeddedResources_orcCavaleryLv4Class; private static var bg_farClass:Class = EmbeddedResources_bg_farClass; private static var unitstatsXMLClass:Class = EmbeddedResources_unitstatsXMLClass; private static var doodad_04Class:Class = EmbeddedResources_doodad_04Class; private static var orcTowerLvl1Class:Class = EmbeddedResources_orcTowerLvl1Class; private static var elfTowerLvl5Class:Class = EmbeddedResources_elfTowerLvl5Class; private static var OrcArcherIconClass:Class = EmbeddedResources_OrcArcherIconClass; private static var tutorialmcClass:Class = EmbeddedResources_tutorialmcClass; private static var particleStoneWhite02Class:Class = EmbeddedResources_particleStoneWhite02Class; private static var elfArcherLv5Class:Class = EmbeddedResources_elfArcherLv5Class; private static var orcWarriorLv3Class:Class = EmbeddedResources_orcWarriorLv3Class; private static var orcArcherLv1Class:Class = EmbeddedResources_orcArcherLv1Class; private static var particleStoneBlack03Class:Class = EmbeddedResources_particleStoneBlack03Class; private static var elfCavaleryLv3Class:Class = EmbeddedResources_elfCavaleryLv3Class; private static var orcCavaleryLv1Class:Class = EmbeddedResources_orcCavaleryLv1Class; private static var doodad_01Class:Class = EmbeddedResources_doodad_01Class; private static var elfTowerLvl2Class:Class = EmbeddedResources_elfTowerLvl2Class; private static var particleBloodSpatter03Class:Class = EmbeddedResources_particleBloodSpatter03Class; private static var victoryClass:Class = EmbeddedResources_victoryClass; private static var elfWarriorLv4Class:Class = EmbeddedResources_elfWarriorLv4Class; private static var particleSmoke03Class:Class = EmbeddedResources_particleSmoke03Class; private static var scoreBoardMCClass:Class = EmbeddedResources_scoreBoardMCClass; private static var bg_skyClass:Class = EmbeddedResources_bg_skyClass; private static var elfArcherLv2Class:Class = EmbeddedResources_elfArcherLv2Class; private static var elfWarriorLv1Class:Class = EmbeddedResources_elfWarriorLv1Class; private static var doodad_06Class:Class = EmbeddedResources_doodad_06Class; private static var specialAtkClass:Class = EmbeddedResources_specialAtkClass; private static var fx_explosionClass:Class = EmbeddedResources_fx_explosionClass; private static var orcTowerLvl3Class:Class = EmbeddedResources_orcTowerLvl3Class; private static var levelupClass:Class = EmbeddedResources_levelupClass; private static var deathElfClass:Class = EmbeddedResources_deathElfClass; private static var orcWarriorLv5Class:Class = EmbeddedResources_orcWarriorLv5Class; private static var orcArcherLv3Class:Class = EmbeddedResources_orcArcherLv3Class; private static var ElfCavalryIconClass:Class = EmbeddedResources_ElfCavalryIconClass; private static var elfCavaleryLv5Class:Class = EmbeddedResources_elfCavaleryLv5Class; private static var doodad_03Class:Class = EmbeddedResources_doodad_03Class; private static var elfTowerLvl4Class:Class = EmbeddedResources_elfTowerLvl4Class; private static var orcCavaleryLv3Class:Class = EmbeddedResources_orcCavaleryLv3Class; private static var mainmenuClass:Class = EmbeddedResources_mainmenuClass; private static var ElfArcherIconClass:Class = EmbeddedResources_ElfArcherIconClass; private static var gamemusicClass:Class = EmbeddedResources_gamemusicClass; private static var elfArcherLv4Class:Class = EmbeddedResources_elfArcherLv4Class; private static var particleStoneWhite01Class:Class = EmbeddedResources_particleStoneWhite01Class; private static var maceAtkClass:Class = EmbeddedResources_maceAtkClass; private static var elfCavaleryLv2Class:Class = EmbeddedResources_elfCavaleryLv2Class; private static var orcWarriorLv2Class:Class = EmbeddedResources_orcWarriorLv2Class; private static var orcTowerLvl5Class:Class = EmbeddedResources_orcTowerLvl5Class; private static var swordAtkClass:Class = EmbeddedResources_swordAtkClass; private static var mouseOverClass:Class = EmbeddedResources_mouseOverClass; private static var elfWarriorLv3Class:Class = EmbeddedResources_elfWarriorLv3Class; private static var elfTowerLvl1Class:Class = EmbeddedResources_elfTowerLvl1Class; private static var bg_middleClass:Class = EmbeddedResources_bg_middleClass; private static var arrowClass:Class = EmbeddedResources_arrowClass; private static var orcArcherLv5Class:Class = EmbeddedResources_orcArcherLv5Class; private static var elfArcherLv1Class:Class = EmbeddedResources_elfArcherLv1Class; private static var doodad_05Class:Class = EmbeddedResources_doodad_05Class; private static var particleBloodSpatter02Class:Class = EmbeddedResources_particleBloodSpatter02Class; private static var orcCavaleryLv5Class:Class = EmbeddedResources_orcCavaleryLv5Class; private static var orcTowerLvl2Class:Class = EmbeddedResources_orcTowerLvl2Class; public function getDataList():StringHashtable{ return (new StringHashtable(objectDictionary)); } } }//package
Section 123
//EmbeddedResources_arrowClass (EmbeddedResources_arrowClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_arrowClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_arrowClass(){ dataClass = EmbeddedResources_arrowClass_dataClass; super(); initialWidth = (2000 / 20); initialHeight = (400 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 124
//EmbeddedResources_arrowClass_dataClass (EmbeddedResources_arrowClass_dataClass) package { import mx.core.*; public class EmbeddedResources_arrowClass_dataClass extends ByteArrayAsset { } }//package
Section 125
//EmbeddedResources_arrowFlightClass (EmbeddedResources_arrowFlightClass) package { import mx.core.*; public class EmbeddedResources_arrowFlightClass extends SoundAsset { } }//package
Section 126
//EmbeddedResources_basestatsXMLClass (EmbeddedResources_basestatsXMLClass) package { import mx.core.*; public class EmbeddedResources_basestatsXMLClass extends ByteArrayAsset { } }//package
Section 127
//EmbeddedResources_bg_farClass (EmbeddedResources_bg_farClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_bg_farClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_bg_farClass(){ dataClass = EmbeddedResources_bg_farClass_dataClass; super(); initialWidth = (0x3200 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 128
//EmbeddedResources_bg_farClass_dataClass (EmbeddedResources_bg_farClass_dataClass) package { import mx.core.*; public class EmbeddedResources_bg_farClass_dataClass extends ByteArrayAsset { } }//package
Section 129
//EmbeddedResources_bg_frontClass (EmbeddedResources_bg_frontClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_bg_frontClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_bg_frontClass(){ dataClass = EmbeddedResources_bg_frontClass_dataClass; super(); initialWidth = (0x3200 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 130
//EmbeddedResources_bg_frontClass_dataClass (EmbeddedResources_bg_frontClass_dataClass) package { import mx.core.*; public class EmbeddedResources_bg_frontClass_dataClass extends ByteArrayAsset { } }//package
Section 131
//EmbeddedResources_bg_middleClass (EmbeddedResources_bg_middleClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_bg_middleClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_bg_middleClass(){ dataClass = EmbeddedResources_bg_middleClass_dataClass; super(); initialWidth = (0x3200 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 132
//EmbeddedResources_bg_middleClass_dataClass (EmbeddedResources_bg_middleClass_dataClass) package { import mx.core.*; public class EmbeddedResources_bg_middleClass_dataClass extends ByteArrayAsset { } }//package
Section 133
//EmbeddedResources_bg_skyClass (EmbeddedResources_bg_skyClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_bg_skyClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_bg_skyClass(){ dataClass = EmbeddedResources_bg_skyClass_dataClass; super(); initialWidth = (0x3200 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 134
//EmbeddedResources_bg_skyClass_dataClass (EmbeddedResources_bg_skyClass_dataClass) package { import mx.core.*; public class EmbeddedResources_bg_skyClass_dataClass extends ByteArrayAsset { } }//package
Section 135
//EmbeddedResources_blacksmithXMLClass (EmbeddedResources_blacksmithXMLClass) package { import mx.core.*; public class EmbeddedResources_blacksmithXMLClass extends ByteArrayAsset { } }//package
Section 136
//EmbeddedResources_deathElfClass (EmbeddedResources_deathElfClass) package { import mx.core.*; public class EmbeddedResources_deathElfClass extends SoundAsset { } }//package
Section 137
//EmbeddedResources_deathOrcClass (EmbeddedResources_deathOrcClass) package { import mx.core.*; public class EmbeddedResources_deathOrcClass extends SoundAsset { } }//package
Section 138
//EmbeddedResources_doodad_01Class (EmbeddedResources_doodad_01Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_doodad_01Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_doodad_01Class(){ dataClass = EmbeddedResources_doodad_01Class_dataClass; super(); initialWidth = (3000 / 20); initialHeight = (2500 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 139
//EmbeddedResources_doodad_01Class_dataClass (EmbeddedResources_doodad_01Class_dataClass) package { import mx.core.*; public class EmbeddedResources_doodad_01Class_dataClass extends ByteArrayAsset { } }//package
Section 140
//EmbeddedResources_doodad_02Class (EmbeddedResources_doodad_02Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_doodad_02Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_doodad_02Class(){ dataClass = EmbeddedResources_doodad_02Class_dataClass; super(); initialWidth = (1200 / 20); initialHeight = (1000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 141
//EmbeddedResources_doodad_02Class_dataClass (EmbeddedResources_doodad_02Class_dataClass) package { import mx.core.*; public class EmbeddedResources_doodad_02Class_dataClass extends ByteArrayAsset { } }//package
Section 142
//EmbeddedResources_doodad_03Class (EmbeddedResources_doodad_03Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_doodad_03Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_doodad_03Class(){ dataClass = EmbeddedResources_doodad_03Class_dataClass; super(); initialWidth = (800 / 20); initialHeight = (800 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 143
//EmbeddedResources_doodad_03Class_dataClass (EmbeddedResources_doodad_03Class_dataClass) package { import mx.core.*; public class EmbeddedResources_doodad_03Class_dataClass extends ByteArrayAsset { } }//package
Section 144
//EmbeddedResources_doodad_04Class (EmbeddedResources_doodad_04Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_doodad_04Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_doodad_04Class(){ dataClass = EmbeddedResources_doodad_04Class_dataClass; super(); initialWidth = (1600 / 20); initialHeight = (800 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 145
//EmbeddedResources_doodad_04Class_dataClass (EmbeddedResources_doodad_04Class_dataClass) package { import mx.core.*; public class EmbeddedResources_doodad_04Class_dataClass extends ByteArrayAsset { } }//package
Section 146
//EmbeddedResources_doodad_05Class (EmbeddedResources_doodad_05Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_doodad_05Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_doodad_05Class(){ dataClass = EmbeddedResources_doodad_05Class_dataClass; super(); initialWidth = (2000 / 20); initialHeight = (4000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 147
//EmbeddedResources_doodad_05Class_dataClass (EmbeddedResources_doodad_05Class_dataClass) package { import mx.core.*; public class EmbeddedResources_doodad_05Class_dataClass extends ByteArrayAsset { } }//package
Section 148
//EmbeddedResources_doodad_06Class (EmbeddedResources_doodad_06Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_doodad_06Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_doodad_06Class(){ dataClass = EmbeddedResources_doodad_06Class_dataClass; super(); initialWidth = (3000 / 20); initialHeight = (4600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 149
//EmbeddedResources_doodad_06Class_dataClass (EmbeddedResources_doodad_06Class_dataClass) package { import mx.core.*; public class EmbeddedResources_doodad_06Class_dataClass extends ByteArrayAsset { } }//package
Section 150
//EmbeddedResources_ElfArcherIconClass (EmbeddedResources_ElfArcherIconClass) package { import mx.core.*; public class EmbeddedResources_ElfArcherIconClass extends BitmapAsset { } }//package
Section 151
//EmbeddedResources_elfArcherLv1Class (EmbeddedResources_elfArcherLv1Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfArcherLv1Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfArcherLv1Class(){ dataClass = EmbeddedResources_elfArcherLv1Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 152
//EmbeddedResources_elfArcherLv1Class_dataClass (EmbeddedResources_elfArcherLv1Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfArcherLv1Class_dataClass extends ByteArrayAsset { } }//package
Section 153
//EmbeddedResources_elfArcherLv2Class (EmbeddedResources_elfArcherLv2Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfArcherLv2Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfArcherLv2Class(){ dataClass = EmbeddedResources_elfArcherLv2Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 154
//EmbeddedResources_elfArcherLv2Class_dataClass (EmbeddedResources_elfArcherLv2Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfArcherLv2Class_dataClass extends ByteArrayAsset { } }//package
Section 155
//EmbeddedResources_elfArcherLv3Class (EmbeddedResources_elfArcherLv3Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfArcherLv3Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfArcherLv3Class(){ dataClass = EmbeddedResources_elfArcherLv3Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 156
//EmbeddedResources_elfArcherLv3Class_dataClass (EmbeddedResources_elfArcherLv3Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfArcherLv3Class_dataClass extends ByteArrayAsset { } }//package
Section 157
//EmbeddedResources_elfArcherLv4Class (EmbeddedResources_elfArcherLv4Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfArcherLv4Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfArcherLv4Class(){ dataClass = EmbeddedResources_elfArcherLv4Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 158
//EmbeddedResources_elfArcherLv4Class_dataClass (EmbeddedResources_elfArcherLv4Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfArcherLv4Class_dataClass extends ByteArrayAsset { } }//package
Section 159
//EmbeddedResources_elfArcherLv5Class (EmbeddedResources_elfArcherLv5Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfArcherLv5Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfArcherLv5Class(){ dataClass = EmbeddedResources_elfArcherLv5Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 160
//EmbeddedResources_elfArcherLv5Class_dataClass (EmbeddedResources_elfArcherLv5Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfArcherLv5Class_dataClass extends ByteArrayAsset { } }//package
Section 161
//EmbeddedResources_elfCavaleryLv1Class (EmbeddedResources_elfCavaleryLv1Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfCavaleryLv1Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfCavaleryLv1Class(){ dataClass = EmbeddedResources_elfCavaleryLv1Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 162
//EmbeddedResources_elfCavaleryLv1Class_dataClass (EmbeddedResources_elfCavaleryLv1Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfCavaleryLv1Class_dataClass extends ByteArrayAsset { } }//package
Section 163
//EmbeddedResources_elfCavaleryLv2Class (EmbeddedResources_elfCavaleryLv2Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfCavaleryLv2Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfCavaleryLv2Class(){ dataClass = EmbeddedResources_elfCavaleryLv2Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 164
//EmbeddedResources_elfCavaleryLv2Class_dataClass (EmbeddedResources_elfCavaleryLv2Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfCavaleryLv2Class_dataClass extends ByteArrayAsset { } }//package
Section 165
//EmbeddedResources_elfCavaleryLv3Class (EmbeddedResources_elfCavaleryLv3Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfCavaleryLv3Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfCavaleryLv3Class(){ dataClass = EmbeddedResources_elfCavaleryLv3Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 166
//EmbeddedResources_elfCavaleryLv3Class_dataClass (EmbeddedResources_elfCavaleryLv3Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfCavaleryLv3Class_dataClass extends ByteArrayAsset { } }//package
Section 167
//EmbeddedResources_elfCavaleryLv4Class (EmbeddedResources_elfCavaleryLv4Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfCavaleryLv4Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfCavaleryLv4Class(){ dataClass = EmbeddedResources_elfCavaleryLv4Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 168
//EmbeddedResources_elfCavaleryLv4Class_dataClass (EmbeddedResources_elfCavaleryLv4Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfCavaleryLv4Class_dataClass extends ByteArrayAsset { } }//package
Section 169
//EmbeddedResources_elfCavaleryLv5Class (EmbeddedResources_elfCavaleryLv5Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfCavaleryLv5Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfCavaleryLv5Class(){ dataClass = EmbeddedResources_elfCavaleryLv5Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 170
//EmbeddedResources_elfCavaleryLv5Class_dataClass (EmbeddedResources_elfCavaleryLv5Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfCavaleryLv5Class_dataClass extends ByteArrayAsset { } }//package
Section 171
//EmbeddedResources_ElfCavalryIconClass (EmbeddedResources_ElfCavalryIconClass) package { import mx.core.*; public class EmbeddedResources_ElfCavalryIconClass extends BitmapAsset { } }//package
Section 172
//EmbeddedResources_elfMageClass (EmbeddedResources_elfMageClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfMageClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfMageClass(){ dataClass = EmbeddedResources_elfMageClass_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 173
//EmbeddedResources_elfMageClass_dataClass (EmbeddedResources_elfMageClass_dataClass) package { import mx.core.*; public class EmbeddedResources_elfMageClass_dataClass extends ByteArrayAsset { } }//package
Section 174
//EmbeddedResources_elfTowerLvl1Class (EmbeddedResources_elfTowerLvl1Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfTowerLvl1Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfTowerLvl1Class(){ dataClass = EmbeddedResources_elfTowerLvl1Class_dataClass; super(); initialWidth = (11600 / 20); initialHeight = (12000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 175
//EmbeddedResources_elfTowerLvl1Class_dataClass (EmbeddedResources_elfTowerLvl1Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfTowerLvl1Class_dataClass extends ByteArrayAsset { } }//package
Section 176
//EmbeddedResources_elfTowerLvl2Class (EmbeddedResources_elfTowerLvl2Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfTowerLvl2Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfTowerLvl2Class(){ dataClass = EmbeddedResources_elfTowerLvl2Class_dataClass; super(); initialWidth = (11600 / 20); initialHeight = (12000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 177
//EmbeddedResources_elfTowerLvl2Class_dataClass (EmbeddedResources_elfTowerLvl2Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfTowerLvl2Class_dataClass extends ByteArrayAsset { } }//package
Section 178
//EmbeddedResources_elfTowerLvl3Class (EmbeddedResources_elfTowerLvl3Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfTowerLvl3Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfTowerLvl3Class(){ dataClass = EmbeddedResources_elfTowerLvl3Class_dataClass; super(); initialWidth = (11600 / 20); initialHeight = (12000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 179
//EmbeddedResources_elfTowerLvl3Class_dataClass (EmbeddedResources_elfTowerLvl3Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfTowerLvl3Class_dataClass extends ByteArrayAsset { } }//package
Section 180
//EmbeddedResources_elfTowerLvl4Class (EmbeddedResources_elfTowerLvl4Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfTowerLvl4Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfTowerLvl4Class(){ dataClass = EmbeddedResources_elfTowerLvl4Class_dataClass; super(); initialWidth = (11600 / 20); initialHeight = (12000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 181
//EmbeddedResources_elfTowerLvl4Class_dataClass (EmbeddedResources_elfTowerLvl4Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfTowerLvl4Class_dataClass extends ByteArrayAsset { } }//package
Section 182
//EmbeddedResources_elfTowerLvl5Class (EmbeddedResources_elfTowerLvl5Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfTowerLvl5Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfTowerLvl5Class(){ dataClass = EmbeddedResources_elfTowerLvl5Class_dataClass; super(); initialWidth = (11600 / 20); initialHeight = (12000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 183
//EmbeddedResources_elfTowerLvl5Class_dataClass (EmbeddedResources_elfTowerLvl5Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfTowerLvl5Class_dataClass extends ByteArrayAsset { } }//package
Section 184
//EmbeddedResources_ElfWarriorIconClass (EmbeddedResources_ElfWarriorIconClass) package { import mx.core.*; public class EmbeddedResources_ElfWarriorIconClass extends BitmapAsset { } }//package
Section 185
//EmbeddedResources_elfWarriorLv1Class (EmbeddedResources_elfWarriorLv1Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfWarriorLv1Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfWarriorLv1Class(){ dataClass = EmbeddedResources_elfWarriorLv1Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 186
//EmbeddedResources_elfWarriorLv1Class_dataClass (EmbeddedResources_elfWarriorLv1Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfWarriorLv1Class_dataClass extends ByteArrayAsset { } }//package
Section 187
//EmbeddedResources_elfWarriorLv2Class (EmbeddedResources_elfWarriorLv2Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfWarriorLv2Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfWarriorLv2Class(){ dataClass = EmbeddedResources_elfWarriorLv2Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 188
//EmbeddedResources_elfWarriorLv2Class_dataClass (EmbeddedResources_elfWarriorLv2Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfWarriorLv2Class_dataClass extends ByteArrayAsset { } }//package
Section 189
//EmbeddedResources_elfWarriorLv3Class (EmbeddedResources_elfWarriorLv3Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfWarriorLv3Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfWarriorLv3Class(){ dataClass = EmbeddedResources_elfWarriorLv3Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 190
//EmbeddedResources_elfWarriorLv3Class_dataClass (EmbeddedResources_elfWarriorLv3Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfWarriorLv3Class_dataClass extends ByteArrayAsset { } }//package
Section 191
//EmbeddedResources_elfWarriorLv4Class (EmbeddedResources_elfWarriorLv4Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfWarriorLv4Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfWarriorLv4Class(){ dataClass = EmbeddedResources_elfWarriorLv4Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 192
//EmbeddedResources_elfWarriorLv4Class_dataClass (EmbeddedResources_elfWarriorLv4Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfWarriorLv4Class_dataClass extends ByteArrayAsset { } }//package
Section 193
//EmbeddedResources_elfWarriorLv5Class (EmbeddedResources_elfWarriorLv5Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_elfWarriorLv5Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_elfWarriorLv5Class(){ dataClass = EmbeddedResources_elfWarriorLv5Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 194
//EmbeddedResources_elfWarriorLv5Class_dataClass (EmbeddedResources_elfWarriorLv5Class_dataClass) package { import mx.core.*; public class EmbeddedResources_elfWarriorLv5Class_dataClass extends ByteArrayAsset { } }//package
Section 195
//EmbeddedResources_failureClass (EmbeddedResources_failureClass) package { import mx.core.*; public class EmbeddedResources_failureClass extends BitmapAsset { } }//package
Section 196
//EmbeddedResources_fx_explosionClass (EmbeddedResources_fx_explosionClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_fx_explosionClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_fx_explosionClass(){ dataClass = EmbeddedResources_fx_explosionClass_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 197
//EmbeddedResources_fx_explosionClass_dataClass (EmbeddedResources_fx_explosionClass_dataClass) package { import mx.core.*; public class EmbeddedResources_fx_explosionClass_dataClass extends ByteArrayAsset { } }//package
Section 198
//EmbeddedResources_gamemusicClass (EmbeddedResources_gamemusicClass) package { import mx.core.*; public class EmbeddedResources_gamemusicClass extends SoundAsset { } }//package
Section 199
//EmbeddedResources_levelupClass (EmbeddedResources_levelupClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_levelupClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_levelupClass(){ dataClass = EmbeddedResources_levelupClass_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 200
//EmbeddedResources_levelupClass_dataClass (EmbeddedResources_levelupClass_dataClass) package { import mx.core.*; public class EmbeddedResources_levelupClass_dataClass extends ByteArrayAsset { } }//package
Section 201
//EmbeddedResources_maceAtkClass (EmbeddedResources_maceAtkClass) package { import mx.core.*; public class EmbeddedResources_maceAtkClass extends SoundAsset { } }//package
Section 202
//EmbeddedResources_mainmenuClass (EmbeddedResources_mainmenuClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_mainmenuClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_mainmenuClass(){ dataClass = EmbeddedResources_mainmenuClass_dataClass; super(); initialWidth = (0x3200 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 203
//EmbeddedResources_mainmenuClass_dataClass (EmbeddedResources_mainmenuClass_dataClass) package { import mx.core.*; public class EmbeddedResources_mainmenuClass_dataClass extends ByteArrayAsset { } }//package
Section 204
//EmbeddedResources_meteorClass (EmbeddedResources_meteorClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_meteorClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_meteorClass(){ dataClass = EmbeddedResources_meteorClass_dataClass; super(); initialWidth = (8000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 205
//EmbeddedResources_meteorClass_dataClass (EmbeddedResources_meteorClass_dataClass) package { import mx.core.*; public class EmbeddedResources_meteorClass_dataClass extends ByteArrayAsset { } }//package
Section 206
//EmbeddedResources_mouseOverClass (EmbeddedResources_mouseOverClass) package { import mx.core.*; public class EmbeddedResources_mouseOverClass extends SoundAsset { } }//package
Section 207
//EmbeddedResources_onClickClass (EmbeddedResources_onClickClass) package { import mx.core.*; public class EmbeddedResources_onClickClass extends SoundAsset { } }//package
Section 208
//EmbeddedResources_OrcArcherIconClass (EmbeddedResources_OrcArcherIconClass) package { import mx.core.*; public class EmbeddedResources_OrcArcherIconClass extends BitmapAsset { } }//package
Section 209
//EmbeddedResources_orcArcherLv1Class (EmbeddedResources_orcArcherLv1Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcArcherLv1Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcArcherLv1Class(){ dataClass = EmbeddedResources_orcArcherLv1Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 210
//EmbeddedResources_orcArcherLv1Class_dataClass (EmbeddedResources_orcArcherLv1Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcArcherLv1Class_dataClass extends ByteArrayAsset { } }//package
Section 211
//EmbeddedResources_orcArcherLv2Class (EmbeddedResources_orcArcherLv2Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcArcherLv2Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcArcherLv2Class(){ dataClass = EmbeddedResources_orcArcherLv2Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 212
//EmbeddedResources_orcArcherLv2Class_dataClass (EmbeddedResources_orcArcherLv2Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcArcherLv2Class_dataClass extends ByteArrayAsset { } }//package
Section 213
//EmbeddedResources_orcArcherLv3Class (EmbeddedResources_orcArcherLv3Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcArcherLv3Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcArcherLv3Class(){ dataClass = EmbeddedResources_orcArcherLv3Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 214
//EmbeddedResources_orcArcherLv3Class_dataClass (EmbeddedResources_orcArcherLv3Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcArcherLv3Class_dataClass extends ByteArrayAsset { } }//package
Section 215
//EmbeddedResources_orcArcherLv4Class (EmbeddedResources_orcArcherLv4Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcArcherLv4Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcArcherLv4Class(){ dataClass = EmbeddedResources_orcArcherLv4Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 216
//EmbeddedResources_orcArcherLv4Class_dataClass (EmbeddedResources_orcArcherLv4Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcArcherLv4Class_dataClass extends ByteArrayAsset { } }//package
Section 217
//EmbeddedResources_orcArcherLv5Class (EmbeddedResources_orcArcherLv5Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcArcherLv5Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcArcherLv5Class(){ dataClass = EmbeddedResources_orcArcherLv5Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 218
//EmbeddedResources_orcArcherLv5Class_dataClass (EmbeddedResources_orcArcherLv5Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcArcherLv5Class_dataClass extends ByteArrayAsset { } }//package
Section 219
//EmbeddedResources_orcCavaleryLv1Class (EmbeddedResources_orcCavaleryLv1Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcCavaleryLv1Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcCavaleryLv1Class(){ dataClass = EmbeddedResources_orcCavaleryLv1Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 220
//EmbeddedResources_orcCavaleryLv1Class_dataClass (EmbeddedResources_orcCavaleryLv1Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcCavaleryLv1Class_dataClass extends ByteArrayAsset { } }//package
Section 221
//EmbeddedResources_orcCavaleryLv2Class (EmbeddedResources_orcCavaleryLv2Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcCavaleryLv2Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcCavaleryLv2Class(){ dataClass = EmbeddedResources_orcCavaleryLv2Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 222
//EmbeddedResources_orcCavaleryLv2Class_dataClass (EmbeddedResources_orcCavaleryLv2Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcCavaleryLv2Class_dataClass extends ByteArrayAsset { } }//package
Section 223
//EmbeddedResources_orcCavaleryLv3Class (EmbeddedResources_orcCavaleryLv3Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcCavaleryLv3Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcCavaleryLv3Class(){ dataClass = EmbeddedResources_orcCavaleryLv3Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 224
//EmbeddedResources_orcCavaleryLv3Class_dataClass (EmbeddedResources_orcCavaleryLv3Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcCavaleryLv3Class_dataClass extends ByteArrayAsset { } }//package
Section 225
//EmbeddedResources_orcCavaleryLv4Class (EmbeddedResources_orcCavaleryLv4Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcCavaleryLv4Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcCavaleryLv4Class(){ dataClass = EmbeddedResources_orcCavaleryLv4Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 226
//EmbeddedResources_orcCavaleryLv4Class_dataClass (EmbeddedResources_orcCavaleryLv4Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcCavaleryLv4Class_dataClass extends ByteArrayAsset { } }//package
Section 227
//EmbeddedResources_orcCavaleryLv5Class (EmbeddedResources_orcCavaleryLv5Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcCavaleryLv5Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcCavaleryLv5Class(){ dataClass = EmbeddedResources_orcCavaleryLv5Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 228
//EmbeddedResources_orcCavaleryLv5Class_dataClass (EmbeddedResources_orcCavaleryLv5Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcCavaleryLv5Class_dataClass extends ByteArrayAsset { } }//package
Section 229
//EmbeddedResources_OrcCavalryIconClass (EmbeddedResources_OrcCavalryIconClass) package { import mx.core.*; public class EmbeddedResources_OrcCavalryIconClass extends BitmapAsset { } }//package
Section 230
//EmbeddedResources_orcMageClass (EmbeddedResources_orcMageClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcMageClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcMageClass(){ dataClass = EmbeddedResources_orcMageClass_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 231
//EmbeddedResources_orcMageClass_dataClass (EmbeddedResources_orcMageClass_dataClass) package { import mx.core.*; public class EmbeddedResources_orcMageClass_dataClass extends ByteArrayAsset { } }//package
Section 232
//EmbeddedResources_orcTowerLvl1Class (EmbeddedResources_orcTowerLvl1Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcTowerLvl1Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcTowerLvl1Class(){ dataClass = EmbeddedResources_orcTowerLvl1Class_dataClass; super(); initialWidth = (7600 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 233
//EmbeddedResources_orcTowerLvl1Class_dataClass (EmbeddedResources_orcTowerLvl1Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcTowerLvl1Class_dataClass extends ByteArrayAsset { } }//package
Section 234
//EmbeddedResources_orcTowerLvl2Class (EmbeddedResources_orcTowerLvl2Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcTowerLvl2Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcTowerLvl2Class(){ dataClass = EmbeddedResources_orcTowerLvl2Class_dataClass; super(); initialWidth = (7600 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 235
//EmbeddedResources_orcTowerLvl2Class_dataClass (EmbeddedResources_orcTowerLvl2Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcTowerLvl2Class_dataClass extends ByteArrayAsset { } }//package
Section 236
//EmbeddedResources_orcTowerLvl3Class (EmbeddedResources_orcTowerLvl3Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcTowerLvl3Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcTowerLvl3Class(){ dataClass = EmbeddedResources_orcTowerLvl3Class_dataClass; super(); initialWidth = (7600 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 237
//EmbeddedResources_orcTowerLvl3Class_dataClass (EmbeddedResources_orcTowerLvl3Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcTowerLvl3Class_dataClass extends ByteArrayAsset { } }//package
Section 238
//EmbeddedResources_orcTowerLvl4Class (EmbeddedResources_orcTowerLvl4Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcTowerLvl4Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcTowerLvl4Class(){ dataClass = EmbeddedResources_orcTowerLvl4Class_dataClass; super(); initialWidth = (7600 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 239
//EmbeddedResources_orcTowerLvl4Class_dataClass (EmbeddedResources_orcTowerLvl4Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcTowerLvl4Class_dataClass extends ByteArrayAsset { } }//package
Section 240
//EmbeddedResources_orcTowerLvl5Class (EmbeddedResources_orcTowerLvl5Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcTowerLvl5Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcTowerLvl5Class(){ dataClass = EmbeddedResources_orcTowerLvl5Class_dataClass; super(); initialWidth = (7600 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 241
//EmbeddedResources_orcTowerLvl5Class_dataClass (EmbeddedResources_orcTowerLvl5Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcTowerLvl5Class_dataClass extends ByteArrayAsset { } }//package
Section 242
//EmbeddedResources_OrcWarriorIconClass (EmbeddedResources_OrcWarriorIconClass) package { import mx.core.*; public class EmbeddedResources_OrcWarriorIconClass extends BitmapAsset { } }//package
Section 243
//EmbeddedResources_orcWarriorLv1Class (EmbeddedResources_orcWarriorLv1Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcWarriorLv1Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcWarriorLv1Class(){ dataClass = EmbeddedResources_orcWarriorLv1Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 244
//EmbeddedResources_orcWarriorLv1Class_dataClass (EmbeddedResources_orcWarriorLv1Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcWarriorLv1Class_dataClass extends ByteArrayAsset { } }//package
Section 245
//EmbeddedResources_orcWarriorLv2Class (EmbeddedResources_orcWarriorLv2Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcWarriorLv2Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcWarriorLv2Class(){ dataClass = EmbeddedResources_orcWarriorLv2Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 246
//EmbeddedResources_orcWarriorLv2Class_dataClass (EmbeddedResources_orcWarriorLv2Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcWarriorLv2Class_dataClass extends ByteArrayAsset { } }//package
Section 247
//EmbeddedResources_orcWarriorLv3Class (EmbeddedResources_orcWarriorLv3Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcWarriorLv3Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcWarriorLv3Class(){ dataClass = EmbeddedResources_orcWarriorLv3Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 248
//EmbeddedResources_orcWarriorLv3Class_dataClass (EmbeddedResources_orcWarriorLv3Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcWarriorLv3Class_dataClass extends ByteArrayAsset { } }//package
Section 249
//EmbeddedResources_orcWarriorLv4Class (EmbeddedResources_orcWarriorLv4Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcWarriorLv4Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcWarriorLv4Class(){ dataClass = EmbeddedResources_orcWarriorLv4Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 250
//EmbeddedResources_orcWarriorLv4Class_dataClass (EmbeddedResources_orcWarriorLv4Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcWarriorLv4Class_dataClass extends ByteArrayAsset { } }//package
Section 251
//EmbeddedResources_orcWarriorLv5Class (EmbeddedResources_orcWarriorLv5Class) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_orcWarriorLv5Class extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_orcWarriorLv5Class(){ dataClass = EmbeddedResources_orcWarriorLv5Class_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 252
//EmbeddedResources_orcWarriorLv5Class_dataClass (EmbeddedResources_orcWarriorLv5Class_dataClass) package { import mx.core.*; public class EmbeddedResources_orcWarriorLv5Class_dataClass extends ByteArrayAsset { } }//package
Section 253
//EmbeddedResources_particleBloodSpatter01Class (EmbeddedResources_particleBloodSpatter01Class) package { import mx.core.*; public class EmbeddedResources_particleBloodSpatter01Class extends BitmapAsset { } }//package
Section 254
//EmbeddedResources_particleBloodSpatter02Class (EmbeddedResources_particleBloodSpatter02Class) package { import mx.core.*; public class EmbeddedResources_particleBloodSpatter02Class extends BitmapAsset { } }//package
Section 255
//EmbeddedResources_particleBloodSpatter03Class (EmbeddedResources_particleBloodSpatter03Class) package { import mx.core.*; public class EmbeddedResources_particleBloodSpatter03Class extends BitmapAsset { } }//package
Section 256
//EmbeddedResources_particleSmoke01Class (EmbeddedResources_particleSmoke01Class) package { import mx.core.*; public class EmbeddedResources_particleSmoke01Class extends BitmapAsset { } }//package
Section 257
//EmbeddedResources_particleSmoke02Class (EmbeddedResources_particleSmoke02Class) package { import mx.core.*; public class EmbeddedResources_particleSmoke02Class extends BitmapAsset { } }//package
Section 258
//EmbeddedResources_particleSmoke03Class (EmbeddedResources_particleSmoke03Class) package { import mx.core.*; public class EmbeddedResources_particleSmoke03Class extends BitmapAsset { } }//package
Section 259
//EmbeddedResources_particleStoneBlack01Class (EmbeddedResources_particleStoneBlack01Class) package { import mx.core.*; public class EmbeddedResources_particleStoneBlack01Class extends BitmapAsset { } }//package
Section 260
//EmbeddedResources_particleStoneBlack02Class (EmbeddedResources_particleStoneBlack02Class) package { import mx.core.*; public class EmbeddedResources_particleStoneBlack02Class extends BitmapAsset { } }//package
Section 261
//EmbeddedResources_particleStoneBlack03Class (EmbeddedResources_particleStoneBlack03Class) package { import mx.core.*; public class EmbeddedResources_particleStoneBlack03Class extends BitmapAsset { } }//package
Section 262
//EmbeddedResources_particleStoneWhite01Class (EmbeddedResources_particleStoneWhite01Class) package { import mx.core.*; public class EmbeddedResources_particleStoneWhite01Class extends BitmapAsset { } }//package
Section 263
//EmbeddedResources_particleStoneWhite02Class (EmbeddedResources_particleStoneWhite02Class) package { import mx.core.*; public class EmbeddedResources_particleStoneWhite02Class extends BitmapAsset { } }//package
Section 264
//EmbeddedResources_particleStoneWhite03Class (EmbeddedResources_particleStoneWhite03Class) package { import mx.core.*; public class EmbeddedResources_particleStoneWhite03Class extends BitmapAsset { } }//package
Section 265
//EmbeddedResources_replayButtonClass (EmbeddedResources_replayButtonClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_replayButtonClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_replayButtonClass(){ dataClass = EmbeddedResources_replayButtonClass_dataClass; super(); initialWidth = (11000 / 20); initialHeight = (8000 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 266
//EmbeddedResources_replayButtonClass_dataClass (EmbeddedResources_replayButtonClass_dataClass) package { import mx.core.*; public class EmbeddedResources_replayButtonClass_dataClass extends ByteArrayAsset { } }//package
Section 267
//EmbeddedResources_scoreBoardMCClass (EmbeddedResources_scoreBoardMCClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_scoreBoardMCClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_scoreBoardMCClass(){ dataClass = EmbeddedResources_scoreBoardMCClass_dataClass; super(); initialWidth = (0x3200 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 268
//EmbeddedResources_scoreBoardMCClass_dataClass (EmbeddedResources_scoreBoardMCClass_dataClass) package { import mx.core.*; public class EmbeddedResources_scoreBoardMCClass_dataClass extends ByteArrayAsset { } }//package
Section 269
//EmbeddedResources_specialAtkClass (EmbeddedResources_specialAtkClass) package { import mx.core.*; public class EmbeddedResources_specialAtkClass extends SoundAsset { } }//package
Section 270
//EmbeddedResources_swordAtkClass (EmbeddedResources_swordAtkClass) package { import mx.core.*; public class EmbeddedResources_swordAtkClass extends SoundAsset { } }//package
Section 271
//EmbeddedResources_tutorialmcClass (EmbeddedResources_tutorialmcClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_tutorialmcClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_tutorialmcClass(){ dataClass = EmbeddedResources_tutorialmcClass_dataClass; super(); initialWidth = (0x3200 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 272
//EmbeddedResources_tutorialmcClass_dataClass (EmbeddedResources_tutorialmcClass_dataClass) package { import mx.core.*; public class EmbeddedResources_tutorialmcClass_dataClass extends ByteArrayAsset { } }//package
Section 273
//EmbeddedResources_uiClass (EmbeddedResources_uiClass) package { import flash.utils.*; import mx.core.*; public class EmbeddedResources_uiClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function EmbeddedResources_uiClass(){ dataClass = EmbeddedResources_uiClass_dataClass; super(); initialWidth = (0x3200 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 274
//EmbeddedResources_uiClass_dataClass (EmbeddedResources_uiClass_dataClass) package { import mx.core.*; public class EmbeddedResources_uiClass_dataClass extends ByteArrayAsset { } }//package
Section 275
//EmbeddedResources_unitstatsXMLClass (EmbeddedResources_unitstatsXMLClass) package { import mx.core.*; public class EmbeddedResources_unitstatsXMLClass extends ByteArrayAsset { } }//package
Section 276
//EmbeddedResources_victoryClass (EmbeddedResources_victoryClass) package { import mx.core.*; public class EmbeddedResources_victoryClass extends BitmapAsset { } }//package
Section 277
//Factory (Factory) package { import flash.events.*; import jaludo.utils.*; import com.mochibot.*; import flash.display.*; import flash.utils.*; public class Factory extends MovieClip { private const STAGE_WIDTH:int = 640; private const BAR_HEIGHT:int = 10; private const CLASS:String = "GameLoader"; private const BAR_WIDTH:int = 450; private const STAGE_HEIGHT:int = 480; private const MOCHI_CODE:String = "b6165947"; private const FRAMERATE:int = 0xFFFF; private const BACKGROUND_COLOR:int = 0xFFFFFF; private const BAR_COLOR:int = 0xAA0000; private var s:Boolean;// = false private var bar:Sprite; private var preloaderSWF:Class; private var preloader:Sprite; private var background:MovieClip; public function Factory(){ preloaderSWF = Factory_preloaderSWF; super(); stop(); stage.frameRate = 30; stage.scaleMode = StageScaleMode.SHOW_ALL; stage.quality = StageQuality.HIGH; preloader = new Sprite(); bar = new Sprite(); graphics.beginFill(BACKGROUND_COLOR); graphics.drawRect(0, 0, STAGE_WIDTH, STAGE_HEIGHT); graphics.endFill(); preloader.addChild(bar); background = new preloaderSWF(); addChild(background); addChild(preloader); try { MochiBot.track(this, MOCHI_CODE); } catch(e:Error) { }; stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler); stage.addEventListener(SplashEvent.END, jaludo_endHandler); } public function enterFrameHandler(_arg1:Event):void{ } public function clickHandler(_arg1:MouseEvent):void{ var _local2:Number; var _local3:Class; var _local4:Object; var _local5:Graphics; if (framesLoaded == totalFrames){ nextFrame(); _local3 = Class(getDefinitionByName(CLASS)); if (_local3){ _local4 = new (_local3); addChild((_local4 as DisplayObject)); }; stage.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); }; } private function jaludo_endHandler(_arg1:SplashEvent):void{ JaludoUtil.openLink = MovieClip(Loader(background.getChildAt(0)).content).open_link; JaludoUtil.sendHighscore = MovieClip(Loader(background.getChildAt(0)).content).send_highscore; JaludoUtil.Goto = MovieClip(Loader(background.getChildAt(0)).content).Goto; stage.removeEventListener(SplashEvent.END, jaludo_endHandler); clickHandler(null); } public function destroy():void{ removeChild(background); removeChild(preloader); bar = null; preloader = null; background = null; } } }//package
Section 278
//Factory_preloaderSWF (Factory_preloaderSWF) package { import mx.core.*; import flash.utils.*; public class Factory_preloaderSWF extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function Factory_preloaderSWF(){ dataClass = Factory_preloaderSWF_dataClass; super(); initialWidth = (0x3200 / 20); initialHeight = (9600 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 279
//Factory_preloaderSWF_dataClass (Factory_preloaderSWF_dataClass) package { import mx.core.*; public class Factory_preloaderSWF_dataClass extends ByteArrayAsset { } }//package
Section 280
//GameLoader (GameLoader) package { import flash.display.*; public final class GameLoader extends MovieClip { public function GameLoader(){ addChild(new MainMenu()); } } }//package
Section 281
//MainMenu (MainMenu) package { import flash.events.*; import global.*; import managers.sounds.*; import managers.ui.*; import flash.display.*; import managers.modules.*; import managers.resources.*; import debug.*; import animation.*; public final class MainMenu extends MovieClip { private const TRANSITION_TIME:Number = 1; public var saveFunction:Function; private var firstFrame:Boolean; public var loadFunction:Function; public static const BUILD_VERSION:String = "BUILD 100"; public function MainMenu(){ this.addEventListener(Event.ADDED_TO_STAGE, handleAddedToStage, false, 0, true); firstFrame = true; } public function mouseUp():void{ } public function destroy():void{ } private function handleEnterFrame(_arg1:Event):void{ if (ModuleManager.getInstance().isLoadingFinished()){ if (firstFrame){ firstFrame = false; ResourceManager.getInstance().loadAllResources(); } else { stage.removeEventListener(Event.ENTER_FRAME, handleEnterFrame); ModuleManager.getInstance().pushModuleIndex(0, null); stage.removeEventListener(Event.ENTER_FRAME, handleEnterFrame); }; }; } public function keyPress(_arg1:int, _arg2:Boolean):void{ } public function mouseDown():void{ } private function handleAddedToStage(_arg1:Event):void{ this.removeEventListener(Event.ADDED_TO_STAGE, handleAddedToStage); DebugFileWriter.getInstance().setFunctions(saveFunction, loadFunction); LocalizationManager.getInstance(); stage.addChild(ResourceManager.getInstance()); stage.addChild(ModuleManager.getInstance()); stage.addChild(InputManager.getInstance()); GlobalData.BUILD_VERSION = BUILD_VERSION; stage.addChild(new DebugDisplay()); SoundManager.getInstance().enableSound(GlobalData.enableSound); SwfAnimationConversionTool.validAnchorNameList = ["origin", "spawnPoint", "fx_a", "fx_b", "mage"]; var _local2:Class = MainMenu_embeddedResourceList; var _local3:Class = MainMenu_embeddedModuleList; ModuleManager.getInstance().setMaster(XML(_local3.data), XML(_local2.data), new EmbeddedModules(), new EmbeddedResources()); stage.addEventListener(Event.ENTER_FRAME, handleEnterFrame, false, 0, true); } public function deactivate():void{ } public function render(_arg1:Number):void{ } public function reload():void{ } } }//package
Section 282
//MainMenu_embeddedModuleList (MainMenu_embeddedModuleList) package { public class MainMenu_embeddedModuleList { public static var data:XML = <modules resList="resources.xml"> <!-- <module name="NavMeshTest" url="NavMeshTest.swf" visible="true"> <resourcePackage name="global"/> </module> --> <module name="BloodFeud" url="BloodFeud.swf" visible="true"> <resourcePackage name="global"/> </module> <!-- <module name="DebugMenu" url="DebugMenu.swf" visible="false"> <resourcePackage name="global"/> </module> <module name="BloodyTest" url="BloodyTest.swf" visible="true"> <resourcePackage name="global"/> </module> --> </modules> ; } }//package
Section 283
//MainMenu_embeddedResourceList (MainMenu_embeddedResourceList) package { public class MainMenu_embeddedResourceList { public static var data:XML = <resources resPath="z:/GameAssets/"> <!-- "Z:/GameAssets/" "GameAssets/" --> <!-- Tutorial Screen --> <!--resource id="tutorial" packageId="global" url="jal_bf_tutorial.jpg" type="img_needcompilation" size="1" / --> <resource id="tutorialmc" packageId="global" url="Menus/jal_bf_tutorial.swf" type="swf" size="1"/> <resource id="scoreBoardMC" packageId="global" url="Menus/jal_bf_scoreBoard.swf" type="swf" size="1"/> <!-- Music and Sound --> <resource id="gamemusic" packageId="global" url="Sounds/running_with_wolves_full.mp3" type="sound" size="1"/> <resource id="swordAtk" packageId="global" url="Sounds/attaque epee.mp3" type="sound" size="1"/> <resource id="maceAtk" packageId="global" url="Sounds/attaque masse.mp3" type="sound" size="1"/> <resource id="specialAtk" packageId="global" url="Sounds/attaque speciale.mp3" type="sound" size="1"/> <resource id="arrowFlight" packageId="global" url="Sounds/fleche qui vole.mp3" type="sound" size="1"/> <resource id="deathElf" packageId="global" url="Sounds/mort elves.mp3" type="sound" size="1"/> <resource id="deathOrc" packageId="global" url="Sounds/mort orc.mp3" type="sound" size="1"/> <resource id="mouseOver" packageId="global" url="Sounds/mouseover_23.mp3" type="sound" size="1"/> <resource id="onClick" packageId="global" url="Sounds/on click.mp3" type="sound" size="1"/> <!-- Menu --> <resource id="replayButton" packageId="global" url="Menus/jal_bf_replayButton.swf" type="swf" size="1"/> <resource id="mainmenu" packageId="global" url="Menus/jal_bf_startup.swf" type="swf" size="1"/> <!--<resource id="specSelect" packageId="global" url="Menus/SpecMenu.swf" type="swf" size="1" /> --> <!--<resource id="mainmenu" packageId="global" url="Menus/mainmenu.PNG" type="img_needcompilation" size="1" /> --> <resource id="victory" packageId="global" url="Menus/victory.PNG" type="img_needcompilation" size="1"/> <resource id="failure" packageId="global" url="Menus/failure.PNG" type="img_needcompilation" size="1"/> <resource id="levelup" packageId="global" url="Menus/jal_bf_levelUp.swf" type="swf" size="1"/> <!-- UI --> <resource id="ui" packageId="global" url="/UI/jal_bf_hudTop.swf" type="swf" size="1"/> <!-- <resource id="bg" packageId="global" url="metal_wall_texture-200038-SM.jpg" type="img_needcompilation" size="1" /> --> <resource id="arrow" packageId="global" url="Projectiles/jal_bf_arrow.swf" type="swf_needcompilation" size="1"/> <resource id="meteor" packageId="global" url="Projectiles/jal_bf_fx_meteor01.swf" type="swf_needcompilation" size="1"/> <!-- BG --> <resource id="bg_sky" packageId="global" url="Background/jal_bf_bg_sky.swf" type="swf" size="1"/> <resource id="bg_far" packageId="global" url="Background/jal_bf_bg_far.swf" type="swf" size="1"/> <resource id="bg_middle" packageId="global" url="Background/jal_bf_bg_middle.swf" type="swf" size="1"/> <resource id="bg_front" packageId="global" url="Background/jal_bf_bg_front.swf" type="swf" size="1"/> <!-- doodads --> <resource id="doodad_01" packageId="global" url="Doodads/jal_bf_doodads01.swf" type="pure_swf_needcompilation" size="1"/> <resource id="doodad_02" packageId="global" url="Doodads/jal_bf_doodads02.swf" type="pure_swf_needcompilation" size="1"/> <resource id="doodad_03" packageId="global" url="Doodads/jal_bf_doodads03.swf" type="pure_swf_needcompilation" size="1"/> <resource id="doodad_04" packageId="global" url="Doodads/jal_bf_doodads04.swf" type="pure_swf_needcompilation" size="1"/> <resource id="doodad_05" packageId="global" url="Doodads/jal_bf_doodads05.swf" type="pure_swf_needcompilation" size="1"/> <resource id="doodad_06" packageId="global" url="Doodads/jal_bf_doodads06.swf" type="pure_swf_needcompilation" size="1"/> <!-- Towers --> <resource id="orcTowerLvl1" packageId="global" url="Tower/orc/jal_bf_orc_tower01.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcTowerLvl2" packageId="global" url="Tower/orc/jal_bf_orc_tower02.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcTowerLvl3" packageId="global" url="Tower/orc/jal_bf_orc_tower03.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcTowerLvl4" packageId="global" url="Tower/orc/jal_bf_orc_tower04.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcTowerLvl5" packageId="global" url="Tower/orc/jal_bf_orc_tower05.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfTowerLvl1" packageId="global" url="Tower/elf/jal_bf_elf_tower01.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfTowerLvl2" packageId="global" url="Tower/elf/jal_bf_elf_tower02.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfTowerLvl3" packageId="global" url="Tower/elf/jal_bf_elf_tower03.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfTowerLvl4" packageId="global" url="Tower/elf/jal_bf_elf_tower04.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfTowerLvl5" packageId="global" url="Tower/elf/jal_bf_elf_tower05.swf" type="pure_swf_needcompilation" size="1"/> <!--<resource id="leftTower" packageId="global" url="Tower/leftTowerLvl1.png" type="img_needcompilation" size="1" /> <resource id="leftTowerLvl2" packageId="global" url="Tower/leftTowerLvl2.png" type="img_needcompilation" size="1" /> <resource id="leftTowerLvl3" packageId="global" url="Tower/leftTowerLvl3.png" type="img_needcompilation" size="1" /> <resource id="leftTowerLvl4" packageId="global" url="Tower/leftTowerLvl4.png" type="img_needcompilation" size="1" /> <resource id="leftTowerLvl5" packageId="global" url="Tower/leftTowerLvl5.png" type="img_needcompilation" size="1" /> <resource id="rightTower" packageId="global" url="Tower/rightTower.png" type="img_needcompilation" size="1" /> --> <!-- Units --> <resource id="orcWarriorLv1" packageId="global" url="Units/orc/jal_bf_orc01.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcWarriorLv2" packageId="global" url="Units/orc/jal_bf_orc02.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcWarriorLv3" packageId="global" url="Units/orc/jal_bf_orc03.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcWarriorLv4" packageId="global" url="Units/orc/jal_bf_orc04.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcWarriorLv5" packageId="global" url="Units/orc/jal_bf_orc05.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcArcherLv1" packageId="global" url="Units/orc/jal_bf_archer01.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcArcherLv2" packageId="global" url="Units/orc/jal_bf_archer02.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcArcherLv3" packageId="global" url="Units/orc/jal_bf_archer03.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcArcherLv4" packageId="global" url="Units/orc/jal_bf_archer04.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcArcherLv5" packageId="global" url="Units/orc/jal_bf_archer05.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcCavaleryLv1" packageId="global" url="Units/orc/jal_bf_cavalry01.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcCavaleryLv2" packageId="global" url="Units/orc/jal_bf_cavalry02.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcCavaleryLv3" packageId="global" url="Units/orc/jal_bf_cavalry03.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcCavaleryLv4" packageId="global" url="Units/orc/jal_bf_cavalry04.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcCavaleryLv5" packageId="global" url="Units/orc/jal_bf_cavalry05.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfWarriorLv1" packageId="global" url="Units/elf/jal_bf_elf01.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfWarriorLv2" packageId="global" url="Units/elf/jal_bf_elf02.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfWarriorLv3" packageId="global" url="Units/elf/jal_bf_elf03.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfWarriorLv4" packageId="global" url="Units/elf/jal_bf_elf04.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfWarriorLv5" packageId="global" url="Units/elf/jal_bf_elf05.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfArcherLv1" packageId="global" url="Units/elf/jal_bf_elfArche01.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfArcherLv2" packageId="global" url="Units/elf/jal_bf_elfArche02.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfArcherLv3" packageId="global" url="Units/elf/jal_bf_elfArche03.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfArcherLv4" packageId="global" url="Units/elf/jal_bf_elfArche04.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfArcherLv5" packageId="global" url="Units/elf/jal_bf_elfArche05.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfCavaleryLv1" packageId="global" url="Units/elf/jal_bf_whiteLion01.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfCavaleryLv2" packageId="global" url="Units/elf/jal_bf_whiteLion02.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfCavaleryLv3" packageId="global" url="Units/elf/jal_bf_whiteLion03.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfCavaleryLv4" packageId="global" url="Units/elf/jal_bf_whiteLion04.swf" type="pure_swf_needcompilation" size="1"/> <resource id="elfCavaleryLv5" packageId="global" url="Units/elf/jal_bf_whiteLion05.swf" type="pure_swf_needcompilation" size="1"/> <!-- Mages --> <resource id="elfMage" packageId="global" url="Units/elf/jal_bf_elfShaman.swf" type="pure_swf_needcompilation" size="1"/> <resource id="orcMage" packageId="global" url="Units/orc/jal_bf_orcDemon.swf" type="pure_swf_needcompilation" size="1"/> <!-- jal_bf_cavalry.swf Simon_Cavalry02.swf --> <!-- XML --> <resource id="blacksmithXML" packageId="global" url="XML/Blacksmith.XML" type="xml_data" size="1"/> <resource id="unitstatsXML" packageId="global" url="XML/UnitStats.XML" type="xml_data" size="1"/> <resource id="basestatsXML" packageId="global" url="XML/BaseStats.XML" type="xml_data" size="1"/> <!-- Defense --> <!-- resource id="canon" packageId="global" url="Defense/DeathCannon.png" type="img_needcompilation" size="1" / --> <!-- UpgradeBuilding --> <!-- resource id="blacksmith" packageId="global" url="/UpgradeBuilding/Blacksmith.png" type="img_needcompilation" size="1" / --> <!-- Projectile --> <!-- resource id="canonBall" packageId="global" url="Defense/Projectile.png" type="img_needcompilation" size="1" / --> <!-- Icons --> <resource id="OrcArcherIcon" packageId="global" url="Icons/jal_bf_hudSpawnQueue_A.png" type="img_needcompilation" size="1"/> <resource id="OrcCavalryIcon" packageId="global" url="Icons/jal_bf_hudSpawnQueue_C.png" type="img_needcompilation" size="1"/> <resource id="OrcWarriorIcon" packageId="global" url="Icons/jal_bf_hudSpawnQueue_I.png" type="img_needcompilation" size="1"/> <resource id="ElfArcherIcon" packageId="global" url="Icons/jal_bf_hudSpawnQueue_EA.png" type="img_needcompilation" size="1"/> <resource id="ElfCavalryIcon" packageId="global" url="Icons/jal_bf_hudSpawnQueue_EC.png" type="img_needcompilation" size="1"/> <resource id="ElfWarriorIcon" packageId="global" url="Icons/jal_bf_hudSpawnQueue_EI.png" type="img_needcompilation" size="1"/> <!-- Particles --> <resource id="particleSmoke01" packageId="global" url="Particles/jal_bf_fx_smoke01.png" type="img_needcompilation" size="1"/> <resource id="particleSmoke02" packageId="global" url="Particles/jal_bf_fx_smoke02.png" type="img_needcompilation" size="1"/> <resource id="particleSmoke03" packageId="global" url="Particles/jal_bf_fx_smoke03.png" type="img_needcompilation" size="1"/> <resource id="particleBloodSpatter01" packageId="global" url="Particles/jal_bf_fx_bloodSpatter01.png" type="img_needcompilation" size="1"/> <resource id="particleBloodSpatter02" packageId="global" url="Particles/jal_bf_fx_bloodSpatter02.png" type="img_needcompilation" size="1"/> <resource id="particleBloodSpatter03" packageId="global" url="Particles/jal_bf_fx_bloodSpatter03.png" type="img_needcompilation" size="1"/> <resource id="particleStoneWhite01" packageId="global" url="Particles/jal_bf_fx_stoneWhite01.png" type="img_needcompilation" size="1"/> <resource id="particleStoneWhite02" packageId="global" url="Particles/jal_bf_fx_stoneWhite02.png" type="img_needcompilation" size="1"/> <resource id="particleStoneWhite03" packageId="global" url="Particles/jal_bf_fx_stoneWhite03.png" type="img_needcompilation" size="1"/> <resource id="particleStoneBlack01" packageId="global" url="Particles/jal_bf_fx_stoneBlack01.png" type="img_needcompilation" size="1"/> <resource id="particleStoneBlack02" packageId="global" url="Particles/jal_bf_fx_stoneBlack02.png" type="img_needcompilation" size="1"/> <resource id="particleStoneBlack03" packageId="global" url="Particles/jal_bf_fx_stoneBlack03.png" type="img_needcompilation" size="1"/> <resource id="fx_explosion" packageId="global" url="Projectiles/jal_bf_fx_explosion.swf" type="pure_swf_needcompilation" size="1"/> <!-- TESTS <resource id="sloppyJoe" packageId="global" url="temp/sloppyJoe.swf" type="swf_needcompilation" size="1" /> <resource id="enemy_robot" packageId="global" url="temp/enemy_robot.swf" type="swf_needcompilation" size="1" /> <resource id="grasshopper" packageId="global" url="temp/grasshopper.swf" type="swf_needcompilation" size="1" /> <resource id="ty" packageId="global" url="temp/ty.swf" type="swf_needcompilation" size="1" /> <resource id="abby" packageId="global" url="temp/abby.swf" type="swf_needcompilation" size="1" /> --> </resources> ; } }//package

Library Items

Symbol 1 BinaryData {Factory_preloaderSWF_dataClass}
Symbol 2 MovieClip {EmbeddedResources_elfArcherLv1Class}
Symbol 3 Sound {EmbeddedResources_onClickClass} [EmbeddedResources_onClickClass]
Symbol 4 Sound {EmbeddedResources_deathElfClass} [EmbeddedResources_deathElfClass]
Symbol 5 Sound {EmbeddedResources_specialAtkClass} [EmbeddedResources_specialAtkClass]
Symbol 6 Sound {EmbeddedResources_swordAtkClass} [EmbeddedResources_swordAtkClass]
Symbol 7 Sound {EmbeddedResources_gamemusicClass} [EmbeddedResources_gamemusicClass]
Symbol 8 Sound {EmbeddedResources_arrowFlightClass} [EmbeddedResources_arrowFlightClass]
Symbol 9 Sound {EmbeddedResources_maceAtkClass} [EmbeddedResources_maceAtkClass]
Symbol 10 Sound {EmbeddedResources_deathOrcClass} [EmbeddedResources_deathOrcClass]
Symbol 11 Sound {EmbeddedResources_mouseOverClass} [EmbeddedResources_mouseOverClass]
Symbol 12 BinaryData {EmbeddedResources_bg_skyClass_dataClass}
Symbol 13 BinaryData {EmbeddedResources_orcArcherLv2Class_dataClass}
Symbol 14 BinaryData {EmbeddedResources_elfArcherLv5Class_dataClass}
Symbol 15 Bitmap {EmbeddedResources_failureClass}
Symbol 16 BinaryData {EmbeddedResources_elfWarriorLv3Class_dataClass}
Symbol 17 BinaryData {EmbeddedResources_bg_farClass_dataClass}
Symbol 18 BinaryData {EmbeddedResources_orcArcherLv3Class_dataClass}
Symbol 19 Bitmap {EmbeddedResources_OrcArcherIconClass}
Symbol 20 BinaryData {EmbeddedResources_orcCavaleryLv1Class_dataClass}
Symbol 21 BinaryData {EmbeddedModules_BloodFeudClass_dataClass}
Symbol 22 BinaryData {EmbeddedResources_elfTowerLvl3Class_dataClass}
Symbol 23 BinaryData {EmbeddedResources_uiClass_dataClass}
Symbol 24 BinaryData {EmbeddedResources_orcTowerLvl5Class_dataClass}
Symbol 25 BinaryData {EmbeddedResources_unitstatsXMLClass}
Symbol 26 BinaryData {EmbeddedResources_elfCavaleryLv4Class_dataClass}
Symbol 27 Bitmap {EmbeddedResources_particleBloodSpatter01Class}
Symbol 28 Bitmap {EmbeddedResources_particleBloodSpatter02Class}
Symbol 29 BinaryData {EmbeddedResources_meteorClass_dataClass}
Symbol 30 BinaryData {EmbeddedResources_levelupClass_dataClass}
Symbol 31 Bitmap {EmbeddedResources_particleSmoke01Class}
Symbol 32 BinaryData {EmbeddedResources_orcWarriorLv2Class_dataClass}
Symbol 33 BinaryData {EmbeddedResources_arrowClass_dataClass}
Symbol 34 Bitmap {EmbeddedResources_ElfCavalryIconClass}
Symbol 35 Bitmap {EmbeddedResources_OrcWarriorIconClass}
Symbol 36 BinaryData {EmbeddedResources_elfWarriorLv1Class_dataClass}
Symbol 37 BinaryData {EmbeddedResources_basestatsXMLClass}
Symbol 38 BinaryData {EmbeddedResources_elfArcherLv3Class_dataClass}
Symbol 39 BinaryData {EmbeddedResources_bg_frontClass_dataClass}
Symbol 40 Bitmap {EmbeddedResources_particleStoneBlack02Class}
Symbol 41 BinaryData {EmbeddedResources_elfTowerLvl1Class_dataClass}
Symbol 42 BinaryData {EmbeddedResources_elfCavaleryLv2Class_dataClass}
Symbol 43 BinaryData {EmbeddedResources_doodad_01Class_dataClass}
Symbol 44 BinaryData {EmbeddedResources_orcCavaleryLv4Class_dataClass}
Symbol 45 Bitmap {EmbeddedResources_ElfWarriorIconClass}
Symbol 46 BinaryData {EmbeddedResources_replayButtonClass_dataClass}
Symbol 47 BinaryData {EmbeddedResources_elfWarriorLv4Class_dataClass}
Symbol 48 BinaryData {EmbeddedResources_elfArcherLv4Class_dataClass}
Symbol 49 BinaryData {EmbeddedResources_elfWarriorLv5Class_dataClass}
Symbol 50 Bitmap {EmbeddedResources_particleStoneWhite02Class}
Symbol 51 BinaryData {EmbeddedResources_orcArcherLv1Class_dataClass}
Symbol 52 BinaryData {EmbeddedResources_orcArcherLv4Class_dataClass}
Symbol 53 BinaryData {EmbeddedResources_mainmenuClass_dataClass}
Symbol 54 Bitmap {EmbeddedResources_particleStoneWhite03Class}
Symbol 55 BinaryData {EmbeddedResources_orcWarriorLv1Class_dataClass}
Symbol 56 BinaryData {EmbeddedResources_fx_explosionClass_dataClass}
Symbol 57 Bitmap {EmbeddedResources_ElfArcherIconClass}
Symbol 58 Bitmap {EmbeddedResources_OrcCavalryIconClass}
Symbol 59 BinaryData {EmbeddedResources_doodad_04Class_dataClass}
Symbol 60 BinaryData {EmbeddedResources_elfTowerLvl2Class_dataClass}
Symbol 61 BinaryData {EmbeddedResources_elfMageClass_dataClass}
Symbol 62 Bitmap {EmbeddedResources_particleSmoke02Class}
Symbol 63 BinaryData {EmbeddedResources_orcCavaleryLv3Class_dataClass}
Symbol 64 Bitmap {EmbeddedResources_particleStoneBlack01Class}
Symbol 65 BinaryData {EmbeddedResources_orcCavaleryLv5Class_dataClass}
Symbol 66 BinaryData {EmbeddedResources_orcWarriorLv4Class_dataClass}
Symbol 67 BinaryData {EmbeddedResources_elfCavaleryLv1Class_dataClass}
Symbol 68 BinaryData {EmbeddedResources_orcMageClass_dataClass}
Symbol 69 BinaryData {EmbeddedResources_doodad_05Class_dataClass}
Symbol 70 BinaryData {EmbeddedResources_doodad_06Class_dataClass}
Symbol 71 BinaryData {EmbeddedResources_elfTowerLvl4Class_dataClass}
Symbol 72 Bitmap {EmbeddedResources_victoryClass}
Symbol 73 Bitmap {EmbeddedResources_particleStoneWhite01Class}
Symbol 74 BinaryData {EmbeddedResources_doodad_03Class_dataClass}
Symbol 75 Bitmap {EmbeddedResources_particleSmoke03Class}
Symbol 76 BinaryData {EmbeddedResources_orcWarriorLv3Class_dataClass}
Symbol 77 BinaryData {EmbeddedResources_bg_middleClass_dataClass}
Symbol 78 BinaryData {EmbeddedResources_orcTowerLvl4Class_dataClass}
Symbol 79 BinaryData {EmbeddedResources_elfCavaleryLv3Class_dataClass}
Symbol 80 BinaryData {EmbeddedResources_orcCavaleryLv2Class_dataClass}
Symbol 81 BinaryData {EmbeddedResources_tutorialmcClass_dataClass}
Symbol 82 BinaryData {EmbeddedResources_elfArcherLv2Class_dataClass}
Symbol 83 BinaryData {EmbeddedResources_orcWarriorLv5Class_dataClass}
Symbol 84 Bitmap {EmbeddedResources_particleStoneBlack03Class}
Symbol 85 BinaryData {EmbeddedResources_elfTowerLvl5Class_dataClass}
Symbol 86 BinaryData {EmbeddedResources_elfCavaleryLv5Class_dataClass}
Symbol 87 Bitmap {EmbeddedResources_particleBloodSpatter03Class}
Symbol 88 BinaryData {EmbeddedResources_orcTowerLvl3Class_dataClass}
Symbol 89 BinaryData {EmbeddedResources_elfArcherLv1Class_dataClass}
Symbol 90 BinaryData {EmbeddedResources_blacksmithXMLClass}
Symbol 91 BinaryData {EmbeddedResources_doodad_02Class_dataClass}
Symbol 92 BinaryData {EmbeddedResources_orcTowerLvl1Class_dataClass}
Symbol 93 BinaryData {EmbeddedResources_orcTowerLvl2Class_dataClass}
Symbol 94 BinaryData {EmbeddedResources_orcArcherLv5Class_dataClass}
Symbol 95 BinaryData {EmbeddedResources_elfWarriorLv2Class_dataClass}
Symbol 96 BinaryData {EmbeddedResources_scoreBoardMCClass_dataClass}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1457 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 2Symbol 3 as "EmbeddedResources_onClickClass"
ExportAssets (56)Timeline Frame 2Symbol 4 as "EmbeddedResources_deathElfClass"
ExportAssets (56)Timeline Frame 2Symbol 5 as "EmbeddedResources_specialAtkClass"
ExportAssets (56)Timeline Frame 2Symbol 6 as "EmbeddedResources_swordAtkClass"
ExportAssets (56)Timeline Frame 2Symbol 7 as "EmbeddedResources_gamemusicClass"
ExportAssets (56)Timeline Frame 2Symbol 8 as "EmbeddedResources_arrowFlightClass"
ExportAssets (56)Timeline Frame 2Symbol 9 as "EmbeddedResources_maceAtkClass"
ExportAssets (56)Timeline Frame 2Symbol 10 as "EmbeddedResources_deathOrcClass"
ExportAssets (56)Timeline Frame 2Symbol 11 as "EmbeddedResources_mouseOverClass"
SerialNumber (41)Timeline Frame 1

Labels

"Factory"Frame 1
"GameLoader"Frame 2




http://swfchan.com/27/133530/info.shtml
Created: 10/2 -2019 06:48:17 Last modified: 10/2 -2019 06:48:17 Server time: 29/04 -2024 10:08:13