{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,40 +1,40 @@\n-Zip file size: 89070 bytes, number of entries: 38\n+Zip file size: 89940 bytes, number of entries: 38\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/\n -rw----     2.0 fat    14493 bX stor 70-Jan-01 00:00 META-INF/DEPENDENCIES\n -rw----     2.0 fat    11358 bX stor 70-Jan-01 00:00 META-INF/LICENSE\n -rw----     2.0 fat       25 bX stor 70-Jan-01 00:00 META-INF/MANIFEST.MF\n -rw----     2.0 fat      171 bX stor 70-Jan-01 00:00 META-INF/NOTICE\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/dubbo/internal/\n -rw----     2.0 fat       52 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.Protocol\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.properties\n--rw----     2.0 fat     3999 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml\n+-rw----     2.0 fat     3888 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/\n--rw----     2.0 fat     3030 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/BaseRestProtocolServer.java\n--rw----     2.0 fat     1012 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/Constants.java\n--rw----     2.0 fat     4599 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/DubboHttpProtocolServer.java\n+-rw----     2.0 fat     3110 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/BaseRestProtocolServer.java\n+-rw----     2.0 fat     1041 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/Constants.java\n+-rw----     2.0 fat     4730 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/DubboHttpProtocolServer.java\n -rw----     2.0 fat     2581 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/DubboResourceFactory.java\n--rw----     2.0 fat     3144 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/NettyRestProtocolServer.java\n+-rw----     2.0 fat     3217 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/NettyRestProtocolServer.java\n -rw----     2.0 fat     2017 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestConstraintViolation.java\n--rw----     2.0 fat    12786 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestProtocol.java\n--rw----     2.0 fat     1236 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestProtocolServer.java\n--rw----     2.0 fat     1701 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestServerFactory.java\n--rw----     2.0 fat     4502 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java\n+-rw----     2.0 fat    13081 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestProtocol.java\n+-rw----     2.0 fat     1269 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestProtocolServer.java\n+-rw----     2.0 fat     1745 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestServerFactory.java\n+-rw----     2.0 fat     4608 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java\n -rw----     2.0 fat     2538 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RpcExceptionMapper.java\n -rw----     2.0 fat     1939 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/ViolationReport.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/integration/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/integration/swagger/\n -rw----     2.0 fat     2137 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/integration/swagger/DubboSwaggerApiListingResource.java\n--rw----     2.0 fat     1734 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/integration/swagger/DubboSwaggerService.java\n+-rw----     2.0 fat     1776 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/integration/swagger/DubboSwaggerService.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/support/\n -rw----     2.0 fat     1315 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/support/ContentType.java\n--rw----     2.0 fat     5479 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java\n-38 files, 81848 bytes uncompressed, 81848 bytes compressed:  0.0%\n+-rw----     2.0 fat     5627 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java\n+38 files, 82718 bytes uncompressed, 82718 bytes compressed:  0.0%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -312,1786 +312,1786 @@\n #\n 069C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 069C5   Length              0005 (5)\n 069C7   Flags               01 (1) 'Modification'\n 069C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n 069CC PAYLOAD\n \n-0796B DATA DESCRIPTOR       08074B50 (134695760)\n-0796F CRC                   B2FF8BF3 (3003091955)\n-07973 Compressed Size       00000F9F (3999)\n-07977 Uncompressed Size     00000F9F (3999)\n-\n-0797B LOCAL HEADER #14      04034B50 (67324752)\n-0797F Extract Zip Spec      14 (20) '2.0'\n-07980 Extract OS            00 (0) 'MS-DOS'\n-07981 General Purpose Flag  0000 (0)\n-07983 Compression Method    0000 (0) 'Stored'\n-07985 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07989 CRC                   00000000 (0)\n-0798D Compressed Size       00000000 (0)\n-07991 Uncompressed Size     00000000 (0)\n-07995 Filename Length       0004 (4)\n-07997 Extra Length          0009 (9)\n-07999 Filename              'XXXX'\n-#\n-# WARNING: Offset 0x7999: Filename 'XXXX'\n-#          Zero length filename\n-#\n-0799D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0799F   Length              0005 (5)\n-079A1   Flags               01 (1) 'Modification'\n-079A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-079A6 LOCAL HEADER #15      04034B50 (67324752)\n-079AA Extract Zip Spec      14 (20) '2.0'\n-079AB Extract OS            00 (0) 'MS-DOS'\n-079AC General Purpose Flag  0000 (0)\n-079AE Compression Method    0000 (0) 'Stored'\n-079B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-079B4 CRC                   00000000 (0)\n-079B8 Compressed Size       00000000 (0)\n-079BC Uncompressed Size     00000000 (0)\n-079C0 Filename Length       000B (11)\n-079C2 Extra Length          0009 (9)\n-079C4 Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x79C4: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-079CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-079D1   Length              0005 (5)\n-079D3   Flags               01 (1) 'Modification'\n-079D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-079D8 LOCAL HEADER #16      04034B50 (67324752)\n-079DC Extract Zip Spec      14 (20) '2.0'\n-079DD Extract OS            00 (0) 'MS-DOS'\n-079DE General Purpose Flag  0000 (0)\n-079E0 Compression Method    0000 (0) 'Stored'\n-079E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-079E6 CRC                   00000000 (0)\n-079EA Compressed Size       00000000 (0)\n-079EE Uncompressed Size     00000000 (0)\n-079F2 Filename Length       0011 (17)\n-079F4 Extra Length          0009 (9)\n-079F6 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x79F6: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07A07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07A09   Length              0005 (5)\n-07A0B   Flags               01 (1) 'Modification'\n-07A0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07A10 LOCAL HEADER #17      04034B50 (67324752)\n-07A14 Extract Zip Spec      14 (20) '2.0'\n-07A15 Extract OS            00 (0) 'MS-DOS'\n-07A16 General Purpose Flag  0000 (0)\n-07A18 Compression Method    0000 (0) 'Stored'\n-07A1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07A1E CRC                   00000000 (0)\n-07A22 Compressed Size       00000000 (0)\n-07A26 Uncompressed Size     00000000 (0)\n-07A2A Filename Length       0015 (21)\n-07A2C Extra Length          0009 (9)\n-07A2E Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7A2E: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07A43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07A45   Length              0005 (5)\n-07A47   Flags               01 (1) 'Modification'\n-07A48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07A4C LOCAL HEADER #18      04034B50 (67324752)\n-07A50 Extract Zip Spec      14 (20) '2.0'\n-07A51 Extract OS            00 (0) 'MS-DOS'\n-07A52 General Purpose Flag  0000 (0)\n-07A54 Compression Method    0000 (0) 'Stored'\n-07A56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07A5A CRC                   00000000 (0)\n-07A5E Compressed Size       00000000 (0)\n-07A62 Uncompressed Size     00000000 (0)\n-07A66 Filename Length       001E (30)\n-07A68 Extra Length          0009 (9)\n-07A6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7A6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07A88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07A8A   Length              0005 (5)\n-07A8C   Flags               01 (1) 'Modification'\n-07A8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07A91 LOCAL HEADER #19      04034B50 (67324752)\n-07A95 Extract Zip Spec      14 (20) '2.0'\n-07A96 Extract OS            00 (0) 'MS-DOS'\n-07A97 General Purpose Flag  0000 (0)\n-07A99 Compression Method    0000 (0) 'Stored'\n-07A9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07A9F CRC                   00000000 (0)\n-07AA3 Compressed Size       00000000 (0)\n-07AA7 Uncompressed Size     00000000 (0)\n-07AAB Filename Length       0023 (35)\n-07AAD Extra Length          0009 (9)\n-07AAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7AAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07AD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07AD4   Length              0005 (5)\n-07AD6   Flags               01 (1) 'Modification'\n-07AD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07ADB LOCAL HEADER #20      04034B50 (67324752)\n-07ADF Extract Zip Spec      14 (20) '2.0'\n-07AE0 Extract OS            00 (0) 'MS-DOS'\n-07AE1 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-07AE3 Compression Method    0000 (0) 'Stored'\n-07AE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07AE9 CRC                   00000000 (0)\n-07AED Compressed Size       00000000 (0)\n-07AF1 Uncompressed Size     00000000 (0)\n-07AF5 Filename Length       003E (62)\n-07AF7 Extra Length          0009 (9)\n-07AF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7AF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07B37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07B39   Length              0005 (5)\n-07B3B   Flags               01 (1) 'Modification'\n-07B3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-07B40 PAYLOAD\n-\n-08716 DATA DESCRIPTOR       08074B50 (134695760)\n-0871A CRC                   3DF79E03 (1039638019)\n-0871E Compressed Size       00000BD6 (3030)\n-08722 Uncompressed Size     00000BD6 (3030)\n-\n-08726 LOCAL HEADER #21      04034B50 (67324752)\n-0872A Extract Zip Spec      14 (20) '2.0'\n-0872B Extract OS            00 (0) 'MS-DOS'\n-0872C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0872E Compression Method    0000 (0) 'Stored'\n-08730 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-08734 CRC                   00000000 (0)\n-08738 Compressed Size       00000000 (0)\n-0873C Uncompressed Size     00000000 (0)\n-08740 Filename Length       0031 (49)\n-08742 Extra Length          0009 (9)\n-08744 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8744: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08775 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08777   Length              0005 (5)\n-08779   Flags               01 (1) 'Modification'\n-0877A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0877E PAYLOAD\n-\n-08B72 DATA DESCRIPTOR       08074B50 (134695760)\n-08B76 CRC                   4DA1C2B1 (1302446769)\n-08B7A Compressed Size       000003F4 (1012)\n-08B7E Uncompressed Size     000003F4 (1012)\n-\n-08B82 LOCAL HEADER #22      04034B50 (67324752)\n-08B86 Extract Zip Spec      14 (20) '2.0'\n-08B87 Extract OS            00 (0) 'MS-DOS'\n-08B88 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-08B8A Compression Method    0000 (0) 'Stored'\n-08B8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-08B90 CRC                   00000000 (0)\n-08B94 Compressed Size       00000000 (0)\n-08B98 Uncompressed Size     00000000 (0)\n-08B9C Filename Length       003F (63)\n-08B9E Extra Length          0009 (9)\n-08BA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8BA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08BDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08BE1   Length              0005 (5)\n-08BE3   Flags               01 (1) 'Modification'\n-08BE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-08BE8 PAYLOAD\n-\n-09DDF DATA DESCRIPTOR       08074B50 (134695760)\n-09DE3 CRC                   150F0CC2 (353307842)\n-09DE7 Compressed Size       000011F7 (4599)\n-09DEB Uncompressed Size     000011F7 (4599)\n-\n-09DEF LOCAL HEADER #23      04034B50 (67324752)\n-09DF3 Extract Zip Spec      14 (20) '2.0'\n-09DF4 Extract OS            00 (0) 'MS-DOS'\n-09DF5 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-09DF7 Compression Method    0000 (0) 'Stored'\n-09DF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09DFD CRC                   00000000 (0)\n-09E01 Compressed Size       00000000 (0)\n-09E05 Uncompressed Size     00000000 (0)\n-09E09 Filename Length       003C (60)\n-09E0B Extra Length          0009 (9)\n-09E0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9E0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-09E49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09E4B   Length              0005 (5)\n-09E4D   Flags               01 (1) 'Modification'\n-09E4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-09E52 PAYLOAD\n-\n-0A867 DATA DESCRIPTOR       08074B50 (134695760)\n-0A86B CRC                   74B3513E (1957908798)\n-0A86F Compressed Size       00000A15 (2581)\n-0A873 Uncompressed Size     00000A15 (2581)\n-\n-0A877 LOCAL HEADER #24      04034B50 (67324752)\n-0A87B Extract Zip Spec      14 (20) '2.0'\n-0A87C Extract OS            00 (0) 'MS-DOS'\n-0A87D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0A87F Compression Method    0000 (0) 'Stored'\n-0A881 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A885 CRC                   00000000 (0)\n-0A889 Compressed Size       00000000 (0)\n-0A88D Uncompressed Size     00000000 (0)\n-0A891 Filename Length       003F (63)\n-0A893 Extra Length          0009 (9)\n-0A895 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA895: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A8D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A8D6   Length              0005 (5)\n-0A8D8   Flags               01 (1) 'Modification'\n-0A8D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A8DD PAYLOAD\n-\n-0B525 DATA DESCRIPTOR       08074B50 (134695760)\n-0B529 CRC                   59C6BCF2 (1506196722)\n-0B52D Compressed Size       00000C48 (3144)\n-0B531 Uncompressed Size     00000C48 (3144)\n-\n-0B535 LOCAL HEADER #25      04034B50 (67324752)\n-0B539 Extract Zip Spec      14 (20) '2.0'\n-0B53A Extract OS            00 (0) 'MS-DOS'\n-0B53B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0B53D Compression Method    0000 (0) 'Stored'\n-0B53F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0B543 CRC                   00000000 (0)\n-0B547 Compressed Size       00000000 (0)\n-0B54B Uncompressed Size     00000000 (0)\n-0B54F Filename Length       003F (63)\n-0B551 Extra Length          0009 (9)\n-0B553 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xB553: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0B592 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0B594   Length              0005 (5)\n-0B596   Flags               01 (1) 'Modification'\n-0B597   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0B59B PAYLOAD\n-\n-0BD7C DATA DESCRIPTOR       08074B50 (134695760)\n-0BD80 CRC                   CB062A84 (3406178948)\n-0BD84 Compressed Size       000007E1 (2017)\n-0BD88 Uncompressed Size     000007E1 (2017)\n-\n-0BD8C LOCAL HEADER #26      04034B50 (67324752)\n-0BD90 Extract Zip Spec      14 (20) '2.0'\n-0BD91 Extract OS            00 (0) 'MS-DOS'\n-0BD92 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0BD94 Compression Method    0000 (0) 'Stored'\n-0BD96 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0BD9A CRC                   00000000 (0)\n-0BD9E Compressed Size       00000000 (0)\n-0BDA2 Uncompressed Size     00000000 (0)\n-0BDA6 Filename Length       0034 (52)\n-0BDA8 Extra Length          0009 (9)\n-0BDAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBDAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0BDDE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0BDE0   Length              0005 (5)\n-0BDE2   Flags               01 (1) 'Modification'\n-0BDE3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0BDE7 PAYLOAD\n-\n-0EFD9 DATA DESCRIPTOR       08074B50 (134695760)\n-0EFDD CRC                   8E964D75 (2392214901)\n-0EFE1 Compressed Size       000031F2 (12786)\n-0EFE5 Uncompressed Size     000031F2 (12786)\n-\n-0EFE9 LOCAL HEADER #27      04034B50 (67324752)\n-0EFED Extract Zip Spec      14 (20) '2.0'\n-0EFEE Extract OS            00 (0) 'MS-DOS'\n-0EFEF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0EFF1 Compression Method    0000 (0) 'Stored'\n-0EFF3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0EFF7 CRC                   00000000 (0)\n-0EFFB Compressed Size       00000000 (0)\n-0EFFF Uncompressed Size     00000000 (0)\n-0F003 Filename Length       003A (58)\n-0F005 Extra Length          0009 (9)\n-0F007 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xF007: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0F041 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0F043   Length              0005 (5)\n-0F045   Flags               01 (1) 'Modification'\n-0F046   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0F04A PAYLOAD\n-\n-0F51E DATA DESCRIPTOR       08074B50 (134695760)\n-0F522 CRC                   2E39C29D (775537309)\n-0F526 Compressed Size       000004D4 (1236)\n-0F52A Uncompressed Size     000004D4 (1236)\n-\n-0F52E LOCAL HEADER #28      04034B50 (67324752)\n-0F532 Extract Zip Spec      14 (20) '2.0'\n-0F533 Extract OS            00 (0) 'MS-DOS'\n-0F534 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0F536 Compression Method    0000 (0) 'Stored'\n-0F538 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0F53C CRC                   00000000 (0)\n-0F540 Compressed Size       00000000 (0)\n-0F544 Uncompressed Size     00000000 (0)\n-0F548 Filename Length       0039 (57)\n-0F54A Extra Length          0009 (9)\n-0F54C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xF54C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0F585 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0F587   Length              0005 (5)\n-0F589   Flags               01 (1) 'Modification'\n-0F58A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0F58E PAYLOAD\n-\n-0FC33 DATA DESCRIPTOR       08074B50 (134695760)\n-0FC37 CRC                   8AE5D3FF (2330317823)\n-0FC3B Compressed Size       000006A5 (1701)\n-0FC3F Uncompressed Size     000006A5 (1701)\n-\n-0FC43 LOCAL HEADER #29      04034B50 (67324752)\n-0FC47 Extract Zip Spec      14 (20) '2.0'\n-0FC48 Extract OS            00 (0) 'MS-DOS'\n-0FC49 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0FC4B Compression Method    0000 (0) 'Stored'\n-0FC4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0FC51 CRC                   00000000 (0)\n-0FC55 Compressed Size       00000000 (0)\n-0FC59 Uncompressed Size     00000000 (0)\n-0FC5D Filename Length       0038 (56)\n-0FC5F Extra Length          0009 (9)\n-0FC61 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xFC61: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0FC99 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0FC9B   Length              0005 (5)\n-0FC9D   Flags               01 (1) 'Modification'\n-0FC9E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0FCA2 PAYLOAD\n-\n-10E38 DATA DESCRIPTOR       08074B50 (134695760)\n-10E3C CRC                   1149E8E6 (290056422)\n-10E40 Compressed Size       00001196 (4502)\n-10E44 Uncompressed Size     00001196 (4502)\n-\n-10E48 LOCAL HEADER #30      04034B50 (67324752)\n-10E4C Extract Zip Spec      14 (20) '2.0'\n-10E4D Extract OS            00 (0) 'MS-DOS'\n-10E4E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-10E50 Compression Method    0000 (0) 'Stored'\n-10E52 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-10E56 CRC                   00000000 (0)\n-10E5A Compressed Size       00000000 (0)\n-10E5E Uncompressed Size     00000000 (0)\n-10E62 Filename Length       003A (58)\n-10E64 Extra Length          0009 (9)\n-10E66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x10E66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-10EA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-10EA2   Length              0005 (5)\n-10EA4   Flags               01 (1) 'Modification'\n-10EA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-10EA9 PAYLOAD\n-\n-11893 DATA DESCRIPTOR       08074B50 (134695760)\n-11897 CRC                   939A92A5 (2476380837)\n-1189B Compressed Size       000009EA (2538)\n-1189F Uncompressed Size     000009EA (2538)\n-\n-118A3 LOCAL HEADER #31      04034B50 (67324752)\n-118A7 Extract Zip Spec      14 (20) '2.0'\n-118A8 Extract OS            00 (0) 'MS-DOS'\n-118A9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-118AB Compression Method    0000 (0) 'Stored'\n-118AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-118B1 CRC                   00000000 (0)\n-118B5 Compressed Size       00000000 (0)\n-118B9 Uncompressed Size     00000000 (0)\n-118BD Filename Length       0037 (55)\n-118BF Extra Length          0009 (9)\n-118C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x118C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-118F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-118FA   Length              0005 (5)\n-118FC   Flags               01 (1) 'Modification'\n-118FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11901 PAYLOAD\n-\n-12094 DATA DESCRIPTOR       08074B50 (134695760)\n-12098 CRC                   4DDA4FAB (1306152875)\n-1209C Compressed Size       00000793 (1939)\n-120A0 Uncompressed Size     00000793 (1939)\n-\n-120A4 LOCAL HEADER #32      04034B50 (67324752)\n-120A8 Extract Zip Spec      14 (20) '2.0'\n-120A9 Extract OS            00 (0) 'MS-DOS'\n-120AA General Purpose Flag  0000 (0)\n-120AC Compression Method    0000 (0) 'Stored'\n-120AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-120B2 CRC                   00000000 (0)\n-120B6 Compressed Size       00000000 (0)\n-120BA Uncompressed Size     00000000 (0)\n-120BE Filename Length       002F (47)\n-120C0 Extra Length          0009 (9)\n-120C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x120C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-120F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-120F3   Length              0005 (5)\n-120F5   Flags               01 (1) 'Modification'\n-120F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-120FA LOCAL HEADER #33      04034B50 (67324752)\n-120FE Extract Zip Spec      14 (20) '2.0'\n-120FF Extract OS            00 (0) 'MS-DOS'\n-12100 General Purpose Flag  0000 (0)\n-12102 Compression Method    0000 (0) 'Stored'\n-12104 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12108 CRC                   00000000 (0)\n-1210C Compressed Size       00000000 (0)\n-12110 Uncompressed Size     00000000 (0)\n-12114 Filename Length       0037 (55)\n-12116 Extra Length          0009 (9)\n-12118 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12118: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1214F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12151   Length              0005 (5)\n-12153   Flags               01 (1) 'Modification'\n-12154   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-12158 LOCAL HEADER #34      04034B50 (67324752)\n-1215C Extract Zip Spec      14 (20) '2.0'\n-1215D Extract OS            00 (0) 'MS-DOS'\n-1215E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-12160 Compression Method    0000 (0) 'Stored'\n-12162 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12166 CRC                   00000000 (0)\n-1216A Compressed Size       00000000 (0)\n-1216E Uncompressed Size     00000000 (0)\n-12172 Filename Length       005A (90)\n-12174 Extra Length          0009 (9)\n-12176 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12176: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-121D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-121D2   Length              0005 (5)\n-121D4   Flags               01 (1) 'Modification'\n-121D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-121D9 PAYLOAD\n-\n-12A32 DATA DESCRIPTOR       08074B50 (134695760)\n-12A36 CRC                   E3F9F330 (3824808752)\n-12A3A Compressed Size       00000859 (2137)\n-12A3E Uncompressed Size     00000859 (2137)\n-\n-12A42 LOCAL HEADER #35      04034B50 (67324752)\n-12A46 Extract Zip Spec      14 (20) '2.0'\n-12A47 Extract OS            00 (0) 'MS-DOS'\n-12A48 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-12A4A Compression Method    0000 (0) 'Stored'\n-12A4C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12A50 CRC                   00000000 (0)\n-12A54 Compressed Size       00000000 (0)\n-12A58 Uncompressed Size     00000000 (0)\n-12A5C Filename Length       004F (79)\n-12A5E Extra Length          0009 (9)\n-12A60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12A60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12AAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12AB1   Length              0005 (5)\n-12AB3   Flags               01 (1) 'Modification'\n-12AB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12AB8 PAYLOAD\n-\n-1317E DATA DESCRIPTOR       08074B50 (134695760)\n-13182 CRC                   FF2D0DF3 (4281142771)\n-13186 Compressed Size       000006C6 (1734)\n-1318A Uncompressed Size     000006C6 (1734)\n-\n-1318E LOCAL HEADER #36      04034B50 (67324752)\n-13192 Extract Zip Spec      14 (20) '2.0'\n-13193 Extract OS            00 (0) 'MS-DOS'\n-13194 General Purpose Flag  0000 (0)\n-13196 Compression Method    0000 (0) 'Stored'\n-13198 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1319C CRC                   00000000 (0)\n-131A0 Compressed Size       00000000 (0)\n-131A4 Uncompressed Size     00000000 (0)\n-131A8 Filename Length       002B (43)\n-131AA Extra Length          0009 (9)\n-131AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x131AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-131D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-131D9   Length              0005 (5)\n-131DB   Flags               01 (1) 'Modification'\n-131DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-131E0 LOCAL HEADER #37      04034B50 (67324752)\n-131E4 Extract Zip Spec      14 (20) '2.0'\n-131E5 Extract OS            00 (0) 'MS-DOS'\n-131E6 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-131E8 Compression Method    0000 (0) 'Stored'\n-131EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-131EE CRC                   00000000 (0)\n-131F2 Compressed Size       00000000 (0)\n-131F6 Uncompressed Size     00000000 (0)\n-131FA Filename Length       003B (59)\n-131FC Extra Length          0009 (9)\n-131FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x131FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13239 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1323B   Length              0005 (5)\n-1323D   Flags               01 (1) 'Modification'\n-1323E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13242 PAYLOAD\n-\n-13765 DATA DESCRIPTOR       08074B50 (134695760)\n-13769 CRC                   FC72AE7D (4235374205)\n-1376D Compressed Size       00000523 (1315)\n-13771 Uncompressed Size     00000523 (1315)\n-\n-13775 LOCAL HEADER #38      04034B50 (67324752)\n-13779 Extract Zip Spec      14 (20) '2.0'\n-1377A Extract OS            00 (0) 'MS-DOS'\n-1377B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1377D Compression Method    0000 (0) 'Stored'\n-1377F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13783 CRC                   00000000 (0)\n-13787 Compressed Size       00000000 (0)\n-1378B Uncompressed Size     00000000 (0)\n-1378F Filename Length       003D (61)\n-13791 Extra Length          0009 (9)\n-13793 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13793: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-137D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-137D2   Length              0005 (5)\n-137D4   Flags               01 (1) 'Modification'\n-137D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-137D9 PAYLOAD\n-\n-14D40 DATA DESCRIPTOR       08074B50 (134695760)\n-14D44 CRC                   DD3F3E44 (3711909444)\n-14D48 Compressed Size       00001567 (5479)\n-14D4C Uncompressed Size     00001567 (5479)\n-\n-14D50 CENTRAL HEADER #1     02014B50 (33639248)\n-14D54 Created Zip Spec      14 (20) '2.0'\n-14D55 Created OS            00 (0) 'MS-DOS'\n-14D56 Extract Zip Spec      14 (20) '2.0'\n-14D57 Extract OS            00 (0) 'MS-DOS'\n-14D58 General Purpose Flag  0000 (0)\n-14D5A Compression Method    0000 (0) 'Stored'\n-14D5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14D60 CRC                   00000000 (0)\n-14D64 Compressed Size       00000000 (0)\n-14D68 Uncompressed Size     00000000 (0)\n-14D6C Filename Length       0009 (9)\n-14D6E Extra Length          0009 (9)\n-14D70 Comment Length        0000 (0)\n-14D72 Disk Start            0000 (0)\n-14D74 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-14D76 Ext File Attributes   00000000 (0)\n-14D7A Local Header Offset   00000000 (0)\n-14D7E Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x14D7E: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-14D87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14D89   Length              0005 (5)\n-14D8B   Flags               01 (1) 'Modification'\n-14D8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14D90 CENTRAL HEADER #2     02014B50 (33639248)\n-14D94 Created Zip Spec      14 (20) '2.0'\n-14D95 Created OS            00 (0) 'MS-DOS'\n-14D96 Extract Zip Spec      14 (20) '2.0'\n-14D97 Extract OS            00 (0) 'MS-DOS'\n-14D98 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-14D9A Compression Method    0000 (0) 'Stored'\n-14D9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14DA0 CRC                   B4606343 (3026215747)\n-14DA4 Compressed Size       0000389D (14493)\n-14DA8 Uncompressed Size     0000389D (14493)\n-14DAC Filename Length       0015 (21)\n-14DAE Extra Length          0009 (9)\n-14DB0 Comment Length        0000 (0)\n-14DB2 Disk Start            0000 (0)\n-14DB4 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-14DB6 Ext File Attributes   00000000 (0)\n-14DBA Local Header Offset   00000030 (48)\n-14DBE Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14DBE: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14DD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14DD5   Length              0005 (5)\n-14DD7   Flags               01 (1) 'Modification'\n-14DD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14DDC CENTRAL HEADER #3     02014B50 (33639248)\n-14DE0 Created Zip Spec      14 (20) '2.0'\n-14DE1 Created OS            00 (0) 'MS-DOS'\n-14DE2 Extract Zip Spec      14 (20) '2.0'\n-14DE3 Extract OS            00 (0) 'MS-DOS'\n-14DE4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-14DE6 Compression Method    0000 (0) 'Stored'\n-14DE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14DEC CRC                   86E2B4B4 (2263004340)\n-14DF0 Compressed Size       00002C5E (11358)\n-14DF4 Uncompressed Size     00002C5E (11358)\n-14DF8 Filename Length       0010 (16)\n-14DFA Extra Length          0009 (9)\n-14DFC Comment Length        0000 (0)\n-14DFE Disk Start            0000 (0)\n-14E00 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-14E02 Ext File Attributes   00000000 (0)\n-14E06 Local Header Offset   00003919 (14617)\n-14E0A Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14E0A: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14E1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14E1C   Length              0005 (5)\n-14E1E   Flags               01 (1) 'Modification'\n-14E1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14E23 CENTRAL HEADER #4     02014B50 (33639248)\n-14E27 Created Zip Spec      14 (20) '2.0'\n-14E28 Created OS            00 (0) 'MS-DOS'\n-14E29 Extract Zip Spec      14 (20) '2.0'\n-14E2A Extract OS            00 (0) 'MS-DOS'\n-14E2B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-14E2D Compression Method    0000 (0) 'Stored'\n-14E2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14E33 CRC                   EE027FB2 (3993141170)\n-14E37 Compressed Size       00000019 (25)\n-14E3B Uncompressed Size     00000019 (25)\n-14E3F Filename Length       0014 (20)\n-14E41 Extra Length          0009 (9)\n-14E43 Comment Length        0000 (0)\n-14E45 Disk Start            0000 (0)\n-14E47 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-14E49 Ext File Attributes   00000000 (0)\n-14E4D Local Header Offset   000065BE (26046)\n-14E51 Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14E51: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14E65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14E67   Length              0005 (5)\n-14E69   Flags               01 (1) 'Modification'\n-14E6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14E6E CENTRAL HEADER #5     02014B50 (33639248)\n-14E72 Created Zip Spec      14 (20) '2.0'\n-14E73 Created OS            00 (0) 'MS-DOS'\n-14E74 Extract Zip Spec      14 (20) '2.0'\n-14E75 Extract OS            00 (0) 'MS-DOS'\n-14E76 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-14E78 Compression Method    0000 (0) 'Stored'\n-14E7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14E7E CRC                   3EE5F40B (1055257611)\n-14E82 Compressed Size       000000AB (171)\n-14E86 Uncompressed Size     000000AB (171)\n-14E8A Filename Length       000F (15)\n-14E8C Extra Length          0009 (9)\n-14E8E Comment Length        0000 (0)\n-14E90 Disk Start            0000 (0)\n-14E92 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-14E94 Ext File Attributes   00000000 (0)\n-14E98 Local Header Offset   00006622 (26146)\n-14E9C Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14E9C: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14EAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14EAD   Length              0005 (5)\n-14EAF   Flags               01 (1) 'Modification'\n-14EB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14EB4 CENTRAL HEADER #6     02014B50 (33639248)\n-14EB8 Created Zip Spec      14 (20) '2.0'\n-14EB9 Created OS            00 (0) 'MS-DOS'\n-14EBA Extract Zip Spec      14 (20) '2.0'\n-14EBB Extract OS            00 (0) 'MS-DOS'\n-14EBC General Purpose Flag  0000 (0)\n-14EBE Compression Method    0000 (0) 'Stored'\n-14EC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14EC4 CRC                   00000000 (0)\n-14EC8 Compressed Size       00000000 (0)\n-14ECC Uncompressed Size     00000000 (0)\n-14ED0 Filename Length       000F (15)\n-14ED2 Extra Length          0009 (9)\n-14ED4 Comment Length        0000 (0)\n-14ED6 Disk Start            0000 (0)\n-14ED8 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-14EDA Ext File Attributes   00000000 (0)\n-14EDE Local Header Offset   00006713 (26387)\n-14EE2 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14EE2: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14EF1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14EF3   Length              0005 (5)\n-14EF5   Flags               01 (1) 'Modification'\n-14EF6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14EFA CENTRAL HEADER #7     02014B50 (33639248)\n-14EFE Created Zip Spec      14 (20) '2.0'\n-14EFF Created OS            00 (0) 'MS-DOS'\n-14F00 Extract Zip Spec      14 (20) '2.0'\n-14F01 Extract OS            00 (0) 'MS-DOS'\n-14F02 General Purpose Flag  0000 (0)\n-14F04 Compression Method    0000 (0) 'Stored'\n-14F06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14F0A CRC                   00000000 (0)\n-14F0E Compressed Size       00000000 (0)\n-14F12 Uncompressed Size     00000000 (0)\n-14F16 Filename Length       0018 (24)\n-14F18 Extra Length          0009 (9)\n-14F1A Comment Length        0000 (0)\n-14F1C Disk Start            0000 (0)\n-14F1E Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-14F20 Ext File Attributes   00000000 (0)\n-14F24 Local Header Offset   00006749 (26441)\n-14F28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14F28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14F40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14F42   Length              0005 (5)\n-14F44   Flags               01 (1) 'Modification'\n-14F45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14F49 CENTRAL HEADER #8     02014B50 (33639248)\n-14F4D Created Zip Spec      14 (20) '2.0'\n-14F4E Created OS            00 (0) 'MS-DOS'\n-14F4F Extract Zip Spec      14 (20) '2.0'\n-14F50 Extract OS            00 (0) 'MS-DOS'\n-14F51 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-14F53 Compression Method    0000 (0) 'Stored'\n-14F55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14F59 CRC                   654AD933 (1699404083)\n-14F5D Compressed Size       00000034 (52)\n-14F61 Uncompressed Size     00000034 (52)\n-14F65 Filename Length       0035 (53)\n-14F67 Extra Length          0009 (9)\n-14F69 Comment Length        0000 (0)\n-14F6B Disk Start            0000 (0)\n-14F6D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-14F6F Ext File Attributes   00000000 (0)\n-14F73 Local Header Offset   00006788 (26504)\n-14F77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14F77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14FAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14FAE   Length              0005 (5)\n-14FB0   Flags               01 (1) 'Modification'\n-14FB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14FB5 CENTRAL HEADER #9     02014B50 (33639248)\n-14FB9 Created Zip Spec      14 (20) '2.0'\n-14FBA Created OS            00 (0) 'MS-DOS'\n-14FBB Extract Zip Spec      14 (20) '2.0'\n-14FBC Extract OS            00 (0) 'MS-DOS'\n-14FBD General Purpose Flag  0000 (0)\n-14FBF Compression Method    0000 (0) 'Stored'\n-14FC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14FC5 CRC                   00000000 (0)\n-14FC9 Compressed Size       00000000 (0)\n-14FCD Uncompressed Size     00000000 (0)\n-14FD1 Filename Length       000F (15)\n-14FD3 Extra Length          0009 (9)\n-14FD5 Comment Length        0000 (0)\n-14FD7 Disk Start            0000 (0)\n-14FD9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-14FDB Ext File Attributes   00000000 (0)\n-14FDF Local Header Offset   00006828 (26664)\n-14FE3 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14FE3: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14FF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14FF4   Length              0005 (5)\n-14FF6   Flags               01 (1) 'Modification'\n-14FF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14FFB CENTRAL HEADER #10    02014B50 (33639248)\n-14FFF Created Zip Spec      14 (20) '2.0'\n-15000 Created OS            00 (0) 'MS-DOS'\n-15001 Extract Zip Spec      14 (20) '2.0'\n-15002 Extract OS            00 (0) 'MS-DOS'\n-15003 General Purpose Flag  0000 (0)\n-15005 Compression Method    0000 (0) 'Stored'\n-15007 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1500B CRC                   00000000 (0)\n-1500F Compressed Size       00000000 (0)\n-15013 Uncompressed Size     00000000 (0)\n-15017 Filename Length       0020 (32)\n-15019 Extra Length          0009 (9)\n-1501B Comment Length        0000 (0)\n-1501D Disk Start            0000 (0)\n-1501F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15021 Ext File Attributes   00000000 (0)\n-15025 Local Header Offset   0000685E (26718)\n-15029 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15029: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15049 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1504B   Length              0005 (5)\n-1504D   Flags               01 (1) 'Modification'\n-1504E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15052 CENTRAL HEADER #11    02014B50 (33639248)\n-15056 Created Zip Spec      14 (20) '2.0'\n-15057 Created OS            00 (0) 'MS-DOS'\n-15058 Extract Zip Spec      14 (20) '2.0'\n-15059 Extract OS            00 (0) 'MS-DOS'\n-1505A General Purpose Flag  0000 (0)\n-1505C Compression Method    0000 (0) 'Stored'\n-1505E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15062 CRC                   00000000 (0)\n-15066 Compressed Size       00000000 (0)\n-1506A Uncompressed Size     00000000 (0)\n-1506E Filename Length       002F (47)\n-15070 Extra Length          0009 (9)\n-15072 Comment Length        0000 (0)\n-15074 Disk Start            0000 (0)\n-15076 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15078 Ext File Attributes   00000000 (0)\n-1507C Local Header Offset   000068A5 (26789)\n-15080 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15080: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-150AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-150B1   Length              0005 (5)\n-150B3   Flags               01 (1) 'Modification'\n-150B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-150B8 CENTRAL HEADER #12    02014B50 (33639248)\n-150BC Created Zip Spec      14 (20) '2.0'\n-150BD Created OS            00 (0) 'MS-DOS'\n-150BE Extract Zip Spec      14 (20) '2.0'\n-150BF Extract OS            00 (0) 'MS-DOS'\n-150C0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-150C2 Compression Method    0000 (0) 'Stored'\n-150C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-150C8 CRC                   00000000 (0)\n-150CC Compressed Size       00000000 (0)\n-150D0 Uncompressed Size     00000000 (0)\n-150D4 Filename Length       003D (61)\n-150D6 Extra Length          0009 (9)\n-150D8 Comment Length        0000 (0)\n-150DA Disk Start            0000 (0)\n-150DC Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-150DE Ext File Attributes   00000000 (0)\n-150E2 Local Header Offset   000068FB (26875)\n-150E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x150E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15123 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15125   Length              0005 (5)\n-15127   Flags               01 (1) 'Modification'\n-15128   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1512C CENTRAL HEADER #13    02014B50 (33639248)\n-15130 Created Zip Spec      14 (20) '2.0'\n-15131 Created OS            00 (0) 'MS-DOS'\n-15132 Extract Zip Spec      14 (20) '2.0'\n-15133 Extract OS            00 (0) 'MS-DOS'\n-15134 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15136 Compression Method    0000 (0) 'Stored'\n-15138 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1513C CRC                   B2FF8BF3 (3003091955)\n-15140 Compressed Size       00000F9F (3999)\n-15144 Uncompressed Size     00000F9F (3999)\n-15148 Filename Length       0036 (54)\n-1514A Extra Length          0009 (9)\n-1514C Comment Length        0000 (0)\n-1514E Disk Start            0000 (0)\n-15150 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15152 Ext File Attributes   00000000 (0)\n-15156 Local Header Offset   0000696F (26991)\n-1515A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1515A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15190 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15192   Length              0005 (5)\n-15194   Flags               01 (1) 'Modification'\n-15195   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15199 CENTRAL HEADER #14    02014B50 (33639248)\n-1519D Created Zip Spec      14 (20) '2.0'\n-1519E Created OS            00 (0) 'MS-DOS'\n-1519F Extract Zip Spec      14 (20) '2.0'\n-151A0 Extract OS            00 (0) 'MS-DOS'\n-151A1 General Purpose Flag  0000 (0)\n-151A3 Compression Method    0000 (0) 'Stored'\n-151A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-151A9 CRC                   00000000 (0)\n-151AD Compressed Size       00000000 (0)\n-151B1 Uncompressed Size     00000000 (0)\n-151B5 Filename Length       0004 (4)\n-151B7 Extra Length          0009 (9)\n-151B9 Comment Length        0000 (0)\n-151BB Disk Start            0000 (0)\n-151BD Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-151BF Ext File Attributes   00000000 (0)\n-151C3 Local Header Offset   0000797B (31099)\n-151C7 Filename              'XXXX'\n+078FC DATA DESCRIPTOR       08074B50 (134695760)\n+07900 CRC                   E36316D8 (3814921944)\n+07904 Compressed Size       00000F30 (3888)\n+07908 Uncompressed Size     00000F30 (3888)\n+\n+0790C LOCAL HEADER #14      04034B50 (67324752)\n+07910 Extract Zip Spec      14 (20) '2.0'\n+07911 Extract OS            00 (0) 'MS-DOS'\n+07912 General Purpose Flag  0000 (0)\n+07914 Compression Method    0000 (0) 'Stored'\n+07916 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0791A CRC                   00000000 (0)\n+0791E Compressed Size       00000000 (0)\n+07922 Uncompressed Size     00000000 (0)\n+07926 Filename Length       0004 (4)\n+07928 Extra Length          0009 (9)\n+0792A Filename              'XXXX'\n+#\n+# WARNING: Offset 0x792A: Filename 'XXXX'\n+#          Zero length filename\n+#\n+0792E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07930   Length              0005 (5)\n+07932   Flags               01 (1) 'Modification'\n+07933   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07937 LOCAL HEADER #15      04034B50 (67324752)\n+0793B Extract Zip Spec      14 (20) '2.0'\n+0793C Extract OS            00 (0) 'MS-DOS'\n+0793D General Purpose Flag  0000 (0)\n+0793F Compression Method    0000 (0) 'Stored'\n+07941 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07945 CRC                   00000000 (0)\n+07949 Compressed Size       00000000 (0)\n+0794D Uncompressed Size     00000000 (0)\n+07951 Filename Length       000B (11)\n+07953 Extra Length          0009 (9)\n+07955 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7955: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07960 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07962   Length              0005 (5)\n+07964   Flags               01 (1) 'Modification'\n+07965   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07969 LOCAL HEADER #16      04034B50 (67324752)\n+0796D Extract Zip Spec      14 (20) '2.0'\n+0796E Extract OS            00 (0) 'MS-DOS'\n+0796F General Purpose Flag  0000 (0)\n+07971 Compression Method    0000 (0) 'Stored'\n+07973 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07977 CRC                   00000000 (0)\n+0797B Compressed Size       00000000 (0)\n+0797F Uncompressed Size     00000000 (0)\n+07983 Filename Length       0011 (17)\n+07985 Extra Length          0009 (9)\n+07987 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7987: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07998 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0799A   Length              0005 (5)\n+0799C   Flags               01 (1) 'Modification'\n+0799D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+079A1 LOCAL HEADER #17      04034B50 (67324752)\n+079A5 Extract Zip Spec      14 (20) '2.0'\n+079A6 Extract OS            00 (0) 'MS-DOS'\n+079A7 General Purpose Flag  0000 (0)\n+079A9 Compression Method    0000 (0) 'Stored'\n+079AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+079AF CRC                   00000000 (0)\n+079B3 Compressed Size       00000000 (0)\n+079B7 Uncompressed Size     00000000 (0)\n+079BB Filename Length       0015 (21)\n+079BD Extra Length          0009 (9)\n+079BF Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x79BF: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+079D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+079D6   Length              0005 (5)\n+079D8   Flags               01 (1) 'Modification'\n+079D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+079DD LOCAL HEADER #18      04034B50 (67324752)\n+079E1 Extract Zip Spec      14 (20) '2.0'\n+079E2 Extract OS            00 (0) 'MS-DOS'\n+079E3 General Purpose Flag  0000 (0)\n+079E5 Compression Method    0000 (0) 'Stored'\n+079E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+079EB CRC                   00000000 (0)\n+079EF Compressed Size       00000000 (0)\n+079F3 Uncompressed Size     00000000 (0)\n+079F7 Filename Length       001E (30)\n+079F9 Extra Length          0009 (9)\n+079FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x79FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07A19 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07A1B   Length              0005 (5)\n+07A1D   Flags               01 (1) 'Modification'\n+07A1E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07A22 LOCAL HEADER #19      04034B50 (67324752)\n+07A26 Extract Zip Spec      14 (20) '2.0'\n+07A27 Extract OS            00 (0) 'MS-DOS'\n+07A28 General Purpose Flag  0000 (0)\n+07A2A Compression Method    0000 (0) 'Stored'\n+07A2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07A30 CRC                   00000000 (0)\n+07A34 Compressed Size       00000000 (0)\n+07A38 Uncompressed Size     00000000 (0)\n+07A3C Filename Length       0023 (35)\n+07A3E Extra Length          0009 (9)\n+07A40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7A40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07A63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07A65   Length              0005 (5)\n+07A67   Flags               01 (1) 'Modification'\n+07A68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07A6C LOCAL HEADER #20      04034B50 (67324752)\n+07A70 Extract Zip Spec      14 (20) '2.0'\n+07A71 Extract OS            00 (0) 'MS-DOS'\n+07A72 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+07A74 Compression Method    0000 (0) 'Stored'\n+07A76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07A7A CRC                   00000000 (0)\n+07A7E Compressed Size       00000000 (0)\n+07A82 Uncompressed Size     00000000 (0)\n+07A86 Filename Length       003E (62)\n+07A88 Extra Length          0009 (9)\n+07A8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7A8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07AC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07ACA   Length              0005 (5)\n+07ACC   Flags               01 (1) 'Modification'\n+07ACD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+07AD1 PAYLOAD\n+\n+086F7 DATA DESCRIPTOR       08074B50 (134695760)\n+086FB CRC                   E49ADE4B (3835354699)\n+086FF Compressed Size       00000C26 (3110)\n+08703 Uncompressed Size     00000C26 (3110)\n+\n+08707 LOCAL HEADER #21      04034B50 (67324752)\n+0870B Extract Zip Spec      14 (20) '2.0'\n+0870C Extract OS            00 (0) 'MS-DOS'\n+0870D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0870F Compression Method    0000 (0) 'Stored'\n+08711 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08715 CRC                   00000000 (0)\n+08719 Compressed Size       00000000 (0)\n+0871D Uncompressed Size     00000000 (0)\n+08721 Filename Length       0031 (49)\n+08723 Extra Length          0009 (9)\n+08725 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8725: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+08756 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08758   Length              0005 (5)\n+0875A   Flags               01 (1) 'Modification'\n+0875B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0875F PAYLOAD\n+\n+08B70 DATA DESCRIPTOR       08074B50 (134695760)\n+08B74 CRC                   CAFD8C87 (3405614215)\n+08B78 Compressed Size       00000411 (1041)\n+08B7C Uncompressed Size     00000411 (1041)\n+\n+08B80 LOCAL HEADER #22      04034B50 (67324752)\n+08B84 Extract Zip Spec      14 (20) '2.0'\n+08B85 Extract OS            00 (0) 'MS-DOS'\n+08B86 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+08B88 Compression Method    0000 (0) 'Stored'\n+08B8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08B8E CRC                   00000000 (0)\n+08B92 Compressed Size       00000000 (0)\n+08B96 Uncompressed Size     00000000 (0)\n+08B9A Filename Length       003F (63)\n+08B9C Extra Length          0009 (9)\n+08B9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8B9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+08BDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08BDF   Length              0005 (5)\n+08BE1   Flags               01 (1) 'Modification'\n+08BE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+08BE6 PAYLOAD\n+\n+09E60 DATA DESCRIPTOR       08074B50 (134695760)\n+09E64 CRC                   3D20A35F (1025549151)\n+09E68 Compressed Size       0000127A (4730)\n+09E6C Uncompressed Size     0000127A (4730)\n+\n+09E70 LOCAL HEADER #23      04034B50 (67324752)\n+09E74 Extract Zip Spec      14 (20) '2.0'\n+09E75 Extract OS            00 (0) 'MS-DOS'\n+09E76 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+09E78 Compression Method    0000 (0) 'Stored'\n+09E7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+09E7E CRC                   00000000 (0)\n+09E82 Compressed Size       00000000 (0)\n+09E86 Uncompressed Size     00000000 (0)\n+09E8A Filename Length       003C (60)\n+09E8C Extra Length          0009 (9)\n+09E8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9E8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+09ECA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+09ECC   Length              0005 (5)\n+09ECE   Flags               01 (1) 'Modification'\n+09ECF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+09ED3 PAYLOAD\n+\n+0A8E8 DATA DESCRIPTOR       08074B50 (134695760)\n+0A8EC CRC                   74B3513E (1957908798)\n+0A8F0 Compressed Size       00000A15 (2581)\n+0A8F4 Uncompressed Size     00000A15 (2581)\n+\n+0A8F8 LOCAL HEADER #24      04034B50 (67324752)\n+0A8FC Extract Zip Spec      14 (20) '2.0'\n+0A8FD Extract OS            00 (0) 'MS-DOS'\n+0A8FE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0A900 Compression Method    0000 (0) 'Stored'\n+0A902 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A906 CRC                   00000000 (0)\n+0A90A Compressed Size       00000000 (0)\n+0A90E Uncompressed Size     00000000 (0)\n+0A912 Filename Length       003F (63)\n+0A914 Extra Length          0009 (9)\n+0A916 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA916: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A955 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A957   Length              0005 (5)\n+0A959   Flags               01 (1) 'Modification'\n+0A95A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A95E PAYLOAD\n+\n+0B5EF DATA DESCRIPTOR       08074B50 (134695760)\n+0B5F3 CRC                   755A7982 (1968863618)\n+0B5F7 Compressed Size       00000C91 (3217)\n+0B5FB Uncompressed Size     00000C91 (3217)\n+\n+0B5FF LOCAL HEADER #25      04034B50 (67324752)\n+0B603 Extract Zip Spec      14 (20) '2.0'\n+0B604 Extract OS            00 (0) 'MS-DOS'\n+0B605 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0B607 Compression Method    0000 (0) 'Stored'\n+0B609 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0B60D CRC                   00000000 (0)\n+0B611 Compressed Size       00000000 (0)\n+0B615 Uncompressed Size     00000000 (0)\n+0B619 Filename Length       003F (63)\n+0B61B Extra Length          0009 (9)\n+0B61D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xB61D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0B65C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0B65E   Length              0005 (5)\n+0B660   Flags               01 (1) 'Modification'\n+0B661   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0B665 PAYLOAD\n+\n+0BE46 DATA DESCRIPTOR       08074B50 (134695760)\n+0BE4A CRC                   CB062A84 (3406178948)\n+0BE4E Compressed Size       000007E1 (2017)\n+0BE52 Uncompressed Size     000007E1 (2017)\n+\n+0BE56 LOCAL HEADER #26      04034B50 (67324752)\n+0BE5A Extract Zip Spec      14 (20) '2.0'\n+0BE5B Extract OS            00 (0) 'MS-DOS'\n+0BE5C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0BE5E Compression Method    0000 (0) 'Stored'\n+0BE60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0BE64 CRC                   00000000 (0)\n+0BE68 Compressed Size       00000000 (0)\n+0BE6C Uncompressed Size     00000000 (0)\n+0BE70 Filename Length       0034 (52)\n+0BE72 Extra Length          0009 (9)\n+0BE74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBE74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0BEA8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0BEAA   Length              0005 (5)\n+0BEAC   Flags               01 (1) 'Modification'\n+0BEAD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0BEB1 PAYLOAD\n+\n+0F1CA DATA DESCRIPTOR       08074B50 (134695760)\n+0F1CE CRC                   D7522A4D (3612486221)\n+0F1D2 Compressed Size       00003319 (13081)\n+0F1D6 Uncompressed Size     00003319 (13081)\n+\n+0F1DA LOCAL HEADER #27      04034B50 (67324752)\n+0F1DE Extract Zip Spec      14 (20) '2.0'\n+0F1DF Extract OS            00 (0) 'MS-DOS'\n+0F1E0 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0F1E2 Compression Method    0000 (0) 'Stored'\n+0F1E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0F1E8 CRC                   00000000 (0)\n+0F1EC Compressed Size       00000000 (0)\n+0F1F0 Uncompressed Size     00000000 (0)\n+0F1F4 Filename Length       003A (58)\n+0F1F6 Extra Length          0009 (9)\n+0F1F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xF1F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0F232 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0F234   Length              0005 (5)\n+0F236   Flags               01 (1) 'Modification'\n+0F237   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0F23B PAYLOAD\n+\n+0F730 DATA DESCRIPTOR       08074B50 (134695760)\n+0F734 CRC                   6BBB41BD (1807434173)\n+0F738 Compressed Size       000004F5 (1269)\n+0F73C Uncompressed Size     000004F5 (1269)\n+\n+0F740 LOCAL HEADER #28      04034B50 (67324752)\n+0F744 Extract Zip Spec      14 (20) '2.0'\n+0F745 Extract OS            00 (0) 'MS-DOS'\n+0F746 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0F748 Compression Method    0000 (0) 'Stored'\n+0F74A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0F74E CRC                   00000000 (0)\n+0F752 Compressed Size       00000000 (0)\n+0F756 Uncompressed Size     00000000 (0)\n+0F75A Filename Length       0039 (57)\n+0F75C Extra Length          0009 (9)\n+0F75E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xF75E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0F797 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0F799   Length              0005 (5)\n+0F79B   Flags               01 (1) 'Modification'\n+0F79C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0F7A0 PAYLOAD\n+\n+0FE71 DATA DESCRIPTOR       08074B50 (134695760)\n+0FE75 CRC                   086F2C9C (141503644)\n+0FE79 Compressed Size       000006D1 (1745)\n+0FE7D Uncompressed Size     000006D1 (1745)\n+\n+0FE81 LOCAL HEADER #29      04034B50 (67324752)\n+0FE85 Extract Zip Spec      14 (20) '2.0'\n+0FE86 Extract OS            00 (0) 'MS-DOS'\n+0FE87 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0FE89 Compression Method    0000 (0) 'Stored'\n+0FE8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0FE8F CRC                   00000000 (0)\n+0FE93 Compressed Size       00000000 (0)\n+0FE97 Uncompressed Size     00000000 (0)\n+0FE9B Filename Length       0038 (56)\n+0FE9D Extra Length          0009 (9)\n+0FE9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xFE9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0FED7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0FED9   Length              0005 (5)\n+0FEDB   Flags               01 (1) 'Modification'\n+0FEDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0FEE0 PAYLOAD\n+\n+110E0 DATA DESCRIPTOR       08074B50 (134695760)\n+110E4 CRC                   A0E895BE (2699597246)\n+110E8 Compressed Size       00001200 (4608)\n+110EC Uncompressed Size     00001200 (4608)\n+\n+110F0 LOCAL HEADER #30      04034B50 (67324752)\n+110F4 Extract Zip Spec      14 (20) '2.0'\n+110F5 Extract OS            00 (0) 'MS-DOS'\n+110F6 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+110F8 Compression Method    0000 (0) 'Stored'\n+110FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+110FE CRC                   00000000 (0)\n+11102 Compressed Size       00000000 (0)\n+11106 Uncompressed Size     00000000 (0)\n+1110A Filename Length       003A (58)\n+1110C Extra Length          0009 (9)\n+1110E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1110E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11148 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1114A   Length              0005 (5)\n+1114C   Flags               01 (1) 'Modification'\n+1114D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11151 PAYLOAD\n+\n+11B3B DATA DESCRIPTOR       08074B50 (134695760)\n+11B3F CRC                   939A92A5 (2476380837)\n+11B43 Compressed Size       000009EA (2538)\n+11B47 Uncompressed Size     000009EA (2538)\n+\n+11B4B LOCAL HEADER #31      04034B50 (67324752)\n+11B4F Extract Zip Spec      14 (20) '2.0'\n+11B50 Extract OS            00 (0) 'MS-DOS'\n+11B51 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+11B53 Compression Method    0000 (0) 'Stored'\n+11B55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11B59 CRC                   00000000 (0)\n+11B5D Compressed Size       00000000 (0)\n+11B61 Uncompressed Size     00000000 (0)\n+11B65 Filename Length       0037 (55)\n+11B67 Extra Length          0009 (9)\n+11B69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11B69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11BA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11BA2   Length              0005 (5)\n+11BA4   Flags               01 (1) 'Modification'\n+11BA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11BA9 PAYLOAD\n+\n+1233C DATA DESCRIPTOR       08074B50 (134695760)\n+12340 CRC                   4DDA4FAB (1306152875)\n+12344 Compressed Size       00000793 (1939)\n+12348 Uncompressed Size     00000793 (1939)\n+\n+1234C LOCAL HEADER #32      04034B50 (67324752)\n+12350 Extract Zip Spec      14 (20) '2.0'\n+12351 Extract OS            00 (0) 'MS-DOS'\n+12352 General Purpose Flag  0000 (0)\n+12354 Compression Method    0000 (0) 'Stored'\n+12356 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1235A CRC                   00000000 (0)\n+1235E Compressed Size       00000000 (0)\n+12362 Uncompressed Size     00000000 (0)\n+12366 Filename Length       002F (47)\n+12368 Extra Length          0009 (9)\n+1236A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1236A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12399 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1239B   Length              0005 (5)\n+1239D   Flags               01 (1) 'Modification'\n+1239E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+123A2 LOCAL HEADER #33      04034B50 (67324752)\n+123A6 Extract Zip Spec      14 (20) '2.0'\n+123A7 Extract OS            00 (0) 'MS-DOS'\n+123A8 General Purpose Flag  0000 (0)\n+123AA Compression Method    0000 (0) 'Stored'\n+123AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+123B0 CRC                   00000000 (0)\n+123B4 Compressed Size       00000000 (0)\n+123B8 Uncompressed Size     00000000 (0)\n+123BC Filename Length       0037 (55)\n+123BE Extra Length          0009 (9)\n+123C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x123C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+123F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+123F9   Length              0005 (5)\n+123FB   Flags               01 (1) 'Modification'\n+123FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+12400 LOCAL HEADER #34      04034B50 (67324752)\n+12404 Extract Zip Spec      14 (20) '2.0'\n+12405 Extract OS            00 (0) 'MS-DOS'\n+12406 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+12408 Compression Method    0000 (0) 'Stored'\n+1240A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1240E CRC                   00000000 (0)\n+12412 Compressed Size       00000000 (0)\n+12416 Uncompressed Size     00000000 (0)\n+1241A Filename Length       005A (90)\n+1241C Extra Length          0009 (9)\n+1241E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1241E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12478 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1247A   Length              0005 (5)\n+1247C   Flags               01 (1) 'Modification'\n+1247D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+12481 PAYLOAD\n+\n+12CDA DATA DESCRIPTOR       08074B50 (134695760)\n+12CDE CRC                   E3F9F330 (3824808752)\n+12CE2 Compressed Size       00000859 (2137)\n+12CE6 Uncompressed Size     00000859 (2137)\n+\n+12CEA LOCAL HEADER #35      04034B50 (67324752)\n+12CEE Extract Zip Spec      14 (20) '2.0'\n+12CEF Extract OS            00 (0) 'MS-DOS'\n+12CF0 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+12CF2 Compression Method    0000 (0) 'Stored'\n+12CF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12CF8 CRC                   00000000 (0)\n+12CFC Compressed Size       00000000 (0)\n+12D00 Uncompressed Size     00000000 (0)\n+12D04 Filename Length       004F (79)\n+12D06 Extra Length          0009 (9)\n+12D08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12D08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12D57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12D59   Length              0005 (5)\n+12D5B   Flags               01 (1) 'Modification'\n+12D5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+12D60 PAYLOAD\n+\n+13450 DATA DESCRIPTOR       08074B50 (134695760)\n+13454 CRC                   879AD63A (2275071546)\n+13458 Compressed Size       000006F0 (1776)\n+1345C Uncompressed Size     000006F0 (1776)\n+\n+13460 LOCAL HEADER #36      04034B50 (67324752)\n+13464 Extract Zip Spec      14 (20) '2.0'\n+13465 Extract OS            00 (0) 'MS-DOS'\n+13466 General Purpose Flag  0000 (0)\n+13468 Compression Method    0000 (0) 'Stored'\n+1346A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1346E CRC                   00000000 (0)\n+13472 Compressed Size       00000000 (0)\n+13476 Uncompressed Size     00000000 (0)\n+1347A Filename Length       002B (43)\n+1347C Extra Length          0009 (9)\n+1347E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1347E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+134A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+134AB   Length              0005 (5)\n+134AD   Flags               01 (1) 'Modification'\n+134AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+134B2 LOCAL HEADER #37      04034B50 (67324752)\n+134B6 Extract Zip Spec      14 (20) '2.0'\n+134B7 Extract OS            00 (0) 'MS-DOS'\n+134B8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+134BA Compression Method    0000 (0) 'Stored'\n+134BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+134C0 CRC                   00000000 (0)\n+134C4 Compressed Size       00000000 (0)\n+134C8 Uncompressed Size     00000000 (0)\n+134CC Filename Length       003B (59)\n+134CE Extra Length          0009 (9)\n+134D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x134D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1350B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1350D   Length              0005 (5)\n+1350F   Flags               01 (1) 'Modification'\n+13510   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13514 PAYLOAD\n+\n+13A37 DATA DESCRIPTOR       08074B50 (134695760)\n+13A3B CRC                   FC72AE7D (4235374205)\n+13A3F Compressed Size       00000523 (1315)\n+13A43 Uncompressed Size     00000523 (1315)\n+\n+13A47 LOCAL HEADER #38      04034B50 (67324752)\n+13A4B Extract Zip Spec      14 (20) '2.0'\n+13A4C Extract OS            00 (0) 'MS-DOS'\n+13A4D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+13A4F Compression Method    0000 (0) 'Stored'\n+13A51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13A55 CRC                   00000000 (0)\n+13A59 Compressed Size       00000000 (0)\n+13A5D Uncompressed Size     00000000 (0)\n+13A61 Filename Length       003D (61)\n+13A63 Extra Length          0009 (9)\n+13A65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13A65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13AA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13AA4   Length              0005 (5)\n+13AA6   Flags               01 (1) 'Modification'\n+13AA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13AAB PAYLOAD\n+\n+150A6 DATA DESCRIPTOR       08074B50 (134695760)\n+150AA CRC                   98665538 (2556843320)\n+150AE Compressed Size       000015FB (5627)\n+150B2 Uncompressed Size     000015FB (5627)\n+\n+150B6 CENTRAL HEADER #1     02014B50 (33639248)\n+150BA Created Zip Spec      14 (20) '2.0'\n+150BB Created OS            00 (0) 'MS-DOS'\n+150BC Extract Zip Spec      14 (20) '2.0'\n+150BD Extract OS            00 (0) 'MS-DOS'\n+150BE General Purpose Flag  0000 (0)\n+150C0 Compression Method    0000 (0) 'Stored'\n+150C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+150C6 CRC                   00000000 (0)\n+150CA Compressed Size       00000000 (0)\n+150CE Uncompressed Size     00000000 (0)\n+150D2 Filename Length       0009 (9)\n+150D4 Extra Length          0009 (9)\n+150D6 Comment Length        0000 (0)\n+150D8 Disk Start            0000 (0)\n+150DA Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+150DC Ext File Attributes   00000000 (0)\n+150E0 Local Header Offset   00000000 (0)\n+150E4 Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x150E4: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+150ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+150EF   Length              0005 (5)\n+150F1   Flags               01 (1) 'Modification'\n+150F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+150F6 CENTRAL HEADER #2     02014B50 (33639248)\n+150FA Created Zip Spec      14 (20) '2.0'\n+150FB Created OS            00 (0) 'MS-DOS'\n+150FC Extract Zip Spec      14 (20) '2.0'\n+150FD Extract OS            00 (0) 'MS-DOS'\n+150FE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15100 Compression Method    0000 (0) 'Stored'\n+15102 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15106 CRC                   B4606343 (3026215747)\n+1510A Compressed Size       0000389D (14493)\n+1510E Uncompressed Size     0000389D (14493)\n+15112 Filename Length       0015 (21)\n+15114 Extra Length          0009 (9)\n+15116 Comment Length        0000 (0)\n+15118 Disk Start            0000 (0)\n+1511A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+1511C Ext File Attributes   00000000 (0)\n+15120 Local Header Offset   00000030 (48)\n+15124 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15124: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15139 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1513B   Length              0005 (5)\n+1513D   Flags               01 (1) 'Modification'\n+1513E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15142 CENTRAL HEADER #3     02014B50 (33639248)\n+15146 Created Zip Spec      14 (20) '2.0'\n+15147 Created OS            00 (0) 'MS-DOS'\n+15148 Extract Zip Spec      14 (20) '2.0'\n+15149 Extract OS            00 (0) 'MS-DOS'\n+1514A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1514C Compression Method    0000 (0) 'Stored'\n+1514E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15152 CRC                   86E2B4B4 (2263004340)\n+15156 Compressed Size       00002C5E (11358)\n+1515A Uncompressed Size     00002C5E (11358)\n+1515E Filename Length       0010 (16)\n+15160 Extra Length          0009 (9)\n+15162 Comment Length        0000 (0)\n+15164 Disk Start            0000 (0)\n+15166 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15168 Ext File Attributes   00000000 (0)\n+1516C Local Header Offset   00003919 (14617)\n+15170 Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15170: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15180 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15182   Length              0005 (5)\n+15184   Flags               01 (1) 'Modification'\n+15185   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15189 CENTRAL HEADER #4     02014B50 (33639248)\n+1518D Created Zip Spec      14 (20) '2.0'\n+1518E Created OS            00 (0) 'MS-DOS'\n+1518F Extract Zip Spec      14 (20) '2.0'\n+15190 Extract OS            00 (0) 'MS-DOS'\n+15191 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15193 Compression Method    0000 (0) 'Stored'\n+15195 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15199 CRC                   EE027FB2 (3993141170)\n+1519D Compressed Size       00000019 (25)\n+151A1 Uncompressed Size     00000019 (25)\n+151A5 Filename Length       0014 (20)\n+151A7 Extra Length          0009 (9)\n+151A9 Comment Length        0000 (0)\n+151AB Disk Start            0000 (0)\n+151AD Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+151AF Ext File Attributes   00000000 (0)\n+151B3 Local Header Offset   000065BE (26046)\n+151B7 Filename              'XXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x151C7: Filename 'XXXX'\n+# WARNING: Offset 0x151B7: Filename 'XXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 151CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 151CD   Length              0005 (5)\n 151CF   Flags               01 (1) 'Modification'\n 151D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-151D4 CENTRAL HEADER #15    02014B50 (33639248)\n+151D4 CENTRAL HEADER #5     02014B50 (33639248)\n 151D8 Created Zip Spec      14 (20) '2.0'\n 151D9 Created OS            00 (0) 'MS-DOS'\n 151DA Extract Zip Spec      14 (20) '2.0'\n 151DB Extract OS            00 (0) 'MS-DOS'\n-151DC General Purpose Flag  0000 (0)\n+151DC General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n 151DE Compression Method    0000 (0) 'Stored'\n 151E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-151E4 CRC                   00000000 (0)\n-151E8 Compressed Size       00000000 (0)\n-151EC Uncompressed Size     00000000 (0)\n-151F0 Filename Length       000B (11)\n+151E4 CRC                   3EE5F40B (1055257611)\n+151E8 Compressed Size       000000AB (171)\n+151EC Uncompressed Size     000000AB (171)\n+151F0 Filename Length       000F (15)\n 151F2 Extra Length          0009 (9)\n 151F4 Comment Length        0000 (0)\n 151F6 Disk Start            0000 (0)\n 151F8 Int File Attributes   0000 (0)\n       [Bit 0]               0 'Binary Data'\n 151FA Ext File Attributes   00000000 (0)\n-151FE Local Header Offset   000079A6 (31142)\n-15202 Filename              'XXXXXXXXXXX'\n+151FE Local Header Offset   00006622 (26146)\n+15202 Filename              'XXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x15202: Filename 'XXXXXXXXXXX'\n+# WARNING: Offset 0x15202: Filename 'XXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-1520D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1520F   Length              0005 (5)\n-15211   Flags               01 (1) 'Modification'\n-15212   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15216 CENTRAL HEADER #16    02014B50 (33639248)\n-1521A Created Zip Spec      14 (20) '2.0'\n-1521B Created OS            00 (0) 'MS-DOS'\n-1521C Extract Zip Spec      14 (20) '2.0'\n-1521D Extract OS            00 (0) 'MS-DOS'\n-1521E General Purpose Flag  0000 (0)\n-15220 Compression Method    0000 (0) 'Stored'\n-15222 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15226 CRC                   00000000 (0)\n-1522A Compressed Size       00000000 (0)\n-1522E Uncompressed Size     00000000 (0)\n-15232 Filename Length       0011 (17)\n-15234 Extra Length          0009 (9)\n-15236 Comment Length        0000 (0)\n-15238 Disk Start            0000 (0)\n-1523A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-1523C Ext File Attributes   00000000 (0)\n-15240 Local Header Offset   000079D8 (31192)\n-15244 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15244: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15255 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15257   Length              0005 (5)\n-15259   Flags               01 (1) 'Modification'\n-1525A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1525E CENTRAL HEADER #17    02014B50 (33639248)\n-15262 Created Zip Spec      14 (20) '2.0'\n-15263 Created OS            00 (0) 'MS-DOS'\n-15264 Extract Zip Spec      14 (20) '2.0'\n-15265 Extract OS            00 (0) 'MS-DOS'\n-15266 General Purpose Flag  0000 (0)\n-15268 Compression Method    0000 (0) 'Stored'\n-1526A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1526E CRC                   00000000 (0)\n-15272 Compressed Size       00000000 (0)\n-15276 Uncompressed Size     00000000 (0)\n-1527A Filename Length       0015 (21)\n-1527C Extra Length          0009 (9)\n-1527E Comment Length        0000 (0)\n-15280 Disk Start            0000 (0)\n-15282 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15284 Ext File Attributes   00000000 (0)\n-15288 Local Header Offset   00007A10 (31248)\n-1528C Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1528C: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-152A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-152A3   Length              0005 (5)\n-152A5   Flags               01 (1) 'Modification'\n-152A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-152AA CENTRAL HEADER #18    02014B50 (33639248)\n-152AE Created Zip Spec      14 (20) '2.0'\n-152AF Created OS            00 (0) 'MS-DOS'\n-152B0 Extract Zip Spec      14 (20) '2.0'\n-152B1 Extract OS            00 (0) 'MS-DOS'\n-152B2 General Purpose Flag  0000 (0)\n-152B4 Compression Method    0000 (0) 'Stored'\n-152B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-152BA CRC                   00000000 (0)\n-152BE Compressed Size       00000000 (0)\n-152C2 Uncompressed Size     00000000 (0)\n-152C6 Filename Length       001E (30)\n-152C8 Extra Length          0009 (9)\n-152CA Comment Length        0000 (0)\n-152CC Disk Start            0000 (0)\n-152CE Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-152D0 Ext File Attributes   00000000 (0)\n-152D4 Local Header Offset   00007A4C (31308)\n-152D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x152D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-152F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-152F8   Length              0005 (5)\n-152FA   Flags               01 (1) 'Modification'\n-152FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-152FF CENTRAL HEADER #19    02014B50 (33639248)\n-15303 Created Zip Spec      14 (20) '2.0'\n-15304 Created OS            00 (0) 'MS-DOS'\n-15305 Extract Zip Spec      14 (20) '2.0'\n-15306 Extract OS            00 (0) 'MS-DOS'\n-15307 General Purpose Flag  0000 (0)\n-15309 Compression Method    0000 (0) 'Stored'\n-1530B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1530F CRC                   00000000 (0)\n-15313 Compressed Size       00000000 (0)\n-15317 Uncompressed Size     00000000 (0)\n-1531B Filename Length       0023 (35)\n-1531D Extra Length          0009 (9)\n-1531F Comment Length        0000 (0)\n-15321 Disk Start            0000 (0)\n-15323 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15325 Ext File Attributes   00000000 (0)\n-15329 Local Header Offset   00007A91 (31377)\n-1532D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1532D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15350 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15352   Length              0005 (5)\n-15354   Flags               01 (1) 'Modification'\n-15355   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15359 CENTRAL HEADER #20    02014B50 (33639248)\n-1535D Created Zip Spec      14 (20) '2.0'\n-1535E Created OS            00 (0) 'MS-DOS'\n-1535F Extract Zip Spec      14 (20) '2.0'\n-15360 Extract OS            00 (0) 'MS-DOS'\n-15361 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15363 Compression Method    0000 (0) 'Stored'\n-15365 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15369 CRC                   3DF79E03 (1039638019)\n-1536D Compressed Size       00000BD6 (3030)\n-15371 Uncompressed Size     00000BD6 (3030)\n-15375 Filename Length       003E (62)\n-15377 Extra Length          0009 (9)\n-15379 Comment Length        0000 (0)\n-1537B Disk Start            0000 (0)\n-1537D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-1537F Ext File Attributes   00000000 (0)\n-15383 Local Header Offset   00007ADB (31451)\n-15387 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15387: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-153C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-153C7   Length              0005 (5)\n-153C9   Flags               01 (1) 'Modification'\n-153CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-153CE CENTRAL HEADER #21    02014B50 (33639248)\n-153D2 Created Zip Spec      14 (20) '2.0'\n-153D3 Created OS            00 (0) 'MS-DOS'\n-153D4 Extract Zip Spec      14 (20) '2.0'\n-153D5 Extract OS            00 (0) 'MS-DOS'\n-153D6 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-153D8 Compression Method    0000 (0) 'Stored'\n-153DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-153DE CRC                   4DA1C2B1 (1302446769)\n-153E2 Compressed Size       000003F4 (1012)\n-153E6 Uncompressed Size     000003F4 (1012)\n-153EA Filename Length       0031 (49)\n-153EC Extra Length          0009 (9)\n-153EE Comment Length        0000 (0)\n-153F0 Disk Start            0000 (0)\n-153F2 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-153F4 Ext File Attributes   00000000 (0)\n-153F8 Local Header Offset   00008726 (34598)\n-153FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x153FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1542D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1542F   Length              0005 (5)\n-15431   Flags               01 (1) 'Modification'\n-15432   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15436 CENTRAL HEADER #22    02014B50 (33639248)\n-1543A Created Zip Spec      14 (20) '2.0'\n-1543B Created OS            00 (0) 'MS-DOS'\n-1543C Extract Zip Spec      14 (20) '2.0'\n-1543D Extract OS            00 (0) 'MS-DOS'\n-1543E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15440 Compression Method    0000 (0) 'Stored'\n-15442 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15446 CRC                   150F0CC2 (353307842)\n-1544A Compressed Size       000011F7 (4599)\n-1544E Uncompressed Size     000011F7 (4599)\n-15452 Filename Length       003F (63)\n-15454 Extra Length          0009 (9)\n-15456 Comment Length        0000 (0)\n-15458 Disk Start            0000 (0)\n-1545A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-1545C Ext File Attributes   00000000 (0)\n-15460 Local Header Offset   00008B82 (35714)\n-15464 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15464: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-154A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-154A5   Length              0005 (5)\n-154A7   Flags               01 (1) 'Modification'\n-154A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-154AC CENTRAL HEADER #23    02014B50 (33639248)\n-154B0 Created Zip Spec      14 (20) '2.0'\n-154B1 Created OS            00 (0) 'MS-DOS'\n-154B2 Extract Zip Spec      14 (20) '2.0'\n-154B3 Extract OS            00 (0) 'MS-DOS'\n-154B4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-154B6 Compression Method    0000 (0) 'Stored'\n-154B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-154BC CRC                   74B3513E (1957908798)\n-154C0 Compressed Size       00000A15 (2581)\n-154C4 Uncompressed Size     00000A15 (2581)\n-154C8 Filename Length       003C (60)\n-154CA Extra Length          0009 (9)\n-154CC Comment Length        0000 (0)\n-154CE Disk Start            0000 (0)\n-154D0 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-154D2 Ext File Attributes   00000000 (0)\n-154D6 Local Header Offset   00009DEF (40431)\n-154DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x154DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15516 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15518   Length              0005 (5)\n-1551A   Flags               01 (1) 'Modification'\n-1551B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1551F CENTRAL HEADER #24    02014B50 (33639248)\n-15523 Created Zip Spec      14 (20) '2.0'\n-15524 Created OS            00 (0) 'MS-DOS'\n-15525 Extract Zip Spec      14 (20) '2.0'\n-15526 Extract OS            00 (0) 'MS-DOS'\n-15527 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15529 Compression Method    0000 (0) 'Stored'\n-1552B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1552F CRC                   59C6BCF2 (1506196722)\n-15533 Compressed Size       00000C48 (3144)\n-15537 Uncompressed Size     00000C48 (3144)\n-1553B Filename Length       003F (63)\n-1553D Extra Length          0009 (9)\n-1553F Comment Length        0000 (0)\n-15541 Disk Start            0000 (0)\n-15543 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15545 Ext File Attributes   00000000 (0)\n-15549 Local Header Offset   0000A877 (43127)\n-1554D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1554D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1558C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1558E   Length              0005 (5)\n-15590   Flags               01 (1) 'Modification'\n-15591   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15595 CENTRAL HEADER #25    02014B50 (33639248)\n-15599 Created Zip Spec      14 (20) '2.0'\n-1559A Created OS            00 (0) 'MS-DOS'\n-1559B Extract Zip Spec      14 (20) '2.0'\n-1559C Extract OS            00 (0) 'MS-DOS'\n-1559D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1559F Compression Method    0000 (0) 'Stored'\n-155A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-155A5 CRC                   CB062A84 (3406178948)\n-155A9 Compressed Size       000007E1 (2017)\n-155AD Uncompressed Size     000007E1 (2017)\n-155B1 Filename Length       003F (63)\n-155B3 Extra Length          0009 (9)\n-155B5 Comment Length        0000 (0)\n-155B7 Disk Start            0000 (0)\n-155B9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-155BB Ext File Attributes   00000000 (0)\n-155BF Local Header Offset   0000B535 (46389)\n-155C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x155C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15602 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15604   Length              0005 (5)\n-15606   Flags               01 (1) 'Modification'\n-15607   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1560B CENTRAL HEADER #26    02014B50 (33639248)\n-1560F Created Zip Spec      14 (20) '2.0'\n-15610 Created OS            00 (0) 'MS-DOS'\n-15611 Extract Zip Spec      14 (20) '2.0'\n-15612 Extract OS            00 (0) 'MS-DOS'\n-15613 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15615 Compression Method    0000 (0) 'Stored'\n-15617 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1561B CRC                   8E964D75 (2392214901)\n-1561F Compressed Size       000031F2 (12786)\n-15623 Uncompressed Size     000031F2 (12786)\n-15627 Filename Length       0034 (52)\n-15629 Extra Length          0009 (9)\n-1562B Comment Length        0000 (0)\n-1562D Disk Start            0000 (0)\n-1562F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15631 Ext File Attributes   00000000 (0)\n-15635 Local Header Offset   0000BD8C (48524)\n-15639 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15639: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1566D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1566F   Length              0005 (5)\n-15671   Flags               01 (1) 'Modification'\n-15672   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15676 CENTRAL HEADER #27    02014B50 (33639248)\n-1567A Created Zip Spec      14 (20) '2.0'\n-1567B Created OS            00 (0) 'MS-DOS'\n-1567C Extract Zip Spec      14 (20) '2.0'\n-1567D Extract OS            00 (0) 'MS-DOS'\n-1567E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15680 Compression Method    0000 (0) 'Stored'\n-15682 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15686 CRC                   2E39C29D (775537309)\n-1568A Compressed Size       000004D4 (1236)\n-1568E Uncompressed Size     000004D4 (1236)\n-15692 Filename Length       003A (58)\n-15694 Extra Length          0009 (9)\n-15696 Comment Length        0000 (0)\n-15698 Disk Start            0000 (0)\n-1569A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-1569C Ext File Attributes   00000000 (0)\n-156A0 Local Header Offset   0000EFE9 (61417)\n-156A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x156A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-156DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-156E0   Length              0005 (5)\n-156E2   Flags               01 (1) 'Modification'\n-156E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-156E7 CENTRAL HEADER #28    02014B50 (33639248)\n-156EB Created Zip Spec      14 (20) '2.0'\n-156EC Created OS            00 (0) 'MS-DOS'\n-156ED Extract Zip Spec      14 (20) '2.0'\n-156EE Extract OS            00 (0) 'MS-DOS'\n-156EF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-156F1 Compression Method    0000 (0) 'Stored'\n-156F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-156F7 CRC                   8AE5D3FF (2330317823)\n-156FB Compressed Size       000006A5 (1701)\n-156FF Uncompressed Size     000006A5 (1701)\n-15703 Filename Length       0039 (57)\n-15705 Extra Length          0009 (9)\n-15707 Comment Length        0000 (0)\n-15709 Disk Start            0000 (0)\n-1570B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-1570D Ext File Attributes   00000000 (0)\n-15711 Local Header Offset   0000F52E (62766)\n-15715 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15715: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1574E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15750   Length              0005 (5)\n-15752   Flags               01 (1) 'Modification'\n-15753   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15757 CENTRAL HEADER #29    02014B50 (33639248)\n-1575B Created Zip Spec      14 (20) '2.0'\n-1575C Created OS            00 (0) 'MS-DOS'\n-1575D Extract Zip Spec      14 (20) '2.0'\n-1575E Extract OS            00 (0) 'MS-DOS'\n-1575F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15761 Compression Method    0000 (0) 'Stored'\n-15763 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15767 CRC                   1149E8E6 (290056422)\n-1576B Compressed Size       00001196 (4502)\n-1576F Uncompressed Size     00001196 (4502)\n-15773 Filename Length       0038 (56)\n-15775 Extra Length          0009 (9)\n-15777 Comment Length        0000 (0)\n-15779 Disk Start            0000 (0)\n-1577B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-1577D Ext File Attributes   00000000 (0)\n-15781 Local Header Offset   0000FC43 (64579)\n-15785 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15785: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-157BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-157BF   Length              0005 (5)\n-157C1   Flags               01 (1) 'Modification'\n-157C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-157C6 CENTRAL HEADER #30    02014B50 (33639248)\n-157CA Created Zip Spec      14 (20) '2.0'\n-157CB Created OS            00 (0) 'MS-DOS'\n-157CC Extract Zip Spec      14 (20) '2.0'\n-157CD Extract OS            00 (0) 'MS-DOS'\n-157CE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-157D0 Compression Method    0000 (0) 'Stored'\n-157D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-157D6 CRC                   939A92A5 (2476380837)\n-157DA Compressed Size       000009EA (2538)\n-157DE Uncompressed Size     000009EA (2538)\n-157E2 Filename Length       003A (58)\n-157E4 Extra Length          0009 (9)\n-157E6 Comment Length        0000 (0)\n-157E8 Disk Start            0000 (0)\n-157EA Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-157EC Ext File Attributes   00000000 (0)\n-157F0 Local Header Offset   00010E48 (69192)\n-157F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x157F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1582E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15830   Length              0005 (5)\n-15832   Flags               01 (1) 'Modification'\n-15833   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15837 CENTRAL HEADER #31    02014B50 (33639248)\n-1583B Created Zip Spec      14 (20) '2.0'\n-1583C Created OS            00 (0) 'MS-DOS'\n-1583D Extract Zip Spec      14 (20) '2.0'\n-1583E Extract OS            00 (0) 'MS-DOS'\n-1583F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15841 Compression Method    0000 (0) 'Stored'\n-15843 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15847 CRC                   4DDA4FAB (1306152875)\n-1584B Compressed Size       00000793 (1939)\n-1584F Uncompressed Size     00000793 (1939)\n-15853 Filename Length       0037 (55)\n-15855 Extra Length          0009 (9)\n-15857 Comment Length        0000 (0)\n-15859 Disk Start            0000 (0)\n-1585B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-1585D Ext File Attributes   00000000 (0)\n-15861 Local Header Offset   000118A3 (71843)\n-15865 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15865: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1589C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1589E   Length              0005 (5)\n-158A0   Flags               01 (1) 'Modification'\n-158A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-158A5 CENTRAL HEADER #32    02014B50 (33639248)\n-158A9 Created Zip Spec      14 (20) '2.0'\n-158AA Created OS            00 (0) 'MS-DOS'\n-158AB Extract Zip Spec      14 (20) '2.0'\n-158AC Extract OS            00 (0) 'MS-DOS'\n-158AD General Purpose Flag  0000 (0)\n-158AF Compression Method    0000 (0) 'Stored'\n-158B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-158B5 CRC                   00000000 (0)\n-158B9 Compressed Size       00000000 (0)\n-158BD Uncompressed Size     00000000 (0)\n-158C1 Filename Length       002F (47)\n-158C3 Extra Length          0009 (9)\n-158C5 Comment Length        0000 (0)\n-158C7 Disk Start            0000 (0)\n-158C9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-158CB Ext File Attributes   00000000 (0)\n-158CF Local Header Offset   000120A4 (73892)\n-158D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x158D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15902 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15904   Length              0005 (5)\n-15906   Flags               01 (1) 'Modification'\n-15907   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1590B CENTRAL HEADER #33    02014B50 (33639248)\n-1590F Created Zip Spec      14 (20) '2.0'\n-15910 Created OS            00 (0) 'MS-DOS'\n-15911 Extract Zip Spec      14 (20) '2.0'\n-15912 Extract OS            00 (0) 'MS-DOS'\n-15913 General Purpose Flag  0000 (0)\n-15915 Compression Method    0000 (0) 'Stored'\n-15917 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1591B CRC                   00000000 (0)\n-1591F Compressed Size       00000000 (0)\n-15923 Uncompressed Size     00000000 (0)\n-15927 Filename Length       0037 (55)\n-15929 Extra Length          0009 (9)\n-1592B Comment Length        0000 (0)\n-1592D Disk Start            0000 (0)\n-1592F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15931 Ext File Attributes   00000000 (0)\n-15935 Local Header Offset   000120FA (73978)\n-15939 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15939: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15970 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15972   Length              0005 (5)\n-15974   Flags               01 (1) 'Modification'\n-15975   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15979 CENTRAL HEADER #34    02014B50 (33639248)\n-1597D Created Zip Spec      14 (20) '2.0'\n-1597E Created OS            00 (0) 'MS-DOS'\n-1597F Extract Zip Spec      14 (20) '2.0'\n-15980 Extract OS            00 (0) 'MS-DOS'\n-15981 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15983 Compression Method    0000 (0) 'Stored'\n-15985 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15989 CRC                   E3F9F330 (3824808752)\n-1598D Compressed Size       00000859 (2137)\n-15991 Uncompressed Size     00000859 (2137)\n-15995 Filename Length       005A (90)\n-15997 Extra Length          0009 (9)\n-15999 Comment Length        0000 (0)\n-1599B Disk Start            0000 (0)\n-1599D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-1599F Ext File Attributes   00000000 (0)\n-159A3 Local Header Offset   00012158 (74072)\n-159A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x159A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15A01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15A03   Length              0005 (5)\n-15A05   Flags               01 (1) 'Modification'\n-15A06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15A0A CENTRAL HEADER #35    02014B50 (33639248)\n-15A0E Created Zip Spec      14 (20) '2.0'\n-15A0F Created OS            00 (0) 'MS-DOS'\n-15A10 Extract Zip Spec      14 (20) '2.0'\n-15A11 Extract OS            00 (0) 'MS-DOS'\n-15A12 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15A14 Compression Method    0000 (0) 'Stored'\n-15A16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15A1A CRC                   FF2D0DF3 (4281142771)\n-15A1E Compressed Size       000006C6 (1734)\n-15A22 Uncompressed Size     000006C6 (1734)\n-15A26 Filename Length       004F (79)\n-15A28 Extra Length          0009 (9)\n-15A2A Comment Length        0000 (0)\n-15A2C Disk Start            0000 (0)\n-15A2E Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15A30 Ext File Attributes   00000000 (0)\n-15A34 Local Header Offset   00012A42 (76354)\n-15A38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15A38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15A87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15A89   Length              0005 (5)\n-15A8B   Flags               01 (1) 'Modification'\n-15A8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15A90 CENTRAL HEADER #36    02014B50 (33639248)\n-15A94 Created Zip Spec      14 (20) '2.0'\n-15A95 Created OS            00 (0) 'MS-DOS'\n-15A96 Extract Zip Spec      14 (20) '2.0'\n-15A97 Extract OS            00 (0) 'MS-DOS'\n-15A98 General Purpose Flag  0000 (0)\n-15A9A Compression Method    0000 (0) 'Stored'\n-15A9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15AA0 CRC                   00000000 (0)\n-15AA4 Compressed Size       00000000 (0)\n-15AA8 Uncompressed Size     00000000 (0)\n-15AAC Filename Length       002B (43)\n-15AAE Extra Length          0009 (9)\n-15AB0 Comment Length        0000 (0)\n-15AB2 Disk Start            0000 (0)\n-15AB4 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15AB6 Ext File Attributes   00000000 (0)\n-15ABA Local Header Offset   0001318E (78222)\n-15ABE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15ABE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15AE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15AEB   Length              0005 (5)\n-15AED   Flags               01 (1) 'Modification'\n-15AEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15AF2 CENTRAL HEADER #37    02014B50 (33639248)\n-15AF6 Created Zip Spec      14 (20) '2.0'\n-15AF7 Created OS            00 (0) 'MS-DOS'\n-15AF8 Extract Zip Spec      14 (20) '2.0'\n-15AF9 Extract OS            00 (0) 'MS-DOS'\n-15AFA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15AFC Compression Method    0000 (0) 'Stored'\n-15AFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15B02 CRC                   FC72AE7D (4235374205)\n-15B06 Compressed Size       00000523 (1315)\n-15B0A Uncompressed Size     00000523 (1315)\n-15B0E Filename Length       003B (59)\n-15B10 Extra Length          0009 (9)\n-15B12 Comment Length        0000 (0)\n-15B14 Disk Start            0000 (0)\n-15B16 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15B18 Ext File Attributes   00000000 (0)\n-15B1C Local Header Offset   000131E0 (78304)\n-15B20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15B20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15B5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15B5D   Length              0005 (5)\n-15B5F   Flags               01 (1) 'Modification'\n-15B60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15B64 CENTRAL HEADER #38    02014B50 (33639248)\n-15B68 Created Zip Spec      14 (20) '2.0'\n-15B69 Created OS            00 (0) 'MS-DOS'\n-15B6A Extract Zip Spec      14 (20) '2.0'\n-15B6B Extract OS            00 (0) 'MS-DOS'\n-15B6C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15B6E Compression Method    0000 (0) 'Stored'\n-15B70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15B74 CRC                   DD3F3E44 (3711909444)\n-15B78 Compressed Size       00001567 (5479)\n-15B7C Uncompressed Size     00001567 (5479)\n-15B80 Filename Length       003D (61)\n-15B82 Extra Length          0009 (9)\n-15B84 Comment Length        0000 (0)\n-15B86 Disk Start            0000 (0)\n-15B88 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-15B8A Ext File Attributes   00000000 (0)\n-15B8E Local Header Offset   00013775 (79733)\n-15B92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15B92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15BCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15BD1   Length              0005 (5)\n-15BD3   Flags               01 (1) 'Modification'\n-15BD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15BD8 END CENTRAL HEADER    06054B50 (101010256)\n-15BDC Number of this disk   0000 (0)\n-15BDE Central Dir Disk no   0000 (0)\n-15BE0 Entries in this disk  0026 (38)\n-15BE2 Total Entries         0026 (38)\n-15BE4 Size of Central Dir   00000E88 (3720)\n-15BE8 Offset to Central Dir 00014D50 (85328)\n-15BEC Comment Length        0000 (0)\n+15211 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15213   Length              0005 (5)\n+15215   Flags               01 (1) 'Modification'\n+15216   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1521A CENTRAL HEADER #6     02014B50 (33639248)\n+1521E Created Zip Spec      14 (20) '2.0'\n+1521F Created OS            00 (0) 'MS-DOS'\n+15220 Extract Zip Spec      14 (20) '2.0'\n+15221 Extract OS            00 (0) 'MS-DOS'\n+15222 General Purpose Flag  0000 (0)\n+15224 Compression Method    0000 (0) 'Stored'\n+15226 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1522A CRC                   00000000 (0)\n+1522E Compressed Size       00000000 (0)\n+15232 Uncompressed Size     00000000 (0)\n+15236 Filename Length       000F (15)\n+15238 Extra Length          0009 (9)\n+1523A Comment Length        0000 (0)\n+1523C Disk Start            0000 (0)\n+1523E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15240 Ext File Attributes   00000000 (0)\n+15244 Local Header Offset   00006713 (26387)\n+15248 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15248: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15257 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15259   Length              0005 (5)\n+1525B   Flags               01 (1) 'Modification'\n+1525C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15260 CENTRAL HEADER #7     02014B50 (33639248)\n+15264 Created Zip Spec      14 (20) '2.0'\n+15265 Created OS            00 (0) 'MS-DOS'\n+15266 Extract Zip Spec      14 (20) '2.0'\n+15267 Extract OS            00 (0) 'MS-DOS'\n+15268 General Purpose Flag  0000 (0)\n+1526A Compression Method    0000 (0) 'Stored'\n+1526C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15270 CRC                   00000000 (0)\n+15274 Compressed Size       00000000 (0)\n+15278 Uncompressed Size     00000000 (0)\n+1527C Filename Length       0018 (24)\n+1527E Extra Length          0009 (9)\n+15280 Comment Length        0000 (0)\n+15282 Disk Start            0000 (0)\n+15284 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15286 Ext File Attributes   00000000 (0)\n+1528A Local Header Offset   00006749 (26441)\n+1528E Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1528E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+152A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+152A8   Length              0005 (5)\n+152AA   Flags               01 (1) 'Modification'\n+152AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+152AF CENTRAL HEADER #8     02014B50 (33639248)\n+152B3 Created Zip Spec      14 (20) '2.0'\n+152B4 Created OS            00 (0) 'MS-DOS'\n+152B5 Extract Zip Spec      14 (20) '2.0'\n+152B6 Extract OS            00 (0) 'MS-DOS'\n+152B7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+152B9 Compression Method    0000 (0) 'Stored'\n+152BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+152BF CRC                   654AD933 (1699404083)\n+152C3 Compressed Size       00000034 (52)\n+152C7 Uncompressed Size     00000034 (52)\n+152CB Filename Length       0035 (53)\n+152CD Extra Length          0009 (9)\n+152CF Comment Length        0000 (0)\n+152D1 Disk Start            0000 (0)\n+152D3 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+152D5 Ext File Attributes   00000000 (0)\n+152D9 Local Header Offset   00006788 (26504)\n+152DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x152DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15312 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15314   Length              0005 (5)\n+15316   Flags               01 (1) 'Modification'\n+15317   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1531B CENTRAL HEADER #9     02014B50 (33639248)\n+1531F Created Zip Spec      14 (20) '2.0'\n+15320 Created OS            00 (0) 'MS-DOS'\n+15321 Extract Zip Spec      14 (20) '2.0'\n+15322 Extract OS            00 (0) 'MS-DOS'\n+15323 General Purpose Flag  0000 (0)\n+15325 Compression Method    0000 (0) 'Stored'\n+15327 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1532B CRC                   00000000 (0)\n+1532F Compressed Size       00000000 (0)\n+15333 Uncompressed Size     00000000 (0)\n+15337 Filename Length       000F (15)\n+15339 Extra Length          0009 (9)\n+1533B Comment Length        0000 (0)\n+1533D Disk Start            0000 (0)\n+1533F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15341 Ext File Attributes   00000000 (0)\n+15345 Local Header Offset   00006828 (26664)\n+15349 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15349: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15358 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1535A   Length              0005 (5)\n+1535C   Flags               01 (1) 'Modification'\n+1535D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15361 CENTRAL HEADER #10    02014B50 (33639248)\n+15365 Created Zip Spec      14 (20) '2.0'\n+15366 Created OS            00 (0) 'MS-DOS'\n+15367 Extract Zip Spec      14 (20) '2.0'\n+15368 Extract OS            00 (0) 'MS-DOS'\n+15369 General Purpose Flag  0000 (0)\n+1536B Compression Method    0000 (0) 'Stored'\n+1536D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15371 CRC                   00000000 (0)\n+15375 Compressed Size       00000000 (0)\n+15379 Uncompressed Size     00000000 (0)\n+1537D Filename Length       0020 (32)\n+1537F Extra Length          0009 (9)\n+15381 Comment Length        0000 (0)\n+15383 Disk Start            0000 (0)\n+15385 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15387 Ext File Attributes   00000000 (0)\n+1538B Local Header Offset   0000685E (26718)\n+1538F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1538F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+153AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+153B1   Length              0005 (5)\n+153B3   Flags               01 (1) 'Modification'\n+153B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+153B8 CENTRAL HEADER #11    02014B50 (33639248)\n+153BC Created Zip Spec      14 (20) '2.0'\n+153BD Created OS            00 (0) 'MS-DOS'\n+153BE Extract Zip Spec      14 (20) '2.0'\n+153BF Extract OS            00 (0) 'MS-DOS'\n+153C0 General Purpose Flag  0000 (0)\n+153C2 Compression Method    0000 (0) 'Stored'\n+153C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+153C8 CRC                   00000000 (0)\n+153CC Compressed Size       00000000 (0)\n+153D0 Uncompressed Size     00000000 (0)\n+153D4 Filename Length       002F (47)\n+153D6 Extra Length          0009 (9)\n+153D8 Comment Length        0000 (0)\n+153DA Disk Start            0000 (0)\n+153DC Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+153DE Ext File Attributes   00000000 (0)\n+153E2 Local Header Offset   000068A5 (26789)\n+153E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x153E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15415 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15417   Length              0005 (5)\n+15419   Flags               01 (1) 'Modification'\n+1541A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1541E CENTRAL HEADER #12    02014B50 (33639248)\n+15422 Created Zip Spec      14 (20) '2.0'\n+15423 Created OS            00 (0) 'MS-DOS'\n+15424 Extract Zip Spec      14 (20) '2.0'\n+15425 Extract OS            00 (0) 'MS-DOS'\n+15426 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15428 Compression Method    0000 (0) 'Stored'\n+1542A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1542E CRC                   00000000 (0)\n+15432 Compressed Size       00000000 (0)\n+15436 Uncompressed Size     00000000 (0)\n+1543A Filename Length       003D (61)\n+1543C Extra Length          0009 (9)\n+1543E Comment Length        0000 (0)\n+15440 Disk Start            0000 (0)\n+15442 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15444 Ext File Attributes   00000000 (0)\n+15448 Local Header Offset   000068FB (26875)\n+1544C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1544C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15489 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1548B   Length              0005 (5)\n+1548D   Flags               01 (1) 'Modification'\n+1548E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15492 CENTRAL HEADER #13    02014B50 (33639248)\n+15496 Created Zip Spec      14 (20) '2.0'\n+15497 Created OS            00 (0) 'MS-DOS'\n+15498 Extract Zip Spec      14 (20) '2.0'\n+15499 Extract OS            00 (0) 'MS-DOS'\n+1549A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1549C Compression Method    0000 (0) 'Stored'\n+1549E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+154A2 CRC                   E36316D8 (3814921944)\n+154A6 Compressed Size       00000F30 (3888)\n+154AA Uncompressed Size     00000F30 (3888)\n+154AE Filename Length       0036 (54)\n+154B0 Extra Length          0009 (9)\n+154B2 Comment Length        0000 (0)\n+154B4 Disk Start            0000 (0)\n+154B6 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+154B8 Ext File Attributes   00000000 (0)\n+154BC Local Header Offset   0000696F (26991)\n+154C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x154C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+154F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+154F8   Length              0005 (5)\n+154FA   Flags               01 (1) 'Modification'\n+154FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+154FF CENTRAL HEADER #14    02014B50 (33639248)\n+15503 Created Zip Spec      14 (20) '2.0'\n+15504 Created OS            00 (0) 'MS-DOS'\n+15505 Extract Zip Spec      14 (20) '2.0'\n+15506 Extract OS            00 (0) 'MS-DOS'\n+15507 General Purpose Flag  0000 (0)\n+15509 Compression Method    0000 (0) 'Stored'\n+1550B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1550F CRC                   00000000 (0)\n+15513 Compressed Size       00000000 (0)\n+15517 Uncompressed Size     00000000 (0)\n+1551B Filename Length       0004 (4)\n+1551D Extra Length          0009 (9)\n+1551F Comment Length        0000 (0)\n+15521 Disk Start            0000 (0)\n+15523 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15525 Ext File Attributes   00000000 (0)\n+15529 Local Header Offset   0000790C (30988)\n+1552D Filename              'XXXX'\n+#\n+# WARNING: Offset 0x1552D: Filename 'XXXX'\n+#          Zero length filename\n+#\n+15531 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15533   Length              0005 (5)\n+15535   Flags               01 (1) 'Modification'\n+15536   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1553A CENTRAL HEADER #15    02014B50 (33639248)\n+1553E Created Zip Spec      14 (20) '2.0'\n+1553F Created OS            00 (0) 'MS-DOS'\n+15540 Extract Zip Spec      14 (20) '2.0'\n+15541 Extract OS            00 (0) 'MS-DOS'\n+15542 General Purpose Flag  0000 (0)\n+15544 Compression Method    0000 (0) 'Stored'\n+15546 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1554A CRC                   00000000 (0)\n+1554E Compressed Size       00000000 (0)\n+15552 Uncompressed Size     00000000 (0)\n+15556 Filename Length       000B (11)\n+15558 Extra Length          0009 (9)\n+1555A Comment Length        0000 (0)\n+1555C Disk Start            0000 (0)\n+1555E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15560 Ext File Attributes   00000000 (0)\n+15564 Local Header Offset   00007937 (31031)\n+15568 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15568: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15573 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15575   Length              0005 (5)\n+15577   Flags               01 (1) 'Modification'\n+15578   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1557C CENTRAL HEADER #16    02014B50 (33639248)\n+15580 Created Zip Spec      14 (20) '2.0'\n+15581 Created OS            00 (0) 'MS-DOS'\n+15582 Extract Zip Spec      14 (20) '2.0'\n+15583 Extract OS            00 (0) 'MS-DOS'\n+15584 General Purpose Flag  0000 (0)\n+15586 Compression Method    0000 (0) 'Stored'\n+15588 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1558C CRC                   00000000 (0)\n+15590 Compressed Size       00000000 (0)\n+15594 Uncompressed Size     00000000 (0)\n+15598 Filename Length       0011 (17)\n+1559A Extra Length          0009 (9)\n+1559C Comment Length        0000 (0)\n+1559E Disk Start            0000 (0)\n+155A0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+155A2 Ext File Attributes   00000000 (0)\n+155A6 Local Header Offset   00007969 (31081)\n+155AA Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x155AA: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+155BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+155BD   Length              0005 (5)\n+155BF   Flags               01 (1) 'Modification'\n+155C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+155C4 CENTRAL HEADER #17    02014B50 (33639248)\n+155C8 Created Zip Spec      14 (20) '2.0'\n+155C9 Created OS            00 (0) 'MS-DOS'\n+155CA Extract Zip Spec      14 (20) '2.0'\n+155CB Extract OS            00 (0) 'MS-DOS'\n+155CC General Purpose Flag  0000 (0)\n+155CE Compression Method    0000 (0) 'Stored'\n+155D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+155D4 CRC                   00000000 (0)\n+155D8 Compressed Size       00000000 (0)\n+155DC Uncompressed Size     00000000 (0)\n+155E0 Filename Length       0015 (21)\n+155E2 Extra Length          0009 (9)\n+155E4 Comment Length        0000 (0)\n+155E6 Disk Start            0000 (0)\n+155E8 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+155EA Ext File Attributes   00000000 (0)\n+155EE Local Header Offset   000079A1 (31137)\n+155F2 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x155F2: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15607 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15609   Length              0005 (5)\n+1560B   Flags               01 (1) 'Modification'\n+1560C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15610 CENTRAL HEADER #18    02014B50 (33639248)\n+15614 Created Zip Spec      14 (20) '2.0'\n+15615 Created OS            00 (0) 'MS-DOS'\n+15616 Extract Zip Spec      14 (20) '2.0'\n+15617 Extract OS            00 (0) 'MS-DOS'\n+15618 General Purpose Flag  0000 (0)\n+1561A Compression Method    0000 (0) 'Stored'\n+1561C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15620 CRC                   00000000 (0)\n+15624 Compressed Size       00000000 (0)\n+15628 Uncompressed Size     00000000 (0)\n+1562C Filename Length       001E (30)\n+1562E Extra Length          0009 (9)\n+15630 Comment Length        0000 (0)\n+15632 Disk Start            0000 (0)\n+15634 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15636 Ext File Attributes   00000000 (0)\n+1563A Local Header Offset   000079DD (31197)\n+1563E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1563E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1565C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1565E   Length              0005 (5)\n+15660   Flags               01 (1) 'Modification'\n+15661   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15665 CENTRAL HEADER #19    02014B50 (33639248)\n+15669 Created Zip Spec      14 (20) '2.0'\n+1566A Created OS            00 (0) 'MS-DOS'\n+1566B Extract Zip Spec      14 (20) '2.0'\n+1566C Extract OS            00 (0) 'MS-DOS'\n+1566D General Purpose Flag  0000 (0)\n+1566F Compression Method    0000 (0) 'Stored'\n+15671 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15675 CRC                   00000000 (0)\n+15679 Compressed Size       00000000 (0)\n+1567D Uncompressed Size     00000000 (0)\n+15681 Filename Length       0023 (35)\n+15683 Extra Length          0009 (9)\n+15685 Comment Length        0000 (0)\n+15687 Disk Start            0000 (0)\n+15689 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+1568B Ext File Attributes   00000000 (0)\n+1568F Local Header Offset   00007A22 (31266)\n+15693 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15693: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+156B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+156B8   Length              0005 (5)\n+156BA   Flags               01 (1) 'Modification'\n+156BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+156BF CENTRAL HEADER #20    02014B50 (33639248)\n+156C3 Created Zip Spec      14 (20) '2.0'\n+156C4 Created OS            00 (0) 'MS-DOS'\n+156C5 Extract Zip Spec      14 (20) '2.0'\n+156C6 Extract OS            00 (0) 'MS-DOS'\n+156C7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+156C9 Compression Method    0000 (0) 'Stored'\n+156CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+156CF CRC                   E49ADE4B (3835354699)\n+156D3 Compressed Size       00000C26 (3110)\n+156D7 Uncompressed Size     00000C26 (3110)\n+156DB Filename Length       003E (62)\n+156DD Extra Length          0009 (9)\n+156DF Comment Length        0000 (0)\n+156E1 Disk Start            0000 (0)\n+156E3 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+156E5 Ext File Attributes   00000000 (0)\n+156E9 Local Header Offset   00007A6C (31340)\n+156ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x156ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1572B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1572D   Length              0005 (5)\n+1572F   Flags               01 (1) 'Modification'\n+15730   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15734 CENTRAL HEADER #21    02014B50 (33639248)\n+15738 Created Zip Spec      14 (20) '2.0'\n+15739 Created OS            00 (0) 'MS-DOS'\n+1573A Extract Zip Spec      14 (20) '2.0'\n+1573B Extract OS            00 (0) 'MS-DOS'\n+1573C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1573E Compression Method    0000 (0) 'Stored'\n+15740 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15744 CRC                   CAFD8C87 (3405614215)\n+15748 Compressed Size       00000411 (1041)\n+1574C Uncompressed Size     00000411 (1041)\n+15750 Filename Length       0031 (49)\n+15752 Extra Length          0009 (9)\n+15754 Comment Length        0000 (0)\n+15756 Disk Start            0000 (0)\n+15758 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+1575A Ext File Attributes   00000000 (0)\n+1575E Local Header Offset   00008707 (34567)\n+15762 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15762: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15793 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15795   Length              0005 (5)\n+15797   Flags               01 (1) 'Modification'\n+15798   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1579C CENTRAL HEADER #22    02014B50 (33639248)\n+157A0 Created Zip Spec      14 (20) '2.0'\n+157A1 Created OS            00 (0) 'MS-DOS'\n+157A2 Extract Zip Spec      14 (20) '2.0'\n+157A3 Extract OS            00 (0) 'MS-DOS'\n+157A4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+157A6 Compression Method    0000 (0) 'Stored'\n+157A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+157AC CRC                   3D20A35F (1025549151)\n+157B0 Compressed Size       0000127A (4730)\n+157B4 Uncompressed Size     0000127A (4730)\n+157B8 Filename Length       003F (63)\n+157BA Extra Length          0009 (9)\n+157BC Comment Length        0000 (0)\n+157BE Disk Start            0000 (0)\n+157C0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+157C2 Ext File Attributes   00000000 (0)\n+157C6 Local Header Offset   00008B80 (35712)\n+157CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x157CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15809 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1580B   Length              0005 (5)\n+1580D   Flags               01 (1) 'Modification'\n+1580E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15812 CENTRAL HEADER #23    02014B50 (33639248)\n+15816 Created Zip Spec      14 (20) '2.0'\n+15817 Created OS            00 (0) 'MS-DOS'\n+15818 Extract Zip Spec      14 (20) '2.0'\n+15819 Extract OS            00 (0) 'MS-DOS'\n+1581A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1581C Compression Method    0000 (0) 'Stored'\n+1581E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15822 CRC                   74B3513E (1957908798)\n+15826 Compressed Size       00000A15 (2581)\n+1582A Uncompressed Size     00000A15 (2581)\n+1582E Filename Length       003C (60)\n+15830 Extra Length          0009 (9)\n+15832 Comment Length        0000 (0)\n+15834 Disk Start            0000 (0)\n+15836 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15838 Ext File Attributes   00000000 (0)\n+1583C Local Header Offset   00009E70 (40560)\n+15840 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15840: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1587C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1587E   Length              0005 (5)\n+15880   Flags               01 (1) 'Modification'\n+15881   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15885 CENTRAL HEADER #24    02014B50 (33639248)\n+15889 Created Zip Spec      14 (20) '2.0'\n+1588A Created OS            00 (0) 'MS-DOS'\n+1588B Extract Zip Spec      14 (20) '2.0'\n+1588C Extract OS            00 (0) 'MS-DOS'\n+1588D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1588F Compression Method    0000 (0) 'Stored'\n+15891 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15895 CRC                   755A7982 (1968863618)\n+15899 Compressed Size       00000C91 (3217)\n+1589D Uncompressed Size     00000C91 (3217)\n+158A1 Filename Length       003F (63)\n+158A3 Extra Length          0009 (9)\n+158A5 Comment Length        0000 (0)\n+158A7 Disk Start            0000 (0)\n+158A9 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+158AB Ext File Attributes   00000000 (0)\n+158AF Local Header Offset   0000A8F8 (43256)\n+158B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x158B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+158F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+158F4   Length              0005 (5)\n+158F6   Flags               01 (1) 'Modification'\n+158F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+158FB CENTRAL HEADER #25    02014B50 (33639248)\n+158FF Created Zip Spec      14 (20) '2.0'\n+15900 Created OS            00 (0) 'MS-DOS'\n+15901 Extract Zip Spec      14 (20) '2.0'\n+15902 Extract OS            00 (0) 'MS-DOS'\n+15903 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15905 Compression Method    0000 (0) 'Stored'\n+15907 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1590B CRC                   CB062A84 (3406178948)\n+1590F Compressed Size       000007E1 (2017)\n+15913 Uncompressed Size     000007E1 (2017)\n+15917 Filename Length       003F (63)\n+15919 Extra Length          0009 (9)\n+1591B Comment Length        0000 (0)\n+1591D Disk Start            0000 (0)\n+1591F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15921 Ext File Attributes   00000000 (0)\n+15925 Local Header Offset   0000B5FF (46591)\n+15929 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15929: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15968 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1596A   Length              0005 (5)\n+1596C   Flags               01 (1) 'Modification'\n+1596D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15971 CENTRAL HEADER #26    02014B50 (33639248)\n+15975 Created Zip Spec      14 (20) '2.0'\n+15976 Created OS            00 (0) 'MS-DOS'\n+15977 Extract Zip Spec      14 (20) '2.0'\n+15978 Extract OS            00 (0) 'MS-DOS'\n+15979 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1597B Compression Method    0000 (0) 'Stored'\n+1597D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15981 CRC                   D7522A4D (3612486221)\n+15985 Compressed Size       00003319 (13081)\n+15989 Uncompressed Size     00003319 (13081)\n+1598D Filename Length       0034 (52)\n+1598F Extra Length          0009 (9)\n+15991 Comment Length        0000 (0)\n+15993 Disk Start            0000 (0)\n+15995 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15997 Ext File Attributes   00000000 (0)\n+1599B Local Header Offset   0000BE56 (48726)\n+1599F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1599F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+159D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+159D5   Length              0005 (5)\n+159D7   Flags               01 (1) 'Modification'\n+159D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+159DC CENTRAL HEADER #27    02014B50 (33639248)\n+159E0 Created Zip Spec      14 (20) '2.0'\n+159E1 Created OS            00 (0) 'MS-DOS'\n+159E2 Extract Zip Spec      14 (20) '2.0'\n+159E3 Extract OS            00 (0) 'MS-DOS'\n+159E4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+159E6 Compression Method    0000 (0) 'Stored'\n+159E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+159EC CRC                   6BBB41BD (1807434173)\n+159F0 Compressed Size       000004F5 (1269)\n+159F4 Uncompressed Size     000004F5 (1269)\n+159F8 Filename Length       003A (58)\n+159FA Extra Length          0009 (9)\n+159FC Comment Length        0000 (0)\n+159FE Disk Start            0000 (0)\n+15A00 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15A02 Ext File Attributes   00000000 (0)\n+15A06 Local Header Offset   0000F1DA (61914)\n+15A0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15A0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15A44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15A46   Length              0005 (5)\n+15A48   Flags               01 (1) 'Modification'\n+15A49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15A4D CENTRAL HEADER #28    02014B50 (33639248)\n+15A51 Created Zip Spec      14 (20) '2.0'\n+15A52 Created OS            00 (0) 'MS-DOS'\n+15A53 Extract Zip Spec      14 (20) '2.0'\n+15A54 Extract OS            00 (0) 'MS-DOS'\n+15A55 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15A57 Compression Method    0000 (0) 'Stored'\n+15A59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15A5D CRC                   086F2C9C (141503644)\n+15A61 Compressed Size       000006D1 (1745)\n+15A65 Uncompressed Size     000006D1 (1745)\n+15A69 Filename Length       0039 (57)\n+15A6B Extra Length          0009 (9)\n+15A6D Comment Length        0000 (0)\n+15A6F Disk Start            0000 (0)\n+15A71 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15A73 Ext File Attributes   00000000 (0)\n+15A77 Local Header Offset   0000F740 (63296)\n+15A7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15A7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15AB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15AB6   Length              0005 (5)\n+15AB8   Flags               01 (1) 'Modification'\n+15AB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15ABD CENTRAL HEADER #29    02014B50 (33639248)\n+15AC1 Created Zip Spec      14 (20) '2.0'\n+15AC2 Created OS            00 (0) 'MS-DOS'\n+15AC3 Extract Zip Spec      14 (20) '2.0'\n+15AC4 Extract OS            00 (0) 'MS-DOS'\n+15AC5 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15AC7 Compression Method    0000 (0) 'Stored'\n+15AC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15ACD CRC                   A0E895BE (2699597246)\n+15AD1 Compressed Size       00001200 (4608)\n+15AD5 Uncompressed Size     00001200 (4608)\n+15AD9 Filename Length       0038 (56)\n+15ADB Extra Length          0009 (9)\n+15ADD Comment Length        0000 (0)\n+15ADF Disk Start            0000 (0)\n+15AE1 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15AE3 Ext File Attributes   00000000 (0)\n+15AE7 Local Header Offset   0000FE81 (65153)\n+15AEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15AEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15B23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15B25   Length              0005 (5)\n+15B27   Flags               01 (1) 'Modification'\n+15B28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15B2C CENTRAL HEADER #30    02014B50 (33639248)\n+15B30 Created Zip Spec      14 (20) '2.0'\n+15B31 Created OS            00 (0) 'MS-DOS'\n+15B32 Extract Zip Spec      14 (20) '2.0'\n+15B33 Extract OS            00 (0) 'MS-DOS'\n+15B34 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15B36 Compression Method    0000 (0) 'Stored'\n+15B38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15B3C CRC                   939A92A5 (2476380837)\n+15B40 Compressed Size       000009EA (2538)\n+15B44 Uncompressed Size     000009EA (2538)\n+15B48 Filename Length       003A (58)\n+15B4A Extra Length          0009 (9)\n+15B4C Comment Length        0000 (0)\n+15B4E Disk Start            0000 (0)\n+15B50 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15B52 Ext File Attributes   00000000 (0)\n+15B56 Local Header Offset   000110F0 (69872)\n+15B5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15B5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15B94 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15B96   Length              0005 (5)\n+15B98   Flags               01 (1) 'Modification'\n+15B99   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15B9D CENTRAL HEADER #31    02014B50 (33639248)\n+15BA1 Created Zip Spec      14 (20) '2.0'\n+15BA2 Created OS            00 (0) 'MS-DOS'\n+15BA3 Extract Zip Spec      14 (20) '2.0'\n+15BA4 Extract OS            00 (0) 'MS-DOS'\n+15BA5 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15BA7 Compression Method    0000 (0) 'Stored'\n+15BA9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15BAD CRC                   4DDA4FAB (1306152875)\n+15BB1 Compressed Size       00000793 (1939)\n+15BB5 Uncompressed Size     00000793 (1939)\n+15BB9 Filename Length       0037 (55)\n+15BBB Extra Length          0009 (9)\n+15BBD Comment Length        0000 (0)\n+15BBF Disk Start            0000 (0)\n+15BC1 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15BC3 Ext File Attributes   00000000 (0)\n+15BC7 Local Header Offset   00011B4B (72523)\n+15BCB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15BCB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15C02 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15C04   Length              0005 (5)\n+15C06   Flags               01 (1) 'Modification'\n+15C07   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15C0B CENTRAL HEADER #32    02014B50 (33639248)\n+15C0F Created Zip Spec      14 (20) '2.0'\n+15C10 Created OS            00 (0) 'MS-DOS'\n+15C11 Extract Zip Spec      14 (20) '2.0'\n+15C12 Extract OS            00 (0) 'MS-DOS'\n+15C13 General Purpose Flag  0000 (0)\n+15C15 Compression Method    0000 (0) 'Stored'\n+15C17 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15C1B CRC                   00000000 (0)\n+15C1F Compressed Size       00000000 (0)\n+15C23 Uncompressed Size     00000000 (0)\n+15C27 Filename Length       002F (47)\n+15C29 Extra Length          0009 (9)\n+15C2B Comment Length        0000 (0)\n+15C2D Disk Start            0000 (0)\n+15C2F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15C31 Ext File Attributes   00000000 (0)\n+15C35 Local Header Offset   0001234C (74572)\n+15C39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15C39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15C68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15C6A   Length              0005 (5)\n+15C6C   Flags               01 (1) 'Modification'\n+15C6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15C71 CENTRAL HEADER #33    02014B50 (33639248)\n+15C75 Created Zip Spec      14 (20) '2.0'\n+15C76 Created OS            00 (0) 'MS-DOS'\n+15C77 Extract Zip Spec      14 (20) '2.0'\n+15C78 Extract OS            00 (0) 'MS-DOS'\n+15C79 General Purpose Flag  0000 (0)\n+15C7B Compression Method    0000 (0) 'Stored'\n+15C7D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15C81 CRC                   00000000 (0)\n+15C85 Compressed Size       00000000 (0)\n+15C89 Uncompressed Size     00000000 (0)\n+15C8D Filename Length       0037 (55)\n+15C8F Extra Length          0009 (9)\n+15C91 Comment Length        0000 (0)\n+15C93 Disk Start            0000 (0)\n+15C95 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15C97 Ext File Attributes   00000000 (0)\n+15C9B Local Header Offset   000123A2 (74658)\n+15C9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15C9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15CD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15CD8   Length              0005 (5)\n+15CDA   Flags               01 (1) 'Modification'\n+15CDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15CDF CENTRAL HEADER #34    02014B50 (33639248)\n+15CE3 Created Zip Spec      14 (20) '2.0'\n+15CE4 Created OS            00 (0) 'MS-DOS'\n+15CE5 Extract Zip Spec      14 (20) '2.0'\n+15CE6 Extract OS            00 (0) 'MS-DOS'\n+15CE7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15CE9 Compression Method    0000 (0) 'Stored'\n+15CEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15CEF CRC                   E3F9F330 (3824808752)\n+15CF3 Compressed Size       00000859 (2137)\n+15CF7 Uncompressed Size     00000859 (2137)\n+15CFB Filename Length       005A (90)\n+15CFD Extra Length          0009 (9)\n+15CFF Comment Length        0000 (0)\n+15D01 Disk Start            0000 (0)\n+15D03 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15D05 Ext File Attributes   00000000 (0)\n+15D09 Local Header Offset   00012400 (74752)\n+15D0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15D0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15D67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15D69   Length              0005 (5)\n+15D6B   Flags               01 (1) 'Modification'\n+15D6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15D70 CENTRAL HEADER #35    02014B50 (33639248)\n+15D74 Created Zip Spec      14 (20) '2.0'\n+15D75 Created OS            00 (0) 'MS-DOS'\n+15D76 Extract Zip Spec      14 (20) '2.0'\n+15D77 Extract OS            00 (0) 'MS-DOS'\n+15D78 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15D7A Compression Method    0000 (0) 'Stored'\n+15D7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15D80 CRC                   879AD63A (2275071546)\n+15D84 Compressed Size       000006F0 (1776)\n+15D88 Uncompressed Size     000006F0 (1776)\n+15D8C Filename Length       004F (79)\n+15D8E Extra Length          0009 (9)\n+15D90 Comment Length        0000 (0)\n+15D92 Disk Start            0000 (0)\n+15D94 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15D96 Ext File Attributes   00000000 (0)\n+15D9A Local Header Offset   00012CEA (77034)\n+15D9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15D9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15DED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15DEF   Length              0005 (5)\n+15DF1   Flags               01 (1) 'Modification'\n+15DF2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15DF6 CENTRAL HEADER #36    02014B50 (33639248)\n+15DFA Created Zip Spec      14 (20) '2.0'\n+15DFB Created OS            00 (0) 'MS-DOS'\n+15DFC Extract Zip Spec      14 (20) '2.0'\n+15DFD Extract OS            00 (0) 'MS-DOS'\n+15DFE General Purpose Flag  0000 (0)\n+15E00 Compression Method    0000 (0) 'Stored'\n+15E02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15E06 CRC                   00000000 (0)\n+15E0A Compressed Size       00000000 (0)\n+15E0E Uncompressed Size     00000000 (0)\n+15E12 Filename Length       002B (43)\n+15E14 Extra Length          0009 (9)\n+15E16 Comment Length        0000 (0)\n+15E18 Disk Start            0000 (0)\n+15E1A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15E1C Ext File Attributes   00000000 (0)\n+15E20 Local Header Offset   00013460 (78944)\n+15E24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15E24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15E4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15E51   Length              0005 (5)\n+15E53   Flags               01 (1) 'Modification'\n+15E54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15E58 CENTRAL HEADER #37    02014B50 (33639248)\n+15E5C Created Zip Spec      14 (20) '2.0'\n+15E5D Created OS            00 (0) 'MS-DOS'\n+15E5E Extract Zip Spec      14 (20) '2.0'\n+15E5F Extract OS            00 (0) 'MS-DOS'\n+15E60 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15E62 Compression Method    0000 (0) 'Stored'\n+15E64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15E68 CRC                   FC72AE7D (4235374205)\n+15E6C Compressed Size       00000523 (1315)\n+15E70 Uncompressed Size     00000523 (1315)\n+15E74 Filename Length       003B (59)\n+15E76 Extra Length          0009 (9)\n+15E78 Comment Length        0000 (0)\n+15E7A Disk Start            0000 (0)\n+15E7C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15E7E Ext File Attributes   00000000 (0)\n+15E82 Local Header Offset   000134B2 (79026)\n+15E86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15E86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15EC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15EC3   Length              0005 (5)\n+15EC5   Flags               01 (1) 'Modification'\n+15EC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15ECA CENTRAL HEADER #38    02014B50 (33639248)\n+15ECE Created Zip Spec      14 (20) '2.0'\n+15ECF Created OS            00 (0) 'MS-DOS'\n+15ED0 Extract Zip Spec      14 (20) '2.0'\n+15ED1 Extract OS            00 (0) 'MS-DOS'\n+15ED2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+15ED4 Compression Method    0000 (0) 'Stored'\n+15ED6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15EDA CRC                   98665538 (2556843320)\n+15EDE Compressed Size       000015FB (5627)\n+15EE2 Uncompressed Size     000015FB (5627)\n+15EE6 Filename Length       003D (61)\n+15EE8 Extra Length          0009 (9)\n+15EEA Comment Length        0000 (0)\n+15EEC Disk Start            0000 (0)\n+15EEE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+15EF0 Ext File Attributes   00000000 (0)\n+15EF4 Local Header Offset   00013A47 (80455)\n+15EF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15EF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15F35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15F37   Length              0005 (5)\n+15F39   Flags               01 (1) 'Modification'\n+15F3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15F3E END CENTRAL HEADER    06054B50 (101010256)\n+15F42 Number of this disk   0000 (0)\n+15F44 Central Dir Disk no   0000 (0)\n+15F46 Entries in this disk  0026 (38)\n+15F48 Total Entries         0026 (38)\n+15F4A Size of Central Dir   00000E88 (3720)\n+15F4E Offset to Central Dir 000150B6 (86198)\n+15F52 Comment Length        0000 (0)\n #\n # Warning Count: 76\n #\n # Done\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml", "unified_diff": null, "details": [{"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml", "comments": ["Ordering differences only"], "unified_diff": "@@ -81,26 +81,26 @@\n       <artifactId>netty-all</artifactId>\n     </dependency>\n     <dependency>\n       <groupId>io.swagger</groupId>\n       <artifactId>swagger-annotations</artifactId>\n       <exclusions>\n         <exclusion>\n-          <artifactId>jsr311-api</artifactId>\n           <groupId>javax.ws.rs</groupId>\n+          <artifactId>jsr311-api</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>io.swagger</groupId>\n       <artifactId>swagger-jaxrs</artifactId>\n       <exclusions>\n         <exclusion>\n-          <artifactId>jsr311-api</artifactId>\n           <groupId>javax.ws.rs</groupId>\n+          <artifactId>jsr311-api</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-serialization-jdk</artifactId>\n       <version>${project.parent.version}</version>\n"}]}, {"source1": "org/apache/dubbo/rpc/protocol/rest/BaseRestProtocolServer.java", "source2": "org/apache/dubbo/rpc/protocol/rest/BaseRestProtocolServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import org.jboss.resteasy.spi.ResteasyDeployment;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.rpc.protocol.rest.Constants.EXTENSION_KEY;\n-\n-public abstract class BaseRestProtocolServer implements RestProtocolServer {\n-\n-    private String address;\n-\n-    @Override\n-    public void start(URL url) {\n-        getDeployment().getMediaTypeMappings().put(\"json\", \"application/json\");\n-        getDeployment().getMediaTypeMappings().put(\"xml\", \"text/xml\");\n-//        server.getDeployment().getMediaTypeMappings().put(\"xml\", \"application/xml\");\n-        getDeployment().getProviderClasses().add(RpcContextFilter.class.getName());\n-        // TODO users can override this mapper, but we just rely on the current priority strategy of resteasy\n-        getDeployment().getProviderClasses().add(RpcExceptionMapper.class.getName());\n-\n-        loadProviders(url.getParameter(EXTENSION_KEY, \"\"));\n-\n-        doStart(url);\n-    }\n-\n-    @Override\n-    public void deploy(Class resourceDef, Object resourceInstance, String contextPath) {\n-        if (StringUtils.isEmpty(contextPath)) {\n-            getDeployment().getRegistry().addResourceFactory(new DubboResourceFactory(resourceInstance, resourceDef));\n-        } else {\n-            getDeployment().getRegistry().addResourceFactory(new DubboResourceFactory(resourceInstance, resourceDef), contextPath);\n-        }\n-    }\n-\n-    @Override\n-    public void undeploy(Class resourceDef) {\n-        getDeployment().getRegistry().removeRegistrations(resourceDef);\n-    }\n-\n-    @Override\n-    public String getAddress() {\n-        return address;\n-    }\n-\n-    @Override\n-    public void setAddress(String address) {\n-        this.address = address;\n-    }\n-\n-    protected void loadProviders(String value) {\n-        for (String clazz : COMMA_SPLIT_PATTERN.split(value)) {\n-            if (!StringUtils.isEmpty(clazz)) {\n-                getDeployment().getProviderClasses().add(clazz.trim());\n-            }\n-        }\n-    }\n-\n-    protected abstract ResteasyDeployment getDeployment();\n-\n-    protected abstract void doStart(URL url);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import org.jboss.resteasy.spi.ResteasyDeployment;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.rpc.protocol.rest.Constants.EXTENSION_KEY;\r\n+\r\n+public abstract class BaseRestProtocolServer implements RestProtocolServer {\r\n+\r\n+    private String address;\r\n+\r\n+    @Override\r\n+    public void start(URL url) {\r\n+        getDeployment().getMediaTypeMappings().put(\"json\", \"application/json\");\r\n+        getDeployment().getMediaTypeMappings().put(\"xml\", \"text/xml\");\r\n+//        server.getDeployment().getMediaTypeMappings().put(\"xml\", \"application/xml\");\r\n+        getDeployment().getProviderClasses().add(RpcContextFilter.class.getName());\r\n+        // TODO users can override this mapper, but we just rely on the current priority strategy of resteasy\r\n+        getDeployment().getProviderClasses().add(RpcExceptionMapper.class.getName());\r\n+\r\n+        loadProviders(url.getParameter(EXTENSION_KEY, \"\"));\r\n+\r\n+        doStart(url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void deploy(Class resourceDef, Object resourceInstance, String contextPath) {\r\n+        if (StringUtils.isEmpty(contextPath)) {\r\n+            getDeployment().getRegistry().addResourceFactory(new DubboResourceFactory(resourceInstance, resourceDef));\r\n+        } else {\r\n+            getDeployment().getRegistry().addResourceFactory(new DubboResourceFactory(resourceInstance, resourceDef), contextPath);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void undeploy(Class resourceDef) {\r\n+        getDeployment().getRegistry().removeRegistrations(resourceDef);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAddress() {\r\n+        return address;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAddress(String address) {\r\n+        this.address = address;\r\n+    }\r\n+\r\n+    protected void loadProviders(String value) {\r\n+        for (String clazz : COMMA_SPLIT_PATTERN.split(value)) {\r\n+            if (!StringUtils.isEmpty(clazz)) {\r\n+                getDeployment().getProviderClasses().add(clazz.trim());\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    protected abstract ResteasyDeployment getDeployment();\r\n+\r\n+    protected abstract void doStart(URL url);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/Constants.java", "source2": "org/apache/dubbo/rpc/protocol/rest/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,29 +1,29 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-/**\n- *\n- */\n-public interface Constants {\n-    String KEEP_ALIVE_KEY = \"keepalive\";\n-\n-    boolean DEFAULT_KEEP_ALIVE = true;\n-\n-    String EXTENSION_KEY = \"extension\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public interface Constants {\r\n+    String KEEP_ALIVE_KEY = \"keepalive\";\r\n+\r\n+    boolean DEFAULT_KEEP_ALIVE = true;\r\n+\r\n+    String EXTENSION_KEY = \"extension\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/DubboHttpProtocolServer.java", "source2": "org/apache/dubbo/rpc/protocol/rest/DubboHttpProtocolServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,131 +1,131 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-import org.apache.dubbo.remoting.http.HttpHandler;\n-import org.apache.dubbo.remoting.http.HttpServer;\n-import org.apache.dubbo.remoting.http.servlet.BootstrapListener;\n-import org.apache.dubbo.remoting.http.servlet.ServletManager;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;\n-import org.jboss.resteasy.spi.ResteasyDeployment;\n-\n-import javax.servlet.ServletConfig;\n-import javax.servlet.ServletContext;\n-import javax.servlet.ServletException;\n-import javax.servlet.http.HttpServletRequest;\n-import javax.servlet.http.HttpServletResponse;\n-import java.io.IOException;\n-import java.util.Enumeration;\n-\n-public class DubboHttpProtocolServer extends BaseRestProtocolServer {\n-\n-    private final HttpServletDispatcher dispatcher = new HttpServletDispatcher();\n-    private final ResteasyDeployment deployment = new ResteasyDeployment();\n-    private HttpBinder httpBinder;\n-    private HttpServer httpServer;\n-//    private boolean isExternalServer;\n-\n-    public DubboHttpProtocolServer(HttpBinder httpBinder) {\n-        this.httpBinder = httpBinder;\n-    }\n-\n-    @Override\n-    protected void doStart(URL url) {\n-        // TODO jetty will by default enable keepAlive so the xml config has no effect now\n-        httpServer = httpBinder.bind(url, new RestHandler());\n-\n-        ServletContext servletContext = ServletManager.getInstance().getServletContext(url.getPort());\n-        if (servletContext == null) {\n-            servletContext = ServletManager.getInstance().getServletContext(ServletManager.EXTERNAL_SERVER_PORT);\n-        }\n-        if (servletContext == null) {\n-            throw new RpcException(\"No servlet context found. If you are using server='servlet', \" +\n-                    \"make sure that you've configured \" + BootstrapListener.class.getName() + \" in web.xml\");\n-        }\n-\n-        servletContext.setAttribute(ResteasyDeployment.class.getName(), deployment);\n-\n-        try {\n-            dispatcher.init(new SimpleServletConfig(servletContext));\n-        } catch (ServletException e) {\n-            throw new RpcException(e);\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        httpServer.close();\n-    }\n-\n-    @Override\n-    protected ResteasyDeployment getDeployment() {\n-        return deployment;\n-    }\n-\n-    private class RestHandler implements HttpHandler {\n-\n-        @Override\n-        public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {\n-            RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\n-            dispatcher.service(request, response);\n-        }\n-    }\n-\n-    private static class SimpleServletConfig implements ServletConfig {\n-\n-        private final ServletContext servletContext;\n-\n-        public SimpleServletConfig(ServletContext servletContext) {\n-            this.servletContext = servletContext;\n-        }\n-\n-        @Override\n-        public String getServletName() {\n-            return \"DispatcherServlet\";\n-        }\n-\n-        @Override\n-        public ServletContext getServletContext() {\n-            return servletContext;\n-        }\n-\n-        @Override\n-        public String getInitParameter(String s) {\n-            return null;\n-        }\n-\n-        @Override\n-        public Enumeration getInitParameterNames() {\n-            return new Enumeration() {\n-                @Override\n-                public boolean hasMoreElements() {\n-                    return false;\n-                }\n-\n-                @Override\n-                public Object nextElement() {\n-                    return null;\n-                }\n-            };\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+import org.apache.dubbo.remoting.http.HttpHandler;\r\n+import org.apache.dubbo.remoting.http.HttpServer;\r\n+import org.apache.dubbo.remoting.http.servlet.BootstrapListener;\r\n+import org.apache.dubbo.remoting.http.servlet.ServletManager;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;\r\n+import org.jboss.resteasy.spi.ResteasyDeployment;\r\n+\r\n+import javax.servlet.ServletConfig;\r\n+import javax.servlet.ServletContext;\r\n+import javax.servlet.ServletException;\r\n+import javax.servlet.http.HttpServletRequest;\r\n+import javax.servlet.http.HttpServletResponse;\r\n+import java.io.IOException;\r\n+import java.util.Enumeration;\r\n+\r\n+public class DubboHttpProtocolServer extends BaseRestProtocolServer {\r\n+\r\n+    private final HttpServletDispatcher dispatcher = new HttpServletDispatcher();\r\n+    private final ResteasyDeployment deployment = new ResteasyDeployment();\r\n+    private HttpBinder httpBinder;\r\n+    private HttpServer httpServer;\r\n+//    private boolean isExternalServer;\r\n+\r\n+    public DubboHttpProtocolServer(HttpBinder httpBinder) {\r\n+        this.httpBinder = httpBinder;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStart(URL url) {\r\n+        // TODO jetty will by default enable keepAlive so the xml config has no effect now\r\n+        httpServer = httpBinder.bind(url, new RestHandler());\r\n+\r\n+        ServletContext servletContext = ServletManager.getInstance().getServletContext(url.getPort());\r\n+        if (servletContext == null) {\r\n+            servletContext = ServletManager.getInstance().getServletContext(ServletManager.EXTERNAL_SERVER_PORT);\r\n+        }\r\n+        if (servletContext == null) {\r\n+            throw new RpcException(\"No servlet context found. If you are using server='servlet', \" +\r\n+                    \"make sure that you've configured \" + BootstrapListener.class.getName() + \" in web.xml\");\r\n+        }\r\n+\r\n+        servletContext.setAttribute(ResteasyDeployment.class.getName(), deployment);\r\n+\r\n+        try {\r\n+            dispatcher.init(new SimpleServletConfig(servletContext));\r\n+        } catch (ServletException e) {\r\n+            throw new RpcException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        httpServer.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ResteasyDeployment getDeployment() {\r\n+        return deployment;\r\n+    }\r\n+\r\n+    private class RestHandler implements HttpHandler {\r\n+\r\n+        @Override\r\n+        public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {\r\n+            RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\r\n+            dispatcher.service(request, response);\r\n+        }\r\n+    }\r\n+\r\n+    private static class SimpleServletConfig implements ServletConfig {\r\n+\r\n+        private final ServletContext servletContext;\r\n+\r\n+        public SimpleServletConfig(ServletContext servletContext) {\r\n+            this.servletContext = servletContext;\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getServletName() {\r\n+            return \"DispatcherServlet\";\r\n+        }\r\n+\r\n+        @Override\r\n+        public ServletContext getServletContext() {\r\n+            return servletContext;\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getInitParameter(String s) {\r\n+            return null;\r\n+        }\r\n+\r\n+        @Override\r\n+        public Enumeration getInitParameterNames() {\r\n+            return new Enumeration() {\r\n+                @Override\r\n+                public boolean hasMoreElements() {\r\n+                    return false;\r\n+                }\r\n+\r\n+                @Override\r\n+                public Object nextElement() {\r\n+                    return null;\r\n+                }\r\n+            };\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/NettyRestProtocolServer.java", "source2": "org/apache/dubbo/rpc/protocol/rest/NettyRestProtocolServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,73 +1,73 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.NetUtils;\n-\n-import io.netty.channel.ChannelOption;\n-import org.jboss.resteasy.plugins.server.netty.NettyJaxrsServer;\n-import org.jboss.resteasy.spi.ResteasyDeployment;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREADS;\n-import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\n-import static org.apache.dubbo.remoting.Constants.BIND_IP_KEY;\n-import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_PAYLOAD;\n-import static org.apache.dubbo.remoting.Constants.PAYLOAD_KEY;\n-import static org.apache.dubbo.rpc.protocol.rest.Constants.DEFAULT_KEEP_ALIVE;\n-import static org.apache.dubbo.rpc.protocol.rest.Constants.KEEP_ALIVE_KEY;\n-\n-/**\n- * Netty server can't support @Context injection of servlet objects since it's not a servlet container\n- *\n- */\n-public class NettyRestProtocolServer extends BaseRestProtocolServer {\n-\n-    private final NettyJaxrsServer server = new NettyJaxrsServer();\n-\n-    @Override\n-    protected void doStart(URL url) {\n-        String bindIp = url.getParameter(BIND_IP_KEY, url.getHost());\n-        if (!url.isAnyHost() && NetUtils.isValidLocalHost(bindIp)) {\n-            server.setHostname(bindIp);\n-        }\n-        server.setPort(url.getParameter(BIND_PORT_KEY, url.getPort()));\n-        Map<ChannelOption, Object> channelOption = new HashMap<ChannelOption, Object>();\n-        channelOption.put(ChannelOption.SO_KEEPALIVE, url.getParameter(KEEP_ALIVE_KEY, DEFAULT_KEEP_ALIVE));\n-        server.setChildChannelOptions(channelOption);\n-        server.setExecutorThreadCount(url.getParameter(THREADS_KEY, DEFAULT_THREADS));\n-        server.setIoWorkerCount(url.getParameter(IO_THREADS_KEY, DEFAULT_IO_THREADS));\n-        server.setMaxRequestSize(url.getParameter(PAYLOAD_KEY, DEFAULT_PAYLOAD));\n-        server.start();\n-    }\n-\n-    @Override\n-    public void close() {\n-        server.stop();\n-    }\n-\n-    @Override\n-    protected ResteasyDeployment getDeployment() {\n-        return server.getDeployment();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+\r\n+import io.netty.channel.ChannelOption;\r\n+import org.jboss.resteasy.plugins.server.netty.NettyJaxrsServer;\r\n+import org.jboss.resteasy.spi.ResteasyDeployment;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREADS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.BIND_IP_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_PAYLOAD;\r\n+import static org.apache.dubbo.remoting.Constants.PAYLOAD_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.rest.Constants.DEFAULT_KEEP_ALIVE;\r\n+import static org.apache.dubbo.rpc.protocol.rest.Constants.KEEP_ALIVE_KEY;\r\n+\r\n+/**\r\n+ * Netty server can't support @Context injection of servlet objects since it's not a servlet container\r\n+ *\r\n+ */\r\n+public class NettyRestProtocolServer extends BaseRestProtocolServer {\r\n+\r\n+    private final NettyJaxrsServer server = new NettyJaxrsServer();\r\n+\r\n+    @Override\r\n+    protected void doStart(URL url) {\r\n+        String bindIp = url.getParameter(BIND_IP_KEY, url.getHost());\r\n+        if (!url.isAnyHost() && NetUtils.isValidLocalHost(bindIp)) {\r\n+            server.setHostname(bindIp);\r\n+        }\r\n+        server.setPort(url.getParameter(BIND_PORT_KEY, url.getPort()));\r\n+        Map<ChannelOption, Object> channelOption = new HashMap<ChannelOption, Object>();\r\n+        channelOption.put(ChannelOption.SO_KEEPALIVE, url.getParameter(KEEP_ALIVE_KEY, DEFAULT_KEEP_ALIVE));\r\n+        server.setChildChannelOptions(channelOption);\r\n+        server.setExecutorThreadCount(url.getParameter(THREADS_KEY, DEFAULT_THREADS));\r\n+        server.setIoWorkerCount(url.getParameter(IO_THREADS_KEY, DEFAULT_IO_THREADS));\r\n+        server.setMaxRequestSize(url.getParameter(PAYLOAD_KEY, DEFAULT_PAYLOAD));\r\n+        server.start();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        server.stop();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ResteasyDeployment getDeployment() {\r\n+        return server.getDeployment();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/RestProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/rest/RestProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,295 +1,295 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-import org.apache.dubbo.remoting.http.servlet.BootstrapListener;\n-import org.apache.dubbo.remoting.http.servlet.ServletManager;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\n-\n-import org.apache.http.HeaderElement;\n-import org.apache.http.HeaderElementIterator;\n-import org.apache.http.client.config.RequestConfig;\n-import org.apache.http.config.SocketConfig;\n-import org.apache.http.impl.client.CloseableHttpClient;\n-import org.apache.http.impl.client.HttpClientBuilder;\n-import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;\n-import org.apache.http.message.BasicHeaderElementIterator;\n-import org.apache.http.protocol.HTTP;\n-import org.jboss.resteasy.client.jaxrs.ResteasyClient;\n-import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;\n-import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;\n-import org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine;\n-import org.jboss.resteasy.util.GetRestful;\n-\n-import javax.servlet.ServletContext;\n-import javax.ws.rs.ProcessingException;\n-import javax.ws.rs.WebApplicationException;\n-import java.util.Collections;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\n-import static org.apache.dubbo.remoting.Constants.CONNECT_TIMEOUT_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_CONNECT_TIMEOUT;\n-import static org.apache.dubbo.remoting.Constants.SERVER_KEY;\n-import static org.apache.dubbo.rpc.protocol.rest.Constants.EXTENSION_KEY;\n-\n-public class RestProtocol extends AbstractProxyProtocol {\n-\n-    private static final int DEFAULT_PORT = 80;\n-    private static final String DEFAULT_SERVER = \"jetty\";\n-\n-    private static final int HTTPCLIENTCONNECTIONMANAGER_MAXPERROUTE = 20;\n-    private static final int HTTPCLIENTCONNECTIONMANAGER_MAXTOTAL = 20;\n-    private static final int HTTPCLIENT_KEEPALIVEDURATION = 30 * 1000;\n-    private static final int HTTPCLIENTCONNECTIONMANAGER_CLOSEWAITTIME_MS = 1000;\n-    private static final int HTTPCLIENTCONNECTIONMANAGER_CLOSEIDLETIME_S = 30;\n-\n-    private final RestServerFactory serverFactory = new RestServerFactory();\n-\n-    // TODO in the future maybe we can just use a single rest client and connection manager\n-    private final List<ResteasyClient> clients = Collections.synchronizedList(new LinkedList<>());\n-\n-    private volatile ConnectionMonitor connectionMonitor;\n-\n-    public RestProtocol() {\n-        super(WebApplicationException.class, ProcessingException.class);\n-    }\n-\n-    public void setHttpBinder(HttpBinder httpBinder) {\n-        serverFactory.setHttpBinder(httpBinder);\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return DEFAULT_PORT;\n-    }\n-\n-    @Override\n-    protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {\n-        String addr = getAddr(url);\n-        Class implClass = ApplicationModel.getProviderModel(url.getServiceKey()).getServiceInstance().getClass();\n-        RestProtocolServer server = (RestProtocolServer) serverMap.computeIfAbsent(addr, restServer -> {\n-            RestProtocolServer s = serverFactory.createServer(url.getParameter(SERVER_KEY, DEFAULT_SERVER));\n-            s.setAddress(url.getAddress());\n-            s.start(url);\n-            return s;\n-        });\n-\n-        String contextPath = getContextPath(url);\n-        if (\"servlet\".equalsIgnoreCase(url.getParameter(SERVER_KEY, DEFAULT_SERVER))) {\n-            ServletContext servletContext = ServletManager.getInstance().getServletContext(ServletManager.EXTERNAL_SERVER_PORT);\n-            if (servletContext == null) {\n-                throw new RpcException(\"No servlet context found. Since you are using server='servlet', \" +\n-                        \"make sure that you've configured \" + BootstrapListener.class.getName() + \" in web.xml\");\n-            }\n-            String webappPath = servletContext.getContextPath();\n-            if (StringUtils.isNotEmpty(webappPath)) {\n-                webappPath = webappPath.substring(1);\n-                if (!contextPath.startsWith(webappPath)) {\n-                    throw new RpcException(\"Since you are using server='servlet', \" +\n-                            \"make sure that the 'contextpath' property starts with the path of external webapp\");\n-                }\n-                contextPath = contextPath.substring(webappPath.length());\n-                if (contextPath.startsWith(\"/\")) {\n-                    contextPath = contextPath.substring(1);\n-                }\n-            }\n-        }\n-\n-        final Class resourceDef = GetRestful.getRootResourceClass(implClass) != null ? implClass : type;\n-\n-        server.deploy(resourceDef, impl, contextPath);\n-\n-        final RestProtocolServer s = server;\n-        return () -> {\n-            // TODO due to dubbo's current architecture,\n-            // it will be called from registry protocol in the shutdown process and won't appear in logs\n-            s.undeploy(resourceDef);\n-        };\n-    }\n-\n-    @Override\n-    protected <T> T doRefer(Class<T> serviceType, URL url) throws RpcException {\n-\n-        // TODO more configs to add\n-        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();\n-        // 20 is the default maxTotal of current PoolingClientConnectionManager\n-        connectionManager.setMaxTotal(url.getParameter(CONNECTIONS_KEY, HTTPCLIENTCONNECTIONMANAGER_MAXTOTAL));\n-        connectionManager.setDefaultMaxPerRoute(url.getParameter(CONNECTIONS_KEY, HTTPCLIENTCONNECTIONMANAGER_MAXPERROUTE));\n-\n-        if (connectionMonitor == null) {\n-            connectionMonitor = new ConnectionMonitor();\n-            connectionMonitor.start();\n-        }\n-        connectionMonitor.addConnectionManager(connectionManager);\n-        RequestConfig requestConfig = RequestConfig.custom()\n-                .setConnectTimeout(url.getParameter(CONNECT_TIMEOUT_KEY, DEFAULT_CONNECT_TIMEOUT))\n-                .setSocketTimeout(url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT))\n-                .build();\n-\n-        SocketConfig socketConfig = SocketConfig.custom()\n-                .setSoKeepAlive(true)\n-                .setTcpNoDelay(true)\n-                .build();\n-\n-        CloseableHttpClient httpClient = HttpClientBuilder.create()\n-                .setConnectionManager(connectionManager)\n-                .setKeepAliveStrategy((response, context) -> {\n-                    HeaderElementIterator it = new BasicHeaderElementIterator(response.headerIterator(HTTP.CONN_KEEP_ALIVE));\n-                    while (it.hasNext()) {\n-                        HeaderElement he = it.nextElement();\n-                        String param = he.getName();\n-                        String value = he.getValue();\n-                        if (value != null && param.equalsIgnoreCase(TIMEOUT_KEY)) {\n-                            return Long.parseLong(value) * 1000;\n-                        }\n-                    }\n-                    return HTTPCLIENT_KEEPALIVEDURATION;\n-                })\n-                .setDefaultRequestConfig(requestConfig)\n-                .setDefaultSocketConfig(socketConfig)\n-                .build();\n-\n-        ApacheHttpClient4Engine engine = new ApacheHttpClient4Engine(httpClient/*, localContext*/);\n-\n-        ResteasyClient client = new ResteasyClientBuilder().httpEngine(engine).build();\n-        clients.add(client);\n-\n-        client.register(RpcContextFilter.class);\n-        for (String clazz : COMMA_SPLIT_PATTERN.split(url.getParameter(EXTENSION_KEY, \"\"))) {\n-            if (!StringUtils.isEmpty(clazz)) {\n-                try {\n-                    client.register(Thread.currentThread().getContextClassLoader().loadClass(clazz.trim()));\n-                } catch (ClassNotFoundException e) {\n-                    throw new RpcException(\"Error loading JAX-RS extension class: \" + clazz.trim(), e);\n-                }\n-            }\n-        }\n-\n-        // TODO protocol\n-        ResteasyWebTarget target = client.target(\"http://\" + url.getHost() + \":\" + url.getPort() + \"/\" + getContextPath(url));\n-        return target.proxy(serviceType);\n-    }\n-\n-    @Override\n-    protected int getErrorCode(Throwable e) {\n-        // TODO\n-        return super.getErrorCode(e);\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        super.destroy();\n-\n-        if (connectionMonitor != null) {\n-            connectionMonitor.shutdown();\n-        }\n-\n-        for (Map.Entry<String, ProtocolServer> entry : serverMap.entrySet()) {\n-            try {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Closing the rest server at \" + entry.getKey());\n-                }\n-                entry.getValue().close();\n-            } catch (Throwable t) {\n-                logger.warn(\"Error closing rest server\", t);\n-            }\n-        }\n-        serverMap.clear();\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Closing rest clients\");\n-        }\n-        for (ResteasyClient client : clients) {\n-            try {\n-                client.close();\n-            } catch (Throwable t) {\n-                logger.warn(\"Error closing rest client\", t);\n-            }\n-        }\n-        clients.clear();\n-    }\n-\n-    /**\n-     *  getPath() will return: [contextpath + \"/\" +] path\n-     *  1. contextpath is empty if user does not set through ProtocolConfig or ProviderConfig\n-     *  2. path will never be empty, it's default value is the interface name.\n-     *\n-     * @return return path only if user has explicitly gave then a value.\n-     */\n-    protected String getContextPath(URL url) {\n-        String contextPath = url.getPath();\n-        if (contextPath != null) {\n-            if (contextPath.equalsIgnoreCase(url.getParameter(INTERFACE_KEY))) {\n-                return \"\";\n-            }\n-            if (contextPath.endsWith(url.getParameter(INTERFACE_KEY))) {\n-                contextPath = contextPath.substring(0, contextPath.lastIndexOf(url.getParameter(INTERFACE_KEY)));\n-            }\n-            return contextPath.endsWith(\"/\") ? contextPath.substring(0, contextPath.length() - 1) : contextPath;\n-        } else {\n-            return \"\";\n-        }\n-    }\n-\n-    protected class ConnectionMonitor extends Thread {\n-        private volatile boolean shutdown;\n-        private final List<PoolingHttpClientConnectionManager> connectionManagers = Collections.synchronizedList(new LinkedList<>());\n-\n-        public void addConnectionManager(PoolingHttpClientConnectionManager connectionManager) {\n-            connectionManagers.add(connectionManager);\n-        }\n-\n-        @Override\n-        public void run() {\n-            try {\n-                while (!shutdown) {\n-                    synchronized (this) {\n-                        wait(HTTPCLIENTCONNECTIONMANAGER_CLOSEWAITTIME_MS);\n-                        for (PoolingHttpClientConnectionManager connectionManager : connectionManagers) {\n-                            connectionManager.closeExpiredConnections();\n-                            connectionManager.closeIdleConnections(HTTPCLIENTCONNECTIONMANAGER_CLOSEIDLETIME_S, TimeUnit.SECONDS);\n-                        }\n-                    }\n-                }\n-            } catch (InterruptedException ex) {\n-                shutdown();\n-            }\n-        }\n-\n-        public void shutdown() {\n-            shutdown = true;\n-            connectionManagers.clear();\n-            synchronized (this) {\n-                notifyAll();\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+import org.apache.dubbo.remoting.http.servlet.BootstrapListener;\r\n+import org.apache.dubbo.remoting.http.servlet.ServletManager;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\r\n+\r\n+import org.apache.http.HeaderElement;\r\n+import org.apache.http.HeaderElementIterator;\r\n+import org.apache.http.client.config.RequestConfig;\r\n+import org.apache.http.config.SocketConfig;\r\n+import org.apache.http.impl.client.CloseableHttpClient;\r\n+import org.apache.http.impl.client.HttpClientBuilder;\r\n+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;\r\n+import org.apache.http.message.BasicHeaderElementIterator;\r\n+import org.apache.http.protocol.HTTP;\r\n+import org.jboss.resteasy.client.jaxrs.ResteasyClient;\r\n+import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;\r\n+import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;\r\n+import org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine;\r\n+import org.jboss.resteasy.util.GetRestful;\r\n+\r\n+import javax.servlet.ServletContext;\r\n+import javax.ws.rs.ProcessingException;\r\n+import javax.ws.rs.WebApplicationException;\r\n+import java.util.Collections;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECT_TIMEOUT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_CONNECT_TIMEOUT;\r\n+import static org.apache.dubbo.remoting.Constants.SERVER_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.rest.Constants.EXTENSION_KEY;\r\n+\r\n+public class RestProtocol extends AbstractProxyProtocol {\r\n+\r\n+    private static final int DEFAULT_PORT = 80;\r\n+    private static final String DEFAULT_SERVER = \"jetty\";\r\n+\r\n+    private static final int HTTPCLIENTCONNECTIONMANAGER_MAXPERROUTE = 20;\r\n+    private static final int HTTPCLIENTCONNECTIONMANAGER_MAXTOTAL = 20;\r\n+    private static final int HTTPCLIENT_KEEPALIVEDURATION = 30 * 1000;\r\n+    private static final int HTTPCLIENTCONNECTIONMANAGER_CLOSEWAITTIME_MS = 1000;\r\n+    private static final int HTTPCLIENTCONNECTIONMANAGER_CLOSEIDLETIME_S = 30;\r\n+\r\n+    private final RestServerFactory serverFactory = new RestServerFactory();\r\n+\r\n+    // TODO in the future maybe we can just use a single rest client and connection manager\r\n+    private final List<ResteasyClient> clients = Collections.synchronizedList(new LinkedList<>());\r\n+\r\n+    private volatile ConnectionMonitor connectionMonitor;\r\n+\r\n+    public RestProtocol() {\r\n+        super(WebApplicationException.class, ProcessingException.class);\r\n+    }\r\n+\r\n+    public void setHttpBinder(HttpBinder httpBinder) {\r\n+        serverFactory.setHttpBinder(httpBinder);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return DEFAULT_PORT;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {\r\n+        String addr = getAddr(url);\r\n+        Class implClass = ApplicationModel.getProviderModel(url.getServiceKey()).getServiceInstance().getClass();\r\n+        RestProtocolServer server = (RestProtocolServer) serverMap.computeIfAbsent(addr, restServer -> {\r\n+            RestProtocolServer s = serverFactory.createServer(url.getParameter(SERVER_KEY, DEFAULT_SERVER));\r\n+            s.setAddress(url.getAddress());\r\n+            s.start(url);\r\n+            return s;\r\n+        });\r\n+\r\n+        String contextPath = getContextPath(url);\r\n+        if (\"servlet\".equalsIgnoreCase(url.getParameter(SERVER_KEY, DEFAULT_SERVER))) {\r\n+            ServletContext servletContext = ServletManager.getInstance().getServletContext(ServletManager.EXTERNAL_SERVER_PORT);\r\n+            if (servletContext == null) {\r\n+                throw new RpcException(\"No servlet context found. Since you are using server='servlet', \" +\r\n+                        \"make sure that you've configured \" + BootstrapListener.class.getName() + \" in web.xml\");\r\n+            }\r\n+            String webappPath = servletContext.getContextPath();\r\n+            if (StringUtils.isNotEmpty(webappPath)) {\r\n+                webappPath = webappPath.substring(1);\r\n+                if (!contextPath.startsWith(webappPath)) {\r\n+                    throw new RpcException(\"Since you are using server='servlet', \" +\r\n+                            \"make sure that the 'contextpath' property starts with the path of external webapp\");\r\n+                }\r\n+                contextPath = contextPath.substring(webappPath.length());\r\n+                if (contextPath.startsWith(\"/\")) {\r\n+                    contextPath = contextPath.substring(1);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        final Class resourceDef = GetRestful.getRootResourceClass(implClass) != null ? implClass : type;\r\n+\r\n+        server.deploy(resourceDef, impl, contextPath);\r\n+\r\n+        final RestProtocolServer s = server;\r\n+        return () -> {\r\n+            // TODO due to dubbo's current architecture,\r\n+            // it will be called from registry protocol in the shutdown process and won't appear in logs\r\n+            s.undeploy(resourceDef);\r\n+        };\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> T doRefer(Class<T> serviceType, URL url) throws RpcException {\r\n+\r\n+        // TODO more configs to add\r\n+        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();\r\n+        // 20 is the default maxTotal of current PoolingClientConnectionManager\r\n+        connectionManager.setMaxTotal(url.getParameter(CONNECTIONS_KEY, HTTPCLIENTCONNECTIONMANAGER_MAXTOTAL));\r\n+        connectionManager.setDefaultMaxPerRoute(url.getParameter(CONNECTIONS_KEY, HTTPCLIENTCONNECTIONMANAGER_MAXPERROUTE));\r\n+\r\n+        if (connectionMonitor == null) {\r\n+            connectionMonitor = new ConnectionMonitor();\r\n+            connectionMonitor.start();\r\n+        }\r\n+        connectionMonitor.addConnectionManager(connectionManager);\r\n+        RequestConfig requestConfig = RequestConfig.custom()\r\n+                .setConnectTimeout(url.getParameter(CONNECT_TIMEOUT_KEY, DEFAULT_CONNECT_TIMEOUT))\r\n+                .setSocketTimeout(url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT))\r\n+                .build();\r\n+\r\n+        SocketConfig socketConfig = SocketConfig.custom()\r\n+                .setSoKeepAlive(true)\r\n+                .setTcpNoDelay(true)\r\n+                .build();\r\n+\r\n+        CloseableHttpClient httpClient = HttpClientBuilder.create()\r\n+                .setConnectionManager(connectionManager)\r\n+                .setKeepAliveStrategy((response, context) -> {\r\n+                    HeaderElementIterator it = new BasicHeaderElementIterator(response.headerIterator(HTTP.CONN_KEEP_ALIVE));\r\n+                    while (it.hasNext()) {\r\n+                        HeaderElement he = it.nextElement();\r\n+                        String param = he.getName();\r\n+                        String value = he.getValue();\r\n+                        if (value != null && param.equalsIgnoreCase(TIMEOUT_KEY)) {\r\n+                            return Long.parseLong(value) * 1000;\r\n+                        }\r\n+                    }\r\n+                    return HTTPCLIENT_KEEPALIVEDURATION;\r\n+                })\r\n+                .setDefaultRequestConfig(requestConfig)\r\n+                .setDefaultSocketConfig(socketConfig)\r\n+                .build();\r\n+\r\n+        ApacheHttpClient4Engine engine = new ApacheHttpClient4Engine(httpClient/*, localContext*/);\r\n+\r\n+        ResteasyClient client = new ResteasyClientBuilder().httpEngine(engine).build();\r\n+        clients.add(client);\r\n+\r\n+        client.register(RpcContextFilter.class);\r\n+        for (String clazz : COMMA_SPLIT_PATTERN.split(url.getParameter(EXTENSION_KEY, \"\"))) {\r\n+            if (!StringUtils.isEmpty(clazz)) {\r\n+                try {\r\n+                    client.register(Thread.currentThread().getContextClassLoader().loadClass(clazz.trim()));\r\n+                } catch (ClassNotFoundException e) {\r\n+                    throw new RpcException(\"Error loading JAX-RS extension class: \" + clazz.trim(), e);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        // TODO protocol\r\n+        ResteasyWebTarget target = client.target(\"http://\" + url.getHost() + \":\" + url.getPort() + \"/\" + getContextPath(url));\r\n+        return target.proxy(serviceType);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected int getErrorCode(Throwable e) {\r\n+        // TODO\r\n+        return super.getErrorCode(e);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        super.destroy();\r\n+\r\n+        if (connectionMonitor != null) {\r\n+            connectionMonitor.shutdown();\r\n+        }\r\n+\r\n+        for (Map.Entry<String, ProtocolServer> entry : serverMap.entrySet()) {\r\n+            try {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Closing the rest server at \" + entry.getKey());\r\n+                }\r\n+                entry.getValue().close();\r\n+            } catch (Throwable t) {\r\n+                logger.warn(\"Error closing rest server\", t);\r\n+            }\r\n+        }\r\n+        serverMap.clear();\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Closing rest clients\");\r\n+        }\r\n+        for (ResteasyClient client : clients) {\r\n+            try {\r\n+                client.close();\r\n+            } catch (Throwable t) {\r\n+                logger.warn(\"Error closing rest client\", t);\r\n+            }\r\n+        }\r\n+        clients.clear();\r\n+    }\r\n+\r\n+    /**\r\n+     *  getPath() will return: [contextpath + \"/\" +] path\r\n+     *  1. contextpath is empty if user does not set through ProtocolConfig or ProviderConfig\r\n+     *  2. path will never be empty, it's default value is the interface name.\r\n+     *\r\n+     * @return return path only if user has explicitly gave then a value.\r\n+     */\r\n+    protected String getContextPath(URL url) {\r\n+        String contextPath = url.getPath();\r\n+        if (contextPath != null) {\r\n+            if (contextPath.equalsIgnoreCase(url.getParameter(INTERFACE_KEY))) {\r\n+                return \"\";\r\n+            }\r\n+            if (contextPath.endsWith(url.getParameter(INTERFACE_KEY))) {\r\n+                contextPath = contextPath.substring(0, contextPath.lastIndexOf(url.getParameter(INTERFACE_KEY)));\r\n+            }\r\n+            return contextPath.endsWith(\"/\") ? contextPath.substring(0, contextPath.length() - 1) : contextPath;\r\n+        } else {\r\n+            return \"\";\r\n+        }\r\n+    }\r\n+\r\n+    protected class ConnectionMonitor extends Thread {\r\n+        private volatile boolean shutdown;\r\n+        private final List<PoolingHttpClientConnectionManager> connectionManagers = Collections.synchronizedList(new LinkedList<>());\r\n+\r\n+        public void addConnectionManager(PoolingHttpClientConnectionManager connectionManager) {\r\n+            connectionManagers.add(connectionManager);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void run() {\r\n+            try {\r\n+                while (!shutdown) {\r\n+                    synchronized (this) {\r\n+                        wait(HTTPCLIENTCONNECTIONMANAGER_CLOSEWAITTIME_MS);\r\n+                        for (PoolingHttpClientConnectionManager connectionManager : connectionManagers) {\r\n+                            connectionManager.closeExpiredConnections();\r\n+                            connectionManager.closeIdleConnections(HTTPCLIENTCONNECTIONMANAGER_CLOSEIDLETIME_S, TimeUnit.SECONDS);\r\n+                        }\r\n+                    }\r\n+                }\r\n+            } catch (InterruptedException ex) {\r\n+                shutdown();\r\n+            }\r\n+        }\r\n+\r\n+        public void shutdown() {\r\n+            shutdown = true;\r\n+            connectionManagers.clear();\r\n+            synchronized (this) {\r\n+                notifyAll();\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/RestProtocolServer.java", "source2": "org/apache/dubbo/rpc/protocol/rest/RestProtocolServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-\n-public interface RestProtocolServer extends ProtocolServer {\n-\n-    void start(URL url);\n-\n-    /**\n-     * @param resourceDef it could be either resource interface or resource impl\n-     */\n-    void deploy(Class resourceDef, Object resourceInstance, String contextPath);\n-\n-    void undeploy(Class resourceDef);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+\r\n+public interface RestProtocolServer extends ProtocolServer {\r\n+\r\n+    void start(URL url);\r\n+\r\n+    /**\r\n+     * @param resourceDef it could be either resource interface or resource impl\r\n+     */\r\n+    void deploy(Class resourceDef, Object resourceInstance, String contextPath);\r\n+\r\n+    void undeploy(Class resourceDef);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/RestServerFactory.java", "source2": "org/apache/dubbo/rpc/protocol/rest/RestServerFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,44 +1,44 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-\n-/**\n- * Only the server that implements servlet container\n- * could support something like @Context injection of servlet objects.\n- *\n- */\n-public class RestServerFactory {\n-\n-    private HttpBinder httpBinder;\n-\n-    public void setHttpBinder(HttpBinder httpBinder) {\n-        this.httpBinder = httpBinder;\n-    }\n-\n-    public RestProtocolServer createServer(String name) {\n-        // TODO move names to Constants\n-        if (\"servlet\".equalsIgnoreCase(name) || \"jetty\".equalsIgnoreCase(name) || \"tomcat\".equalsIgnoreCase(name)) {\n-            return new DubboHttpProtocolServer(httpBinder);\n-        } else if (\"netty\".equalsIgnoreCase(name)) {\n-            return new NettyRestProtocolServer();\n-        } else {\n-            throw new IllegalArgumentException(\"Unrecognized server name: \" + name);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+\r\n+/**\r\n+ * Only the server that implements servlet container\r\n+ * could support something like @Context injection of servlet objects.\r\n+ *\r\n+ */\r\n+public class RestServerFactory {\r\n+\r\n+    private HttpBinder httpBinder;\r\n+\r\n+    public void setHttpBinder(HttpBinder httpBinder) {\r\n+        this.httpBinder = httpBinder;\r\n+    }\r\n+\r\n+    public RestProtocolServer createServer(String name) {\r\n+        // TODO move names to Constants\r\n+        if (\"servlet\".equalsIgnoreCase(name) || \"jetty\".equalsIgnoreCase(name) || \"tomcat\".equalsIgnoreCase(name)) {\r\n+            return new DubboHttpProtocolServer(httpBinder);\r\n+        } else if (\"netty\".equalsIgnoreCase(name)) {\r\n+            return new NettyRestProtocolServer();\r\n+        } else {\r\n+            throw new IllegalArgumentException(\"Unrecognized server name: \" + name);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java", "source2": "org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,106 +1,106 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import org.jboss.resteasy.spi.ResteasyProviderFactory;\n-\n-import javax.annotation.Priority;\n-import javax.servlet.http.HttpServletRequest;\n-import javax.servlet.http.HttpServletResponse;\n-import javax.ws.rs.client.ClientRequestContext;\n-import javax.ws.rs.client.ClientRequestFilter;\n-import javax.ws.rs.container.ContainerRequestContext;\n-import javax.ws.rs.container.ContainerRequestFilter;\n-import java.io.IOException;\n-import java.nio.charset.StandardCharsets;\n-import java.util.Map;\n-\n-@Priority(Integer.MIN_VALUE + 1)\n-public class RpcContextFilter implements ContainerRequestFilter, ClientRequestFilter {\n-\n-    private static final String DUBBO_ATTACHMENT_HEADER = \"Dubbo-Attachments\";\n-\n-    // currently we use a single header to hold the attachments so that the total attachment size limit is about 8k\n-    private static final int MAX_HEADER_SIZE = 8 * 1024;\n-\n-    @Override\n-    public void filter(ContainerRequestContext requestContext) throws IOException {\n-        HttpServletRequest request = ResteasyProviderFactory.getContextData(HttpServletRequest.class);\n-        RpcContext.getContext().setRequest(request);\n-\n-        // this only works for servlet containers\n-        if (request != null && RpcContext.getContext().getRemoteAddress() == null) {\n-            RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\n-        }\n-\n-        RpcContext.getContext().setResponse(ResteasyProviderFactory.getContextData(HttpServletResponse.class));\n-\n-        String headers = requestContext.getHeaderString(DUBBO_ATTACHMENT_HEADER);\n-        if (headers != null) {\n-            for (String header : headers.split(\",\")) {\n-                int index = header.indexOf(\"=\");\n-                if (index > 0) {\n-                    String key = header.substring(0, index);\n-                    String value = header.substring(index + 1);\n-                    if (!StringUtils.isEmpty(key)) {\n-                        RpcContext.getContext().setAttachment(key.trim(), value.trim());\n-                    }\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void filter(ClientRequestContext requestContext) throws IOException {\n-        int size = 0;\n-        for (Map.Entry<String, Object> entry : RpcContext.getContext().getObjectAttachments().entrySet()) {\n-            String key = entry.getKey();\n-            String value = (String) entry.getValue();\n-            if (illegalHttpHeaderKey(key) || illegalHttpHeaderValue(value)) {\n-                throw new IllegalArgumentException(\"The attachments of \" + RpcContext.class.getSimpleName() + \" must not contain ',' or '=' when using rest protocol\");\n-            }\n-\n-            // TODO for now we don't consider the differences of encoding and server limit\n-            if (value != null) {\n-                size += value.getBytes(StandardCharsets.UTF_8).length;\n-            }\n-            if (size > MAX_HEADER_SIZE) {\n-                throw new IllegalArgumentException(\"The attachments of \" + RpcContext.class.getSimpleName() + \" is too big\");\n-            }\n-\n-            String attachments = key + \"=\" + value;\n-            requestContext.getHeaders().add(DUBBO_ATTACHMENT_HEADER, attachments);\n-        }\n-    }\n-\n-    private boolean illegalHttpHeaderKey(String key) {\n-        if (StringUtils.isNotEmpty(key)) {\n-            return key.contains(\",\") || key.contains(\"=\");\n-        }\n-        return false;\n-    }\n-\n-    private boolean illegalHttpHeaderValue(String value) {\n-        if (StringUtils.isNotEmpty(value)) {\n-            return value.contains(\",\");\n-        }\n-        return false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import org.jboss.resteasy.spi.ResteasyProviderFactory;\r\n+\r\n+import javax.annotation.Priority;\r\n+import javax.servlet.http.HttpServletRequest;\r\n+import javax.servlet.http.HttpServletResponse;\r\n+import javax.ws.rs.client.ClientRequestContext;\r\n+import javax.ws.rs.client.ClientRequestFilter;\r\n+import javax.ws.rs.container.ContainerRequestContext;\r\n+import javax.ws.rs.container.ContainerRequestFilter;\r\n+import java.io.IOException;\r\n+import java.nio.charset.StandardCharsets;\r\n+import java.util.Map;\r\n+\r\n+@Priority(Integer.MIN_VALUE + 1)\r\n+public class RpcContextFilter implements ContainerRequestFilter, ClientRequestFilter {\r\n+\r\n+    private static final String DUBBO_ATTACHMENT_HEADER = \"Dubbo-Attachments\";\r\n+\r\n+    // currently we use a single header to hold the attachments so that the total attachment size limit is about 8k\r\n+    private static final int MAX_HEADER_SIZE = 8 * 1024;\r\n+\r\n+    @Override\r\n+    public void filter(ContainerRequestContext requestContext) throws IOException {\r\n+        HttpServletRequest request = ResteasyProviderFactory.getContextData(HttpServletRequest.class);\r\n+        RpcContext.getContext().setRequest(request);\r\n+\r\n+        // this only works for servlet containers\r\n+        if (request != null && RpcContext.getContext().getRemoteAddress() == null) {\r\n+            RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\r\n+        }\r\n+\r\n+        RpcContext.getContext().setResponse(ResteasyProviderFactory.getContextData(HttpServletResponse.class));\r\n+\r\n+        String headers = requestContext.getHeaderString(DUBBO_ATTACHMENT_HEADER);\r\n+        if (headers != null) {\r\n+            for (String header : headers.split(\",\")) {\r\n+                int index = header.indexOf(\"=\");\r\n+                if (index > 0) {\r\n+                    String key = header.substring(0, index);\r\n+                    String value = header.substring(index + 1);\r\n+                    if (!StringUtils.isEmpty(key)) {\r\n+                        RpcContext.getContext().setAttachment(key.trim(), value.trim());\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void filter(ClientRequestContext requestContext) throws IOException {\r\n+        int size = 0;\r\n+        for (Map.Entry<String, Object> entry : RpcContext.getContext().getObjectAttachments().entrySet()) {\r\n+            String key = entry.getKey();\r\n+            String value = (String) entry.getValue();\r\n+            if (illegalHttpHeaderKey(key) || illegalHttpHeaderValue(value)) {\r\n+                throw new IllegalArgumentException(\"The attachments of \" + RpcContext.class.getSimpleName() + \" must not contain ',' or '=' when using rest protocol\");\r\n+            }\r\n+\r\n+            // TODO for now we don't consider the differences of encoding and server limit\r\n+            if (value != null) {\r\n+                size += value.getBytes(StandardCharsets.UTF_8).length;\r\n+            }\r\n+            if (size > MAX_HEADER_SIZE) {\r\n+                throw new IllegalArgumentException(\"The attachments of \" + RpcContext.class.getSimpleName() + \" is too big\");\r\n+            }\r\n+\r\n+            String attachments = key + \"=\" + value;\r\n+            requestContext.getHeaders().add(DUBBO_ATTACHMENT_HEADER, attachments);\r\n+        }\r\n+    }\r\n+\r\n+    private boolean illegalHttpHeaderKey(String key) {\r\n+        if (StringUtils.isNotEmpty(key)) {\r\n+            return key.contains(\",\") || key.contains(\"=\");\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    private boolean illegalHttpHeaderValue(String value) {\r\n+        if (StringUtils.isNotEmpty(value)) {\r\n+            return value.contains(\",\");\r\n+        }\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/integration/swagger/DubboSwaggerService.java", "source2": "org/apache/dubbo/rpc/protocol/rest/integration/swagger/DubboSwaggerService.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest.integration.swagger;\n-\n-import com.fasterxml.jackson.core.JsonProcessingException;\n-\n-import javax.servlet.ServletConfig;\n-import javax.ws.rs.Consumes;\n-import javax.ws.rs.GET;\n-import javax.ws.rs.Path;\n-import javax.ws.rs.Produces;\n-import javax.ws.rs.core.Application;\n-import javax.ws.rs.core.Context;\n-import javax.ws.rs.core.HttpHeaders;\n-import javax.ws.rs.core.MediaType;\n-import javax.ws.rs.core.Response;\n-import javax.ws.rs.core.UriInfo;\n-\n-\n-@Path(\"dubbo\")\n-@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})\n-@Produces({MediaType.APPLICATION_JSON + \"; \" + \"charset=UTF-8\", MediaType.TEXT_XML + \"; \" + \"charset=UTF-8\"})\n-public interface DubboSwaggerService {\n-\n-    @GET\n-    @Path(\"swagger\")\n-    Response getListingJson(@Context Application app, @Context ServletConfig sc,\n-                            @Context HttpHeaders headers, @Context UriInfo uriInfo) throws JsonProcessingException;\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest.integration.swagger;\r\n+\r\n+import com.fasterxml.jackson.core.JsonProcessingException;\r\n+\r\n+import javax.servlet.ServletConfig;\r\n+import javax.ws.rs.Consumes;\r\n+import javax.ws.rs.GET;\r\n+import javax.ws.rs.Path;\r\n+import javax.ws.rs.Produces;\r\n+import javax.ws.rs.core.Application;\r\n+import javax.ws.rs.core.Context;\r\n+import javax.ws.rs.core.HttpHeaders;\r\n+import javax.ws.rs.core.MediaType;\r\n+import javax.ws.rs.core.Response;\r\n+import javax.ws.rs.core.UriInfo;\r\n+\r\n+\r\n+@Path(\"dubbo\")\r\n+@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})\r\n+@Produces({MediaType.APPLICATION_JSON + \"; \" + \"charset=UTF-8\", MediaType.TEXT_XML + \"; \" + \"charset=UTF-8\"})\r\n+public interface DubboSwaggerService {\r\n+\r\n+    @GET\r\n+    @Path(\"swagger\")\r\n+    Response getListingJson(@Context Application app, @Context ServletConfig sc,\r\n+                            @Context HttpHeaders headers, @Context UriInfo uriInfo) throws JsonProcessingException;\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java", "source2": "org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,148 +1,148 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest.support;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-\n-import org.apache.commons.io.IOUtils;\n-\n-import javax.annotation.Priority;\n-import javax.ws.rs.WebApplicationException;\n-import javax.ws.rs.client.ClientRequestContext;\n-import javax.ws.rs.client.ClientRequestFilter;\n-import javax.ws.rs.client.ClientResponseContext;\n-import javax.ws.rs.client.ClientResponseFilter;\n-import javax.ws.rs.container.ContainerRequestContext;\n-import javax.ws.rs.container.ContainerRequestFilter;\n-import javax.ws.rs.container.ContainerResponseContext;\n-import javax.ws.rs.container.ContainerResponseFilter;\n-import javax.ws.rs.core.MultivaluedMap;\n-import javax.ws.rs.ext.ReaderInterceptor;\n-import javax.ws.rs.ext.ReaderInterceptorContext;\n-import javax.ws.rs.ext.WriterInterceptor;\n-import javax.ws.rs.ext.WriterInterceptorContext;\n-import java.io.ByteArrayInputStream;\n-import java.io.ByteArrayOutputStream;\n-import java.io.IOException;\n-import java.io.OutputStream;\n-import java.nio.charset.StandardCharsets;\n-import java.util.List;\n-import java.util.Map;\n-\n-/**\n- * This logging filter is not highly optimized for now\n- *\n- */\n-@Priority(Integer.MIN_VALUE)\n-public class LoggingFilter implements ContainerRequestFilter, ClientRequestFilter, ContainerResponseFilter, ClientResponseFilter, WriterInterceptor, ReaderInterceptor {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(LoggingFilter.class);\n-\n-    @Override\n-    public void filter(ClientRequestContext context) throws IOException {\n-        logHttpHeaders(context.getStringHeaders());\n-    }\n-\n-    @Override\n-    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {\n-        logHttpHeaders(responseContext.getHeaders());\n-    }\n-\n-    @Override\n-    public void filter(ContainerRequestContext context) throws IOException {\n-        logHttpHeaders(context.getHeaders());\n-    }\n-\n-    @Override\n-    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {\n-        logHttpHeaders(responseContext.getStringHeaders());\n-    }\n-\n-    @Override\n-    public Object aroundReadFrom(ReaderInterceptorContext context) throws IOException, WebApplicationException {\n-        byte[] buffer = IOUtils.toByteArray(context.getInputStream());\n-        logger.info(\"The contents of request body is: \\n\" + new String(buffer, StandardCharsets.UTF_8) + \"\\n\");\n-        context.setInputStream(new ByteArrayInputStream(buffer));\n-        return context.proceed();\n-    }\n-\n-    @Override\n-    public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {\n-        OutputStreamWrapper wrapper = new OutputStreamWrapper(context.getOutputStream());\n-        context.setOutputStream(wrapper);\n-        context.proceed();\n-        logger.info(\"The contents of response body is: \\n\" + new String(wrapper.getBytes(), StandardCharsets.UTF_8) + \"\\n\");\n-    }\n-\n-    protected void logHttpHeaders(MultivaluedMap<String, String> headers) {\n-        StringBuilder msg = new StringBuilder(\"The HTTP headers are: \\n\");\n-        for (Map.Entry<String, List<String>> entry : headers.entrySet()) {\n-            msg.append(entry.getKey()).append(\": \");\n-            for (int i = 0; i < entry.getValue().size(); i++) {\n-                msg.append(entry.getValue().get(i));\n-                if (i < entry.getValue().size() - 1) {\n-                    msg.append(\", \");\n-                }\n-            }\n-            msg.append(\"\\n\");\n-        }\n-        logger.info(msg.toString());\n-    }\n-\n-    protected static class OutputStreamWrapper extends OutputStream {\n-\n-        private final ByteArrayOutputStream buffer = new ByteArrayOutputStream();\n-        private final OutputStream output;\n-\n-        private OutputStreamWrapper(OutputStream output) {\n-            this.output = output;\n-        }\n-\n-        @Override\n-        public void write(int i) throws IOException {\n-            buffer.write(i);\n-            output.write(i);\n-        }\n-\n-        @Override\n-        public void write(byte[] b) throws IOException {\n-            buffer.write(b);\n-            output.write(b);\n-        }\n-\n-        @Override\n-        public void write(byte[] b, int off, int len) throws IOException {\n-            buffer.write(b, off, len);\n-            output.write(b, off, len);\n-        }\n-\n-        @Override\n-        public void flush() throws IOException {\n-            output.flush();\n-        }\n-\n-        @Override\n-        public void close() throws IOException {\n-            output.close();\n-        }\n-\n-        public byte[] getBytes() {\n-            return buffer.toByteArray();\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest.support;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+\r\n+import org.apache.commons.io.IOUtils;\r\n+\r\n+import javax.annotation.Priority;\r\n+import javax.ws.rs.WebApplicationException;\r\n+import javax.ws.rs.client.ClientRequestContext;\r\n+import javax.ws.rs.client.ClientRequestFilter;\r\n+import javax.ws.rs.client.ClientResponseContext;\r\n+import javax.ws.rs.client.ClientResponseFilter;\r\n+import javax.ws.rs.container.ContainerRequestContext;\r\n+import javax.ws.rs.container.ContainerRequestFilter;\r\n+import javax.ws.rs.container.ContainerResponseContext;\r\n+import javax.ws.rs.container.ContainerResponseFilter;\r\n+import javax.ws.rs.core.MultivaluedMap;\r\n+import javax.ws.rs.ext.ReaderInterceptor;\r\n+import javax.ws.rs.ext.ReaderInterceptorContext;\r\n+import javax.ws.rs.ext.WriterInterceptor;\r\n+import javax.ws.rs.ext.WriterInterceptorContext;\r\n+import java.io.ByteArrayInputStream;\r\n+import java.io.ByteArrayOutputStream;\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+import java.nio.charset.StandardCharsets;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * This logging filter is not highly optimized for now\r\n+ *\r\n+ */\r\n+@Priority(Integer.MIN_VALUE)\r\n+public class LoggingFilter implements ContainerRequestFilter, ClientRequestFilter, ContainerResponseFilter, ClientResponseFilter, WriterInterceptor, ReaderInterceptor {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(LoggingFilter.class);\r\n+\r\n+    @Override\r\n+    public void filter(ClientRequestContext context) throws IOException {\r\n+        logHttpHeaders(context.getStringHeaders());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {\r\n+        logHttpHeaders(responseContext.getHeaders());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void filter(ContainerRequestContext context) throws IOException {\r\n+        logHttpHeaders(context.getHeaders());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {\r\n+        logHttpHeaders(responseContext.getStringHeaders());\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object aroundReadFrom(ReaderInterceptorContext context) throws IOException, WebApplicationException {\r\n+        byte[] buffer = IOUtils.toByteArray(context.getInputStream());\r\n+        logger.info(\"The contents of request body is: \\n\" + new String(buffer, StandardCharsets.UTF_8) + \"\\n\");\r\n+        context.setInputStream(new ByteArrayInputStream(buffer));\r\n+        return context.proceed();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {\r\n+        OutputStreamWrapper wrapper = new OutputStreamWrapper(context.getOutputStream());\r\n+        context.setOutputStream(wrapper);\r\n+        context.proceed();\r\n+        logger.info(\"The contents of response body is: \\n\" + new String(wrapper.getBytes(), StandardCharsets.UTF_8) + \"\\n\");\r\n+    }\r\n+\r\n+    protected void logHttpHeaders(MultivaluedMap<String, String> headers) {\r\n+        StringBuilder msg = new StringBuilder(\"The HTTP headers are: \\n\");\r\n+        for (Map.Entry<String, List<String>> entry : headers.entrySet()) {\r\n+            msg.append(entry.getKey()).append(\": \");\r\n+            for (int i = 0; i < entry.getValue().size(); i++) {\r\n+                msg.append(entry.getValue().get(i));\r\n+                if (i < entry.getValue().size() - 1) {\r\n+                    msg.append(\", \");\r\n+                }\r\n+            }\r\n+            msg.append(\"\\n\");\r\n+        }\r\n+        logger.info(msg.toString());\r\n+    }\r\n+\r\n+    protected static class OutputStreamWrapper extends OutputStream {\r\n+\r\n+        private final ByteArrayOutputStream buffer = new ByteArrayOutputStream();\r\n+        private final OutputStream output;\r\n+\r\n+        private OutputStreamWrapper(OutputStream output) {\r\n+            this.output = output;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void write(int i) throws IOException {\r\n+            buffer.write(i);\r\n+            output.write(i);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void write(byte[] b) throws IOException {\r\n+            buffer.write(b);\r\n+            output.write(b);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void write(byte[] b, int off, int len) throws IOException {\r\n+            buffer.write(b, off, len);\r\n+            output.write(b, off, len);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void flush() throws IOException {\r\n+            output.flush();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void close() throws IOException {\r\n+            output.close();\r\n+        }\r\n+\r\n+        public byte[] getBytes() {\r\n+            return buffer.toByteArray();\r\n+        }\r\n+    }\r\n+}\r\n"}]}
