Diff
Modified: trunk/Tools/ChangeLog (281632 => 281633)
--- trunk/Tools/ChangeLog 2021-08-26 17:04:05 UTC (rev 281632)
+++ trunk/Tools/ChangeLog 2021-08-26 17:49:12 UTC (rev 281633)
@@ -1,3 +1,25 @@
+2021-08-26 Wenson Hsieh <[email protected]>
+
+ TestWebKitAPI._WKActivatedElementInfo.InfoForRotatedImage is failing on iOS 15
+ https://bugs.webkit.org/show_bug.cgi?id=229531
+ rdar://82100466
+
+ Reviewed by Said Abou-Hallawa.
+
+ Due to changes in underlying system frameworks in iOS 15, the red "corner" of the rotated image in this test now
+ ends up with a color of 0xFFF51800 instead of 0xFFF51900. Resolve this by refactoring the test so that it's
+ robust against these kinds of minute differences.
+
+ To achieve this, we first run the test over a version of the test image without EXIF rotation data (test.jpg) to
+ measure the expected values of the red, green, yellow and blue corners; we then verify that these color values
+ are present in the corresponding rotated corners of the image with EXIF rotation.
+
+ * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
+ * TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:
+ (TestWebKitAPI::TEST):
+ * TestWebKitAPI/Tests/WebKitCocoa/img-with-rotated-image.html: Removed.
+ * TestWebKitAPI/Tests/WebKitCocoa/test.jpg: Added.
+
2021-08-26 Chris Dumez <[email protected]>
REGRESSION (r281516): [AppleSilicon WK2] fast/loader/reload-zero-byte-plugin.html is timing out
Modified: trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (281632 => 281633)
--- trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj 2021-08-26 17:04:05 UTC (rev 281632)
+++ trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj 2021-08-26 17:49:12 UTC (rev 281633)
@@ -559,7 +559,6 @@
71E88C4124B5299C00665160 /* ShareSheetTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 71E88C4024B5299C00665160 /* ShareSheetTests.mm */; };
71E88C4524B534B700665160 /* img-with-base64-url.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 71E88C4324B533EC00665160 /* img-with-base64-url.html */; };
725C3EF322058A5B007C36FC /* AdditionalSupportedImageTypes.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 725C3EF2220584BA007C36FC /* AdditionalSupportedImageTypes.html */; };
- 7283A9D022FA754900B21C7D /* img-with-rotated-image.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 7283A9CE22FA6BBE00B21C7D /* img-with-rotated-image.html */; };
7283A9D222FB1E0600B21C7D /* exif-orientation-8-llo.jpg in Copy Resources */ = {isa = PBXBuildFile; fileRef = 7283A9D122FB1D9700B21C7D /* exif-orientation-8-llo.jpg */; };
73BD731823A846500020F450 /* DisplayName.mm in Sources */ = {isa = PBXBuildFile; fileRef = 73BD731723A846500020F450 /* DisplayName.mm */; };
751B05D61F8EAC410028A09E /* DatabaseTrackerTest.mm in Sources */ = {isa = PBXBuildFile; fileRef = 751B05D51F8EAC1A0028A09E /* DatabaseTrackerTest.mm */; };
@@ -1238,6 +1237,7 @@
F46A095A1ED8A6E600D4AA55 /* apple.gif in Copy Resources */ = {isa = PBXBuildFile; fileRef = F47D30EB1ED28619000482E1 /* apple.gif */; };
F46A095B1ED8A6E600D4AA55 /* gif-and-file-input.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F47D30ED1ED28A6C000482E1 /* gif-and-file-input.html */; };
F46BD56924870643008282D6 /* dragstart-data.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F46BD5682487062D008282D6 /* dragstart-data.html */; };
+ F46D43AB26D7092800969E5E /* test.jpg in Copy Resources */ = {isa = PBXBuildFile; fileRef = F46D43AA26D7090300969E5E /* test.jpg */; };
F47728991E4AE3C1007ABF6A /* full-page-contenteditable.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F47728981E4AE3AD007ABF6A /* full-page-contenteditable.html */; };
F47DFB2621A878DF00021FB6 /* data-detectors.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = F47DFB2421A8704A00021FB6 /* data-detectors.html */; };
F4811E5921940BDE00A5E0FD /* WKWebViewEditActions.mm in Sources */ = {isa = PBXBuildFile; fileRef = F4811E5821940B4400A5E0FD /* WKWebViewEditActions.mm */; };
@@ -1541,7 +1541,6 @@
F45B63FB1F197F4A009D38B9 /* image-map.html in Copy Resources */,
3128A8152376413300D90D40 /* image.html in Copy Resources */,
71E88C4524B534B700665160 /* img-with-base64-url.html in Copy Resources */,
- 7283A9D022FA754900B21C7D /* img-with-rotated-image.html in Copy Resources */,
49897D6C241FE9E400ECF153 /* in-app-browser-privacy-local-file.html in Copy Resources */,
4971B1182451F29A0096994D /* incorrectCreateTableSchema.db in Copy Resources */,
935786CD20F6A2910000CDFC /* IndexedDB.sqlite3 in Copy Resources */,
@@ -1724,6 +1723,7 @@
313C3A0221E567C300DBA86E /* SystemPreviewBlobNaming.html in Copy Resources */,
CD59F53519E9110D00CF1835 /* test-mse.mp4 in Copy Resources */,
C95984F71E36BCEF002C0D45 /* test-without-audio-track.mp4 in Copy Resources */,
+ F46D43AB26D7092800969E5E /* test.jpg in Copy Resources */,
524BBCA119E30C77002F1AF1 /* test.mp4 in Copy Resources */,
7AE9E5091AE5AE8B00CF874B /* test.pdf in Copy Resources */,
5C7101C725DD98B600686200 /* test_print.pdf in Copy Resources */,
@@ -2436,7 +2436,6 @@
71E88C4024B5299C00665160 /* ShareSheetTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ShareSheetTests.mm; sourceTree = "<group>"; };
71E88C4324B533EC00665160 /* img-with-base64-url.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "img-with-base64-url.html"; sourceTree = "<group>"; };
725C3EF2220584BA007C36FC /* AdditionalSupportedImageTypes.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = AdditionalSupportedImageTypes.html; sourceTree = "<group>"; };
- 7283A9CE22FA6BBE00B21C7D /* img-with-rotated-image.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "img-with-rotated-image.html"; sourceTree = "<group>"; };
7283A9D122FB1D9700B21C7D /* exif-orientation-8-llo.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "exif-orientation-8-llo.jpg"; sourceTree = "<group>"; };
73BD731723A846500020F450 /* DisplayName.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DisplayName.mm; sourceTree = "<group>"; };
751B05D51F8EAC1A0028A09E /* DatabaseTrackerTest.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = DatabaseTrackerTest.mm; sourceTree = "<group>"; };
@@ -3100,6 +3099,7 @@
F46849BF1EEF5EDC00B937FE /* rich-and-plain-text.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "rich-and-plain-text.html"; sourceTree = "<group>"; };
F469FB231F01803500401539 /* contenteditable-and-target.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "contenteditable-and-target.html"; sourceTree = "<group>"; };
F46BD5682487062D008282D6 /* dragstart-data.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "dragstart-data.html"; sourceTree = "<group>"; };
+ F46D43AA26D7090300969E5E /* test.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = test.jpg; sourceTree = "<group>"; };
F47728981E4AE3AD007ABF6A /* full-page-contenteditable.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "full-page-contenteditable.html"; sourceTree = "<group>"; };
F47D30EB1ED28619000482E1 /* apple.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = apple.gif; sourceTree = "<group>"; };
F47D30ED1ED28A6C000482E1 /* gif-and-file-input.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "gif-and-file-input.html"; sourceTree = "<group>"; };
@@ -4070,7 +4070,6 @@
F4DEF6EC1E9B4D950048EF61 /* image-in-link-and-input.html */,
F45B63FA1F197F33009D38B9 /* image-map.html */,
3128A814237640FD00D90D40 /* image.html */,
- 7283A9CE22FA6BBE00B21C7D /* img-with-rotated-image.html */,
49D7FBA7241FDDDA00AB67FA /* in-app-browser-privacy-local-file.html */,
4971B1172451F2780096994D /* incorrectCreateTableSchema.db */,
934FA5C720F69FEE0040DC1B /* IndexedDB.sqlite3 */,
@@ -4181,6 +4180,7 @@
9BD6D39E1F7B201E00BD4962 /* sunset-in-cupertino-600px.jpg */,
31B76E4423299BA3007FED2C /* system-preview-trigger.html */,
313C3A0121E5677A00DBA86E /* SystemPreviewBlobNaming.html */,
+ F46D43AA26D7090300969E5E /* test.jpg */,
2E9896141D8F092B00739892 /* text-and-password-inputs.html */,
F4CD74C520FDACF500DE3794 /* text-with-async-script.html */,
F44C7A0420FAAE320014478C /* text-with-deferred-script.html */,
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm (281632 => 281633)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm 2021-08-26 17:04:05 UTC (rev 281632)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm 2021-08-26 17:49:12 UTC (rev 281633)
@@ -146,57 +146,55 @@
TEST(_WKActivatedElementInfo, InfoForRotatedImage)
{
auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500)]);
- NSURLRequest *request = [NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"img-with-rotated-image" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]];
- [webView loadRequest:request];
- [webView _test_waitForDidFinishNavigation];
+ auto imagePixels = [](CGImageRef image) -> Vector<unsigned> {
+ static const size_t bytesPerPixel = 4;
+ static const size_t bitsPerComponent = 8;
+ size_t width = CGImageGetWidth(image);
+ size_t height = CGImageGetHeight(image);
+ size_t bytesPerRow = bytesPerPixel * width;
- __block bool finished = false;
- [webView _requestActivatedElementAtPosition:CGPointMake(50, 50) completionBlock: ^(_WKActivatedElementInfo *elementInfo) {
- static const unsigned yellow = 0xFFFFFF00;
- static const unsigned red = 0xFFF51900;
- static const unsigned green = 0xFF278000;
- static const unsigned blue = 0xFF0000FF;
+ static_assert(bytesPerPixel == sizeof(unsigned));
+ Vector<unsigned> pixels(height * width);
- auto imagePixels = [](CGImageRef image) -> Vector<unsigned> {
- static const size_t bytesPerPixel = 4;
- static const size_t bitsPerComponent = 8;
- size_t width = CGImageGetWidth(image);
- size_t height = CGImageGetHeight(image);
- size_t bytesPerRow = bytesPerPixel * width;
+ RetainPtr<CGColorSpaceRef> colorSpace = adoptCF(CGColorSpaceCreateDeviceRGB());
+ RetainPtr<CGContextRef> context = adoptCF(CGBitmapContextCreate(pixels.data(), width, height, bitsPerComponent, bytesPerRow, colorSpace.get(), kCGImageAlphaPremultipliedFirst | kCGImageByteOrder32Little));
- static_assert(bytesPerPixel == sizeof(unsigned));
- Vector<unsigned> pixels(height * width);
+ CGContextDrawImage(context.get(), CGRectMake(0, 0, width, height), image);
+ return pixels;
+ };
- RetainPtr<CGColorSpaceRef> colorSpace = adoptCF(CGColorSpaceCreateDeviceRGB());
- RetainPtr<CGContextRef> context = adoptCF(CGBitmapContextCreate(pixels.data(), width, height, bitsPerComponent, bytesPerRow, colorSpace.get(), kCGImageAlphaPremultipliedFirst | kCGImageByteOrder32Little));
+ auto indexOf = [&](UIImage *image, unsigned x, unsigned y) -> unsigned {
+ return y * image.size.width + x;
+ };
- CGContextDrawImage(context.get(), CGRectMake(0, 0, width, height), image);
- return pixels;
- };
+ [webView synchronouslyLoadHTMLString:@"<body><img src=''></body>"];
+ RetainPtr originalImageInfo = [webView activatedElementAtPosition:CGPointMake(50, 50)];
+ RetainPtr originalImage = [originalImageInfo image];
+ auto originalImagePixels = imagePixels([originalImage CGImage]);
- auto indexOf = [&](unsigned x, unsigned y) -> unsigned {
- return y * elementInfo.image.size.width + x;
- };
+ unsigned green = originalImagePixels[indexOf(originalImage.get(), 0, 0)];
+ unsigned yellow = originalImagePixels[indexOf(originalImage.get(), [originalImage size].width - 1, 0)];
+ unsigned blue = originalImagePixels[indexOf(originalImage.get(), 0, [originalImage size].height - 1)];
+ unsigned red = originalImagePixels[indexOf(originalImage.get(), [originalImage size].width - 1, [originalImage size].height - 1)];
- auto pixels = imagePixels(elementInfo.image.CGImage);
+ [webView synchronouslyLoadHTMLString:@"<body><img src=''></body>"];
+ RetainPtr rotatedImageInfo = [webView activatedElementAtPosition:CGPointMake(50, 50)];
+ RetainPtr rotatedImage = [rotatedImageInfo image];
- EXPECT_TRUE(elementInfo.type == _WKActivatedElementTypeImage);
- EXPECT_WK_STREQ(elementInfo.imageURL.lastPathComponent, "exif-orientation-8-llo.jpg");
- EXPECT_NOT_NULL(elementInfo.image);
- EXPECT_EQ(elementInfo.boundingRect.size.width, 50);
- EXPECT_EQ(elementInfo.boundingRect.size.height, 100);
- EXPECT_EQ(elementInfo.image.size.width, 50);
- EXPECT_EQ(elementInfo.image.size.height, 100);
+ auto rotatedImagePixels = imagePixels([rotatedImage CGImage]);
- EXPECT_EQ(pixels[indexOf(0, 0)], yellow);
- EXPECT_EQ(pixels[indexOf(elementInfo.image.size.width - 1, 0)], red);
- EXPECT_EQ(pixels[indexOf(0, elementInfo.image.size.height - 1)], green);
- EXPECT_EQ(pixels[indexOf(elementInfo.image.size.width - 1, elementInfo.image.size.height - 1)], blue);
+ EXPECT_TRUE([rotatedImageInfo type] == _WKActivatedElementTypeImage);
+ EXPECT_WK_STREQ([rotatedImageInfo imageURL].lastPathComponent, "exif-orientation-8-llo.jpg");
+ EXPECT_NOT_NULL(rotatedImage.get());
+ EXPECT_EQ([rotatedImageInfo boundingRect].size.width, 50);
+ EXPECT_EQ([rotatedImageInfo boundingRect].size.height, 100);
+ EXPECT_EQ([rotatedImage size].width, 50);
+ EXPECT_EQ([rotatedImage size].height, 100);
- finished = true;
- }];
-
- TestWebKitAPI::Util::run(&finished);
+ EXPECT_EQ(rotatedImagePixels[indexOf(rotatedImage.get(), 0, 0)], yellow);
+ EXPECT_EQ(rotatedImagePixels[indexOf(rotatedImage.get(), [rotatedImage size].width - 1, 0)], red);
+ EXPECT_EQ(rotatedImagePixels[indexOf(rotatedImage.get(), 0, [rotatedImage size].height - 1)], green);
+ EXPECT_EQ(rotatedImagePixels[indexOf(rotatedImage.get(), [rotatedImage size].width - 1, [rotatedImage size].height - 1)], blue);
}
TEST(_WKActivatedElementInfo, InfoForBlank)
Deleted: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/img-with-rotated-image.html (281632 => 281633)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/img-with-rotated-image.html 2021-08-26 17:04:05 UTC (rev 281632)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/img-with-rotated-image.html 2021-08-26 17:49:12 UTC (rev 281633)
@@ -1,3 +0,0 @@
-<body>
- <img src=""
-</body>
Added: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/test.jpg (0 => 281633)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/test.jpg (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/test.jpg 2021-08-26 17:49:12 UTC (rev 281633)
@@ -0,0 +1,100 @@
+\xFF\xD8\xFF\xE0��JFIF������H��H����\xFF\xE1��\x80Exif����MM��*������������������������������������J��������������R(��������������\x87i��������������Z��������������H������������H��������\xA0��������������d\xA0��������������2��������\xFF\xED��8Photoshop 3.0��8BIM������������8BIM%����������\xD4\x8Cُ��\xB2\xE9\x80 \x98\xEC\xF8B~\xFF\xE2\xFCICC_PROFILE������\xECappl����mntrRGB XYZ \xDA��
+��
+���� ��5acspAPPL����������������������������������������������������\xF6\xD6����������\xD3-appl����������������������������������������������������������������������������������������������desc����P������bdscm����\xB4����Bcprt����\xF8������\xD0wtpt����\xC8������rXYZ����\xDC������gXYZ����\xF0������bXYZ����������rTRC��������aarg����+$������ vcgt����+D����ndin����X����>chad����\x98������,mmod����\xC4������(bTRC��������gTRC��������aabg����+$������ aagg����+$������ desc��������������Display������������������������������������������������������������������������������������������������������������������������������������������������������������������mluc��������������������nlNL������������\xE8daDK������������\xFEplPL����������enUS����������,nbNO����������>frFR����������PptBR����������fptPT����������~zhCN����������\x94esES����������\xA0jaJP����������\xB2ruRU������$����\xC0svSE����������\xE4zhTW����������\xF4deDE���������
�fiFI����������itIT����������"koKR����������6��K��l��e��u��r��e��n��-��L��C��D��L��C��D��-��f��a��r��v��e��s��k��\xE6��r��m��K��o��l��o��r�� ��L��C��D��C��o��l��o��r�� ��L��C��D��F��a��r��g��e��-��L��C��D��L��C��D�� ��c��o��u��l��e��u��r��L��C��D�� ��C��o��l��o��r��i��d��o��L��C��D�� ��a�� ��C��o��r��e��s_i\x82r�� ��L��C��D��L��C��D�� ��c��o��l��o��r0\xAB0\xE90\xFC�� ��L��C��D&25B=>9�� ��-48A?;59��F��\xE4��r��g��-
��L��C��D_i\x82rm\xB2fv\x98oy:Vh��F��a��r��b��-��L��C��D��V��\xE4��r��i��-��L��C��D��L��C��D�� ��c��o��l��o��r��i\xCE\xEC\xB7\xEC�� ��L��C��D����text��������Copyright Apple, Inc., 2010����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������XYZ ������������\xF3R��������\xCFXYZ ������������g2����5\xF1����'XYZ ������������i\x97����\xBBN����qXYZ ������������&����\xC1����ɔcurv����������������������
+����������#��(��-��2��6��;��@��E��J��O��T��Y��^��c��h��m��r��w��|��\x81��\x86��\x8B��\x90��\x95��\x9A��\x9F��\xA3��\xA8��\xAD��\xB2��\xB7��\xBC��\xC1��\xC6��\xCB��\xD0��\xD5��\xDB��\xE0��\xE5��\xEB��\xF0��\xF6��\xFB+%+28>ELRY`gnu|\x83\x8B\x92\x9A\xA1\xA9\xB1\xB9\xC1\xC9\xD1\xD9\xE1\xE9\xF2\xFA&/8AKT]gqz\x84\x8E\x98\xA2\xAC\xB6\xC1\xCB\xD5\xE0\xEB\xF5��!-8COZfr~\x8A\x96\xA2\xAE\xBA\xC7\xD3\xE0\xEC\xF9 -;HUcq~\x8C\x9A\xA8\xB6\xC4\xD3\xE1\xF0\xFE++:IXgw\x86\x96\xA6\xB5\xC5\xD5\xE5\xF6'7HYj{\x8C\x9D\xAF\xC0\xD1\xE3\xF5+=Oat\x86\x99\xAC\xBF\xD2\xE5\xF82FZn\x82\x96\xAA\xBE\xD2\xE7\xFB % : O d y \x8F \xA4 \xBA \xCF \xE5 \xFB
+
+'
+=
+T
+j
+\x81
+\x98
+\xAE
+\xC5
+\xDC
+\xF3"9Qi\x80\x98\xB0\xC8\xE1\xF9*C\u\x8E\xA7\xC0\xD9\xF3+++&+@+Z+t+\x8E+\xA9+\xC3+\xDE+\xF8.Id\x9B\xB6\xD2\xEE %A^z\x96\xB3\xCF\xEC &Ca~\x9B\xB9\xD7\xF51Om\x8C\xAA\xC9\xE8&Ed\x84\xA3\xC3\xE3#Cc\x83\xA4\xC5\xE5'Ij\x8B\xAD\xCE\xF04Vx\x9B\xBD\xE0&Il\x8F\xB2\xD6\xFAAe\x89\xAE\xD2\xF7@e\x8A\xAF\xD5\xFA Ek\x91\xB7\xDD*Qw\x9E\xC5\xEC;c\x8A\xB2\xDA*R{\xA3\xCC\xF5Gp\x99\xC3\xEC@j\x94\xBE\xE9>i\x94\xBF\xEA A l \x98 \xC4 \xF0!!H!u!\xA1!\xCE!\xFB"'"U"\x82"\xAF"\xDD#
+#8#f#\x94#\xC2#\xF0$$M$|$\xAB$\xDA% %8%h%\x97%\xC7%\xF7&'&W&\x87&\xB7&\xE8''I'z'\xAB'\xDC(+(?(q(\xA2(\xD4))8)k)\x9D)\xD0**5*h*\x9B*\xCF++6+i+\x9D+\xD1,,9,n,\xA2,\xD7--A-v-\xAB-\xE1..L.\x82.\xB7.\xEE/$/Z/\x91/\xC7/\xFE050l0\xA40\xDB11J1\x821\xBA1\xF22*2c2\x9B2\xD43+3F33\xB83\xF14+4e4\x9E4\xD855M5\x875\xC25\xFD676r6\xAE6\xE97$7`7\x9C7\xD788P8\x8C8\xC899B99\xBC9\xF9:6:t:\xB2:\xEF;-;k;\xAA;\xE8<'<e<\xA4<\xE3="=a=\xA1=\xE0> >`>\xA0>\xE0?!?a?\xA2?\xE2@#@d@\xA6@\xE7A)AjA\xACA\xEEB0BrB\xB5B\xF7C:C}C\xC0DDGD\x8AD\xCEEEUE\x9AE\xDEF"FgF\xABF\xF0G5G{G\xC0HHKH\x91H\xD7IIcI\xA9I\xF0J7J}J\xC4KKSK\x9AK\xE2L*LrL\xBAMMJM\x93M\xDCN%NnN\xB7O��OIO\x93O\xDDP'PqP\xBBQQPQ\x9BQ\xE6R1R|R\xC7SS_S\xAAS\xF6TBT\x8FT\xDBU(UuU\xC2VV\V\xA9V\xF7WDW\x92W\xE0X/X}X\xCBYYiY\xB8ZZVZ\xA6Z\xF5[E[\x95[\xE5\5\\x86\\xD6]']x]\xC9^^l^\xBD__a_\xB3``W`\xAA`\xFCaOa\xA2a\xF5bIb\x9Cb\xF0cCc\x97c\xEBd@d\x94d\xE9e=e\x92e\xE7f=f\x92f\xE8g=g\x93g\xE9h?h\x
96h\xECiCi\x9Ai\xF1jHj\x9Fj\xF7kOk\xA7k\xFFlWl\xAFmm`m\xB9nnkn\xC4ooxo\xD1p+p\x86p\xE0q:q\x95q\xF0rKr\xA6ss]s\xB8ttpt\xCCu(u\x85u\xE1v>v\x9Bv\xF8wVw\xB3xxnx\xCCy*y\x89y\xE7zFz\xA5{{c{\xC2|!|\x81|\xE1}A}\xA1~~b~\xC2#\x84\xE5\x80G\x80\xA8\x81
+\x81k\x81͂0\x82\x92\x82\xF4\x83W\x83\xBA\x84\x84\x80\x84\xE3\x85G\x85\xAB\x86\x86r\x86ׇ;\x87\x9F\x88\x88i\x88Ή3\x89\x99\x89\xFE\x8Ad\x8Aʋ0\x8B\x96\x8B\xFC\x8Cc\x8Cʍ1\x8D\x98\x8D\xFF\x8Ef\x8EΏ6\x8F\x9E\x90\x90n\x90֑?\x91\xA8\x92\x92z\x92\xE3\x93M\x93\xB6\x94 \x94\x8A\x94\xF4\x95_\x95ɖ4\x96\x9F\x97
+\x97u\x97\xE0\x98L\x98\xB8\x99$\x99\x90\x99\xFC\x9Ah\x9A՛B\x9B\xAF\x9C\x9C\x89\x9C\xF7\x9Dd\x9DҞ@\x9E\xAE\x9F\x9F\x8B\x9F\xFA\xA0i\xA0ءG\xA1\xB6\xA2&\xA2\x96\xA3\xA3v\xA3\xE6\xA4V\xA4ǥ8\xA5\xA9\xA6\xA6\x8B\xA6\xFD\xA7n\xA7\xE0\xA8R\xA8ĩ7\xA9\xA9\xAA\xAA\x8F\xAB\xABu\xAB\xE9\xAC\\xACЭD\xAD\xB8\xAE-\xAE\xA1\xAF\xAF\x8B\xB0��\xB0u\xB0\xEA\xB1`\xB1ֲK\xB2³8\xB3\xAE\xB4%\xB4\x9C\xB5\xB5\x8A\xB6\xB6y\xB6\xF0\xB7h\xB7\xE0\xB8Y\xB8ѹJ\xB9º;\xBA\xB5\xBB.\xBB\xA7\xBC!\xBC\x9B\xBD\xBD\x8F\xBE
+\xBE\x84\xBE\xFF\xBFz\xBF\xF5\xC0p\xC0\xEC\xC1g\xC1\xE3\xC2_\xC2\xDB\xC3X\xC3\xD4\xC4Q\xC4\xCE\xC5K\xC5\xC8\xC6F\xC6\xC3\xC7Aǿ\xC8=ȼ\xC9:ɹ\xCA8ʷ\xCB6˶\xCC5̵\xCD5͵\xCE6ζ\xCF7ϸ\xD09к\xD1<Ѿ\xD2?\xD2\xC1\xD3D\xD3\xC6\xD4I\xD4\xCB\xD5N\xD5\xD1\xD6U\xD6\xD8\xD7\\xD7\xE0\xD8d\xD8\xE8\xD9l\xD9\xF1\xDAv\xDA\xFBۀ\xDC܊\xDDݖ\xDEޢ\xDF)߯\xE06\xE0\xBD\xE1D\xE1\xCC\xE2S\xE2\xDB\xE3c\xE3\xEB\xE4s\xE4\xFC\xE5\x84\xE6+\xE6\x96\xE7\xE7\xA9\xE82\xE8\xBC\xE9F\xE9\xD0\xEA[\xEA\xE5\xEBp\xEB\xFB\xEC\x86\xED\xED\x9C\xEE(\xEE\xB4\xEF@\xEF\xCC\xF0X\xF0\xE5\xF1r\xF1\xFF\xF2\x8C\xF3\xF3\xA7\xF44\xF4\xC2\xF5P\xF5\xDE\xF6m\xF6\xFB\xF7\x8A\xF8\xF8\xA8\xF98\xF9\xC7\xFAW\xFA\xE7\xFBw\xFC\xFC\x98\xFD)\xFD\xBA\xFEK\xFE\xDC\xFFm\xFF\xFFpara����������������ff����\xF2\xA7����+Y����\xD0����
+\xC0vcgt����������������������������V\x89q8\xE5\xC8\xA7\x8Fy e
+[UQ+VRZ`hn\x86\xC5[\xA6\xF1<\x87\xD90 ~!\xD4#+$\x83%\xDD':(\x98)\xF6+T,\xB4./y0\xE12L3\xB256\x867\xEF9T:\xBC<"=\x88>\xEE@RA\xB5CDxE\xD9G8H\x97I\xF5KTL\xABM\xE3OPAQmR\x97S\xC1T\xE6V
+W)XFY^Zr[\x83\\x90]\x9B^\xA1_\xA6`\xA8a\xA7b\xA7c\xA3d\x9Ee\x90fgnh^iNj<k+lmm\xFAn\xE9o\xD8p\xC7q\xB7r\xA7s\x96t\x85utvcwRxAy,z{{\xEC|\xD7}\xC1~\xAC\x97\x80\x81\x81m\x82X\x83C\x84.\x85\x86\x86\xF1\x87܈ȉ\xB4\x8A\xA0\x8B\x8C\x8C\x8D\x8D\x8F\x8E\x8E\x8F\x8E\x90\x8E\x91\x8D\x92\x8B\x93\x88\x94\x82\x95}\x96t\x97l\x98b\x99V\x9AI\x9B;\x9C,\x9D\x9E\x9E\xFA\x9F\xE6\xA0Ρ\xB3\xA2\x98\xA3|\xA4b\xA5H\xA6.\xA7\xA7\xFB\xA8\xE2\xA9ʪ\xB1\xAB\x9A\xAC\x82\xADl\xAEU\xAF?\xB0)\xB1\xB1\xFE\xB2\xE8\xB3Ӵ\xB8\xB5\x9C\xB6\x80\xB7c\xB8E\xB9'\xBA\xBA\xE8\xBBǼ\xA5\xBD\x81\xBE\\xBF7\xC0\xC0\xE9\xC1\xC1\xC3n\xC4C\xC5\xC5\xF1\xC6\xD0dzȖ\xC9z\xCA^\xCBB\xCC(\xCD\xCD\xF5\xCE\xDC\xCF\xC4Ьѕ\xD2~\xD3g\xD4P\xD5:\xD6#\xD7+\xD7\xF7\xD8\xE1\xD9\xD2\xDA\xC2۲ܢݑހ\xDFo\xE0]\xE1J\xE25\xE3 \xE4
+\xE4\xF2\xE5\xD9\xE6\xBF\xE7\xA4\xE8\x87\xE9k\xEAM\xEB.\xEC\xEC\xD7\xED\xA0\xEEk\xEF7\xF0\xF0\xD7\xF1\xAC\xF2\x84\xF3`\xF4A\xF5%\xF6\xF6\xFD\xF7\xF0\xF8\xE8\xF9\xE2\xFA\xE2\xFB\xE3\xFC\xE6\xFD\xED\xFE\xF4\xFF\xFF������VEA/\xEE\xC1\x87S.\xE7 \xC6
+\xA6\x8Cv+_H7\xFE/^\x94\xCC7h\xA1\xDDQ \x8E!\xCC#
+$G%\x85&\xC9()J*\x8E+\xD4-.h/\xB512O3\x994\xE36-7w8\xC2:;S<\x9B=\xE1?)@mA\xB2B\xF9D>E\x83F\xBCG\xD8H\xE9I\xF8KLMN'O/P3Q6R6S3T-U%VWX��X\xEFY\xDEZ\xCD[\xBA\\xA1]\x80^[_5``\xE9a\xC4b\xA0c{dUe/f
+f\xE5g\xC0h\x9BiwjQk,ll\xE2m\xBDn\x99orpLq&r��r\xDAs\xB3t\x8DugvAww\xF4x\xCEy\xA7z\x82{[|4}}\xE6~\xBF\x98\x80s\x81X\x82>\x83#\x84\x84\xEE\x85Ԇ\xBA\x87\xA0\x88\x85\x89k\x8AP\x8B5\x8C\x8C\xFF\x8D\xE4\x8Eȏ\xAE\x90\x92\x91v\x92[\x93?\x94 \x95��\x95ߖ\xBF\x97\xA0\x98\x81\x99a\x9AB\x9B#\x9C\x9C\xE5\x9DǞ\xA9\x9F\x8B\xA0n\xA1P\xA23\xA3\xA3\xF8\xA4ۥ\xBE\xA6\xA2\xA7\x82\xA8b\xA9B\xAA"\xAB\xAB\xE3\xACí\xA4\xAE\x83\xAFd\xB0D\xB1$\xB2\xB2\xE4\xB3Ŵ\xA5\xB5\x84\xB6d\xB7D\xB8$\xB9\xB9\xEC\xBAջ\xBE\xBC\xA9\xBD\x93\xBE~\xBFk\xC0Y\xC1G\xC27\xC3(\xC4\xC5\xC6\xC6\xF8\xC7\xEE\xC8\xE5\xC9\xDD\xCA\xD6\xCB\xCF\xCC\xC9\xCD\xCC\xCE\xCF\xCF\xD1\xD0\xD3\xD1\xD6\xD2\xD8\xD3\xDA\xD4\xDC\xD5\xDE\xD6\xE0\xD7\xE2\xD8\xE4\xD9\xE6\xDA\xE7\xDB\xEA\xDC\xEC\xDD\xF0\xDE\xF3\xDF\xF6\xE0\xF9\xE2\xE3%\xE4N\xE5y\xE6\xA7\xE7\xD9\xE9\xEAN\xEB\x91\xEC\xD9\xEE*\xEF\x83\xF0\xE3\xF2L\xF3\xBB\xF53\xF6\xAF\xF83\xF9\xBB\xFBF\xFC\xD7\xFEi\xFF\xFF������V.\xEB\x9DS\xB9v6\xF1\xB8~ H
+
+\xF0\xC4\x96+jE!\xFE*9EVj\x80\x95\xAD\xC5\xDE\xFA 0!N"o#\x8E$\xAD%\xCF&\xF3()?*g+\x8C,\xB0-\xD7.\xFD0!1F2h3\x8A4\xAC5\xCD6\xEC89(:H;d<=\x9C>\xAE?\xAB@\x9EA\x8FB~CkDXE@F&G G\xE8H\xC5I\x9EJtKFLL\xE0M\xAANrO6O\xFAP\xBDQ~R:R\xF5S\xB0TkU%U\xDFV\x9AWTXX\xC7Y\x81Z:Z\xF3[\xAC\g]]\xD7^\x90_I``\xBCazb9b\xF7c\xB6dte2e\xF1f\xAFgmh*h\xE8i\xA6jdk k\xDDl\x9AmVnn\xCFo\x8BpHqq\xC3r\x81s>s\xFCt\xB9uxv5v\xF1w\xAExky'y\xE3z\x9F{[||\xD2}\x8E~HÀ\x8C\x81X\x82%\x82\x8A\x85V\x86#\x86\x88\x87\x89R\x8A\x8Aꋵ\x8C\x80\x8DK\x8E\x8EᏬ\x90v\x91B\x92\x92ܓ\xA9\x94v\x95C\x96\x96ޗ\xAB\x98y\x99F\x9A\x9Aᛯ\x9C}\x9DL\x9E\x9E蟶\xA0\x84\xA1S\xA2%\xA2\xFB\xA3֤\xB0\xA5\x8A\xA6d\xA7?\xA8\xA8\xF6\xA9Ҫ\xAF\xAB\x8C\xACi\xADG\xAE&\xAF\xAF\xE4\xB0ñ\xA3\xB2\x83\xB3d\xB4J\xB5:\xB60\xB7'\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF%\xC02\xC1D\xC2Y\xC3sďů\xC6\xD2\xC7\xF9\xC9 \xCA]\xCB\xE1͈\xCF4\xD0\xE5Ҡ\xD4g\xD6>\xD8*\xDA-\xDCMޏ\xE0\xF2\xE3}\xE6-\
xE9��\xEB\xF3\xEF
+\xF2A\xF5\x8F\xF8\xF3\xFCo\xFF\xFF����ndin������������6����\xA4����V\xD5����Us����\xA4����%?����+\xCC����P+����T9��\x85��
+��\x8C\xCC������������������������$��/��<��J��Y��j��{��\x8F��\xA3��\xB9��\xD0��\xE92Jc}\x98\xB4\xD1\xEF-Mo\x91\xB4\xD8\xFD"Ip\x98\xC1\xEBBn\x9C\xCA\xF9(X\x8A\xBC\xEF#X\x8E\xC6\xFE7r\xAD\xEA'f\xA6\xE7 ) m \xB1 \xF7
+>
+\x86
+\xCFe\xB1a\xBD++|+\xDFC\xA9~\xED^\xD3K\xC6E\xC6L\xD5a\xF1\x83\xB1R\xF8\xA0J\xF7\xA7Y+\xC4~:\xF9\xBA }!C""\xD8#\xA6$w%J&$''\xE0(\xC2)\xA7*\x8E+x,e-S.E/:011*2&3%4'5+627;819):%;#<$=(>/?:@JA\BtC\x8FD\xAEE\xD2F\xFAH&IVJ\x8AK\xC2L\xFDNDO\x92P\xE3R8S\x8DT\xE6VAW\x9FX\xFFZa[\xC6]-^\x96`aob\xDFdRe\xC7g@h\xB9jAk\xCCm\n\xF0p\x89r&s\xC9uqwx\xD4z\x8E|O~߁\xB0\x83\x87\x85b\x87@\x89+\x8A\xA2\x8Eo\x90@\x92\x93䕹\x97\x8F\x99h\x9BC\x9D \x9E\xFF\xA0\xE1\xA2Ť\xAE\xA6\x98\xA8\x85\xAAu\xACZ\xAEC\xB0/\xB2\xB4\xB6
+\xB8\xBA\xBC+\xBE\xC0+\xC2C\xC4aƆȲ\xCA\xE2\xCD\xCFUі\xD4֧\xD93ۻ\xDE:\xE0\xB3\xE3"\xE5\x87\xE7\xE2\xEA3\xECz\xEE\xB8\xF0\xEE\xF3 \xF5J\xF7s\xF9\x99\xFB\xBB\xFD\xE0\xFF\xFF������������������(��4��C��S��e��x��\x8D��\xA4��\xBC��\xD7��\xF3(B\x\x94\xB2\xD1\xF25X|\xA2\xC8\xF0Bm\x99\xC6\xF3#S\x84\xB6\xE9Q\x86\xBD\xF4-g\xA3\xDF\\x9C\xDD d\xA9\xF0 8 \x81 \xCC
+
+e
+\xB3T\xA6g\xCE+8+\xA4\x83\xF7m\xE7c\xE3g\xEEy\x99/\xC8d\xA6U
+\xC3=\xFE\xC2\x8AT!\xF1\xC5 \x9A!t"P#/$$\xF6%\xE0&\xCD'\xBC(\xAF)\xA6*\x9F+\x9C,\x9B-\x9E.\xA4/\xAE0\xBA1\xCA2\xDE3\xF556,7K8^9u:\x8F;\xAB<\xCA=\xEC?@:AeB\x94C\xC6D\xFBF2GnH\xABI\xEDK2LxM\xC5OPqQ\xCCS)T\x88U\xECWQX\xBAZ&[\x94]^x_\xEEahb\xE3dce\xE4gjh\xF0j\x81lm\xABoDp\xE1r\x81t$u\xCCwuy#z\xD4|\x88~?\xF9\x81\xB8\x83y\x85?\x87\x88Ɗ\x84\x8CC\x8E\x8FǑ\x8A\x93N\x95\x96٘\x9F\x9Af\x9C-\x9D\x{15FF61}\x87\xA3R\xA5\xA6쨻\xAA\x8B\xACN\xAE\xAFݱ\xA9\xB3w\xB5H\xB7\xB8\xF1\xBA˼\xA6\xBE\x85\xC0e\xC2I\xC4/\xC6\xC8\xC9\xEC\xCB\xDA\xCD\xCBϽѱ\xD3r\xD5-\xD6\xE7ؠ\xDAW\xDC
+ݷ\xDFc\xE1 \xE2\xAA\xE4H\xE5\xDE\xE7n\xE8\xFA\xEA\x82\xEC\xED\x80\xEE\xFB\xF0p\xF1\xE3\xF3T\xF4\xC0\xF6+\xF7\x96\xF9��\xFAg\xFB\xCD\xFD5\xFE\x9B\xFF\xFF���������� ������'��6��F��Y��m��\x83��\x9B��\xB6��\xD2��\xF0,Ig\x87\xA9\xCC\xF0<d\x8D\xB8\xE4@p\xA1\xD3<s\xAA\xE3X\x94\xD2S\x95\xD9f\xAF\xFAF\x94\xE4 6 \x89 \xDF
+5
+\x8E
+\xE9E\xA3}\xF2+j+\xE6d\xE8o\xFB\x8C#\xBFb\xBAo+\xEB\xB1\x81V0\xF0\xD7\xC2\xB2\xA6\x9F \x9B!\x9D"\xA3#\xAE$\xBC%\xC9&\xD7'\xE9)*+;,_-\x88.\xB5/\xE612W3\x974\xDB6$7p8\xBE:;i<\xC5>$?\x89@\xF3BbC\xD6EOF\xCCHOI\xD6KcL\xF3NnO\xE5Q_R\xDET_U\xE6WoX\xFEZ\x90\']\xC1_`ab\xABdWfg\xBBipk'l\xE1n\xA0par's\xF1u\xBEw\x8Fyc{<}~\xF5\x80\xBE\x84\xA9\x86\x96\x88z\x8AU\x8C2\x8E\x8F\xF8\x91ޓǕ\xB2\x97\xA0\x99\x90\x9B\x82\x9Dv\x9Fl\xA1e\xA3`\xA5_\xA7^\xA9a\xABS\xAD1\xAF\xB0\xED\xB2̴\xAA\xB6\x87\xB8b\xBA:\xBC\xBD\xC1x\xC3=\xC5��ƿ\xC8{\xCA5\xCB\xED͢\xCFY\xD1҉\xD3\xCB\xD5\xD67\xD7lؠ\xD9\xD2\xDB��\xDC-\xDDT\xDEwߖ\xE0\xAE\xE1\xC1\xE2\xCD\xE3\xD6\xE4\xD5\xE5\xD1\xE6\xC4\xE7\xB2\xE8\x9C\xE9}\xEA_\xEB5\xEC\xEC\xDD\xED\xA7\xEEr\xEF6\xEF\xF8\xF0\xB9\xF1t\xF2.\xF2\xE9\xF3\x9C\xF4O\xF5\xF5\xB0\xF6]\xF7
+\xF7\xB4\xF8]\xF9\xF9\xAD\xFAR\xFA\xF8\xFB\x9D\xFC?\xFC\xE1\xFD\x83\xFE#\xFE\xC2\xFF`\xFF\xFF����sf32����������B����\xDE\xFF\xFF\xF3&����\x92����\xFD\x91\xFF\xFF\xFB\xA2\xFF\xFF\xFD\xA3����\xDC����\xC0lmmod����������������\x9C\xB7��������\xC6C\x84\x80��������������������������������\xFF\xC0����2��d"��\xFF\xC4����������������������
+\xFF\xC4��\xB5������}��!1AQa"q2\x81\x91\xA1#B\xB1\xC1R\xD1\xF0$3br\x82
+%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x83\x84\x85\x86\x87\x88\x89\x8A\x92\x93\x94\x95\x96\x97\x98\x99\x9A\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFF\xC4����������������
+\xFF\xC4��\xB5����w��!1AQaq"2\x81B\x91\xA1\xB1\xC1 #3R\xF0br\xD1
+$4\xE1%\xF1&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x92\x93\x94\x95\x96\x97\x98\x99\x9A\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFF\xDB��C��
+ +
+ ++\xFF\xDB��C\xFF\xDD����\xFF\xDA������?��\xF8\xAE\x8A(\xAF\xE5s\xF8\x9C(\xA2\x81\xC1\xA0\xC9zҁ\xB4\xF2q\xF8W1\xAB\xFC_\xD0t{\xDF"\xFE\xE6\xED\ܛ5)\xA7\xDCȯ0$yj\xCBV~\xBCO\xB6tY\xF8\xA2Ů49$x\x96F\x89\xBCȞ&FJ\xB8}Eu\xD4\xC0\xE2(\xC1T\xA9NJ/\xABM/\xBCﭖb\xF0\xF4\xD5Z\xB4\xA4\xA2\xFA\xB4\xD2\xFB\xCF\xDD\xF8$\xCD\xFF��\xEC\xF8{\xFF��q\xFD9]W\xD2\xF5\xF3G\xFC\x8F\xF8'g\xC3\xDF\xFB\x88\xFF��\xE9\xCA꾑\x8A\xEE+\x89&He\x8EF\x81\xFC\xB9Xm+\xB5\x87c\xB5\x94\xE0\xF6 \xF7\xAF\xF3K\xC4I\xF1.h\x{D9F6}\xA9\xFF��\xA5\xB3\xFB߃\xFC \xE0?\xEB\xD5?\xFD%QE\xF1\xA7\xD3Q@Q@\xFF\xD0\xF8\xB3\x9F_֎}Z\xF9\x87\xFE>\xBD\xFF��A\x9DS\xFF��\x9F\xFCh\xFF��\x85\x8F\xAF\xD0gT\xFF��\xC0\xA7\xFF��\xFD\xFF��\xFE)\xBFğ\xF49\xA3\xFF��\x80\xC8\xFEe\xFF��Q\xAA\xFF��\xCF\xE5\xF7Os\xEB\xFA\xD1ϯ\xEB_0\xFF��\xC2\xC7\xE83\xAA\xE0S\xFF��\x8D\xF0\xB1\xF5\xEF\xFA\xEA\x9F\xF8\xFF�
�\xE3G\xFCS\x89?\xE
8sG\xFF��\x90\xA8\xD5\xE7\xF2\xFB\x8Fg\xF8\xC1V\xB7>XV8\xC3\xF8\x8E\xDA0fYI8\xF5'\x92{\x93U\xBE"jR\xCB\xE3\xCB=\xD7P\x8BH\x8A\xF6\xCAk\x94o=\xED\x8D\xC4\xE0\x85Ϙ\x84d^v\xE7}\xE0@\xE1\xFA\xE5\xFC\xFE(\x9A<I4\xBA\x84\x90dF\xD7eh\xC1\xE4\xE0\xB6q\xD0t\xF4\xA7kڵm\xE2\x8Bė3\xDF\xC5 \xDD\HeT8\xC6@b@8\xE2\xBD\xDC?\xEC\xF5\xE2
+Q\xA4\xA5\x9CRn*I\xFB\x92ݻ\xDF\xCE\xC7\xD3\xE12c
+u.ছ\xB7Y6\xD3Wz\xDB\xCF\xF0?\?d\xBF\x8E\xFE/\xF89\xFB3\xFC!\xF1F\xBD\xAC\xF8\x97\xC4\xFF��t=6\xCEv\xE7\xC2^!\x9BO\xBF\xF0\x95\xCB\xF8\x9FQۨ\xDC逪j\x96W\xA28\xED\x9B&B\x89\xADRr\xFF��j\xFF��\xC1'\xF4-#B\xB8\xF8\xE34Z\xFE\xB5\xA8\xEB7<Ii-\xBE\xA3\xE2;\xAB\xFD\x90[^\x98\xE3e\xB7\x9EVX\xD8$\x91+H\xA8Ǘ\xBD\x9B\x8FĿ\x82\xED\xF4\xDE\xF0Ƨs}y&\xA3\xA3\xC7\xE5\xD8ݴ\xECg\xB2X\xEE不b|\xEEEI\x99\xA5P\xA4v,0\xC75\xE8\xFE\xF8\xD3\xE3\xF8\xB3[!\xE2\xBF\xE9z\xE7\x89^95}B\xD3S\x9A\xADQ\xA3Fn%W+1P\xCC\xB18\xDCqֿ\xCA?|$\xF6\xEC\xEB\x85\xFD\xBA\x85XW\x9C%8\xC6\xCA^Σ\xDE7\xB5\x9B\xBC\x9B\x8A\x8AmE\xB8\xF39M\xFF��\xA7|\xF4V\xCEs\xBE\xCB3:8\xEAjiR\xA8\xA2\xE2\xF4槶\x8A\xDA]m\xA7m4?\xA2ߵG\xFD\xF5\xFF��\xBE\x85j\x8F\xFB\xEB\xFF��}
+\xFE|\xFF��\xE1\xB0\xFE,\xFF��\xD1M\xF1\xF7\xFE\xFCr\x8F\xF8l?\x8B?\xF4S|}\xFF��\x85\xDF\xFF��\xAF\xE6/\xF8\x96\xBCG\xFDc\xFF��\x80?\xFEH\xFB\xBF\xF8\x94\xCC\xFF��\xFE\x83\xA8\xFF��\xE4\xFF��\xE4A\x9Fj\x8F\xFB\xEB\xFF��}
+>\xD5\xF7\xD7\xFE\xFA\xFC\xF9\xFF��\xC3a\xFCY\xFF��\xA2\x9B\xE3\xEF\xFC(.\xFF��\xF8\xED\xF0\xD8\xE8\xA6\xF8\xFB\xFF��
+\xBF\xFE;G\xFCK^#\xFE\x861\xFF��\xC0\xFF��$\xF1)\x99\xFF��\xFDQ\xFF��\xC9\xFF��\xC8\xFE\x83>\xD5\xF7\xD7\xFE\xFA}\xAA?\xEF\xAF\xFD\xF4+\xF9\xF3\xFF��\x86\xC3\xF8\xB3\xFF��E7\xC7\xDF\xF8P]\xFF��\xF1\xDA?\xE1\xB0\xFE,\xFF��\xD1M\xF1\xF7\xFE\xFCv\x8F\xF8\x96\xBCG\xFDc\xFF��\x80?\xFEH?\xE2S3\xFF��\xFA\xA3\xFF��\x93\xFF��\x91\xFF\xD1\xFCs\xA2\x8A+\xFD\xFC?+
+(\xA2\x80
+3E\xF4\x8F\xC0\xFF��\xF9%zO\xFB\xB2\xE8Ʈ\xAE\xB9O\x81\xFF��\xF2J\xF4\x9F\xF7d\xFF��э]]\xCDg\x8E\xF2q8\x87\xFE\xC2\xF1\xFArG\xFD\xF85\xFF��$C\xFF��`\xB4?\xF4\xDCB\x8A(\xAFʏ\xD2(\xA0\x8A(\xA0\xFF\xD2\xFCs\xA2\x8A+\xFD\xFC?+
+(\xA2\x80
+(\xA2\x80>\x91\xF8\xFF��$\xAFI\xFF��vO\xFD\xD5\xD5\xD7)\xF0?\xFEI^\x93\xFE\xEC\x9F\xFA1\xAB\xAB\xAF\xF9\xAC\xF1\xCF\xFEN'\xFF��\xD8^#\xFF��NH\xFF��\xA0_\xBF\xE4\x82\xC8\xEC\x87\xFE\x9B\x88QE\xF9Q\xFAXQE��QE\xFF\xD9
\ No newline at end of file