From 6aad6052b31c577fb235fe92c37589803ad8fd27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Fri, 29 Jan 2021 10:53:53 +0100 Subject: [PATCH] DataProvider in tests for ASC2 compiled SWF --- .../decompiler/flash/ActionScript3Test.java | 607 +++++++++--------- .../flash/generators/AS3Generator.java | 21 +- .../flashdevelop/bin/flashdevelop.swf | Bin 20105 -> 15666 bytes .../flashdevelop/bin/flashdevelop_asc2.swf | Bin 15648 -> 15666 bytes .../flashdevelop/bin/flashdevelop_flex.swf | Bin 20105 -> 20100 bytes .../flashdevelop/flashdevelop.as3proj | 5 +- .../flashdevelop/obj/flashdevelopConfig.old | 2 +- .../flashdevelop/obj/flashdevelopConfig.xml | 4 +- .../flashdevelop/src/tests/TestVector.as | 3 +- 9 files changed, 332 insertions(+), 310 deletions(-) diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript3Test.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript3Test.java index 7ba5ef577..a03f64894 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript3Test.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript3Test.java @@ -43,6 +43,7 @@ import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** @@ -56,7 +57,8 @@ public class ActionScript3Test extends ActionScriptTestBase { @BeforeClass public void init() throws IOException, InterruptedException { //Main.initLogging(false); - swfMap.put("standard", new SWF(new BufferedInputStream(new FileInputStream("testdata/flashdevelop/bin/flashdevelop.swf")), false)); + swfMap.put("standard", new SWF(new BufferedInputStream(new FileInputStream("testdata/flashdevelop/bin/flashdevelop_flex.swf")), false)); + swfMap.put("standard_asc2", new SWF(new BufferedInputStream(new FileInputStream("testdata/flashdevelop/bin/flashdevelop_asc2.swf")), false)); swfMap.put("assembled", new SWF(new BufferedInputStream(new FileInputStream("testdata/custom/bin/custom.swf")), false)); Configuration.autoDeobfuscate.set(false); Configuration.simplifyExpressions.set(false); @@ -142,15 +144,23 @@ public class ActionScript3Test extends ActionScriptTestBase { assertEquals(actualResult, expectedResult); } - @Test - public void testStandardArguments() { - decompileMethod("standard", "testArguments", "return arguments[0];\r\n", - false); + @DataProvider + private Object[][] standardSwfNamesProvider() { + return new Object[][]{ + {"standard"}, + {"standard_asc2"} + }; } - @Test - public void testStandardCatchFinally() { - decompileMethod("standard", "testCatchFinally", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardArguments(String swfUsed) { + decompileMethod(swfUsed, "testArguments", "return arguments[0];\r\n", + false); + } + + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardCatchFinally(String swfUsed) { + decompileMethod(swfUsed, "testCatchFinally", "var a:* = 5;\r\n" + "try\r\n" + "{\r\n" + "a = 9;\r\n" @@ -164,12 +174,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "trace(\"infinally\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardChain2() { - decompileMethod("standard", "testChain2", "var g:Array = null;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardChain2(String swfUsed) { + decompileMethod(swfUsed, "testChain2", "var g:Array = null;\r\n" + "var h:Boolean = false;\r\n" + "var extraLine:Boolean = false;\r\n" + "var r:int = 7;\r\n" @@ -184,12 +194,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "trace(\"ch\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardChainedAssignments() { - decompileMethod("standard", "testChainedAssignments", "var a:int = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardChainedAssignments(String swfUsed) { + decompileMethod(swfUsed, "testChainedAssignments", "var a:int = 0;\r\n" + "var b:int = 0;\r\n" + "var c:int = 0;\r\n" + "var d:int = 0;\r\n" @@ -197,20 +207,20 @@ public class ActionScript3Test extends ActionScriptTestBase { + "var e:TestClass2 = TestClass2.createMe(\"test\");\r\n" + "e.attrib1 = e.attrib2 = e.attrib3 = this.getCounter();\r\n" + "this.traceIt(e.toString());\r\n", - false); + false); } - @Test - public void testStandardComplexExpressions() { - decompileMethod("standard", "testComplexExpressions", "var i:int = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardComplexExpressions(String swfUsed) { + decompileMethod(swfUsed, "testComplexExpressions", "var i:int = 0;\r\n" + "var j:int = 0;\r\n" + "j = i = i + (i = i + i++);\r\n", - false); + false); } - @Test - public void testStandardContinueLevels() { - decompileMethod("standard", "testContinueLevels", "var b:* = undefined;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardContinueLevels(String swfUsed) { + decompileMethod(swfUsed, "testContinueLevels", "var b:* = undefined;\r\n" + "var c:* = undefined;\r\n" + "var d:* = undefined;\r\n" + "var e:* = undefined;\r\n" @@ -270,12 +280,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "trace(\"hello\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardDecl2() { - decompileMethod("standard", "testDecl2", "var k:int = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardDecl2(String swfUsed) { + decompileMethod(swfUsed, "testDecl2", "var k:int = 0;\r\n" + "var i:int = 5;\r\n" + "i = i + 7;\r\n" + "if(i == 5)\r\n" @@ -286,12 +296,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "}\r\n" + "k = 7;\r\n", - false); + false); } - @Test - public void testStandardDeclarations() { - decompileMethod("standard", "testDeclarations", "var vall:* = undefined;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardDeclarations(String swfUsed) { + decompileMethod(swfUsed, "testDeclarations", "var vall:* = undefined;\r\n" + "var vstr:String = null;\r\n" + "var vint:int = 0;\r\n" + "var vuint:uint = 0;\r\n" @@ -306,12 +316,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "vnumber = 0.5;\r\n" + "vnumber = 6;\r\n" + "vobject = vclass;\r\n", - false); + false); } - @Test - public void testStandardDefaultNotLastGrouped() { - decompileMethod("standard", "testDefaultNotLastGrouped", "var k:* = 10;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardDefaultNotLastGrouped(String swfUsed) { + decompileMethod(swfUsed, "testDefaultNotLastGrouped", "var k:* = 10;\r\n" + "switch(k)\r\n" + "{\r\n" + "case \"six\":\r\n" @@ -324,24 +334,24 @@ public class ActionScript3Test extends ActionScriptTestBase { + "trace(\"4\");\r\n" + "}\r\n" + "trace(\"after switch\");\r\n", - false); + false); } - @Test - public void testStandardDoWhile() { - decompileMethod("standard", "testDoWhile", "var a:* = 8;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardDoWhile(String swfUsed) { + decompileMethod(swfUsed, "testDoWhile", "var a:* = 8;\r\n" + "do\r\n" + "{\r\n" + "trace(\"a=\" + a);\r\n" + "a++;\r\n" + "}\r\n" + "while(a < 20);\r\n", - false); + false); } - @Test - public void testStandardDoWhile2() { - decompileMethod("standard", "testDoWhile2", "var k:int = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardDoWhile2(String swfUsed) { + decompileMethod(swfUsed, "testDoWhile2", "var k:int = 5;\r\n" + "do\r\n" + "{\r\n" + "k++;\r\n" @@ -357,12 +367,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "while(k < 9);\r\n" + "return 2;\r\n", - false); + false); } - @Test - public void testStandardExpressions() { - decompileMethod("standard", "testExpressions", "var arr:Array = null;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardExpressions(String swfUsed) { + decompileMethod(swfUsed, "testExpressions", "var arr:Array = null;\r\n" + "var i:int = 5;\r\n" + "var j:int = 5;\r\n" + "if((i = i = i / 2) == 1 || i == 2)\r\n" @@ -378,12 +388,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "arr[0]();\r\n" + "}\r\n" + "return i == 0;\r\n", - false); + false); } - @Test - public void testStandardFinallyZeroJump() { - decompileMethod("standard", "testFinallyZeroJump", "var str:String = param1;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardFinallyZeroJump(String swfUsed) { + decompileMethod(swfUsed, "testFinallyZeroJump", "var str:String = param1;\r\n" + "try\r\n" + "{\r\n" + "}\r\n" @@ -400,21 +410,21 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "return \"hu\" + str;\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardFor() { - decompileMethod("standard", "testFor", "for(var a:* = 0; a < 10; a++)\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardFor(String swfUsed) { + decompileMethod(swfUsed, "testFor", "for(var a:* = 0; a < 10; a++)\r\n" + "{\r\n" + "trace(\"a=\" + a);\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardForAnd() { - decompileMethod("standard", "testForAnd", "var x:Boolean = false;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardForAnd(String swfUsed) { + decompileMethod(swfUsed, "testForAnd", "var x:Boolean = false;\r\n" + "var len:int = 5;\r\n" + "var a:int = 4;\r\n" + "var b:int = 7;\r\n" @@ -434,12 +444,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "trace(\"D\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardForBreak() { - decompileMethod("standard", "testForBreak", "for(var a:* = 0; a < 10; a++)\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardForBreak(String swfUsed) { + decompileMethod(swfUsed, "testForBreak", "for(var a:* = 0; a < 10; a++)\r\n" + "{\r\n" + "if(a == 5)\r\n" + "{\r\n" @@ -447,12 +457,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "trace(\"hello:\" + a);\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardForContinue() { - decompileMethod("standard", "testForContinue", "for(var a:* = 0; a < 10; a = a + 1)\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardForContinue(String swfUsed) { + decompileMethod(swfUsed, "testForContinue", "for(var a:* = 0; a < 10; a = a + 1)\r\n" + "{\r\n" + "if(a == 9)\r\n" + "{\r\n" @@ -475,12 +485,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "trace(\"part5\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardForEach() { - decompileMethod("standard", "testForEach", "var list:Array = null;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardForEach(String swfUsed) { + decompileMethod(swfUsed, "testForEach", "var list:Array = null;\r\n" + "var item:* = undefined;\r\n" + "list = new Array();\r\n" + "list[0] = \"first\";\r\n" @@ -490,12 +500,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "trace(\"item #\" + item);\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardForEachObjectArray() { - decompileMethod("standard", "testForEachObjectArray", "var list:Array = null;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardForEachObjectArray(String swfUsed) { + decompileMethod(swfUsed, "testForEachObjectArray", "var list:Array = null;\r\n" + "var test:Array = null;\r\n" + "list = new Array();\r\n" + "list[0] = \"first\";\r\n" @@ -507,12 +517,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "trace(\"item #\" + test[0]);\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardForEachObjectAttribute() { - decompileMethod("standard", "testForEachObjectAttribute", "var list:Array = null;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardForEachObjectAttribute(String swfUsed) { + decompileMethod(swfUsed, "testForEachObjectAttribute", "var list:Array = null;\r\n" + "list = new Array();\r\n" + "list[0] = \"first\";\r\n" + "list[1] = \"second\";\r\n" @@ -521,12 +531,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "trace(\"item #\" + this.testPriv);\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardForGoto() { - decompileMethod("standard", "testForGoto", "var c:int = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardForGoto(String swfUsed) { + decompileMethod(swfUsed, "testForGoto", "var c:int = 0;\r\n" + "var len:int = 5;\r\n" + "for(var i:uint = 0; i < len; i++)\r\n" + "{\r\n" @@ -546,12 +556,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "trace(\"C\");\r\n" + "}\r\n" + "trace(\"exit\");\r\n", - false); + false); } - @Test - public void testStandardForIn() { - decompileMethod("standard", "testForIn", "var dic:Dictionary = null;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardForIn(String swfUsed) { + decompileMethod(swfUsed, "testForIn", "var dic:Dictionary = null;\r\n" + "var item:* = null;\r\n" + "for(item in dic)\r\n" + "{\r\n" @@ -561,12 +571,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "trace(item);\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardForXml() { - decompileMethod("standard", "testForXml", "var c:int = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardForXml(String swfUsed) { + decompileMethod(swfUsed, "testForXml", "var c:int = 0;\r\n" + "var name:String = \"ahoj\";\r\n" + "var myXML:XML = \r\n" + "\r\n" @@ -594,12 +604,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "trace(\"C\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardGotos() { - decompileMethod("standard", "testGotos", "var a:Boolean = true;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardGotos(String swfUsed) { + decompileMethod(swfUsed, "testGotos", "var a:Boolean = true;\r\n" + "var b:Boolean = false;\r\n" + "if(a)\r\n" + "{\r\n" @@ -626,12 +636,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "trace(\"after\");\r\n" + "}\r\n" + "return 89;\r\n", - false); + false); } - @Test - public void testStandardGotos2() { - decompileMethod("standard", "testGotos2", "var a:Boolean = true;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardGotos2(String swfUsed) { + decompileMethod(swfUsed, "testGotos2", "var a:Boolean = true;\r\n" + "var b:Boolean = false;\r\n" + "var c:Boolean = true;\r\n" + "if(a)\r\n" @@ -650,12 +660,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "trace(\"E\");\r\n" + "}\r\n" + "return 5;\r\n", - false); + false); } - @Test - public void testStandardGotos3() { - decompileMethod("standard", "testGotos3", "var i:int = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardGotos3(String swfUsed) { + decompileMethod(swfUsed, "testGotos3", "var i:int = 0;\r\n" + "var a:int = 5;\r\n" + "if(a > 5)\r\n" + "{\r\n" @@ -677,12 +687,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "trace(\"C\");\r\n" + "}\r\n" + "trace(\"return\");\r\n", - false); + false); } - @Test - public void testStandardGotos4() { - decompileMethod("standard", "testGotos4", "var a:int = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardGotos4(String swfUsed) { + decompileMethod(swfUsed, "testGotos4", "var a:int = 5;\r\n" + "if(a > 3)\r\n" + "{\r\n" + "if(a < 7)\r\n" @@ -698,12 +708,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "}\r\n" + "trace(\"return\");\r\n", - false); + false); } - @Test - public void testStandardGotos5() { - decompileMethod("standard", "testGotos5", "var j:int = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardGotos5(String swfUsed) { + decompileMethod(swfUsed, "testGotos5", "var j:int = 0;\r\n" + "var s:String = \"A\";\r\n" + "for(var i:int = 0; i < 10; i++)\r\n" + "{\r\n" @@ -722,12 +732,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "j++;\r\n" + "}\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardGotos6() { - decompileMethod("standard", "testGotos6", "var a:Boolean = true;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardGotos6(String swfUsed) { + decompileMethod(swfUsed, "testGotos6", "var a:Boolean = true;\r\n" + "var s:String = \"a\";\r\n" + "if(a)\r\n" + "{\r\n" @@ -747,12 +757,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "trace(\"D\");\r\n" + "}\r\n" + "trace(\"finish\");\r\n", - false); + false); } - @Test - public void testStandardGotos7() { - decompileMethod("standard", "testGotos7", "for(var i:int = 0; i < 10; i++)\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardGotos7(String swfUsed) { + decompileMethod(swfUsed, "testGotos7", "for(var i:int = 0; i < 10; i++)\r\n" + "{\r\n" + "switch(i)\r\n" + "{\r\n" @@ -776,28 +786,28 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "trace(\"before loop end\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardHello() { - decompileMethod("standard", "testHello", "trace(\"hello\");\r\n", - false); + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardHello(String swfUsed) { + decompileMethod(swfUsed, "testHello", "trace(\"hello\");\r\n", + false); } - @Test - public void testStandardIf() { - decompileMethod("standard", "testIf", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardIf(String swfUsed) { + decompileMethod(swfUsed, "testIf", "var a:* = 5;\r\n" + "if(a == 7)\r\n" + "{\r\n" + "trace(\"onTrue\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardIfElse() { - decompileMethod("standard", "testIfElse", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardIfElse(String swfUsed) { + decompileMethod(swfUsed, "testIfElse", "var a:* = 5;\r\n" + "if(a == 7)\r\n" + "{\r\n" + "trace(\"onTrue\");\r\n" @@ -806,12 +816,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "trace(\"onFalse\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardIfInIf() { - decompileMethod("standard", "testIfInIf", "var k:int = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardIfInIf(String swfUsed) { + decompileMethod(swfUsed, "testIfInIf", "var k:int = 5;\r\n" + "if(k > 5 && k < 20)\r\n" + "{\r\n" + "trace(\"A\");\r\n" @@ -830,12 +840,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "trace(\"C\");\r\n" + "return 7;\r\n", - false); + false); } - @Test - public void testStandardInc2() { - decompileMethod("standard", "testInc2", "var a:* = [1];\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardInc2(String swfUsed) { + decompileMethod(swfUsed, "testInc2", "var a:* = [1];\r\n" + "a[this.getInt()]++;\r\n" + "var d:* = a[this.getInt()]++;\r\n" + "var e:* = ++a[this.getInt()];\r\n" @@ -843,12 +853,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "b++;\r\n" + "var c:* = 1;\r\n" + "b = c++;\r\n", - false); + false); } - @Test - public void testStandardIncDec() { - decompileMethod("standard", "testIncDec", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardIncDec(String swfUsed) { + decompileMethod(swfUsed, "testIncDec", "var a:* = 5;\r\n" + "var b:* = 0;\r\n" + "trace(\"++var\");\r\n" + "b = ++a;\r\n" @@ -882,12 +892,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "chars[index++] = 5;\r\n" + "trace(\"arr[++e]\");\r\n" + "chars[++index] = 5;\r\n", - false); + false); } - @Test - public void testStandardInlineFunctions() { - decompileMethod("standard", "testInlineFunctions", "var first:String = null;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardInlineFunctions(String swfUsed) { + decompileMethod(swfUsed, "testInlineFunctions", "var first:String = null;\r\n" + "first = \"value1\";\r\n" + "var traceParameter:Function = function(aParam:String):String\r\n" + "{\r\n" @@ -904,12 +914,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "return first;\r\n" + "};\r\n" + "traceParameter(\"hello\");\r\n", - false); + false); } - @Test - public void testStandardInnerFunctions() { - decompileMethod("standard", "testInnerFunctions", "var s:int = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardInnerFunctions(String swfUsed) { + decompileMethod(swfUsed, "testInnerFunctions", "var s:int = 0;\r\n" + "var innerFunc:Function = function(b:String):*\r\n" + "{\r\n" + "trace(b);\r\n" @@ -920,12 +930,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "s = 8;\r\n" + "}\r\n" + "innerFunc(a);\r\n", - false); + false); } - @Test - public void testStandardInnerIf() { - decompileMethod("standard", "testInnerIf", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardInnerIf(String swfUsed) { + decompileMethod(swfUsed, "testInnerIf", "var a:* = 5;\r\n" + "var b:* = 4;\r\n" + "if(a == 5)\r\n" + "{\r\n" @@ -947,12 +957,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "trace(\"b!=7\");\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } - @Test - public void testStandardInnerTry() { - decompileMethod("standard", "testInnerTry", "try\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardInnerTry(String swfUsed) { + decompileMethod(swfUsed, "testInnerTry", "try\r\n" + "{\r\n" + "try\r\n" + "{\r\n" @@ -972,12 +982,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "trace(\"finally block\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardLogicalComputing() { - decompileMethod("standard", "testLogicalComputing", "var b:Boolean = false;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardLogicalComputing(String swfUsed) { + decompileMethod(swfUsed, "testLogicalComputing", "var b:Boolean = false;\r\n" + "var i:* = 5;\r\n" + "var j:* = 7;\r\n" + "if(i > j)\r\n" @@ -986,19 +996,19 @@ public class ActionScript3Test extends ActionScriptTestBase { + "b = true;\r\n" + "}\r\n" + "b = (i == 0 || i == 1) && j == 0;\r\n", - false); + false); } - @Test - public void testStandardManualConvert() { - decompileMethod("standard", "testManualConvert", "trace(\"String(this).length\");\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardManualConvert(String swfUsed) { + decompileMethod(swfUsed, "testManualConvert", "trace(\"String(this).length\");\r\n" + "trace(String(this).length);\r\n", - false); + false); } - @Test - public void testStandardMissingDefault() { - decompileMethod("standard", "testMissingDefault", "var jj:int = 1;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardMissingDefault(String swfUsed) { + decompileMethod(swfUsed, "testMissingDefault", "var jj:int = 1;\r\n" + "switch(jj)\r\n" + "{\r\n" + "case 1:\r\n" @@ -1010,12 +1020,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "default:\r\n" + "jj = 3;\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardMultipleCondition() { - decompileMethod("standard", "testMultipleCondition", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardMultipleCondition(String swfUsed) { + decompileMethod(swfUsed, "testMultipleCondition", "var a:* = 5;\r\n" + "var b:* = 8;\r\n" + "var c:* = 9;\r\n" + "if((a <= 4 || b <= 8) && c == 7)\r\n" @@ -1026,44 +1036,44 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "trace(\"onFalse\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardNamedAnonFunctions() { - decompileMethod("standard", "testNamedAnonFunctions", "var test:* = new function testFunc(param1:*, param2:int, param3:Array):Boolean\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardNamedAnonFunctions(String swfUsed) { + decompileMethod(swfUsed, "testNamedAnonFunctions", "var test:* = new function testFunc(param1:*, param2:int, param3:Array):Boolean\r\n" + "{\r\n" + "return (param1 as TestClass2).attrib1 == 5;\r\n" + "};\r\n", - false); + false); } - @Test - public void testStandardNames() { - decompileMethod("standard", "testNames", "var ns:* = this.getNamespace();\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardNames(String swfUsed) { + decompileMethod(swfUsed, "testNames", "var ns:* = this.getNamespace();\r\n" + "var name:* = this.getName();\r\n" + "var a:* = ns::unnamespacedFunc();\r\n" + "var b:* = ns::[name];\r\n" + "trace(b.c);\r\n" + "var c:* = myInternal::neco;\r\n", - false); + false); } - @Test - public void testStandardParamNames() { - decompileMethod("standard", "testParamNames", "return firstp + secondp + thirdp;\r\n", - false); + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardParamNames(String swfUsed) { + decompileMethod(swfUsed, "testParamNames", "return firstp + secondp + thirdp;\r\n", + false); } - @Test - public void testStandardParamsCount() { - decompileMethod("standard", "testParamsCount", "return firstp;\r\n", - false); + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardParamsCount(String swfUsed) { + decompileMethod(swfUsed, "testParamsCount", "return firstp;\r\n", + false); } - @Test - public void testStandardPrecedence() { - decompileMethod("standard", "testPrecedence", "var a:* = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardPrecedence(String swfUsed) { + decompileMethod(swfUsed, "testPrecedence", "var a:* = 0;\r\n" + "a = (5 + 6) * 7;\r\n" + "a = 5 * (2 + 3);\r\n" + "a = 5 + 6 * 7;\r\n" @@ -1075,78 +1085,78 @@ public class ActionScript3Test extends ActionScriptTestBase { + "a = 1 * 2 * 3;\r\n" + "a = 1 * 2 / 3;\r\n" + "trace(\"a=\" + a);\r\n", - false); + false); } - @Test - public void testStandardPrecedenceX() { - decompileMethod("standard", "testPrecedenceX", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardPrecedenceX(String swfUsed) { + decompileMethod(swfUsed, "testPrecedenceX", "var a:* = 5;\r\n" + "var b:* = 2;\r\n" + "var c:* = 3;\r\n" + "var d:* = a << (b >>> c);\r\n" + "var e:* = a << b >>> c;\r\n", - false); + false); } - @Test - public void testStandardProperty() { - decompileMethod("standard", "testProperty", "var d:* = new TestClass1();\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardProperty(String swfUsed) { + decompileMethod(swfUsed, "testProperty", "var d:* = new TestClass1();\r\n" + "var k:* = 7 + 8;\r\n" + "if(k == 15)\r\n" + "{\r\n" + "d.method(d.attrib * 5);\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardRegExp() { - decompileMethod("standard", "testRegExp", "var a1:* = /[a-z\\r\\n0-9\\\\]+/i;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardRegExp(String swfUsed) { + decompileMethod(swfUsed, "testRegExp", "var a1:* = /[a-z\\r\\n0-9\\\\]+/i;\r\n" + "var a2:* = /[a-z\\r\\n0-9\\\\]+/i;\r\n" + "var b1:* = /[0-9AB]+/;\r\n" + "var b2:* = /[0-9AB]+/;\r\n", - false); + false); } - @Test - public void testStandardRest() { - decompileMethod("standard", "testRest", "trace(\"firstRest:\" + restval[0]);\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardRest(String swfUsed) { + decompileMethod(swfUsed, "testRest", "trace(\"firstRest:\" + restval[0]);\r\n" + "return firstp;\r\n", - false); + false); } - @Test - public void testStandardStrictEquals() { - decompileMethod("standard", "testStrictEquals", "var k:int = 6;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardStrictEquals(String swfUsed) { + decompileMethod(swfUsed, "testStrictEquals", "var k:int = 6;\r\n" + "if(this.f() !== this.f())\r\n" + "{\r\n" + "trace(\"is eight\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardStringConcat() { - decompileMethod("standard", "testStringConcat", "var k:int = 8;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardStringConcat(String swfUsed) { + decompileMethod(swfUsed, "testStringConcat", "var k:int = 8;\r\n" + "this.traceIt(\"hello\" + 5 * 6);\r\n" + "this.traceIt(\"hello\" + (k - 1));\r\n" + "this.traceIt(\"hello\" + 5 + 6);\r\n", - false); + false); } - @Test - public void testStandardStrings() { - decompileMethod("standard", "testStrings", "trace(\"hello\");\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardStrings(String swfUsed) { + decompileMethod(swfUsed, "testStrings", "trace(\"hello\");\r\n" + "trace(\"quotes:\\\"hello!\\\"\");\r\n" + "trace(\"backslash: \\\\ \");\r\n" + "trace(\"single quotes: \\'hello!\\'\");\r\n" + "trace(\"new line \\r\\n hello!\");\r\n", - false); + false); } - @Test - public void testStandardSwitch() { - decompileMethod("standard", "testSwitch", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardSwitch(String swfUsed) { + decompileMethod(swfUsed, "testSwitch", "var a:* = 5;\r\n" + "switch(a)\r\n" + "{\r\n" + "case 57 * a:\r\n" @@ -1160,12 +1170,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "case 89:\r\n" + "trace(\"eightynine\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardSwitchComma() { - decompileMethod("standard", "testSwitchComma", "var b:int = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardSwitchComma(String swfUsed) { + decompileMethod(swfUsed, "testSwitchComma", "var b:int = 5;\r\n" + "var a:String = \"A\";\r\n" + "switch(a)\r\n" + "{\r\n" @@ -1177,12 +1187,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "case TestSwitchComma.X, \"C\":\r\n" + "trace(\"is C\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardSwitchDefault() { - decompileMethod("standard", "testSwitchDefault", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardSwitchDefault(String swfUsed) { + decompileMethod(swfUsed, "testSwitchDefault", "var a:* = 5;\r\n" + "switch(a)\r\n" + "{\r\n" + "case 57 * a:\r\n" @@ -1199,23 +1209,23 @@ public class ActionScript3Test extends ActionScriptTestBase { + "default:\r\n" + "trace(\"default clause\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardTernarOperator() { - decompileMethod("standard", "testTernarOperator", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardTernarOperator(String swfUsed) { + decompileMethod(swfUsed, "testTernarOperator", "var a:* = 5;\r\n" + "var b:* = 4;\r\n" + "var c:* = 4;\r\n" + "var d:* = 78;\r\n" + "var e:* = a == b?c == d?1:7:3;\r\n" + "trace(\"e=\" + e);\r\n", - false); + false); } - @Test - public void testStandardTry() { - decompileMethod("standard", "testTry", "var i:int = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardTry(String swfUsed) { + decompileMethod(swfUsed, "testTry", "var i:int = 0;\r\n" + "i = 7;\r\n" + "try\r\n" + "{\r\n" @@ -1235,12 +1245,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "trace(\"Finally part\");\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } - @Test - public void testStandardTryReturn() { - decompileMethod("standard", "testTryReturn", "var i:int = 0;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardTryReturn(String swfUsed) { + decompileMethod(swfUsed, "testTryReturn", "var i:int = 0;\r\n" + "var b:Boolean = false;\r\n" + "try\r\n" + "{\r\n" @@ -1263,12 +1273,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "}\r\n" + "return 4;\r\n", - false); + false); } - @Test - public void testStandardTryReturn2() { - decompileMethod("standard", "testTryReturn2", "var c:Boolean = false;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardTryReturn2(String swfUsed) { + decompileMethod(swfUsed, "testTryReturn2", "var c:Boolean = false;\r\n" + "trace(\"before\");\r\n" + "var a:Boolean = true;\r\n" + "var b:Boolean = false;\r\n" @@ -1306,12 +1316,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "trace(\"after\");\r\n" + "return \"X\";\r\n", - false); + false); } - @Test - public void testStandardUsagesTry() { - decompileMethod("standard", "testUsagesTry", "var k:int = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardUsagesTry(String swfUsed) { + decompileMethod(swfUsed, "testUsagesTry", "var k:int = 5;\r\n" + "switch(k)\r\n" + "{\r\n" + "case 0:\r\n" @@ -1340,29 +1350,30 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "trace(\"after\");\r\n" + "return \"X\";\r\n", - false); + false); } - @Test - public void testStandardVector() { - decompileMethod("standard", "testVector", "var v:Vector. = new Vector.();\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardVector(String swfUsed) { + decompileMethod(swfUsed, "testVector", "var v:Vector. = new Vector.();\r\n" + "v.push(\"hello\");\r\n" + "v[0] = \"hi\";\r\n" - + "v[5 * 8 - 39] = \"hi2\";\r\n" + + "var a:int = 5;\r\n" + + "v[a * 8 - 39] = \"hi2\";\r\n" + "trace(v[0]);\r\n", - false); + false); } - @Test - public void testStandardVector2() { - decompileMethod("standard", "testVector2", "var a:Vector.> = new Vector.>();\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardVector2(String swfUsed) { + decompileMethod(swfUsed, "testVector2", "var a:Vector.> = new Vector.>();\r\n" + "var b:Vector. = new [10,20,30];\r\n", - false); + false); } - @Test - public void testStandardWhileAnd() { - decompileMethod("standard", "testWhileAnd", "var a:int = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardWhileAnd(String swfUsed) { + decompileMethod(swfUsed, "testWhileAnd", "var a:int = 5;\r\n" + "var b:int = 10;\r\n" + "while(a < 10 && b > 1)\r\n" + "{\r\n" @@ -1371,12 +1382,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "a = 7;\r\n" + "b = 9;\r\n", - false); + false); } - @Test - public void testStandardWhileContinue() { - decompileMethod("standard", "testWhileContinue", "var a:* = 5;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardWhileContinue(String swfUsed) { + decompileMethod(swfUsed, "testWhileContinue", "var a:* = 5;\r\n" + "while(true)\r\n" + "{\r\n" + "if(a == 9)\r\n" @@ -1393,12 +1404,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "trace(\"hello2\");\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardWhileTry() { - decompileMethod("standard", "testWhileTry", "while(true)\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardWhileTry(String swfUsed) { + decompileMethod(swfUsed, "testWhileTry", "while(true)\r\n" + "{\r\n" + "try\r\n" + "{\r\n" @@ -1416,12 +1427,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "continue;\r\n" + "}\r\n" + "}\r\n", - false); + false); } - @Test - public void testStandardWhileTry2() { - decompileMethod("standard", "testWhileTry2", "var j:* = undefined;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardWhileTry2(String swfUsed) { + decompileMethod(swfUsed, "testWhileTry2", "var j:* = undefined;\r\n" + "for(var i:* = 0; i < 100; i++)\r\n" + "{\r\n" + "try\r\n" @@ -1442,12 +1453,12 @@ public class ActionScript3Test extends ActionScriptTestBase { + "trace(\"after_try\");\r\n" + "}\r\n" + "trace(\"end\");\r\n", - false); + false); } - @Test - public void testStandardXml() { - decompileMethod("standard", "testXml", "var g:XML = null;\r\n" + @Test(dataProvider = "standardSwfNamesProvider") + public void testStandardXml(String swfUsed) { + decompileMethod(swfUsed, "testXml", "var g:XML = null;\r\n" + "var name:String = \"ahoj\";\r\n" + "var myXML:XML = \r\n" + "\r\n" @@ -1558,20 +1569,20 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "]]>\r\n" + ";\r\n", - false); + false); } @Test public void testAssembledDoubleDup() { decompileMethod("assembled", "testDoubleDup", "var _loc10_:Rectangle = myprop(_loc5_);\r\n" + "_loc10_.mymethod(-_loc10_.width,-_loc10_.height);\r\n", - false); + false); } @Test public void testAssembledDup() { decompileMethod("assembled", "testDup", "return 1 - (var _loc1_:Number = 1 - _loc1_ / _loc4_) * _loc1_;\r\n", - false); + false); } @Test @@ -1582,7 +1593,7 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "trace(_loc2_);\r\n" + "}\r\n", - false); + false); } @Test @@ -1598,7 +1609,7 @@ public class ActionScript3Test extends ActionScriptTestBase { + "}\r\n" + "}\r\n" + "_loc3_ = 0;\r\n", - false); + false); } @Test @@ -1607,14 +1618,14 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "_loc6_.methodname(_loc1_,_loc2_,_loc5_);\r\n" + "}\r\n", - false); + false); } @Test public void testAssembledIncrement() { decompileMethod("assembled", "testIncrement", "super();\r\n" + "b = a++;\r\n", - false); + false); } @Test @@ -1623,13 +1634,13 @@ public class ActionScript3Test extends ActionScriptTestBase { + "{\r\n" + "somemethod();\r\n" + "}\r\n", - false); + false); } @Test public void testAssembledIncrement3() { decompileMethod("assembled", "testIncrement3", "_loc1_.length--;\r\n", - false); + false); } @Test @@ -1637,13 +1648,13 @@ public class ActionScript3Test extends ActionScriptTestBase { decompileMethod("assembled", "testSetSlotDup", "var _loc5_:int = 5;\r\n" + "myname.somemethod(\"okay\",myslot = _loc5_);\r\n" + "myname.start();\r\n", - false); + false); } @Test public void testAssembledSetSlotFindProperty() { decompileMethod("assembled", "testSetSlotFindProperty", "return var myprop:int = 50;\r\n", - false); + false); } @Test @@ -1664,7 +1675,7 @@ public class ActionScript3Test extends ActionScriptTestBase { + "_loc2_ = \"C\";\r\n" + "}\r\n" + "_loc2_ = \"after\";\r\n", - false); + false); } @Test @@ -1687,7 +1698,7 @@ public class ActionScript3Test extends ActionScriptTestBase { + "default:\r\n" + "_loc2_ = 100;\r\n" + "}\r\n", - false); + false); } @Test diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/generators/AS3Generator.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/generators/AS3Generator.java index d25665982..5e84f4458 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/generators/AS3Generator.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/generators/AS3Generator.java @@ -12,7 +12,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.generators; import com.jpexs.decompiler.flash.SWF; @@ -76,11 +77,21 @@ public class AS3Generator { continue; } if (name.equals("run")) { - s.append("@Test\r\npublic void "); + if (identifier.equals("standard")) { + s.append("@Test(dataProvider = \"standardSwfNamesProvider\")\r\n"); + } else { + s.append("@Test\r\n"); + } + s.append("public void "); s.append(testMethodName); - s.append("(){\r\ndecompileMethod(\""); - s.append(identifier); - s.append("\",\""); + if (identifier.equals("standard")) { + s.append("(String swfUsed){\r\ndecompileMethod(swfUsed"); + } else { + s.append("(){\r\ndecompileMethod(\""); + s.append(identifier); + s.append("\""); + } + s.append(",\""); s.append(lower); s.append("\", "); HighlightedTextWriter src = new HighlightedTextWriter(new CodeFormatting(), false); diff --git a/libsrc/ffdec_lib/testdata/flashdevelop/bin/flashdevelop.swf b/libsrc/ffdec_lib/testdata/flashdevelop/bin/flashdevelop.swf index c8776c23607191bb9f4dbf6746936284a059fb1a..f03ccb95a0b872636797794b8da7c7922e02160f 100644 GIT binary patch literal 15666 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%0DDVC)(8S;@>vfqBwent3AHqt{`Cip~6nRlV zyj5_mcb@)QeRZ33iS(G>5NgHC4{og4lMxfbW2{2B?ebEBl*qf66QFFI0M6tq_o0+p ztE|1}5k;Ckp;{5Y zJ7KR$-o?VNy-TMq3#&8kNsn!iCPZ3X#yvm4KuEVq22vFBM-f?WV3kJP&~w zGHxoD9!p0vL4kP0L{*Zd6lM)EE6YrEI5ol`A{%3-I&K;hrZH(6Q>JmiR1cYI-qZ`G zddw<74@ZiV^g(>R#06&cFgtP-pW|#O3t?Gh87?eC4Aj^ViOGoz%qfM=yu}`#Xy7K9!-X5~g4XVsmSV4Kg8yoi__>$~8qh4muGe;H0TG5{! zT{Tt=NaY8X&8j&w`ok;~(@&qR80F|eh~!2|*M^>VI#E5UJ&p3=Mk;KX&E(!eOVSZh?h zQM*xfBXQ-cJqu601Y2{c_7up zAXQb}ctjvIg)YZxTLq)}1++2+QMn&t#x5V^+K$#!bDpeLYL zYG(@UdS(^}!zhuu#L#6N#iQtA@-DgEg2}s#7u4(R11OL3@`D8vY8XFmj{0!}3@;m1 zV~)NEH@b_P2O->Ct2Zvy)*ReSNVu_U28bIm0&t^kRBG%#E0fldt;-lnU<4n^zd|;m- zO(4-YtqXii-S|5;e5Rk1GSKRx3`~B>EF)zjD_+o>q^>iYq^>JiO{nQo1*Nqb$!vl= z5uT_hyJ8g75!k@m!vIR017!qd<_K=IokLlImyKmca6Wp4oUb0pS(B zp#CQCJj73oLhQG8cAl?9c1QnQr_(+Ju=(M4#1B7h*&xfw9DNb|G#7q1LHqn#z;8BT z^Ju=`c;Fx~KkN|)ud+Hg;^hwF>IKi)04%Z+$k-+0jYgy1z;g123Huus=?6x+3QY|A zP{0T)H)t9wo0seLjY_%3RwO01dv!vsz2G12@(a02)NR}s!b=NWndo+K@jK6LaAO%k z19ceO1PzP}8fa>c@lC~gK4Izyv5Z>>ZDd3Dttg;EL>MR8)B${6V(|nlZz_v<$c~4R zt?NeOa~1CyN^W=crez!Cag*_tv>gN1I5o`tJRvuZQ%>nf(QIWd1D9CcH`w!bte`xd z1SLJDWQdB!3rw7{3{>*dL}QPs8QkeHHL6bigHA{Nk2{?obvihLQH~wo5z9aR^2L2a z%ML5bOtd}x=y^fOe1O4DT3D&Cb6RWJ(_#`9!nxhKUr1Kl6NXze2Xr(gC9EU3(Um=FD;n zJoHM@nR_%7jZ2LN%;1=Bh2lb#ek(l!F;{gu&F}U5X`asS+2H-I_tSUEo?py$?`hB7 z>F%|7LinBBiYA^%X`k&lMG;-J`C?I>Kc|(>pCfBnG^dWGb7@$yCdMZ;SfkXWshXx{ znOe-$Kqx@+X_>@#M74;Ts4%L6?KNeIK-DAWQ6SvrwM<$n z@fA@`Sjk8R__I~DVEmAnAzd}1C(+b!s83Qc+Gd4)Q#tTDJ5^Cnmm>!+D~~p5?S*BQ zVVs~PYXnnG_v8`7HxH>Yf~l#^+Sc5-F#W^+PxH{iWz)+EuZ+nS-hYL$@Lw{0y+_(C zg0wp)vl5ph)!rH0T=YhvIapn9G+SF{v$9&Rt!+hGch?(hTf!pGq35-Bc=)3&OoL{y zlCbHu?K>wNUOwgT=dNZpKc8~Au_!TQFxILWD=pS6m?If81s;j5$I2CFi6lNl`{c>6 zbRER|v#qlcLK(gyYNQ?Aefs#>;}El*@DpXdC$|$e?O&}_%i9~Rck8XU%gxrCjr#Uh z#pS)nUh*Dk_lAwZ!J+GbK!zjHS#Un$D)+^-d&JKd*g37aeqXP`g-EZ~w;Ku09KqNNC0$1#G+pTPvpFH_+Pg2l&V!XBm`=Qp@2-~!LJhWk2!UYy!8XAu0P2uYYs6-c zAhs)z+BwKF&}!h5+b782Z}1=4$_?%V0DFJz(HEK1#0Wv3A^0K-M8uK)GMR5vT^0pg z?8|(e_@mwDg8flQgoOGd;V?#doW|NIajKG=(@eZQBu+KXD=FZW{@qST!w3H#cRGIy z%*hBYF9ZW9DFVC)nf4`JL~oe?B9;L^ef!|<`bI_K=|?435Vx)}I50b70KW#Y0T*nB zzU+AC5kudMzVWqdHft|f{G10w=L&>RXZ(V<04aUsv|QcRU4W4x~>H(K`lTr(U z<+1KHfot^xr@C}59q8f!lepP}XblTJ(CGifX3@+%t%#gL|wa}$9z+$|;mIVXLgw`A*# z`4aB*3PNs#Gmm@$2W?bAA>$BL$kkoVS)vb`5@NGd6Z zi*#1-h-_rYgtS;0FnCwV{cZRBhBb~IO z{`-HK{{8XqPe|&mE`0{5-U^Qf{Ht31Io z9ZYZt05A|@v{9Gll7CFX>1n!5+x79&8M@EO3 zo`uUk9220Sw8bNW6vSVmuET6(6rYKG%IJXA?~$nrnxMmvo*#bn;_#zY9UsGy*bPYR ze@;waJ3==y_(EM5xTuLTm(lCq$<_zDJ%G()=`+`8}MDKP|AwaL`XZ zEtE!|fL=~!{s#4Ojk{L+kVCNBFJ*p(>JGa^`$*;i6%hBwzs9d2z$~3S8<_Z@ut~l!$GRcigxC*pjD+5H9e=OqG zIi74bgPYJ6=U6%F+^}E|Sd+|bh}VFSK{f0X34Q)c2GAF%B=q@<_JKaWK=^xkxZ|p{ zu~;s~RcSD5@c>ld4+=F{wp>0%MYNaAm2*K5j#%nL4d3ZU;AQ=6$ry{p!Io&u;zlee zJ9QT0>NQ`Sm#P}Z@RtY+wEh^1iDkCS!9&IZ6`D758KvAf{v57tCWC9+?j{3P71$Zb z1FZ?GHSFK7vxnNIhPFvzJ4b95jN*DBG6Hsq9N7v{Y6+*c4Q-9g<(JsW_VAmE4mFCZ zfO(222u#ypOxDTn<{6Xqwojha+d2$ZJaiRbq-={}P@!zoLa4pexWheIU6n;<*jxL( z$^m+5xPt(s!-N~Tps=tgklA0?Cb?#~S0Io|J{exQZ=C+nEODO$umyIza z8VTsp^a#ZtT8MlG|7;~44VnoJ8c9`PV`6Z@z$Z;?3^@p>o(4?|Yk5f%L6NAy8Vp#_ zWicog{6g5i4OssWbHlIMhYKzk#;(~T=z9dPE;p^B_fV(z? zYw?=!+$GlrwOpL*enX+Av(AgkT;X0Ki0r8~TMcB#DDC$OydCeXwN^{}9@u&7+Tw)^ z+CphwTUeOW7M2#ZrSlgMZoGF``eJcTJ9l9zYR4oWfe*&9@nafR6i70(OeIVv1Zfx_ zp*b2d86=!h5^}T&Q=2rk1Ezk|)C$&7W?3q>Tgysp5lSvU9}L+5`Y<|QQx_X_gz__~I0dSqFxdORmH@{ekL?d(n4@GhCf)2RD zBzF~$L+ARCk>lhF#EKQ;$u$k()seDpw=WxXP>w(oyJB23m1|L~slCFViN213zK)Rx za84P6qgZVBS`0nNc^e)iQgn0)C2%Bhes2Vd5Iu{&C#dgn^={fqM<($@lL(4;6 zna?Ms7+T^5DRUS25h)JAsahMHLc<;c(_C<%Li>>ZrR{pF(!6+t>mm*xNvW#2~Waq==+j@pdm9}#{1=KJj7vxvziu;g!z^{Ern`= zoGgXgIH@ayv!iQ#aJ6EDbxAAMTTZ?df(_iK->kRl4i}Jtef1aYWskplyOaCsZ5MJR!4aM$umnIcN`AK% z!VCn(Cc)QlARQ(4jv^5Huy-&5e4j`rtoR69;l?HsfMeV+3X2nb!=Go~18E?MI6;XX zKrrFlt&YHRg*%uCe-hFHWu6r@UOeQ0BSX5Y;S7+;y<>&7AoldL*7K*kqyGt%EaPY? z+{-5b8b4oo&<~^DZs7kDm`XoiiF`~OZqk!X8k64kEfW%8v5xr2`}T5k`t(k@Vc>K6v~lK)eSGGOar!h|Ix_VB+^ZB8YzuUMVbefoenI@D z<1=SGVWb#4eH!`PpkQo0hzKv{m~(#mbnMI-=fo{Nb0&&wd{jAodRaJ_@YB<$E6bAe zsJKl6?vyu)>_YEn^oQ;Rey5_NjoK-%KOQC?gU7iSkMB_@tO3Mm7fGPe&M(Y?Pu9+t z=HomPF_Rk_8;XKlPBLS9d|H>%^DvqfF%pn-);JtZ5Up_7)Q_3!aSBFMPg=)RE2jav z#068>VV+MJMLEI$>POho0zRkkIgQVZ3ab-|&=JAYMy(h)HtTgI21XSG2`QZn)ucJ4 zLb3*H1@o25y|Iy)Zu~BVQeoNkrWTReEGZtRNbz`#3{S^h?IY|0JnTVG%=qqSryhNQ zB3g@u+g);(67Eo03S}ZDC%yY?q8S-)MR3j#n*ADYmMyS?TF?r5!T5OtT1^V~5!&#P zXGj@TP?7DYsv_r)wSu%kD;5$5Sy3|@#RwEyHq1GNoYa(32!-2@q3sB7J1({TgKn3l zK#5V_bW&=H`|Wbssb%dgjVuP-p(VCP5&T|@_& zyN@qNtI;|7B4TR-hG(I`bIZWpdtp`&LdHv4uqfq)bU%{E z0Wr~$)n-HAX|@{r4n=V6Y~wq!gL`f^&7B&zeVaSTnt+Uk);8!id_F2`V?=ZUS3-ia zl0;;+cgyeEChQ8if}&ROa(bItHa2%2oeefqfITzM(PjV(B$9^IO0hz zr7CG2!MX|x8R1+9cn_q-^HE3;K;z%*BhMq>nPnivF&076GZN3qOq2gq675?g+UFmt z+ztcgVjC9DRQ{p9Y7&F;=!=<5JA?K^1(RB43;!An?(nkuma6bRBeRTpj20sFC%0no zo?{_)hP$HlntoJi$kWgCMKqFQ>J*$+-6%&)KacIJ%&$swh8A>*Ll)%(VSdzqrkv-zF>eek z3+qiP$KySq5J&D%a)Abpg*Sf2R1u5|MH$@kkvnwKniT9Z5HdL58&;DrJW&kh+Ah21+hkUNMWqPrYWQ_0jrCeC1Hw| zY!Siu5zb(nL8u{>drtdTa5ll)*e)H@fd^twkG++>A_wXDUTG`;|C58X z79v+II2u8YS}xQ;Iq&ENcuXZ|qqn>< z9Rq$ND7=Ujm{ws*OnZ~vWS5nP1{P!_L9vSp+GPeWpF*r`o`UQ#LVwi4p)z9bux5u= z)qsPYz8sE}6iR}B9nt~ucp51eMMiR3cIyV{wCs#w!%pIgof<+(Fd7Iq%o#GLO@Exo zp2SWs4=zG)JRrr;%`gBENI}MxSo1kKg2AnA_s1wmKK%pI6zvv}m&8tM0^haY+8O#^ zp#w~F1yKgcD8Pk<5J0iAzD1~)nrJdab-q!#gCG}Imn>hrOV5wCDn^)OBj(lUAB(nn ziAyn}PY@lhY8jrlKRea3W^|zto?n%q6*JaM?6OKcJ2$O~Gp^)7PNw)}Mvhj(=!Ror zSx6^@4`|xoD6ifX>C!Gyl)rZFqDG8^~rLaV8V%Z#`YIRrUS~q8WKc#1Q|)26h{Ud z*;`C`$i6_j?1D05LQRv{EdawfNbVNYnFJ2N;qyk%+v%rR0~HiyV0GCAvWa=OP)G^F zP@G-XX5iMVRMp4VG%_DkTCo33qy=jeNd#LiS%yg*^%2Qle&{cUCINSS^D=$O7B{DA zfUKE4guO-z{OK#NzPhNd9Hy^VUtOZ3B@NjJB{s|M7GSfSQi7g++!t>?tE=6~gPK@9 zUHS<5@n=ULiDkRrZ2|QhO_2s{wTJ1{WI4hL>Z` zjnr%JH?}J#lGz|^vLdlyp`L`WqDSY#^@O!hX zTC)F22yFJc;6Q9b5+t3f0a7b_2zN!Mg;K1@o)%fG%|p`ihvo$*Gf98pviE{4(Leh} z0`$)*mB#Li#3dnS+Fd>5iAC1R#l~XMV5~Of6d*K;SZ#QkVW$g9Xy>f6;h33miby0& z+1?R}#4Hlsor`ZrSr0f;G<+N8=;eil9-znD+iw#=1152y})2!qs>~HY#0I8sSC%~Xs zT!)1_(h2Z;&68)5C-F|}uH&CC&Sa`BUxL7PQX+-EI!*@VlK#N6eXRLR@jVm|gkt#> z>3SfW@NIR72nLe&2-jvfw3D{hP1l3qKk|RsJNOT(5#y*p90??z>(jD|9iCWK<2JZ` z=p}kFT$I2TstGAu6B2&Az!*(=50sY=a6cZpK49SFWYKxdX;wD z!qUDS;U(n?btbToYD@w?FLo~87aogCeD59VR{=oPVk_^LHBhJRZ*~9QBs^e znK24RA@aEh6^r2%YugXRS)5lsE=0sBSA~$HFS!q=$cH4Vq_E1VyF4cZ4=VEsi998p zY|iPms{OMNAh})<2_Rez{-k8R^C|}zu;UIwBn$v66qh8POL%Ga$;V`Id*p3oejsU5 z;DUY3)+HL{jzSogVtBlALZN%s4}wV5bdCq{xIG-$EiRcnwRCjMHcuLW8xJlcOFK7G z>S@ZE2unLpmF`6(dub9?+rmCUDtqMoB!BunRQ8mx>F>IhNs$tr+atNz963s1l0>-e zrkeSbG`9#8qcfI423JHPyU9ik3b5eHF`i z4Lh?+`eMeEQL_XDZ_$;%5llS zX4ec5m0|=!WfM8_E@2@@h=#x?yUN~>04G}ZB#aB(-YOdPMV;e|=MlyQ7j=t*lN4E- zxReS8GL)}LB`GABuW8?e@y~$Q3x;aUMB3J;JX8Zl*KYt=a35Ajp$wUca)12v?urUWxijD6-+|n0orv-A!vw5st0qj zf=Rb3O)@cRfU4VtMAgM%-}!Z+$Y+*l?anMpGY*f`Y;JgLIEwk@H~As)0(g)l_G1C; zQ#ro75WM;2t%VMn#v#*q$u#n&aoAJ~rhbCl{ZBX=%OfCdM+LKTj2)lG=M++@agF7W z$5Us+-hQ;r(BB|eO*soHG0vM&^7NZAXqO?dv}F2&MO*ALL@s|_cNv1uU*6e62pb*f z?O|LB2Syuv03n!W6Aq|!@#dzPc}y$FIL=rTV@=|cQ9CG$cWOdV3 z?{DD($Mmlxjy^_Vh0QNA{}2$)+#(zkmn7JxOy);aK&DN>)(>a?Ln@$X6Tv*?C}|d; zkNu2zvZu++_W@?&zy&YGb6#~2gp3tP{ELSs*yrWoT_|(kTGX}kS?jL z)G4GO*1y^5R6Ct}oz5?JI+T)_qD91t8Y6EfcsY$8LowM@{j24)AIZH}%ab7_U#V|y zZB*_{NqZesXCz;hF0BUWs}dfKqn&*$xsHU}5S}I1kuD8ry$Bcgh4^{f6OKEOg!>2K zJ^-IM9ir<+kRxA27sLZ8;lS?hE;0mv@%Yq><`>xN#raF|lOedIf^g~O`t}#YaG}I1 zuC{JUB78h=Mrn|QPmDlNxWn#R*!QqeejD*MtihbURFIP71_E+~y-9E}>Z+{E5SJjN zNXB`)&`}+Wix4{^$&q#&jv)RB`l4p>0#c9Ij1uQP#3h1gK`abHYoVA!24Jq9BmFSc zb8x36UIU)Ewu%@O(jfMp0%BA}vy%qq@OP3ST#zyVi*P}er@#PLjQ9XzECLyTk(Dgu z9pZV<*;&cpdIY8M^bX9T(>s*Ng752<0N^Ov1r{uRfIJli_IS6dB_MmWGb;vCR2%J~ z&kTRp&3>(X5iRLcT}##Xt}g2U#k{Gi0Y=lSIq#kR5 zY>6FAIv2e9!j!FMV66-c^pgVz`4)%oHP&~;%&?;Y3M~xg zayMNbA5Dap`!?!*%iLS&_U$|M+pYR-9+A(TiErPnY;0)=eN>Sn5JPCiQfadHRlMmU zREDM(C#Ok?K)}Hp@Lpu#;d!8dI%?`7@3*57^kM}x+kBbB-w9&jVQp5m*O7@030^rX zPb-yXGx5G4ISupa4v1@1WcYyIgEQ<{AMIEHcrGe45fLH)H*E?LpjZJ48b}wE=etOb zjUZ&}$+M?N;ng?<560A!swR9G(f#()PI&4pov{rD){c!Nr>I zr*YH1#Ab-*G#|v#-BxSs;_U3bd-u+k*Xk>kv#a&Z+0xwH;%s@9XX{vPtZ%huEBDK! zPU4A|d&Lveq=N&?oS1d<^V<9ZW#~MY^52oRP`tpI7JdWH{98OPlJTT+>9KSahFHX@ zW}^q>Ifx8qwyR4zf&J8z77{&LLunLaCQh0$9Ps=+v16t_ZK@}%X|ZLfqF~Qy4bviq zsS<-k|N%g@%?vH@VVGoJADah zduSF!ScW8V1A1z3!gf|k4Ou0>he>RSNsNTx21C|~h>ENeV5vzG&$Q#TD-QxU5+rlO z**LlTP+LYCnh5?@^%anbXasKbDV#ptS~mEfs)4v4s6HbrdeyuZf#jVb85$k=R7FRN zl83t?kxAUdFvRguYUK#zB%_Zbfn%aQi6Thkf}J~vb}ubQX2$t-^I+%vJCM>2?-4Ah zc4)t`oLwHO4$aXQ>C`j0su17*bVz&`5y=iCC%ebkH3QVCixEH|*p3~>Jw(`diwnh) zEfDoz^yDaR-)z*kwwrg=yX)HBb>!tEQX=W(#ZWZuC9RWP=-o}N(?6I= z;WV*qqNWzd(TPqYN(UYo4gD6Y&Ef zl!%`S4(8hu3cSq`+EF-U*}BK$&^^K_>o{cp^wTU726IJ_?d$R^OF99U!{X39*gCoPb>Efspy02$}Z~GXGN`WWGB>Kt-Tu>Vl0w z0U?16_}{P<%aCk%!b1-qM(Q205mKBd<9?o*ClfCciE1e@c%Bm-ZHT0Et8X?lh6>Lr zZ2Ku0qkrFa$s`gZoIlAlEKo#n@spZ>BDpuI`J)i25k7}kD|`!X2S=k4zwd7_z(_CO zKob4=Df~18dv{4Zj&Bgcqa?KW>xd2VmGlRu91G^_>f+P(QE;~a0tNfoZ2?4~*#Awy z>Os460hE51&L2=g50}nQsm`NaqnQ>Jkg2#W%&Y$jd{%yVycRQR( zIkdrSFBeZz9Qt)-?=>orsw=hC%7+fdhb3d3Ts=TzoivQgc+swMk|ZoOA#_UCIJt(f zDV_I6rfiLqItFo>b}}y`xg4dHvoemAg~AfS0Ff>>!ICL_vir-tO#4z@msV4c^&+`5 zurC#lj4fz9Qv2z%-}vh!Sz>Fdzy9nu`2JHNx)(CT^l~leliIBqNO@LtK+-d{TQQK@ zt@xFtb}I%_yA=VYUa8$ecNzShy;8ds1F7ALHd6MH+HK)NFICK-QoA8zKQtHE8G;LE zo;pBV)=1Esqc2hi5NQ+~_eXmW2B`Wi`=&J%30^=?2#pot`?*tQPZ zBHMfnn<4TxjEhYIU?juS6>dwK>$Wr|_B$1k^gMS1gLdE=T$W(_z(*sE0Zb-vjna7t zs;U^j$O`6Nq86yojo)P02M*5BSiSfj5-cuumY6Zy@lT(N7_Ky2kS*?loDqAHW>FBM z0%E9O4&im9nPo6knGeDCClJGBViyWKh6{mU(0>j&FmR~4bRwPnARk#^P-gmEZrWfT_gUx3r^Ticsk4t1Q6 zFklh#7+0hH)DhgJo^-zEG9CCN!KAK z=uIKbmsL?WSXJkFz79q;Y?gk+ZpKc%m_rG8xq`y8DV{_wlc$RXnB|Rj!$W_C@`hoz5S1I{yzWiAGe9YHFcyim3&% zyOT>IZ2*ZVTff-sn-&`Oe(a^Xt%jz>jT-Hx?IX0bjbO^aZY$O_-2eSotgFd}A$ zt-*tFmX9r9FLL|X8G7tF5HHv2wFjH^ZKPh0Afd)~rKGN|x?7yaxdDM+qr_)iX+g9q z3e#W8tFOT3D9xt8Jq2b{u$E?1plrXhDbOuAo1!^bB4Ag7q1?cJ=(M>c`N6{PMC>Vt z3<+bVK4q#0tSO)cf(|nb+Wi#YkFZvcVnv6gjs&1_HZh6ML9qiWw#p#$8>(o-A+CG& zrGJN`Y~(cUfSLl8h0wh_6M0M=sc7s1+G0a~`XdN+E(K;rkVuHmgN*;5s zqVW9NrV@h>3v3m9I#!g5vVl;U$8?sgDCn2MeyI^8XSf{t^ch*-a8`0+0HvDbxIBU?5o_UbR@JJ+E4BL35Rm`+3*BgsuNO^seDf zcDYe0f8xCDAt|quTQ|U@+0Gd98;1wjM*X7XFzPg-cP+(-xW)9gos+)rdr8ip?eq%1 z@xjUPm;7%WB0RBw7TMGdZsTf)&|`Zyn-#ZC z;{VA$EvZ^uo3dYNr6t-$SSuA5;gH2Q4sg>Z8zbW*zTMHt7cv4jEGtfqP2^OJZ6-DN zlZ=b~?yan9MKrK_w1_H-k^2=c2?i*l8pH=`w7W0U{cc#W(b$`mdb_2O%Q{>sp?hImES};E6A`*qt`KJjNVLVR; z(1D7&a|fzfaAiUQic}+W*ytca8dC#hS?rhMmie~J{Vc?(A-C2yxO0F*cyp4cp;tM; z1Y7PPH22oo3J;FCTIZRoO3tP}l6BK7HL<;T>t`-173#^8=Zw%-g0T~7woeVStXaww~SUQ8x5I(ls z16X_RBg0(=X~oo8gzLQ^9YgQsxC!dIS(Au4H`ibd=dqs@p+`}9(6>_59h`iX6x?LQ z775v>S=>r{1fDSM4EYfb{U0Fg<9y?UiGq5)J>@z{h<$xX`ae|Aud}Ide&o7DVCch8 z=N~x^sQN?oXtQTus9rB8iFZS=d}qB$yCMgS+-XU#9%%8&;DiVNNIC880-V37Kk976Wy5`gutU0Bu?s6?WvHN%R>H9b;x#LfkO4ClR5pfBYJavs zGEo0130%MxLje6T;uL60Uf?S80iC1^Do!$)x9B8W(9r1TfGv?)h&e&z zjgaRSGAu_qTbj<0nth1MfoNp^BdCJnmeG#*?$gR#^4;M1?!UmGb z@$7d zh|s|Db3{Fm)g%in!q7MT=s64^4}r^**3&2$qES+v^2%s?43&&By*QPVnK`nb?0Qb6 zZOVb9Wub&dZpVXgF@5v`W)QSO7v$i$-YZT~%YY{oZMe-vZ6Cpf^eki@m{g9ET}F4T zDX`02Zy!Uo!K;()<5X?P)l;z07*{);a;Nj}bUHukbp97^b!nf(!{Pff&!pR@u9FES zs;bu?vhRa8xb`FVUxEA?c+dt|2cd2zHL(tJDq>m!Ld_glJxTW0mQ%~gYI2UgNGeI- zPGwn)d zol5K(+jpuiE^@MtF76z)cP1Umad$>xS#j-@w%;v9^ongsO?ArInG~^4n4Q2M%}#q? z(gVVpqLMYm3ECId6#wkhjnseb8Y)HhUv8d+SR!l_NFIU%Ikfj?a3WD?FL$aXKkY1e z>GFw&&|b0OD7inzxjoYmRvO|6l2mXlqVN*`TvM?@s+f=Am|)rnoNq<$#st$=HW_Y{ zIq;@-^mI|h*VlFJ@b}rT5R1UGi}{6o${Zoh2in0jUX9Pu7tM#5J0Jci#ADc!t1~Bt zBs@4(1KerE9>ULWNZf^8Pq36shE6F#(?0GCPu~Veb|(+0vIRsay!T}U*_XnbT$s-J z`Hv|054;I5oOsm^|B)blCvl!5qu8>eO&h-X-!g6B;d{%yG@iwfFal=lM$LK0!&0cL zs2E_VD<1&wS6f?O)z`6+OuPz3=iRd~)NM3lSJ!#CX1Vb|5JgEF#5>Z9mn`O@%;p|% z)cU=2gmv0lZyveHdpqxZ@jNjQ6okfoT6MTjK#oPii8!Sr*ZO$2BB+Sgq&`7K*yg2y z7th^-baD%V{g>~f2A{P&ba-)R`xY#pw0+AVil|&xpK?E-IPKl?&+NTh5G5@(da+y5 zMlVB7%e36GZ-lhbGtB7!3K0ix&u?C-Z`a)Y8M4ysl&c5mkR}a7izwg2W6Km9`fWw{ zj(%GbNTlWjA6n#&wLmFsKge>UyeWQ?aD?>E`@u=|CgVu&mBx8nCPVZK-in+zoqOgycL)j|kTq5{72chV~n&6K*r4TZEP2d_)q)aeJ zz?YM^>h9;Li{dzo;~zlrHM08$_#TB;V)VbqQZWYYX>hTa3N9ACG*_?5i-og?_w42a zq#5|6e5WEJuehbfSwDu3@ag2V^)?Eh_bfij_CORA&X~8n`+J#QIKMw2MXVy$)+cx7 zxl&8$Mx9<=@02@TTq$pC*mCPk{~yN*2Op9r5uwh#T-rrSkHubY^z(dS;+Jwzw_wM* z3S|hECFDWEcaR@}|BToV3LLVV)@pyTt_X=86%@ovg*0Qdtq_JnTl@41Q1#{Ube?t) zLp<3;74nFKqm=UCD+P&r0|3gm_I%53OW~2@{GuR!+-4W)YVUBf>pYKeJ-5%xzmIj|LexalNctvLRn5R`sKTFE&%Z?2tppnw{m=Y)U`NbjO^HoHQUrpi15I&-Pmk zEv%FY7@YZ9=t~VtE=fLnbFa)(9Zoszy%9x{C9I8{Xdw5JL*62TNeL*%d)XTg7*zNR zX^JW-4b<#UnpP>NMX?B&c(kOcqxFGt*XSr6AOZ)(pV^w&zp7KU^AJ|a*{Ra>ScIa- zQ@IjHL6{K23u4jZGfT?OSHwdUJw~&HXV`026g_bFYEtS|G0%9a6|GTex^v5-$xa+* zDZcrD=bobcUtU%)x8Anq^qT1MGYb+FR=m)Ir1*MCzMy0{iiE%v@AAZ(N1*R=7E@?~W z=Ct!Ak=cmTOD70TE1sK=LaU@huVm)b=t1(3z?NYYP+%avmWkc(3^<>qOe3Ann8uK4 z45yQ31pg6Ceb_XPScjqBrKuFl;$tWOijkSh_ByjoRfou2g-;%zqb!xC#9zA3d9ehi zcS#C4Acr1=uwmjwScMd14TLdd;Z)pm8v@^Tcbmb{NkDt-klWT_Zn4H2Mn#<8st57-7VKusf z8;Tl_KSk8`&@wb$*DQ9jon6r#$%C?djUvm}NP7%L8u_Z_Q8Wqqd%(V2{L~lr)#AIj z7(+WAM?hU)Lf5hOVHEkZfE@#+=1y!BS^&GlhObN`B{2#Bo2QW~?#b^JJ^~OV diff --git a/libsrc/ffdec_lib/testdata/flashdevelop/bin/flashdevelop_asc2.swf b/libsrc/ffdec_lib/testdata/flashdevelop/bin/flashdevelop_asc2.swf index 6d1c51343c32104aa1ac1cc31da3187ff9c95655..f03ccb95a0b872636797794b8da7c7922e02160f 100644 GIT binary patch delta 15341 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 diff --git a/libsrc/ffdec_lib/testdata/flashdevelop/bin/flashdevelop_flex.swf b/libsrc/ffdec_lib/testdata/flashdevelop/bin/flashdevelop_flex.swf index c8776c23607191bb9f4dbf6746936284a059fb1a..1d4874e92356bfcdb9dca3f5a0a94e0a6285f4c5 100644 GIT binary patch delta 16556 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 diff --git a/libsrc/ffdec_lib/testdata/flashdevelop/flashdevelop.as3proj b/libsrc/ffdec_lib/testdata/flashdevelop/flashdevelop.as3proj index 2689e95e2..d3147a1b3 100644 --- a/libsrc/ffdec_lib/testdata/flashdevelop/flashdevelop.as3proj +++ b/libsrc/ffdec_lib/testdata/flashdevelop/flashdevelop.as3proj @@ -12,6 +12,7 @@ + @@ -27,8 +28,8 @@