{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,23 +1,23 @@\n-Zip file size: 182639 bytes, number of entries: 73\n+Zip file size: 185612 bytes, number of entries: 73\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/\n -rw----     2.0 fat     6660 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      166 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      389 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.qos.command.BaseCommand\n--rw----     2.0 fat      476 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.telnet.TelnetHandler\n+-rw----     2.0 fat      397 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.qos.command.BaseCommand\n+-rw----     2.0 fat      484 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.telnet.TelnetHandler\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-qos/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-qos/pom.properties\n--rw----     2.0 fat     2954 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-qos/pom.xml\n+-rw----     2.0 fat     2877 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-qos/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/qos/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/\n -rw----     2.0 fat     1015 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/BaseCommand.java\n -rw----     2.0 fat     2176 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/CommandContext.java\n@@ -28,48 +28,48 @@\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/annotation/\n -rw----     2.0 fat     1607 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/annotation/Cmd.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/decoder/\n -rw----     2.0 fat     3987 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/decoder/HttpCommandDecoder.java\n -rw----     2.0 fat     1725 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/decoder/TelnetCommandDecoder.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/\n -rw----     2.0 fat     3716 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Help.java\n--rw----     2.0 fat     3384 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Ls.java\n--rw----     2.0 fat     3330 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Offline.java\n--rw----     2.0 fat     3381 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Online.java\n--rw----     2.0 fat     2864 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/PublishMetadata.java\n+-rw----     2.0 fat     3472 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Ls.java\n+-rw----     2.0 fat     3410 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Offline.java\n+-rw----     2.0 fat     3461 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Online.java\n+-rw----     2.0 fat     2927 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/PublishMetadata.java\n -rw----     2.0 fat     1305 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Quit.java\n--rw----     2.0 fat     4228 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Ready.java\n--rw----     2.0 fat     1536 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Version.java\n+-rw----     2.0 fat     4323 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Ready.java\n+-rw----     2.0 fat     1573 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Version.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/util/\n--rw----     2.0 fat     2195 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/util/CommandHelper.java\n--rw----     2.0 fat     2717 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/util/ServiceCheckUtils.java\n+-rw----     2.0 fat     2259 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/util/CommandHelper.java\n+-rw----     2.0 fat     2779 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/util/ServiceCheckUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/common/\n -rw----     2.0 fat      990 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/common/QosConstants.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/\n--rw----     2.0 fat     2832 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java\n--rw----     2.0 fat     6757 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/CountTelnetHandler.java\n--rw----     2.0 fat     1775 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java\n--rw----     2.0 fat    10965 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java\n--rw----     2.0 fat     6684 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ListTelnetHandler.java\n--rw----     2.0 fat     3964 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/LogTelnetHandler.java\n--rw----     2.0 fat     3845 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/PortTelnetHandler.java\n--rw----     2.0 fat     2775 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/SelectTelnetHandler.java\n--rw----     2.0 fat     2696 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ShutdownTelnetHandler.java\n--rw----     2.0 fat     4027 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/TraceTelnetHandler.java\n+-rw----     2.0 fat     2897 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java\n+-rw----     2.0 fat     6920 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/CountTelnetHandler.java\n+-rw----     2.0 fat     1821 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java\n+-rw----     2.0 fat    11226 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java\n+-rw----     2.0 fat     6850 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ListTelnetHandler.java\n+-rw----     2.0 fat     4055 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/LogTelnetHandler.java\n+-rw----     2.0 fat     3941 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/PortTelnetHandler.java\n+-rw----     2.0 fat     2835 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/SelectTelnetHandler.java\n+-rw----     2.0 fat     2759 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ShutdownTelnetHandler.java\n+-rw----     2.0 fat     4120 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/TraceTelnetHandler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/protocol/\n--rw----     2.0 fat     4307 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/protocol/QosProtocolWrapper.java\n+-rw----     2.0 fat     4430 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/protocol/QosProtocolWrapper.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/\n--rw----     2.0 fat     1253 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/DubboLogo.java\n--rw----     2.0 fat     4554 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/Server.java\n+-rw----     2.0 fat     1278 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/DubboLogo.java\n+-rw----     2.0 fat     4710 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/Server.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/\n -rw----     2.0 fat     5174 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/HttpProcessHandler.java\n -rw----     2.0 fat     1953 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/LocalHostPermitHandler.java\n--rw----     2.0 fat     4111 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/QosProcessHandler.java\n--rw----     2.0 fat     1770 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/TelnetIdleEventHandler.java\n--rw----     2.0 fat     3201 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/TelnetProcessHandler.java\n+-rw----     2.0 fat     4222 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/QosProcessHandler.java\n+-rw----     2.0 fat     1811 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/TelnetIdleEventHandler.java\n+-rw----     2.0 fat     3274 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/TelnetProcessHandler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/\n -rw----     2.0 fat      983 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TComponent.java\n -rw----     2.0 fat     2734 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TKv.java\n -rw----     2.0 fat     2269 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TLadder.java\n--rw----     2.0 fat    15617 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TTable.java\n--rw----     2.0 fat     7374 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TTree.java\n-73 files, 168827 bytes uncompressed, 168827 bytes compressed:  0.0%\n+-rw----     2.0 fat    16183 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TTable.java\n+-rw----     2.0 fat     7640 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TTree.java\n+73 files, 171800 bytes uncompressed, 171800 bytes compressed:  0.0%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -194,3886 +194,3886 @@\n #\n 04948 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 0494A   Length              0005 (5)\n 0494C   Flags               01 (1) 'Modification'\n 0494D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n 04951 PAYLOAD\n \n-04AD6 DATA DESCRIPTOR       08074B50 (134695760)\n-04ADA CRC                   FCA06F71 (4238372721)\n-04ADE Compressed Size       00000185 (389)\n-04AE2 Uncompressed Size     00000185 (389)\n-\n-04AE6 LOCAL HEADER #9       04034B50 (67324752)\n-04AEA Extract Zip Spec      14 (20) '2.0'\n-04AEB Extract OS            00 (0) 'MS-DOS'\n-04AEC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-04AEE Compression Method    0000 (0) 'Stored'\n-04AF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04AF4 CRC                   00000000 (0)\n-04AF8 Compressed Size       00000000 (0)\n-04AFC Uncompressed Size     00000000 (0)\n-04B00 Filename Length       0046 (70)\n-04B02 Extra Length          0009 (9)\n-04B04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04B4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04B4C   Length              0005 (5)\n-04B4E   Flags               01 (1) 'Modification'\n-04B4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04B53 PAYLOAD\n-\n-04D2F DATA DESCRIPTOR       08074B50 (134695760)\n-04D33 CRC                   16B87389 (381186953)\n-04D37 Compressed Size       000001DC (476)\n-04D3B Uncompressed Size     000001DC (476)\n-\n-04D3F LOCAL HEADER #10      04034B50 (67324752)\n-04D43 Extract Zip Spec      14 (20) '2.0'\n-04D44 Extract OS            00 (0) 'MS-DOS'\n-04D45 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-04D47 Compression Method    0000 (0) 'Stored'\n-04D49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04D4D CRC                   00000000 (0)\n-04D51 Compressed Size       00000000 (0)\n-04D55 Uncompressed Size     00000000 (0)\n-04D59 Filename Length       0035 (53)\n-04D5B Extra Length          0009 (9)\n-04D5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04D92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04D94   Length              0005 (5)\n-04D96   Flags               01 (1) 'Modification'\n-04D97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04D9B PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-04DCF DATA DESCRIPTOR       08074B50 (134695760)\n-04DD3 CRC                   66A9E2AF (1722409647)\n-04DD7 Compressed Size       00000034 (52)\n-04DDB Uncompressed Size     00000034 (52)\n-\n-04DDF LOCAL HEADER #11      04034B50 (67324752)\n-04DE3 Extract Zip Spec      14 (20) '2.0'\n-04DE4 Extract OS            00 (0) 'MS-DOS'\n-04DE5 General Purpose Flag  0000 (0)\n-04DE7 Compression Method    0000 (0) 'Stored'\n-04DE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04DED CRC                   00000000 (0)\n-04DF1 Compressed Size       00000000 (0)\n-04DF5 Uncompressed Size     00000000 (0)\n-04DF9 Filename Length       000F (15)\n-04DFB Extra Length          0009 (9)\n-04DFD Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4DFD: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04E0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04E0E   Length              0005 (5)\n-04E10   Flags               01 (1) 'Modification'\n-04E11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04E15 LOCAL HEADER #12      04034B50 (67324752)\n-04E19 Extract Zip Spec      14 (20) '2.0'\n-04E1A Extract OS            00 (0) 'MS-DOS'\n-04E1B General Purpose Flag  0000 (0)\n-04E1D Compression Method    0000 (0) 'Stored'\n-04E1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04E23 CRC                   00000000 (0)\n-04E27 Compressed Size       00000000 (0)\n-04E2B Uncompressed Size     00000000 (0)\n-04E2F Filename Length       0020 (32)\n-04E31 Extra Length          0009 (9)\n-04E33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04E53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04E55   Length              0005 (5)\n-04E57   Flags               01 (1) 'Modification'\n-04E58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04E5C LOCAL HEADER #13      04034B50 (67324752)\n-04E60 Extract Zip Spec      14 (20) '2.0'\n-04E61 Extract OS            00 (0) 'MS-DOS'\n-04E62 General Purpose Flag  0000 (0)\n-04E64 Compression Method    0000 (0) 'Stored'\n-04E66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04E6A CRC                   00000000 (0)\n-04E6E Compressed Size       00000000 (0)\n-04E72 Uncompressed Size     00000000 (0)\n-04E76 Filename Length       002A (42)\n-04E78 Extra Length          0009 (9)\n-04E7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04EA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04EA6   Length              0005 (5)\n-04EA8   Flags               01 (1) 'Modification'\n-04EA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04EAD LOCAL HEADER #14      04034B50 (67324752)\n-04EB1 Extract Zip Spec      14 (20) '2.0'\n-04EB2 Extract OS            00 (0) 'MS-DOS'\n-04EB3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-04EB5 Compression Method    0000 (0) 'Stored'\n-04EB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04EBB CRC                   00000000 (0)\n-04EBF Compressed Size       00000000 (0)\n-04EC3 Uncompressed Size     00000000 (0)\n-04EC7 Filename Length       0038 (56)\n-04EC9 Extra Length          0009 (9)\n-04ECB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4ECB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04F03 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04F05   Length              0005 (5)\n-04F07   Flags               01 (1) 'Modification'\n-04F08   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04F0C DATA DESCRIPTOR       08074B50 (134695760)\n-04F10 CRC                   00000000 (0)\n-04F14 Compressed Size       00000000 (0)\n-04F18 Uncompressed Size     00000000 (0)\n-\n-04F1C LOCAL HEADER #15      04034B50 (67324752)\n-04F20 Extract Zip Spec      14 (20) '2.0'\n-04F21 Extract OS            00 (0) 'MS-DOS'\n-04F22 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-04F24 Compression Method    0000 (0) 'Stored'\n-04F26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04F2A CRC                   00000000 (0)\n-04F2E Compressed Size       00000000 (0)\n-04F32 Uncompressed Size     00000000 (0)\n-04F36 Filename Length       0031 (49)\n-04F38 Extra Length          0009 (9)\n-04F3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04F6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04F6D   Length              0005 (5)\n-04F6F   Flags               01 (1) 'Modification'\n-04F70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04F74 PAYLOAD\n-\n-05AFE DATA DESCRIPTOR       08074B50 (134695760)\n-05B02 CRC                   17F3C42C (401851436)\n-05B06 Compressed Size       00000B8A (2954)\n-05B0A Uncompressed Size     00000B8A (2954)\n-\n-05B0E LOCAL HEADER #16      04034B50 (67324752)\n-05B12 Extract Zip Spec      14 (20) '2.0'\n-05B13 Extract OS            00 (0) 'MS-DOS'\n-05B14 General Purpose Flag  0000 (0)\n-05B16 Compression Method    0000 (0) 'Stored'\n-05B18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05B1C CRC                   00000000 (0)\n-05B20 Compressed Size       00000000 (0)\n-05B24 Uncompressed Size     00000000 (0)\n-05B28 Filename Length       0004 (4)\n-05B2A Extra Length          0009 (9)\n-05B2C Filename              'XXXX'\n-#\n-# WARNING: Offset 0x5B2C: Filename 'XXXX'\n-#          Zero length filename\n-#\n-05B30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05B32   Length              0005 (5)\n-05B34   Flags               01 (1) 'Modification'\n-05B35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05B39 LOCAL HEADER #17      04034B50 (67324752)\n-05B3D Extract Zip Spec      14 (20) '2.0'\n-05B3E Extract OS            00 (0) 'MS-DOS'\n-05B3F General Purpose Flag  0000 (0)\n-05B41 Compression Method    0000 (0) 'Stored'\n-05B43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05B47 CRC                   00000000 (0)\n-05B4B Compressed Size       00000000 (0)\n-05B4F Uncompressed Size     00000000 (0)\n-05B53 Filename Length       000B (11)\n-05B55 Extra Length          0009 (9)\n-05B57 Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B57: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05B62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05B64   Length              0005 (5)\n-05B66   Flags               01 (1) 'Modification'\n-05B67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05B6B LOCAL HEADER #18      04034B50 (67324752)\n-05B6F Extract Zip Spec      14 (20) '2.0'\n-05B70 Extract OS            00 (0) 'MS-DOS'\n-05B71 General Purpose Flag  0000 (0)\n-05B73 Compression Method    0000 (0) 'Stored'\n-05B75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05B79 CRC                   00000000 (0)\n-05B7D Compressed Size       00000000 (0)\n-05B81 Uncompressed Size     00000000 (0)\n-05B85 Filename Length       0011 (17)\n-05B87 Extra Length          0009 (9)\n-05B89 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B89: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05B9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05B9C   Length              0005 (5)\n-05B9E   Flags               01 (1) 'Modification'\n-05B9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05BA3 LOCAL HEADER #19      04034B50 (67324752)\n-05BA7 Extract Zip Spec      14 (20) '2.0'\n-05BA8 Extract OS            00 (0) 'MS-DOS'\n-05BA9 General Purpose Flag  0000 (0)\n-05BAB Compression Method    0000 (0) 'Stored'\n-05BAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05BB1 CRC                   00000000 (0)\n-05BB5 Compressed Size       00000000 (0)\n-05BB9 Uncompressed Size     00000000 (0)\n-05BBD Filename Length       0015 (21)\n-05BBF Extra Length          0009 (9)\n-05BC1 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BC1: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05BD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05BD8   Length              0005 (5)\n-05BDA   Flags               01 (1) 'Modification'\n-05BDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05BDF LOCAL HEADER #20      04034B50 (67324752)\n-05BE3 Extract Zip Spec      14 (20) '2.0'\n-05BE4 Extract OS            00 (0) 'MS-DOS'\n-05BE5 General Purpose Flag  0000 (0)\n-05BE7 Compression Method    0000 (0) 'Stored'\n-05BE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05BED CRC                   00000000 (0)\n-05BF1 Compressed Size       00000000 (0)\n-05BF5 Uncompressed Size     00000000 (0)\n-05BF9 Filename Length       001D (29)\n-05BFB Extra Length          0009 (9)\n-05BFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05C1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05C1C   Length              0005 (5)\n-05C1E   Flags               01 (1) 'Modification'\n-05C1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05C23 LOCAL HEADER #21      04034B50 (67324752)\n-05C27 Extract Zip Spec      14 (20) '2.0'\n-05C28 Extract OS            00 (0) 'MS-DOS'\n-05C29 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-05C2B Compression Method    0000 (0) 'Stored'\n-05C2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05C31 CRC                   00000000 (0)\n-05C35 Compressed Size       00000000 (0)\n-05C39 Uncompressed Size     00000000 (0)\n-05C3D Filename Length       002D (45)\n-05C3F Extra Length          0009 (9)\n-05C41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5C41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05C6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05C70   Length              0005 (5)\n-05C72   Flags               01 (1) 'Modification'\n-05C73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05C77 PAYLOAD\n-\n-0606E DATA DESCRIPTOR       08074B50 (134695760)\n-06072 CRC                   FE44AB9A (4265913242)\n-06076 Compressed Size       000003F7 (1015)\n-0607A Uncompressed Size     000003F7 (1015)\n-\n-0607E LOCAL HEADER #22      04034B50 (67324752)\n-06082 Extract Zip Spec      14 (20) '2.0'\n-06083 Extract OS            00 (0) 'MS-DOS'\n-06084 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-06086 Compression Method    0000 (0) 'Stored'\n-06088 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0608C CRC                   00000000 (0)\n-06090 Compressed Size       00000000 (0)\n-06094 Uncompressed Size     00000000 (0)\n-06098 Filename Length       0030 (48)\n-0609A Extra Length          0009 (9)\n-0609C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x609C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-060CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-060CE   Length              0005 (5)\n-060D0   Flags               01 (1) 'Modification'\n-060D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-060D5 PAYLOAD\n-\n-06955 DATA DESCRIPTOR       08074B50 (134695760)\n-06959 CRC                   C783A617 (3347293719)\n-0695D Compressed Size       00000880 (2176)\n-06961 Uncompressed Size     00000880 (2176)\n-\n-06965 LOCAL HEADER #23      04034B50 (67324752)\n-06969 Extract Zip Spec      14 (20) '2.0'\n-0696A Extract OS            00 (0) 'MS-DOS'\n-0696B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0696D Compression Method    0000 (0) 'Stored'\n-0696F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06973 CRC                   00000000 (0)\n-06977 Compressed Size       00000000 (0)\n-0697B Uncompressed Size     00000000 (0)\n-0697F Filename Length       0037 (55)\n-06981 Extra Length          0009 (9)\n-06983 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6983: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-069BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-069BC   Length              0005 (5)\n-069BE   Flags               01 (1) 'Modification'\n-069BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-069C3 PAYLOAD\n-\n-06E69 DATA DESCRIPTOR       08074B50 (134695760)\n-06E6D CRC                   F2C44151 (4072948049)\n-06E71 Compressed Size       000004A6 (1190)\n-06E75 Uncompressed Size     000004A6 (1190)\n-\n-06E79 LOCAL HEADER #24      04034B50 (67324752)\n-06E7D Extract Zip Spec      14 (20) '2.0'\n-06E7E Extract OS            00 (0) 'MS-DOS'\n-06E7F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-06E81 Compression Method    0000 (0) 'Stored'\n-06E83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06E87 CRC                   00000000 (0)\n-06E8B Compressed Size       00000000 (0)\n-06E8F Uncompressed Size     00000000 (0)\n-06E93 Filename Length       0031 (49)\n-06E95 Extra Length          0009 (9)\n-06E97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06EC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06ECA   Length              0005 (5)\n-06ECC   Flags               01 (1) 'Modification'\n-06ECD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06ED1 PAYLOAD\n-\n-07379 DATA DESCRIPTOR       08074B50 (134695760)\n-0737D CRC                   D40E78F4 (3557718260)\n-07381 Compressed Size       000004A8 (1192)\n-07385 Uncompressed Size     000004A8 (1192)\n-\n-07389 LOCAL HEADER #25      04034B50 (67324752)\n-0738D Extract Zip Spec      14 (20) '2.0'\n-0738E Extract OS            00 (0) 'MS-DOS'\n-0738F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-07391 Compression Method    0000 (0) 'Stored'\n-07393 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07397 CRC                   00000000 (0)\n-0739B Compressed Size       00000000 (0)\n-0739F Uncompressed Size     00000000 (0)\n-073A3 Filename Length       0038 (56)\n-073A5 Extra Length          0009 (9)\n-073A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x73A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-073DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-073E1   Length              0005 (5)\n-073E3   Flags               01 (1) 'Modification'\n-073E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-073E8 PAYLOAD\n-\n-07A05 DATA DESCRIPTOR       08074B50 (134695760)\n-07A09 CRC                   2A63E263 (711189091)\n-07A0D Compressed Size       0000061D (1565)\n-07A11 Uncompressed Size     0000061D (1565)\n-\n-07A15 LOCAL HEADER #26      04034B50 (67324752)\n-07A19 Extract Zip Spec      14 (20) '2.0'\n-07A1A Extract OS            00 (0) 'MS-DOS'\n-07A1B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-07A1D Compression Method    0000 (0) 'Stored'\n-07A1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07A23 CRC                   00000000 (0)\n-07A27 Compressed Size       00000000 (0)\n-07A2B Uncompressed Size     00000000 (0)\n-07A2F Filename Length       0038 (56)\n-07A31 Extra Length          0009 (9)\n-07A33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7A33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07A6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07A6D   Length              0005 (5)\n-07A6F   Flags               01 (1) 'Modification'\n-07A70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-07A74 PAYLOAD\n-\n-07E74 DATA DESCRIPTOR       08074B50 (134695760)\n-07E78 CRC                   D473D979 (3564362105)\n-07E7C Compressed Size       00000400 (1024)\n-07E80 Uncompressed Size     00000400 (1024)\n-\n-07E84 LOCAL HEADER #27      04034B50 (67324752)\n-07E88 Extract Zip Spec      14 (20) '2.0'\n-07E89 Extract OS            00 (0) 'MS-DOS'\n-07E8A General Purpose Flag  0000 (0)\n-07E8C Compression Method    0000 (0) 'Stored'\n-07E8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07E92 CRC                   00000000 (0)\n-07E96 Compressed Size       00000000 (0)\n-07E9A Uncompressed Size     00000000 (0)\n-07E9E Filename Length       0028 (40)\n-07EA0 Extra Length          0009 (9)\n-07EA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7EA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07ECA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07ECC   Length              0005 (5)\n-07ECE   Flags               01 (1) 'Modification'\n-07ECF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07ED3 LOCAL HEADER #28      04034B50 (67324752)\n-07ED7 Extract Zip Spec      14 (20) '2.0'\n-07ED8 Extract OS            00 (0) 'MS-DOS'\n-07ED9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-07EDB Compression Method    0000 (0) 'Stored'\n-07EDD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07EE1 CRC                   00000000 (0)\n-07EE5 Compressed Size       00000000 (0)\n-07EE9 Uncompressed Size     00000000 (0)\n-07EED Filename Length       0030 (48)\n-07EEF Extra Length          0009 (9)\n-07EF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7EF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07F21 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07F23   Length              0005 (5)\n-07F25   Flags               01 (1) 'Modification'\n-07F26   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-07F2A PAYLOAD\n-\n-08571 DATA DESCRIPTOR       08074B50 (134695760)\n-08575 CRC                   45D6532E (1171673902)\n-08579 Compressed Size       00000647 (1607)\n-0857D Uncompressed Size     00000647 (1607)\n-\n-08581 LOCAL HEADER #29      04034B50 (67324752)\n-08585 Extract Zip Spec      14 (20) '2.0'\n-08586 Extract OS            00 (0) 'MS-DOS'\n-08587 General Purpose Flag  0000 (0)\n-08589 Compression Method    0000 (0) 'Stored'\n-0858B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0858F CRC                   00000000 (0)\n-08593 Compressed Size       00000000 (0)\n-08597 Uncompressed Size     00000000 (0)\n-0859B Filename Length       0025 (37)\n-0859D Extra Length          0009 (9)\n-0859F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x859F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-085C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-085C6   Length              0005 (5)\n-085C8   Flags               01 (1) 'Modification'\n-085C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-085CD LOCAL HEADER #30      04034B50 (67324752)\n-085D1 Extract Zip Spec      14 (20) '2.0'\n-085D2 Extract OS            00 (0) 'MS-DOS'\n-085D3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-085D5 Compression Method    0000 (0) 'Stored'\n-085D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-085DB CRC                   00000000 (0)\n-085DF Compressed Size       00000000 (0)\n-085E3 Uncompressed Size     00000000 (0)\n-085E7 Filename Length       003C (60)\n-085E9 Extra Length          0009 (9)\n-085EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x85EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08627 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08629   Length              0005 (5)\n-0862B   Flags               01 (1) 'Modification'\n-0862C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-08630 PAYLOAD\n-\n-095C3 DATA DESCRIPTOR       08074B50 (134695760)\n-095C7 CRC                   D812ECFA (3625118970)\n-095CB Compressed Size       00000F93 (3987)\n-095CF Uncompressed Size     00000F93 (3987)\n-\n-095D3 LOCAL HEADER #31      04034B50 (67324752)\n-095D7 Extract Zip Spec      14 (20) '2.0'\n-095D8 Extract OS            00 (0) 'MS-DOS'\n-095D9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-095DB Compression Method    0000 (0) 'Stored'\n-095DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-095E1 CRC                   00000000 (0)\n-095E5 Compressed Size       00000000 (0)\n-095E9 Uncompressed Size     00000000 (0)\n-095ED Filename Length       003E (62)\n-095EF Extra Length          0009 (9)\n-095F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x95F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0962F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09631   Length              0005 (5)\n-09633   Flags               01 (1) 'Modification'\n-09634   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-09638 PAYLOAD\n-\n-09CF5 DATA DESCRIPTOR       08074B50 (134695760)\n-09CF9 CRC                   E1096065 (3775488101)\n-09CFD Compressed Size       000006BD (1725)\n-09D01 Uncompressed Size     000006BD (1725)\n-\n-09D05 LOCAL HEADER #32      04034B50 (67324752)\n-09D09 Extract Zip Spec      14 (20) '2.0'\n-09D0A Extract OS            00 (0) 'MS-DOS'\n-09D0B General Purpose Flag  0000 (0)\n-09D0D Compression Method    0000 (0) 'Stored'\n-09D0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09D13 CRC                   00000000 (0)\n-09D17 Compressed Size       00000000 (0)\n-09D1B Uncompressed Size     00000000 (0)\n-09D1F Filename Length       0022 (34)\n-09D21 Extra Length          0009 (9)\n-09D23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9D23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-09D45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09D47   Length              0005 (5)\n-09D49   Flags               01 (1) 'Modification'\n-09D4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-09D4E LOCAL HEADER #33      04034B50 (67324752)\n-09D52 Extract Zip Spec      14 (20) '2.0'\n-09D53 Extract OS            00 (0) 'MS-DOS'\n-09D54 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-09D56 Compression Method    0000 (0) 'Stored'\n-09D58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09D5C CRC                   00000000 (0)\n-09D60 Compressed Size       00000000 (0)\n-09D64 Uncompressed Size     00000000 (0)\n-09D68 Filename Length       002B (43)\n-09D6A Extra Length          0009 (9)\n-09D6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9D6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-09D97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09D99   Length              0005 (5)\n-09D9B   Flags               01 (1) 'Modification'\n-09D9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-09DA0 PAYLOAD\n-\n-0AC24 DATA DESCRIPTOR       08074B50 (134695760)\n-0AC28 CRC                   86EEED41 (2263805249)\n-0AC2C Compressed Size       00000E84 (3716)\n-0AC30 Uncompressed Size     00000E84 (3716)\n-\n-0AC34 LOCAL HEADER #34      04034B50 (67324752)\n-0AC38 Extract Zip Spec      14 (20) '2.0'\n-0AC39 Extract OS            00 (0) 'MS-DOS'\n-0AC3A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0AC3C Compression Method    0000 (0) 'Stored'\n-0AC3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0AC42 CRC                   00000000 (0)\n-0AC46 Compressed Size       00000000 (0)\n-0AC4A Uncompressed Size     00000000 (0)\n-0AC4E Filename Length       0029 (41)\n-0AC50 Extra Length          0009 (9)\n-0AC52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xAC52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0AC7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0AC7D   Length              0005 (5)\n-0AC7F   Flags               01 (1) 'Modification'\n-0AC80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0AC84 PAYLOAD\n-\n-0B9BC DATA DESCRIPTOR       08074B50 (134695760)\n-0B9C0 CRC                   1E97BBCE (513260494)\n-0B9C4 Compressed Size       00000D38 (3384)\n-0B9C8 Uncompressed Size     00000D38 (3384)\n-\n-0B9CC LOCAL HEADER #35      04034B50 (67324752)\n-0B9D0 Extract Zip Spec      14 (20) '2.0'\n-0B9D1 Extract OS            00 (0) 'MS-DOS'\n-0B9D2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0B9D4 Compression Method    0000 (0) 'Stored'\n-0B9D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0B9DA CRC                   00000000 (0)\n-0B9DE Compressed Size       00000000 (0)\n-0B9E2 Uncompressed Size     00000000 (0)\n-0B9E6 Filename Length       002E (46)\n-0B9E8 Extra Length          0009 (9)\n-0B9EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xB9EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0BA18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0BA1A   Length              0005 (5)\n-0BA1C   Flags               01 (1) 'Modification'\n-0BA1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0BA21 PAYLOAD\n-\n-0C723 DATA DESCRIPTOR       08074B50 (134695760)\n-0C727 CRC                   5DD1BF6F (1574027119)\n-0C72B Compressed Size       00000D02 (3330)\n-0C72F Uncompressed Size     00000D02 (3330)\n-\n-0C733 LOCAL HEADER #36      04034B50 (67324752)\n-0C737 Extract Zip Spec      14 (20) '2.0'\n-0C738 Extract OS            00 (0) 'MS-DOS'\n-0C739 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0C73B Compression Method    0000 (0) 'Stored'\n-0C73D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0C741 CRC                   00000000 (0)\n-0C745 Compressed Size       00000000 (0)\n-0C749 Uncompressed Size     00000000 (0)\n-0C74D Filename Length       002D (45)\n-0C74F Extra Length          0009 (9)\n-0C751 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xC751: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0C77E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0C780   Length              0005 (5)\n-0C782   Flags               01 (1) 'Modification'\n-0C783   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0C787 PAYLOAD\n-\n-0D4BC DATA DESCRIPTOR       08074B50 (134695760)\n-0D4C0 CRC                   677CD800 (1736235008)\n-0D4C4 Compressed Size       00000D35 (3381)\n-0D4C8 Uncompressed Size     00000D35 (3381)\n-\n-0D4CC LOCAL HEADER #37      04034B50 (67324752)\n-0D4D0 Extract Zip Spec      14 (20) '2.0'\n-0D4D1 Extract OS            00 (0) 'MS-DOS'\n-0D4D2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0D4D4 Compression Method    0000 (0) 'Stored'\n-0D4D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0D4DA CRC                   00000000 (0)\n-0D4DE Compressed Size       00000000 (0)\n-0D4E2 Uncompressed Size     00000000 (0)\n-0D4E6 Filename Length       0036 (54)\n-0D4E8 Extra Length          0009 (9)\n-0D4EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xD4EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0D520 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0D522   Length              0005 (5)\n-0D524   Flags               01 (1) 'Modification'\n-0D525   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0D529 PAYLOAD\n-\n-0E059 DATA DESCRIPTOR       08074B50 (134695760)\n-0E05D CRC                   15091C1F (352918559)\n-0E061 Compressed Size       00000B30 (2864)\n-0E065 Uncompressed Size     00000B30 (2864)\n-\n-0E069 LOCAL HEADER #38      04034B50 (67324752)\n-0E06D Extract Zip Spec      14 (20) '2.0'\n-0E06E Extract OS            00 (0) 'MS-DOS'\n-0E06F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0E071 Compression Method    0000 (0) 'Stored'\n-0E073 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0E077 CRC                   00000000 (0)\n-0E07B Compressed Size       00000000 (0)\n-0E07F Uncompressed Size     00000000 (0)\n-0E083 Filename Length       002B (43)\n-0E085 Extra Length          0009 (9)\n-0E087 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xE087: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0E0B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0E0B4   Length              0005 (5)\n-0E0B6   Flags               01 (1) 'Modification'\n-0E0B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0E0BB PAYLOAD\n-\n-0E5D4 DATA DESCRIPTOR       08074B50 (134695760)\n-0E5D8 CRC                   AADA64B2 (2866439346)\n-0E5DC Compressed Size       00000519 (1305)\n-0E5E0 Uncompressed Size     00000519 (1305)\n-\n-0E5E4 LOCAL HEADER #39      04034B50 (67324752)\n-0E5E8 Extract Zip Spec      14 (20) '2.0'\n-0E5E9 Extract OS            00 (0) 'MS-DOS'\n-0E5EA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0E5EC Compression Method    0000 (0) 'Stored'\n-0E5EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0E5F2 CRC                   00000000 (0)\n-0E5F6 Compressed Size       00000000 (0)\n-0E5FA Uncompressed Size     00000000 (0)\n-0E5FE Filename Length       002C (44)\n-0E600 Extra Length          0009 (9)\n-0E602 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xE602: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0E62E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0E630   Length              0005 (5)\n-0E632   Flags               01 (1) 'Modification'\n-0E633   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0E637 PAYLOAD\n-\n-0F6BB DATA DESCRIPTOR       08074B50 (134695760)\n-0F6BF CRC                   CD1091C2 (3440415170)\n-0F6C3 Compressed Size       00001084 (4228)\n-0F6C7 Uncompressed Size     00001084 (4228)\n-\n-0F6CB LOCAL HEADER #40      04034B50 (67324752)\n-0F6CF Extract Zip Spec      14 (20) '2.0'\n-0F6D0 Extract OS            00 (0) 'MS-DOS'\n-0F6D1 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0F6D3 Compression Method    0000 (0) 'Stored'\n-0F6D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0F6D9 CRC                   00000000 (0)\n-0F6DD Compressed Size       00000000 (0)\n-0F6E1 Uncompressed Size     00000000 (0)\n-0F6E5 Filename Length       002E (46)\n-0F6E7 Extra Length          0009 (9)\n-0F6E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xF6E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0F717 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0F719   Length              0005 (5)\n-0F71B   Flags               01 (1) 'Modification'\n-0F71C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0F720 PAYLOAD\n-\n-0FD20 DATA DESCRIPTOR       08074B50 (134695760)\n-0FD24 CRC                   CA6DC12E (3396190510)\n-0FD28 Compressed Size       00000600 (1536)\n-0FD2C Uncompressed Size     00000600 (1536)\n-\n-0FD30 LOCAL HEADER #41      04034B50 (67324752)\n-0FD34 Extract Zip Spec      14 (20) '2.0'\n-0FD35 Extract OS            00 (0) 'MS-DOS'\n-0FD36 General Purpose Flag  0000 (0)\n-0FD38 Compression Method    0000 (0) 'Stored'\n-0FD3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0FD3E CRC                   00000000 (0)\n-0FD42 Compressed Size       00000000 (0)\n-0FD46 Uncompressed Size     00000000 (0)\n-0FD4A Filename Length       0022 (34)\n-0FD4C Extra Length          0009 (9)\n-0FD4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xFD4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0FD70 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0FD72   Length              0005 (5)\n-0FD74   Flags               01 (1) 'Modification'\n-0FD75   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0FD79 LOCAL HEADER #42      04034B50 (67324752)\n-0FD7D Extract Zip Spec      14 (20) '2.0'\n-0FD7E Extract OS            00 (0) 'MS-DOS'\n-0FD7F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0FD81 Compression Method    0000 (0) 'Stored'\n-0FD83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0FD87 CRC                   00000000 (0)\n-0FD8B Compressed Size       00000000 (0)\n-0FD8F Uncompressed Size     00000000 (0)\n-0FD93 Filename Length       0034 (52)\n-0FD95 Extra Length          0009 (9)\n-0FD97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xFD97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0FDCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0FDCD   Length              0005 (5)\n-0FDCF   Flags               01 (1) 'Modification'\n-0FDD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0FDD4 PAYLOAD\n-\n-10667 DATA DESCRIPTOR       08074B50 (134695760)\n-1066B CRC                   8BEA30C0 (2347380928)\n-1066F Compressed Size       00000893 (2195)\n-10673 Uncompressed Size     00000893 (2195)\n-\n-10677 LOCAL HEADER #43      04034B50 (67324752)\n-1067B Extract Zip Spec      14 (20) '2.0'\n-1067C Extract OS            00 (0) 'MS-DOS'\n-1067D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1067F Compression Method    0000 (0) 'Stored'\n-10681 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-10685 CRC                   00000000 (0)\n-10689 Compressed Size       00000000 (0)\n-1068D Uncompressed Size     00000000 (0)\n-10691 Filename Length       0038 (56)\n-10693 Extra Length          0009 (9)\n-10695 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x10695: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-106CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-106CF   Length              0005 (5)\n-106D1   Flags               01 (1) 'Modification'\n-106D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-106D6 PAYLOAD\n-\n-11173 DATA DESCRIPTOR       08074B50 (134695760)\n-11177 CRC                   9A0D91FA (2584580602)\n-1117B Compressed Size       00000A9D (2717)\n-1117F Uncompressed Size     00000A9D (2717)\n-\n-11183 LOCAL HEADER #44      04034B50 (67324752)\n-11187 Extract Zip Spec      14 (20) '2.0'\n-11188 Extract OS            00 (0) 'MS-DOS'\n-11189 General Purpose Flag  0000 (0)\n-1118B Compression Method    0000 (0) 'Stored'\n-1118D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11191 CRC                   00000000 (0)\n-11195 Compressed Size       00000000 (0)\n-11199 Uncompressed Size     00000000 (0)\n-1119D Filename Length       001C (28)\n-1119F Extra Length          0009 (9)\n-111A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x111A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-111BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-111BF   Length              0005 (5)\n-111C1   Flags               01 (1) 'Modification'\n-111C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-111C6 LOCAL HEADER #45      04034B50 (67324752)\n-111CA Extract Zip Spec      14 (20) '2.0'\n-111CB Extract OS            00 (0) 'MS-DOS'\n-111CC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-111CE Compression Method    0000 (0) 'Stored'\n-111D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-111D4 CRC                   00000000 (0)\n-111D8 Compressed Size       00000000 (0)\n-111DC Uncompressed Size     00000000 (0)\n-111E0 Filename Length       002D (45)\n-111E2 Extra Length          0009 (9)\n-111E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x111E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11211 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11213   Length              0005 (5)\n-11215   Flags               01 (1) 'Modification'\n-11216   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1121A PAYLOAD\n-\n-115F8 DATA DESCRIPTOR       08074B50 (134695760)\n-115FC CRC                   93C23403 (2478978051)\n-11600 Compressed Size       000003DE (990)\n-11604 Uncompressed Size     000003DE (990)\n-\n-11608 LOCAL HEADER #46      04034B50 (67324752)\n-1160C Extract Zip Spec      14 (20) '2.0'\n-1160D Extract OS            00 (0) 'MS-DOS'\n-1160E General Purpose Flag  0000 (0)\n-11610 Compression Method    0000 (0) 'Stored'\n-11612 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11616 CRC                   00000000 (0)\n-1161A Compressed Size       00000000 (0)\n-1161E Uncompressed Size     00000000 (0)\n-11622 Filename Length       001C (28)\n-11624 Extra Length          0009 (9)\n-11626 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11626: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11642 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11644   Length              0005 (5)\n-11646   Flags               01 (1) 'Modification'\n-11647   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1164B LOCAL HEADER #47      04034B50 (67324752)\n-1164F Extract Zip Spec      14 (20) '2.0'\n-11650 Extract OS            00 (0) 'MS-DOS'\n-11651 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-11653 Compression Method    0000 (0) 'Stored'\n-11655 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11659 CRC                   00000000 (0)\n-1165D Compressed Size       00000000 (0)\n-11661 Uncompressed Size     00000000 (0)\n-11665 Filename Length       0034 (52)\n-11667 Extra Length          0009 (9)\n-11669 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11669: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1169D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1169F   Length              0005 (5)\n-116A1   Flags               01 (1) 'Modification'\n-116A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-116A6 PAYLOAD\n-\n-121B6 DATA DESCRIPTOR       08074B50 (134695760)\n-121BA CRC                   FA05AB13 (4194675475)\n-121BE Compressed Size       00000B10 (2832)\n-121C2 Uncompressed Size     00000B10 (2832)\n-\n-121C6 LOCAL HEADER #48      04034B50 (67324752)\n-121CA Extract Zip Spec      14 (20) '2.0'\n-121CB Extract OS            00 (0) 'MS-DOS'\n-121CC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-121CE Compression Method    0000 (0) 'Stored'\n-121D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-121D4 CRC                   00000000 (0)\n-121D8 Compressed Size       00000000 (0)\n-121DC Uncompressed Size     00000000 (0)\n-121E0 Filename Length       0033 (51)\n-121E2 Extra Length          0009 (9)\n-121E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x121E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12217 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12219   Length              0005 (5)\n-1221B   Flags               01 (1) 'Modification'\n-1221C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12220 PAYLOAD\n-\n-13C85 DATA DESCRIPTOR       08074B50 (134695760)\n-13C89 CRC                   4A88912B (1250464043)\n-13C8D Compressed Size       00001A65 (6757)\n-13C91 Uncompressed Size     00001A65 (6757)\n-\n-13C95 LOCAL HEADER #49      04034B50 (67324752)\n-13C99 Extract Zip Spec      14 (20) '2.0'\n-13C9A Extract OS            00 (0) 'MS-DOS'\n-13C9B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-13C9D Compression Method    0000 (0) 'Stored'\n-13C9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13CA3 CRC                   00000000 (0)\n-13CA7 Compressed Size       00000000 (0)\n-13CAB Uncompressed Size     00000000 (0)\n-13CAF Filename Length       0035 (53)\n-13CB1 Extra Length          0009 (9)\n-13CB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13CB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13CE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13CEA   Length              0005 (5)\n-13CEC   Flags               01 (1) 'Modification'\n-13CED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13CF1 PAYLOAD\n-\n-143E0 DATA DESCRIPTOR       08074B50 (134695760)\n-143E4 CRC                   0FA20D48 (262278472)\n-143E8 Compressed Size       000006EF (1775)\n-143EC Uncompressed Size     000006EF (1775)\n-\n-143F0 LOCAL HEADER #50      04034B50 (67324752)\n-143F4 Extract Zip Spec      14 (20) '2.0'\n-143F5 Extract OS            00 (0) 'MS-DOS'\n-143F6 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-143F8 Compression Method    0000 (0) 'Stored'\n-143FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-143FE CRC                   00000000 (0)\n-14402 Compressed Size       00000000 (0)\n-14406 Uncompressed Size     00000000 (0)\n-1440A Filename Length       0034 (52)\n-1440C Extra Length          0009 (9)\n-1440E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1440E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14442 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14444   Length              0005 (5)\n-14446   Flags               01 (1) 'Modification'\n-14447   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1444B PAYLOAD\n-\n-16F20 DATA DESCRIPTOR       08074B50 (134695760)\n-16F24 CRC                   27D9ECF0 (668593392)\n-16F28 Compressed Size       00002AD5 (10965)\n-16F2C Uncompressed Size     00002AD5 (10965)\n-\n-16F30 LOCAL HEADER #51      04034B50 (67324752)\n-16F34 Extract Zip Spec      14 (20) '2.0'\n-16F35 Extract OS            00 (0) 'MS-DOS'\n-16F36 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-16F38 Compression Method    0000 (0) 'Stored'\n-16F3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16F3E CRC                   00000000 (0)\n-16F42 Compressed Size       00000000 (0)\n-16F46 Uncompressed Size     00000000 (0)\n-16F4A Filename Length       0032 (50)\n-16F4C Extra Length          0009 (9)\n-16F4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16F4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16F80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16F82   Length              0005 (5)\n-16F84   Flags               01 (1) 'Modification'\n-16F85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16F89 PAYLOAD\n-\n-189A5 DATA DESCRIPTOR       08074B50 (134695760)\n-189A9 CRC                   540DE20D (1410195981)\n-189AD Compressed Size       00001A1C (6684)\n-189B1 Uncompressed Size     00001A1C (6684)\n-\n-189B5 LOCAL HEADER #52      04034B50 (67324752)\n-189B9 Extract Zip Spec      14 (20) '2.0'\n-189BA Extract OS            00 (0) 'MS-DOS'\n-189BB General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-189BD Compression Method    0000 (0) 'Stored'\n-189BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-189C3 CRC                   00000000 (0)\n-189C7 Compressed Size       00000000 (0)\n-189CB Uncompressed Size     00000000 (0)\n-189CF Filename Length       0031 (49)\n-189D1 Extra Length          0009 (9)\n-189D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x189D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-18A04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-18A06   Length              0005 (5)\n-18A08   Flags               01 (1) 'Modification'\n-18A09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-18A0D PAYLOAD\n-\n-19989 DATA DESCRIPTOR       08074B50 (134695760)\n-1998D CRC                   256F6EAD (628059821)\n-19991 Compressed Size       00000F7C (3964)\n-19995 Uncompressed Size     00000F7C (3964)\n-\n-19999 LOCAL HEADER #53      04034B50 (67324752)\n-1999D Extract Zip Spec      14 (20) '2.0'\n-1999E Extract OS            00 (0) 'MS-DOS'\n-1999F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-199A1 Compression Method    0000 (0) 'Stored'\n-199A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-199A7 CRC                   00000000 (0)\n-199AB Compressed Size       00000000 (0)\n-199AF Uncompressed Size     00000000 (0)\n-199B3 Filename Length       0032 (50)\n-199B5 Extra Length          0009 (9)\n-199B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x199B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-199E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-199EB   Length              0005 (5)\n-199ED   Flags               01 (1) 'Modification'\n-199EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-199F2 PAYLOAD\n-\n-1A8F7 DATA DESCRIPTOR       08074B50 (134695760)\n-1A8FB CRC                   41EC82BB (1106019003)\n-1A8FF Compressed Size       00000F05 (3845)\n-1A903 Uncompressed Size     00000F05 (3845)\n-\n-1A907 LOCAL HEADER #54      04034B50 (67324752)\n-1A90B Extract Zip Spec      14 (20) '2.0'\n-1A90C Extract OS            00 (0) 'MS-DOS'\n-1A90D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1A90F Compression Method    0000 (0) 'Stored'\n-1A911 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1A915 CRC                   00000000 (0)\n-1A919 Compressed Size       00000000 (0)\n-1A91D Uncompressed Size     00000000 (0)\n-1A921 Filename Length       0034 (52)\n-1A923 Extra Length          0009 (9)\n-1A925 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1A925: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1A959 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1A95B   Length              0005 (5)\n-1A95D   Flags               01 (1) 'Modification'\n-1A95E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1A962 PAYLOAD\n-\n-1B439 DATA DESCRIPTOR       08074B50 (134695760)\n-1B43D CRC                   C71A64BF (3340395711)\n-1B441 Compressed Size       00000AD7 (2775)\n-1B445 Uncompressed Size     00000AD7 (2775)\n-\n-1B449 LOCAL HEADER #55      04034B50 (67324752)\n-1B44D Extract Zip Spec      14 (20) '2.0'\n-1B44E Extract OS            00 (0) 'MS-DOS'\n-1B44F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1B451 Compression Method    0000 (0) 'Stored'\n-1B453 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B457 CRC                   00000000 (0)\n-1B45B Compressed Size       00000000 (0)\n-1B45F Uncompressed Size     00000000 (0)\n-1B463 Filename Length       0036 (54)\n-1B465 Extra Length          0009 (9)\n-1B467 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B467: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B49D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B49F   Length              0005 (5)\n-1B4A1   Flags               01 (1) 'Modification'\n-1B4A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B4A6 PAYLOAD\n-\n-1BF2E DATA DESCRIPTOR       08074B50 (134695760)\n-1BF32 CRC                   ED50455A (3981460826)\n-1BF36 Compressed Size       00000A88 (2696)\n-1BF3A Uncompressed Size     00000A88 (2696)\n-\n-1BF3E LOCAL HEADER #56      04034B50 (67324752)\n-1BF42 Extract Zip Spec      14 (20) '2.0'\n-1BF43 Extract OS            00 (0) 'MS-DOS'\n-1BF44 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1BF46 Compression Method    0000 (0) 'Stored'\n-1BF48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1BF4C CRC                   00000000 (0)\n-1BF50 Compressed Size       00000000 (0)\n-1BF54 Uncompressed Size     00000000 (0)\n-1BF58 Filename Length       0033 (51)\n-1BF5A Extra Length          0009 (9)\n-1BF5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1BF5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1BF8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1BF91   Length              0005 (5)\n-1BF93   Flags               01 (1) 'Modification'\n-1BF94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1BF98 PAYLOAD\n-\n-1CF53 DATA DESCRIPTOR       08074B50 (134695760)\n-1CF57 CRC                   BA485F30 (3125305136)\n-1CF5B Compressed Size       00000FBB (4027)\n-1CF5F Uncompressed Size     00000FBB (4027)\n-\n-1CF63 LOCAL HEADER #57      04034B50 (67324752)\n-1CF67 Extract Zip Spec      14 (20) '2.0'\n-1CF68 Extract OS            00 (0) 'MS-DOS'\n-1CF69 General Purpose Flag  0000 (0)\n-1CF6B Compression Method    0000 (0) 'Stored'\n-1CF6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CF71 CRC                   00000000 (0)\n-1CF75 Compressed Size       00000000 (0)\n-1CF79 Uncompressed Size     00000000 (0)\n-1CF7D Filename Length       001E (30)\n-1CF7F Extra Length          0009 (9)\n-1CF81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CF81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CF9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CFA1   Length              0005 (5)\n-1CFA3   Flags               01 (1) 'Modification'\n-1CFA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1CFA8 LOCAL HEADER #58      04034B50 (67324752)\n-1CFAC Extract Zip Spec      14 (20) '2.0'\n-1CFAD Extract OS            00 (0) 'MS-DOS'\n-1CFAE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1CFB0 Compression Method    0000 (0) 'Stored'\n-1CFB2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CFB6 CRC                   00000000 (0)\n-1CFBA Compressed Size       00000000 (0)\n-1CFBE Uncompressed Size     00000000 (0)\n-1CFC2 Filename Length       0035 (53)\n-1CFC4 Extra Length          0009 (9)\n-1CFC6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CFC6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CFFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CFFD   Length              0005 (5)\n-1CFFF   Flags               01 (1) 'Modification'\n-1D000   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D004 PAYLOAD\n-\n-1E0D7 DATA DESCRIPTOR       08074B50 (134695760)\n-1E0DB CRC                   72812E46 (1921068614)\n-1E0DF Compressed Size       000010D3 (4307)\n-1E0E3 Uncompressed Size     000010D3 (4307)\n-\n-1E0E7 LOCAL HEADER #59      04034B50 (67324752)\n-1E0EB Extract Zip Spec      14 (20) '2.0'\n-1E0EC Extract OS            00 (0) 'MS-DOS'\n-1E0ED General Purpose Flag  0000 (0)\n-1E0EF Compression Method    0000 (0) 'Stored'\n-1E0F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E0F5 CRC                   00000000 (0)\n-1E0F9 Compressed Size       00000000 (0)\n-1E0FD Uncompressed Size     00000000 (0)\n-1E101 Filename Length       001C (28)\n-1E103 Extra Length          0009 (9)\n-1E105 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E105: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E121 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E123   Length              0005 (5)\n-1E125   Flags               01 (1) 'Modification'\n-1E126   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1E12A LOCAL HEADER #60      04034B50 (67324752)\n-1E12E Extract Zip Spec      14 (20) '2.0'\n-1E12F Extract OS            00 (0) 'MS-DOS'\n-1E130 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1E132 Compression Method    0000 (0) 'Stored'\n-1E134 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E138 CRC                   00000000 (0)\n-1E13C Compressed Size       00000000 (0)\n-1E140 Uncompressed Size     00000000 (0)\n-1E144 Filename Length       002A (42)\n-1E146 Extra Length          0009 (9)\n-1E148 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E148: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E172 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E174   Length              0005 (5)\n-1E176   Flags               01 (1) 'Modification'\n-1E177   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E17B PAYLOAD\n-\n-1E660 DATA DESCRIPTOR       08074B50 (134695760)\n-1E664 CRC                   4C3B1439 (1278940217)\n-1E668 Compressed Size       000004E5 (1253)\n-1E66C Uncompressed Size     000004E5 (1253)\n-\n-1E670 LOCAL HEADER #61      04034B50 (67324752)\n-1E674 Extract Zip Spec      14 (20) '2.0'\n-1E675 Extract OS            00 (0) 'MS-DOS'\n-1E676 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1E678 Compression Method    0000 (0) 'Stored'\n-1E67A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E67E CRC                   00000000 (0)\n-1E682 Compressed Size       00000000 (0)\n-1E686 Uncompressed Size     00000000 (0)\n-1E68A Filename Length       0027 (39)\n-1E68C Extra Length          0009 (9)\n-1E68E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E68E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E6B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E6B7   Length              0005 (5)\n-1E6B9   Flags               01 (1) 'Modification'\n-1E6BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E6BE PAYLOAD\n-\n-1F888 DATA DESCRIPTOR       08074B50 (134695760)\n-1F88C CRC                   0C035F96 (201547670)\n-1F890 Compressed Size       000011CA (4554)\n-1F894 Uncompressed Size     000011CA (4554)\n-\n-1F898 LOCAL HEADER #62      04034B50 (67324752)\n-1F89C Extract Zip Spec      14 (20) '2.0'\n-1F89D Extract OS            00 (0) 'MS-DOS'\n-1F89E General Purpose Flag  0000 (0)\n-1F8A0 Compression Method    0000 (0) 'Stored'\n-1F8A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1F8A6 CRC                   00000000 (0)\n-1F8AA Compressed Size       00000000 (0)\n-1F8AE Uncompressed Size     00000000 (0)\n-1F8B2 Filename Length       0024 (36)\n-1F8B4 Extra Length          0009 (9)\n-1F8B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1F8B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1F8DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1F8DC   Length              0005 (5)\n-1F8DE   Flags               01 (1) 'Modification'\n-1F8DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1F8E3 LOCAL HEADER #63      04034B50 (67324752)\n-1F8E7 Extract Zip Spec      14 (20) '2.0'\n-1F8E8 Extract OS            00 (0) 'MS-DOS'\n-1F8E9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1F8EB Compression Method    0000 (0) 'Stored'\n-1F8ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1F8F1 CRC                   00000000 (0)\n-1F8F5 Compressed Size       00000000 (0)\n-1F8F9 Uncompressed Size     00000000 (0)\n-1F8FD Filename Length       003B (59)\n-1F8FF Extra Length          0009 (9)\n-1F901 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1F901: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1F93C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1F93E   Length              0005 (5)\n-1F940   Flags               01 (1) 'Modification'\n-1F941   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1F945 PAYLOAD\n-\n-20D7B DATA DESCRIPTOR       08074B50 (134695760)\n-20D7F CRC                   5688E99A (1451813274)\n-20D83 Compressed Size       00001436 (5174)\n-20D87 Uncompressed Size     00001436 (5174)\n-\n-20D8B LOCAL HEADER #64      04034B50 (67324752)\n-20D8F Extract Zip Spec      14 (20) '2.0'\n-20D90 Extract OS            00 (0) 'MS-DOS'\n-20D91 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-20D93 Compression Method    0000 (0) 'Stored'\n-20D95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-20D99 CRC                   00000000 (0)\n-20D9D Compressed Size       00000000 (0)\n-20DA1 Uncompressed Size     00000000 (0)\n-20DA5 Filename Length       003F (63)\n-20DA7 Extra Length          0009 (9)\n-20DA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x20DA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20DE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-20DEA   Length              0005 (5)\n-20DEC   Flags               01 (1) 'Modification'\n-20DED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-20DF1 PAYLOAD\n-\n-21592 DATA DESCRIPTOR       08074B50 (134695760)\n-21596 CRC                   DA916F8A (3666964362)\n-2159A Compressed Size       000007A1 (1953)\n-2159E Uncompressed Size     000007A1 (1953)\n-\n-215A2 LOCAL HEADER #65      04034B50 (67324752)\n-215A6 Extract Zip Spec      14 (20) '2.0'\n-215A7 Extract OS            00 (0) 'MS-DOS'\n-215A8 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-215AA Compression Method    0000 (0) 'Stored'\n-215AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-215B0 CRC                   00000000 (0)\n-215B4 Compressed Size       00000000 (0)\n-215B8 Uncompressed Size     00000000 (0)\n-215BC Filename Length       003A (58)\n-215BE Extra Length          0009 (9)\n-215C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x215C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-215FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-215FC   Length              0005 (5)\n-215FE   Flags               01 (1) 'Modification'\n-215FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-21603 PAYLOAD\n-\n-22612 DATA DESCRIPTOR       08074B50 (134695760)\n-22616 CRC                   1CB52B1D (481635101)\n-2261A Compressed Size       0000100F (4111)\n-2261E Uncompressed Size     0000100F (4111)\n-\n-22622 LOCAL HEADER #66      04034B50 (67324752)\n-22626 Extract Zip Spec      14 (20) '2.0'\n-22627 Extract OS            00 (0) 'MS-DOS'\n-22628 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2262A Compression Method    0000 (0) 'Stored'\n-2262C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22630 CRC                   00000000 (0)\n-22634 Compressed Size       00000000 (0)\n-22638 Uncompressed Size     00000000 (0)\n-2263C Filename Length       003F (63)\n-2263E Extra Length          0009 (9)\n-22640 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22640: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2267F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22681   Length              0005 (5)\n-22683   Flags               01 (1) 'Modification'\n-22684   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22688 PAYLOAD\n-\n-22D72 DATA DESCRIPTOR       08074B50 (134695760)\n-22D76 CRC                   B7AE5AFA (3081657082)\n-22D7A Compressed Size       000006EA (1770)\n-22D7E Uncompressed Size     000006EA (1770)\n-\n-22D82 LOCAL HEADER #67      04034B50 (67324752)\n-22D86 Extract Zip Spec      14 (20) '2.0'\n-22D87 Extract OS            00 (0) 'MS-DOS'\n-22D88 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-22D8A Compression Method    0000 (0) 'Stored'\n-22D8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22D90 CRC                   00000000 (0)\n-22D94 Compressed Size       00000000 (0)\n-22D98 Uncompressed Size     00000000 (0)\n-22D9C Filename Length       003D (61)\n-22D9E Extra Length          0009 (9)\n-22DA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22DA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22DDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22DDF   Length              0005 (5)\n-22DE1   Flags               01 (1) 'Modification'\n-22DE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22DE6 PAYLOAD\n-\n-23A67 DATA DESCRIPTOR       08074B50 (134695760)\n-23A6B CRC                   D392C9E8 (3549612520)\n-23A6F Compressed Size       00000C81 (3201)\n-23A73 Uncompressed Size     00000C81 (3201)\n-\n-23A77 LOCAL HEADER #68      04034B50 (67324752)\n-23A7B Extract Zip Spec      14 (20) '2.0'\n-23A7C Extract OS            00 (0) 'MS-DOS'\n-23A7D General Purpose Flag  0000 (0)\n-23A7F Compression Method    0000 (0) 'Stored'\n-23A81 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23A85 CRC                   00000000 (0)\n-23A89 Compressed Size       00000000 (0)\n-23A8D Uncompressed Size     00000000 (0)\n-23A91 Filename Length       001C (28)\n-23A93 Extra Length          0009 (9)\n-23A95 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23A95: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23AB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23AB3   Length              0005 (5)\n-23AB5   Flags               01 (1) 'Modification'\n-23AB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-23ABA LOCAL HEADER #69      04034B50 (67324752)\n-23ABE Extract Zip Spec      14 (20) '2.0'\n-23ABF Extract OS            00 (0) 'MS-DOS'\n-23AC0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-23AC2 Compression Method    0000 (0) 'Stored'\n-23AC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23AC8 CRC                   00000000 (0)\n-23ACC Compressed Size       00000000 (0)\n-23AD0 Uncompressed Size     00000000 (0)\n-23AD4 Filename Length       002B (43)\n-23AD6 Extra Length          0009 (9)\n-23AD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23AD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23B03 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23B05   Length              0005 (5)\n-23B07   Flags               01 (1) 'Modification'\n-23B08   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23B0C PAYLOAD\n-\n-23EE3 DATA DESCRIPTOR       08074B50 (134695760)\n-23EE7 CRC                   2AA01116 (715133206)\n-23EEB Compressed Size       000003D7 (983)\n-23EEF Uncompressed Size     000003D7 (983)\n-\n-23EF3 LOCAL HEADER #70      04034B50 (67324752)\n-23EF7 Extract Zip Spec      14 (20) '2.0'\n-23EF8 Extract OS            00 (0) 'MS-DOS'\n-23EF9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-23EFB Compression Method    0000 (0) 'Stored'\n-23EFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23F01 CRC                   00000000 (0)\n-23F05 Compressed Size       00000000 (0)\n-23F09 Uncompressed Size     00000000 (0)\n-23F0D Filename Length       0024 (36)\n-23F0F Extra Length          0009 (9)\n-23F11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23F11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23F35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23F37   Length              0005 (5)\n-23F39   Flags               01 (1) 'Modification'\n-23F3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23F3E PAYLOAD\n-\n-249EC DATA DESCRIPTOR       08074B50 (134695760)\n-249F0 CRC                   70DD7BE1 (1893563361)\n-249F4 Compressed Size       00000AAE (2734)\n-249F8 Uncompressed Size     00000AAE (2734)\n-\n-249FC LOCAL HEADER #71      04034B50 (67324752)\n-24A00 Extract Zip Spec      14 (20) '2.0'\n-24A01 Extract OS            00 (0) 'MS-DOS'\n-24A02 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-24A04 Compression Method    0000 (0) 'Stored'\n-24A06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-24A0A CRC                   00000000 (0)\n-24A0E Compressed Size       00000000 (0)\n-24A12 Uncompressed Size     00000000 (0)\n-24A16 Filename Length       0028 (40)\n-24A18 Extra Length          0009 (9)\n-24A1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x24A1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-24A42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-24A44   Length              0005 (5)\n-24A46   Flags               01 (1) 'Modification'\n-24A47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-24A4B PAYLOAD\n-\n-25328 DATA DESCRIPTOR       08074B50 (134695760)\n-2532C CRC                   725BA0A7 (1918607527)\n-25330 Compressed Size       000008DD (2269)\n-25334 Uncompressed Size     000008DD (2269)\n-\n-25338 LOCAL HEADER #72      04034B50 (67324752)\n-2533C Extract Zip Spec      14 (20) '2.0'\n-2533D Extract OS            00 (0) 'MS-DOS'\n-2533E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-25340 Compression Method    0000 (0) 'Stored'\n-25342 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-25346 CRC                   00000000 (0)\n-2534A Compressed Size       00000000 (0)\n-2534E Uncompressed Size     00000000 (0)\n-25352 Filename Length       0027 (39)\n-25354 Extra Length          0009 (9)\n-25356 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x25356: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2537D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2537F   Length              0005 (5)\n-25381   Flags               01 (1) 'Modification'\n-25382   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-25386 PAYLOAD\n-\n-29087 DATA DESCRIPTOR       08074B50 (134695760)\n-2908B CRC                   353D3BE5 (893205477)\n-2908F Compressed Size       00003D01 (15617)\n-29093 Uncompressed Size     00003D01 (15617)\n-\n-29097 LOCAL HEADER #73      04034B50 (67324752)\n-2909B Extract Zip Spec      14 (20) '2.0'\n-2909C Extract OS            00 (0) 'MS-DOS'\n-2909D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2909F Compression Method    0000 (0) 'Stored'\n-290A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-290A5 CRC                   00000000 (0)\n-290A9 Compressed Size       00000000 (0)\n-290AD Uncompressed Size     00000000 (0)\n-290B1 Filename Length       0026 (38)\n-290B3 Extra Length          0009 (9)\n-290B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x290B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-290DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-290DD   Length              0005 (5)\n-290DF   Flags               01 (1) 'Modification'\n-290E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-290E4 PAYLOAD\n-\n-2ADB2 DATA DESCRIPTOR       08074B50 (134695760)\n-2ADB6 CRC                   1DFA3CFF (502938879)\n-2ADBA Compressed Size       00001CCE (7374)\n-2ADBE Uncompressed Size     00001CCE (7374)\n-\n-2ADC2 CENTRAL HEADER #1     02014B50 (33639248)\n-2ADC6 Created Zip Spec      14 (20) '2.0'\n-2ADC7 Created OS            00 (0) 'MS-DOS'\n-2ADC8 Extract Zip Spec      14 (20) '2.0'\n-2ADC9 Extract OS            00 (0) 'MS-DOS'\n-2ADCA General Purpose Flag  0000 (0)\n-2ADCC Compression Method    0000 (0) 'Stored'\n-2ADCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2ADD2 CRC                   00000000 (0)\n-2ADD6 Compressed Size       00000000 (0)\n-2ADDA Uncompressed Size     00000000 (0)\n-2ADDE Filename Length       0009 (9)\n-2ADE0 Extra Length          0009 (9)\n-2ADE2 Comment Length        0000 (0)\n-2ADE4 Disk Start            0000 (0)\n-2ADE6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2ADE8 Ext File Attributes   00000000 (0)\n-2ADEC Local Header Offset   00000000 (0)\n-2ADF0 Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x2ADF0: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-2ADF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2ADFB   Length              0005 (5)\n-2ADFD   Flags               01 (1) 'Modification'\n-2ADFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2AE02 CENTRAL HEADER #2     02014B50 (33639248)\n-2AE06 Created Zip Spec      14 (20) '2.0'\n-2AE07 Created OS            00 (0) 'MS-DOS'\n-2AE08 Extract Zip Spec      14 (20) '2.0'\n-2AE09 Extract OS            00 (0) 'MS-DOS'\n-2AE0A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2AE0C Compression Method    0000 (0) 'Stored'\n-2AE0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AE12 CRC                   3FA1E7D4 (1067575252)\n-2AE16 Compressed Size       00001A04 (6660)\n-2AE1A Uncompressed Size     00001A04 (6660)\n-2AE1E Filename Length       0015 (21)\n-2AE20 Extra Length          0009 (9)\n-2AE22 Comment Length        0000 (0)\n-2AE24 Disk Start            0000 (0)\n-2AE26 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2AE28 Ext File Attributes   00000000 (0)\n-2AE2C Local Header Offset   00000030 (48)\n-2AE30 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AE30: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AE45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AE47   Length              0005 (5)\n-2AE49   Flags               01 (1) 'Modification'\n-2AE4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2AE4E CENTRAL HEADER #3     02014B50 (33639248)\n-2AE52 Created Zip Spec      14 (20) '2.0'\n-2AE53 Created OS            00 (0) 'MS-DOS'\n-2AE54 Extract Zip Spec      14 (20) '2.0'\n-2AE55 Extract OS            00 (0) 'MS-DOS'\n-2AE56 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2AE58 Compression Method    0000 (0) 'Stored'\n-2AE5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AE5E CRC                   86E2B4B4 (2263004340)\n-2AE62 Compressed Size       00002C5E (11358)\n-2AE66 Uncompressed Size     00002C5E (11358)\n-2AE6A Filename Length       0010 (16)\n-2AE6C Extra Length          0009 (9)\n-2AE6E Comment Length        0000 (0)\n-2AE70 Disk Start            0000 (0)\n-2AE72 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2AE74 Ext File Attributes   00000000 (0)\n-2AE78 Local Header Offset   00001A80 (6784)\n-2AE7C Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AE7C: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AE8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AE8E   Length              0005 (5)\n-2AE90   Flags               01 (1) 'Modification'\n-2AE91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2AE95 CENTRAL HEADER #4     02014B50 (33639248)\n-2AE99 Created Zip Spec      14 (20) '2.0'\n-2AE9A Created OS            00 (0) 'MS-DOS'\n-2AE9B Extract Zip Spec      14 (20) '2.0'\n-2AE9C Extract OS            00 (0) 'MS-DOS'\n-2AE9D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2AE9F Compression Method    0000 (0) 'Stored'\n-2AEA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AEA5 CRC                   EE027FB2 (3993141170)\n-2AEA9 Compressed Size       00000019 (25)\n-2AEAD Uncompressed Size     00000019 (25)\n-2AEB1 Filename Length       0014 (20)\n-2AEB3 Extra Length          0009 (9)\n-2AEB5 Comment Length        0000 (0)\n-2AEB7 Disk Start            0000 (0)\n-2AEB9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2AEBB Ext File Attributes   00000000 (0)\n-2AEBF Local Header Offset   00004725 (18213)\n-2AEC3 Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AEC3: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AED7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AED9   Length              0005 (5)\n-2AEDB   Flags               01 (1) 'Modification'\n-2AEDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2AEE0 CENTRAL HEADER #5     02014B50 (33639248)\n-2AEE4 Created Zip Spec      14 (20) '2.0'\n-2AEE5 Created OS            00 (0) 'MS-DOS'\n-2AEE6 Extract Zip Spec      14 (20) '2.0'\n-2AEE7 Extract OS            00 (0) 'MS-DOS'\n-2AEE8 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2AEEA Compression Method    0000 (0) 'Stored'\n-2AEEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AEF0 CRC                   6BA82C99 (1806183577)\n-2AEF4 Compressed Size       000000A6 (166)\n-2AEF8 Uncompressed Size     000000A6 (166)\n-2AEFC Filename Length       000F (15)\n-2AEFE Extra Length          0009 (9)\n-2AF00 Comment Length        0000 (0)\n-2AF02 Disk Start            0000 (0)\n-2AF04 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2AF06 Ext File Attributes   00000000 (0)\n-2AF0A Local Header Offset   00004789 (18313)\n-2AF0E Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AF0E: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AF1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AF1F   Length              0005 (5)\n-2AF21   Flags               01 (1) 'Modification'\n-2AF22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2AF26 CENTRAL HEADER #6     02014B50 (33639248)\n-2AF2A Created Zip Spec      14 (20) '2.0'\n-2AF2B Created OS            00 (0) 'MS-DOS'\n-2AF2C Extract Zip Spec      14 (20) '2.0'\n-2AF2D Extract OS            00 (0) 'MS-DOS'\n-2AF2E General Purpose Flag  0000 (0)\n-2AF30 Compression Method    0000 (0) 'Stored'\n-2AF32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AF36 CRC                   00000000 (0)\n-2AF3A Compressed Size       00000000 (0)\n-2AF3E Uncompressed Size     00000000 (0)\n-2AF42 Filename Length       000F (15)\n-2AF44 Extra Length          0009 (9)\n-2AF46 Comment Length        0000 (0)\n-2AF48 Disk Start            0000 (0)\n-2AF4A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2AF4C Ext File Attributes   00000000 (0)\n-2AF50 Local Header Offset   00004875 (18549)\n-2AF54 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AF54: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AF63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AF65   Length              0005 (5)\n-2AF67   Flags               01 (1) 'Modification'\n-2AF68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2AF6C CENTRAL HEADER #7     02014B50 (33639248)\n-2AF70 Created Zip Spec      14 (20) '2.0'\n-2AF71 Created OS            00 (0) 'MS-DOS'\n-2AF72 Extract Zip Spec      14 (20) '2.0'\n-2AF73 Extract OS            00 (0) 'MS-DOS'\n-2AF74 General Purpose Flag  0000 (0)\n-2AF76 Compression Method    0000 (0) 'Stored'\n-2AF78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AF7C CRC                   00000000 (0)\n-2AF80 Compressed Size       00000000 (0)\n-2AF84 Uncompressed Size     00000000 (0)\n-2AF88 Filename Length       0018 (24)\n-2AF8A Extra Length          0009 (9)\n-2AF8C Comment Length        0000 (0)\n-2AF8E Disk Start            0000 (0)\n-2AF90 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2AF92 Ext File Attributes   00000000 (0)\n-2AF96 Local Header Offset   000048AB (18603)\n-2AF9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AF9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AFB2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AFB4   Length              0005 (5)\n-2AFB6   Flags               01 (1) 'Modification'\n-2AFB7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2AFBB CENTRAL HEADER #8     02014B50 (33639248)\n-2AFBF Created Zip Spec      14 (20) '2.0'\n-2AFC0 Created OS            00 (0) 'MS-DOS'\n-2AFC1 Extract Zip Spec      14 (20) '2.0'\n-2AFC2 Extract OS            00 (0) 'MS-DOS'\n-2AFC3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2AFC5 Compression Method    0000 (0) 'Stored'\n-2AFC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AFCB CRC                   FCA06F71 (4238372721)\n-2AFCF Compressed Size       00000185 (389)\n-2AFD3 Uncompressed Size     00000185 (389)\n-2AFD7 Filename Length       0040 (64)\n-2AFD9 Extra Length          0009 (9)\n-2AFDB Comment Length        0000 (0)\n-2AFDD Disk Start            0000 (0)\n-2AFDF Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2AFE1 Ext File Attributes   00000000 (0)\n-2AFE5 Local Header Offset   000048EA (18666)\n-2AFE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AFE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B029 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B02B   Length              0005 (5)\n-2B02D   Flags               01 (1) 'Modification'\n-2B02E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B032 CENTRAL HEADER #9     02014B50 (33639248)\n-2B036 Created Zip Spec      14 (20) '2.0'\n-2B037 Created OS            00 (0) 'MS-DOS'\n-2B038 Extract Zip Spec      14 (20) '2.0'\n-2B039 Extract OS            00 (0) 'MS-DOS'\n-2B03A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B03C Compression Method    0000 (0) 'Stored'\n-2B03E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B042 CRC                   16B87389 (381186953)\n-2B046 Compressed Size       000001DC (476)\n-2B04A Uncompressed Size     000001DC (476)\n-2B04E Filename Length       0046 (70)\n-2B050 Extra Length          0009 (9)\n-2B052 Comment Length        0000 (0)\n-2B054 Disk Start            0000 (0)\n-2B056 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B058 Ext File Attributes   00000000 (0)\n-2B05C Local Header Offset   00004AE6 (19174)\n-2B060 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B060: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B0A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B0A8   Length              0005 (5)\n-2B0AA   Flags               01 (1) 'Modification'\n-2B0AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B0AF CENTRAL HEADER #10    02014B50 (33639248)\n-2B0B3 Created Zip Spec      14 (20) '2.0'\n-2B0B4 Created OS            00 (0) 'MS-DOS'\n-2B0B5 Extract Zip Spec      14 (20) '2.0'\n-2B0B6 Extract OS            00 (0) 'MS-DOS'\n-2B0B7 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B0B9 Compression Method    0000 (0) 'Stored'\n-2B0BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B0BF CRC                   66A9E2AF (1722409647)\n-2B0C3 Compressed Size       00000034 (52)\n-2B0C7 Uncompressed Size     00000034 (52)\n-2B0CB Filename Length       0035 (53)\n-2B0CD Extra Length          0009 (9)\n-2B0CF Comment Length        0000 (0)\n-2B0D1 Disk Start            0000 (0)\n-2B0D3 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B0D5 Ext File Attributes   00000000 (0)\n-2B0D9 Local Header Offset   00004D3F (19775)\n-2B0DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B0DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B112 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B114   Length              0005 (5)\n-2B116   Flags               01 (1) 'Modification'\n-2B117   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B11B CENTRAL HEADER #11    02014B50 (33639248)\n-2B11F Created Zip Spec      14 (20) '2.0'\n-2B120 Created OS            00 (0) 'MS-DOS'\n-2B121 Extract Zip Spec      14 (20) '2.0'\n-2B122 Extract OS            00 (0) 'MS-DOS'\n-2B123 General Purpose Flag  0000 (0)\n-2B125 Compression Method    0000 (0) 'Stored'\n-2B127 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B12B CRC                   00000000 (0)\n-2B12F Compressed Size       00000000 (0)\n-2B133 Uncompressed Size     00000000 (0)\n-2B137 Filename Length       000F (15)\n-2B139 Extra Length          0009 (9)\n-2B13B Comment Length        0000 (0)\n-2B13D Disk Start            0000 (0)\n-2B13F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B141 Ext File Attributes   00000000 (0)\n-2B145 Local Header Offset   00004DDF (19935)\n-2B149 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B149: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B158 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B15A   Length              0005 (5)\n-2B15C   Flags               01 (1) 'Modification'\n-2B15D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B161 CENTRAL HEADER #12    02014B50 (33639248)\n-2B165 Created Zip Spec      14 (20) '2.0'\n-2B166 Created OS            00 (0) 'MS-DOS'\n-2B167 Extract Zip Spec      14 (20) '2.0'\n-2B168 Extract OS            00 (0) 'MS-DOS'\n-2B169 General Purpose Flag  0000 (0)\n-2B16B Compression Method    0000 (0) 'Stored'\n-2B16D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B171 CRC                   00000000 (0)\n-2B175 Compressed Size       00000000 (0)\n-2B179 Uncompressed Size     00000000 (0)\n-2B17D Filename Length       0020 (32)\n-2B17F Extra Length          0009 (9)\n-2B181 Comment Length        0000 (0)\n-2B183 Disk Start            0000 (0)\n-2B185 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B187 Ext File Attributes   00000000 (0)\n-2B18B Local Header Offset   00004E15 (19989)\n-2B18F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B18F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B1AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B1B1   Length              0005 (5)\n-2B1B3   Flags               01 (1) 'Modification'\n-2B1B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B1B8 CENTRAL HEADER #13    02014B50 (33639248)\n-2B1BC Created Zip Spec      14 (20) '2.0'\n-2B1BD Created OS            00 (0) 'MS-DOS'\n-2B1BE Extract Zip Spec      14 (20) '2.0'\n-2B1BF Extract OS            00 (0) 'MS-DOS'\n-2B1C0 General Purpose Flag  0000 (0)\n-2B1C2 Compression Method    0000 (0) 'Stored'\n-2B1C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B1C8 CRC                   00000000 (0)\n-2B1CC Compressed Size       00000000 (0)\n-2B1D0 Uncompressed Size     00000000 (0)\n-2B1D4 Filename Length       002A (42)\n-2B1D6 Extra Length          0009 (9)\n-2B1D8 Comment Length        0000 (0)\n-2B1DA Disk Start            0000 (0)\n-2B1DC Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B1DE Ext File Attributes   00000000 (0)\n-2B1E2 Local Header Offset   00004E5C (20060)\n-2B1E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B1E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B210 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B212   Length              0005 (5)\n-2B214   Flags               01 (1) 'Modification'\n-2B215   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B219 CENTRAL HEADER #14    02014B50 (33639248)\n-2B21D Created Zip Spec      14 (20) '2.0'\n-2B21E Created OS            00 (0) 'MS-DOS'\n-2B21F Extract Zip Spec      14 (20) '2.0'\n-2B220 Extract OS            00 (0) 'MS-DOS'\n-2B221 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B223 Compression Method    0000 (0) 'Stored'\n-2B225 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B229 CRC                   00000000 (0)\n-2B22D Compressed Size       00000000 (0)\n-2B231 Uncompressed Size     00000000 (0)\n-2B235 Filename Length       0038 (56)\n-2B237 Extra Length          0009 (9)\n-2B239 Comment Length        0000 (0)\n-2B23B Disk Start            0000 (0)\n-2B23D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B23F Ext File Attributes   00000000 (0)\n-2B243 Local Header Offset   00004EAD (20141)\n-2B247 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B247: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B27F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B281   Length              0005 (5)\n-2B283   Flags               01 (1) 'Modification'\n-2B284   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B288 CENTRAL HEADER #15    02014B50 (33639248)\n-2B28C Created Zip Spec      14 (20) '2.0'\n-2B28D Created OS            00 (0) 'MS-DOS'\n-2B28E Extract Zip Spec      14 (20) '2.0'\n-2B28F Extract OS            00 (0) 'MS-DOS'\n-2B290 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B292 Compression Method    0000 (0) 'Stored'\n-2B294 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B298 CRC                   17F3C42C (401851436)\n-2B29C Compressed Size       00000B8A (2954)\n-2B2A0 Uncompressed Size     00000B8A (2954)\n-2B2A4 Filename Length       0031 (49)\n-2B2A6 Extra Length          0009 (9)\n-2B2A8 Comment Length        0000 (0)\n-2B2AA Disk Start            0000 (0)\n-2B2AC Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B2AE Ext File Attributes   00000000 (0)\n-2B2B2 Local Header Offset   00004F1C (20252)\n-2B2B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B2B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B2E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B2E9   Length              0005 (5)\n-2B2EB   Flags               01 (1) 'Modification'\n-2B2EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B2F0 CENTRAL HEADER #16    02014B50 (33639248)\n-2B2F4 Created Zip Spec      14 (20) '2.0'\n-2B2F5 Created OS            00 (0) 'MS-DOS'\n-2B2F6 Extract Zip Spec      14 (20) '2.0'\n-2B2F7 Extract OS            00 (0) 'MS-DOS'\n-2B2F8 General Purpose Flag  0000 (0)\n-2B2FA Compression Method    0000 (0) 'Stored'\n-2B2FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B300 CRC                   00000000 (0)\n-2B304 Compressed Size       00000000 (0)\n-2B308 Uncompressed Size     00000000 (0)\n-2B30C Filename Length       0004 (4)\n-2B30E Extra Length          0009 (9)\n-2B310 Comment Length        0000 (0)\n-2B312 Disk Start            0000 (0)\n-2B314 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B316 Ext File Attributes   00000000 (0)\n-2B31A Local Header Offset   00005B0E (23310)\n-2B31E Filename              'XXXX'\n-#\n-# WARNING: Offset 0x2B31E: Filename 'XXXX'\n-#          Zero length filename\n-#\n-2B322 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B324   Length              0005 (5)\n-2B326   Flags               01 (1) 'Modification'\n-2B327   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B32B CENTRAL HEADER #17    02014B50 (33639248)\n-2B32F Created Zip Spec      14 (20) '2.0'\n-2B330 Created OS            00 (0) 'MS-DOS'\n-2B331 Extract Zip Spec      14 (20) '2.0'\n-2B332 Extract OS            00 (0) 'MS-DOS'\n-2B333 General Purpose Flag  0000 (0)\n-2B335 Compression Method    0000 (0) 'Stored'\n-2B337 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B33B CRC                   00000000 (0)\n-2B33F Compressed Size       00000000 (0)\n-2B343 Uncompressed Size     00000000 (0)\n-2B347 Filename Length       000B (11)\n-2B349 Extra Length          0009 (9)\n-2B34B Comment Length        0000 (0)\n-2B34D Disk Start            0000 (0)\n-2B34F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B351 Ext File Attributes   00000000 (0)\n-2B355 Local Header Offset   00005B39 (23353)\n-2B359 Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B359: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B364 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B366   Length              0005 (5)\n-2B368   Flags               01 (1) 'Modification'\n-2B369   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B36D CENTRAL HEADER #18    02014B50 (33639248)\n-2B371 Created Zip Spec      14 (20) '2.0'\n-2B372 Created OS            00 (0) 'MS-DOS'\n-2B373 Extract Zip Spec      14 (20) '2.0'\n-2B374 Extract OS            00 (0) 'MS-DOS'\n-2B375 General Purpose Flag  0000 (0)\n-2B377 Compression Method    0000 (0) 'Stored'\n-2B379 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B37D CRC                   00000000 (0)\n-2B381 Compressed Size       00000000 (0)\n-2B385 Uncompressed Size     00000000 (0)\n-2B389 Filename Length       0011 (17)\n-2B38B Extra Length          0009 (9)\n-2B38D Comment Length        0000 (0)\n-2B38F Disk Start            0000 (0)\n-2B391 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B393 Ext File Attributes   00000000 (0)\n-2B397 Local Header Offset   00005B6B (23403)\n-2B39B Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B39B: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B3AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B3AE   Length              0005 (5)\n-2B3B0   Flags               01 (1) 'Modification'\n-2B3B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B3B5 CENTRAL HEADER #19    02014B50 (33639248)\n-2B3B9 Created Zip Spec      14 (20) '2.0'\n-2B3BA Created OS            00 (0) 'MS-DOS'\n-2B3BB Extract Zip Spec      14 (20) '2.0'\n-2B3BC Extract OS            00 (0) 'MS-DOS'\n-2B3BD General Purpose Flag  0000 (0)\n-2B3BF Compression Method    0000 (0) 'Stored'\n-2B3C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B3C5 CRC                   00000000 (0)\n-2B3C9 Compressed Size       00000000 (0)\n-2B3CD Uncompressed Size     00000000 (0)\n-2B3D1 Filename Length       0015 (21)\n-2B3D3 Extra Length          0009 (9)\n-2B3D5 Comment Length        0000 (0)\n-2B3D7 Disk Start            0000 (0)\n-2B3D9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B3DB Ext File Attributes   00000000 (0)\n-2B3DF Local Header Offset   00005BA3 (23459)\n-2B3E3 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B3E3: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B3F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B3FA   Length              0005 (5)\n-2B3FC   Flags               01 (1) 'Modification'\n-2B3FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B401 CENTRAL HEADER #20    02014B50 (33639248)\n-2B405 Created Zip Spec      14 (20) '2.0'\n-2B406 Created OS            00 (0) 'MS-DOS'\n-2B407 Extract Zip Spec      14 (20) '2.0'\n-2B408 Extract OS            00 (0) 'MS-DOS'\n-2B409 General Purpose Flag  0000 (0)\n-2B40B Compression Method    0000 (0) 'Stored'\n-2B40D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B411 CRC                   00000000 (0)\n-2B415 Compressed Size       00000000 (0)\n-2B419 Uncompressed Size     00000000 (0)\n-2B41D Filename Length       001D (29)\n-2B41F Extra Length          0009 (9)\n-2B421 Comment Length        0000 (0)\n-2B423 Disk Start            0000 (0)\n-2B425 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B427 Ext File Attributes   00000000 (0)\n-2B42B Local Header Offset   00005BDF (23519)\n-2B42F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B42F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B44C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B44E   Length              0005 (5)\n-2B450   Flags               01 (1) 'Modification'\n-2B451   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B455 CENTRAL HEADER #21    02014B50 (33639248)\n-2B459 Created Zip Spec      14 (20) '2.0'\n-2B45A Created OS            00 (0) 'MS-DOS'\n-2B45B Extract Zip Spec      14 (20) '2.0'\n-2B45C Extract OS            00 (0) 'MS-DOS'\n-2B45D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B45F Compression Method    0000 (0) 'Stored'\n-2B461 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B465 CRC                   FE44AB9A (4265913242)\n-2B469 Compressed Size       000003F7 (1015)\n-2B46D Uncompressed Size     000003F7 (1015)\n-2B471 Filename Length       002D (45)\n-2B473 Extra Length          0009 (9)\n-2B475 Comment Length        0000 (0)\n-2B477 Disk Start            0000 (0)\n-2B479 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B47B Ext File Attributes   00000000 (0)\n-2B47F Local Header Offset   00005C23 (23587)\n-2B483 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B483: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B4B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B4B2   Length              0005 (5)\n-2B4B4   Flags               01 (1) 'Modification'\n-2B4B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B4B9 CENTRAL HEADER #22    02014B50 (33639248)\n-2B4BD Created Zip Spec      14 (20) '2.0'\n-2B4BE Created OS            00 (0) 'MS-DOS'\n-2B4BF Extract Zip Spec      14 (20) '2.0'\n-2B4C0 Extract OS            00 (0) 'MS-DOS'\n-2B4C1 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B4C3 Compression Method    0000 (0) 'Stored'\n-2B4C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B4C9 CRC                   C783A617 (3347293719)\n-2B4CD Compressed Size       00000880 (2176)\n-2B4D1 Uncompressed Size     00000880 (2176)\n-2B4D5 Filename Length       0030 (48)\n-2B4D7 Extra Length          0009 (9)\n-2B4D9 Comment Length        0000 (0)\n-2B4DB Disk Start            0000 (0)\n-2B4DD Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B4DF Ext File Attributes   00000000 (0)\n-2B4E3 Local Header Offset   0000607E (24702)\n-2B4E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B4E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B517 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B519   Length              0005 (5)\n-2B51B   Flags               01 (1) 'Modification'\n-2B51C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B520 CENTRAL HEADER #23    02014B50 (33639248)\n-2B524 Created Zip Spec      14 (20) '2.0'\n-2B525 Created OS            00 (0) 'MS-DOS'\n-2B526 Extract Zip Spec      14 (20) '2.0'\n-2B527 Extract OS            00 (0) 'MS-DOS'\n-2B528 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B52A Compression Method    0000 (0) 'Stored'\n-2B52C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B530 CRC                   F2C44151 (4072948049)\n-2B534 Compressed Size       000004A6 (1190)\n-2B538 Uncompressed Size     000004A6 (1190)\n-2B53C Filename Length       0037 (55)\n-2B53E Extra Length          0009 (9)\n-2B540 Comment Length        0000 (0)\n-2B542 Disk Start            0000 (0)\n-2B544 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B546 Ext File Attributes   00000000 (0)\n-2B54A Local Header Offset   00006965 (26981)\n-2B54E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B54E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B585 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B587   Length              0005 (5)\n-2B589   Flags               01 (1) 'Modification'\n-2B58A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B58E CENTRAL HEADER #24    02014B50 (33639248)\n-2B592 Created Zip Spec      14 (20) '2.0'\n-2B593 Created OS            00 (0) 'MS-DOS'\n-2B594 Extract Zip Spec      14 (20) '2.0'\n-2B595 Extract OS            00 (0) 'MS-DOS'\n-2B596 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B598 Compression Method    0000 (0) 'Stored'\n-2B59A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B59E CRC                   D40E78F4 (3557718260)\n-2B5A2 Compressed Size       000004A8 (1192)\n-2B5A6 Uncompressed Size     000004A8 (1192)\n-2B5AA Filename Length       0031 (49)\n-2B5AC Extra Length          0009 (9)\n-2B5AE Comment Length        0000 (0)\n-2B5B0 Disk Start            0000 (0)\n-2B5B2 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B5B4 Ext File Attributes   00000000 (0)\n-2B5B8 Local Header Offset   00006E79 (28281)\n-2B5BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B5BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B5ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B5EF   Length              0005 (5)\n-2B5F1   Flags               01 (1) 'Modification'\n-2B5F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B5F6 CENTRAL HEADER #25    02014B50 (33639248)\n-2B5FA Created Zip Spec      14 (20) '2.0'\n-2B5FB Created OS            00 (0) 'MS-DOS'\n-2B5FC Extract Zip Spec      14 (20) '2.0'\n-2B5FD Extract OS            00 (0) 'MS-DOS'\n-2B5FE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B600 Compression Method    0000 (0) 'Stored'\n-2B602 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B606 CRC                   2A63E263 (711189091)\n-2B60A Compressed Size       0000061D (1565)\n-2B60E Uncompressed Size     0000061D (1565)\n-2B612 Filename Length       0038 (56)\n-2B614 Extra Length          0009 (9)\n-2B616 Comment Length        0000 (0)\n-2B618 Disk Start            0000 (0)\n-2B61A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B61C Ext File Attributes   00000000 (0)\n-2B620 Local Header Offset   00007389 (29577)\n-2B624 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B624: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B65C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B65E   Length              0005 (5)\n-2B660   Flags               01 (1) 'Modification'\n-2B661   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B665 CENTRAL HEADER #26    02014B50 (33639248)\n-2B669 Created Zip Spec      14 (20) '2.0'\n-2B66A Created OS            00 (0) 'MS-DOS'\n-2B66B Extract Zip Spec      14 (20) '2.0'\n-2B66C Extract OS            00 (0) 'MS-DOS'\n-2B66D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B66F Compression Method    0000 (0) 'Stored'\n-2B671 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B675 CRC                   D473D979 (3564362105)\n-2B679 Compressed Size       00000400 (1024)\n-2B67D Uncompressed Size     00000400 (1024)\n-2B681 Filename Length       0038 (56)\n-2B683 Extra Length          0009 (9)\n-2B685 Comment Length        0000 (0)\n-2B687 Disk Start            0000 (0)\n-2B689 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B68B Ext File Attributes   00000000 (0)\n-2B68F Local Header Offset   00007A15 (31253)\n-2B693 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B693: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B6CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B6CD   Length              0005 (5)\n-2B6CF   Flags               01 (1) 'Modification'\n-2B6D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B6D4 CENTRAL HEADER #27    02014B50 (33639248)\n-2B6D8 Created Zip Spec      14 (20) '2.0'\n-2B6D9 Created OS            00 (0) 'MS-DOS'\n-2B6DA Extract Zip Spec      14 (20) '2.0'\n-2B6DB Extract OS            00 (0) 'MS-DOS'\n-2B6DC General Purpose Flag  0000 (0)\n-2B6DE Compression Method    0000 (0) 'Stored'\n-2B6E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B6E4 CRC                   00000000 (0)\n-2B6E8 Compressed Size       00000000 (0)\n-2B6EC Uncompressed Size     00000000 (0)\n-2B6F0 Filename Length       0028 (40)\n-2B6F2 Extra Length          0009 (9)\n-2B6F4 Comment Length        0000 (0)\n-2B6F6 Disk Start            0000 (0)\n-2B6F8 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B6FA Ext File Attributes   00000000 (0)\n-2B6FE Local Header Offset   00007E84 (32388)\n-2B702 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B702: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B72A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B72C   Length              0005 (5)\n-2B72E   Flags               01 (1) 'Modification'\n-2B72F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B733 CENTRAL HEADER #28    02014B50 (33639248)\n-2B737 Created Zip Spec      14 (20) '2.0'\n-2B738 Created OS            00 (0) 'MS-DOS'\n-2B739 Extract Zip Spec      14 (20) '2.0'\n-2B73A Extract OS            00 (0) 'MS-DOS'\n-2B73B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B73D Compression Method    0000 (0) 'Stored'\n-2B73F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B743 CRC                   45D6532E (1171673902)\n-2B747 Compressed Size       00000647 (1607)\n-2B74B Uncompressed Size     00000647 (1607)\n-2B74F Filename Length       0030 (48)\n-2B751 Extra Length          0009 (9)\n-2B753 Comment Length        0000 (0)\n-2B755 Disk Start            0000 (0)\n-2B757 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B759 Ext File Attributes   00000000 (0)\n-2B75D Local Header Offset   00007ED3 (32467)\n-2B761 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B761: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B791 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B793   Length              0005 (5)\n-2B795   Flags               01 (1) 'Modification'\n-2B796   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B79A CENTRAL HEADER #29    02014B50 (33639248)\n-2B79E Created Zip Spec      14 (20) '2.0'\n-2B79F Created OS            00 (0) 'MS-DOS'\n-2B7A0 Extract Zip Spec      14 (20) '2.0'\n-2B7A1 Extract OS            00 (0) 'MS-DOS'\n-2B7A2 General Purpose Flag  0000 (0)\n-2B7A4 Compression Method    0000 (0) 'Stored'\n-2B7A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B7AA CRC                   00000000 (0)\n-2B7AE Compressed Size       00000000 (0)\n-2B7B2 Uncompressed Size     00000000 (0)\n-2B7B6 Filename Length       0025 (37)\n-2B7B8 Extra Length          0009 (9)\n-2B7BA Comment Length        0000 (0)\n-2B7BC Disk Start            0000 (0)\n-2B7BE Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B7C0 Ext File Attributes   00000000 (0)\n-2B7C4 Local Header Offset   00008581 (34177)\n-2B7C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B7C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B7ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B7EF   Length              0005 (5)\n-2B7F1   Flags               01 (1) 'Modification'\n-2B7F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B7F6 CENTRAL HEADER #30    02014B50 (33639248)\n-2B7FA Created Zip Spec      14 (20) '2.0'\n-2B7FB Created OS            00 (0) 'MS-DOS'\n-2B7FC Extract Zip Spec      14 (20) '2.0'\n-2B7FD Extract OS            00 (0) 'MS-DOS'\n-2B7FE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B800 Compression Method    0000 (0) 'Stored'\n-2B802 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B806 CRC                   D812ECFA (3625118970)\n-2B80A Compressed Size       00000F93 (3987)\n-2B80E Uncompressed Size     00000F93 (3987)\n-2B812 Filename Length       003C (60)\n-2B814 Extra Length          0009 (9)\n-2B816 Comment Length        0000 (0)\n-2B818 Disk Start            0000 (0)\n-2B81A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B81C Ext File Attributes   00000000 (0)\n-2B820 Local Header Offset   000085CD (34253)\n-2B824 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B824: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B860 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B862   Length              0005 (5)\n-2B864   Flags               01 (1) 'Modification'\n-2B865   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B869 CENTRAL HEADER #31    02014B50 (33639248)\n-2B86D Created Zip Spec      14 (20) '2.0'\n-2B86E Created OS            00 (0) 'MS-DOS'\n-2B86F Extract Zip Spec      14 (20) '2.0'\n-2B870 Extract OS            00 (0) 'MS-DOS'\n-2B871 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B873 Compression Method    0000 (0) 'Stored'\n-2B875 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B879 CRC                   E1096065 (3775488101)\n-2B87D Compressed Size       000006BD (1725)\n-2B881 Uncompressed Size     000006BD (1725)\n-2B885 Filename Length       003E (62)\n-2B887 Extra Length          0009 (9)\n-2B889 Comment Length        0000 (0)\n-2B88B Disk Start            0000 (0)\n-2B88D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B88F Ext File Attributes   00000000 (0)\n-2B893 Local Header Offset   000095D3 (38355)\n-2B897 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B897: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B8D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B8D7   Length              0005 (5)\n-2B8D9   Flags               01 (1) 'Modification'\n-2B8DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B8DE CENTRAL HEADER #32    02014B50 (33639248)\n-2B8E2 Created Zip Spec      14 (20) '2.0'\n-2B8E3 Created OS            00 (0) 'MS-DOS'\n-2B8E4 Extract Zip Spec      14 (20) '2.0'\n-2B8E5 Extract OS            00 (0) 'MS-DOS'\n-2B8E6 General Purpose Flag  0000 (0)\n-2B8E8 Compression Method    0000 (0) 'Stored'\n-2B8EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B8EE CRC                   00000000 (0)\n-2B8F2 Compressed Size       00000000 (0)\n-2B8F6 Uncompressed Size     00000000 (0)\n-2B8FA Filename Length       0022 (34)\n-2B8FC Extra Length          0009 (9)\n-2B8FE Comment Length        0000 (0)\n-2B900 Disk Start            0000 (0)\n-2B902 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B904 Ext File Attributes   00000000 (0)\n-2B908 Local Header Offset   00009D05 (40197)\n-2B90C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B90C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B92E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B930   Length              0005 (5)\n-2B932   Flags               01 (1) 'Modification'\n-2B933   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B937 CENTRAL HEADER #33    02014B50 (33639248)\n-2B93B Created Zip Spec      14 (20) '2.0'\n-2B93C Created OS            00 (0) 'MS-DOS'\n-2B93D Extract Zip Spec      14 (20) '2.0'\n-2B93E Extract OS            00 (0) 'MS-DOS'\n-2B93F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B941 Compression Method    0000 (0) 'Stored'\n-2B943 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B947 CRC                   86EEED41 (2263805249)\n-2B94B Compressed Size       00000E84 (3716)\n-2B94F Uncompressed Size     00000E84 (3716)\n-2B953 Filename Length       002B (43)\n-2B955 Extra Length          0009 (9)\n-2B957 Comment Length        0000 (0)\n-2B959 Disk Start            0000 (0)\n-2B95B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B95D Ext File Attributes   00000000 (0)\n-2B961 Local Header Offset   00009D4E (40270)\n-2B965 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B965: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B990 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B992   Length              0005 (5)\n-2B994   Flags               01 (1) 'Modification'\n-2B995   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B999 CENTRAL HEADER #34    02014B50 (33639248)\n-2B99D Created Zip Spec      14 (20) '2.0'\n-2B99E Created OS            00 (0) 'MS-DOS'\n-2B99F Extract Zip Spec      14 (20) '2.0'\n-2B9A0 Extract OS            00 (0) 'MS-DOS'\n-2B9A1 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2B9A3 Compression Method    0000 (0) 'Stored'\n-2B9A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B9A9 CRC                   1E97BBCE (513260494)\n-2B9AD Compressed Size       00000D38 (3384)\n-2B9B1 Uncompressed Size     00000D38 (3384)\n-2B9B5 Filename Length       0029 (41)\n-2B9B7 Extra Length          0009 (9)\n-2B9B9 Comment Length        0000 (0)\n-2B9BB Disk Start            0000 (0)\n-2B9BD Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2B9BF Ext File Attributes   00000000 (0)\n-2B9C3 Local Header Offset   0000AC34 (44084)\n-2B9C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B9C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B9F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B9F2   Length              0005 (5)\n-2B9F4   Flags               01 (1) 'Modification'\n-2B9F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2B9F9 CENTRAL HEADER #35    02014B50 (33639248)\n-2B9FD Created Zip Spec      14 (20) '2.0'\n-2B9FE Created OS            00 (0) 'MS-DOS'\n-2B9FF Extract Zip Spec      14 (20) '2.0'\n-2BA00 Extract OS            00 (0) 'MS-DOS'\n-2BA01 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BA03 Compression Method    0000 (0) 'Stored'\n-2BA05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BA09 CRC                   5DD1BF6F (1574027119)\n-2BA0D Compressed Size       00000D02 (3330)\n-2BA11 Uncompressed Size     00000D02 (3330)\n-2BA15 Filename Length       002E (46)\n-2BA17 Extra Length          0009 (9)\n-2BA19 Comment Length        0000 (0)\n-2BA1B Disk Start            0000 (0)\n-2BA1D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BA1F Ext File Attributes   00000000 (0)\n-2BA23 Local Header Offset   0000B9CC (47564)\n-2BA27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BA27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BA55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BA57   Length              0005 (5)\n-2BA59   Flags               01 (1) 'Modification'\n-2BA5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BA5E CENTRAL HEADER #36    02014B50 (33639248)\n-2BA62 Created Zip Spec      14 (20) '2.0'\n-2BA63 Created OS            00 (0) 'MS-DOS'\n-2BA64 Extract Zip Spec      14 (20) '2.0'\n-2BA65 Extract OS            00 (0) 'MS-DOS'\n-2BA66 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BA68 Compression Method    0000 (0) 'Stored'\n-2BA6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BA6E CRC                   677CD800 (1736235008)\n-2BA72 Compressed Size       00000D35 (3381)\n-2BA76 Uncompressed Size     00000D35 (3381)\n-2BA7A Filename Length       002D (45)\n-2BA7C Extra Length          0009 (9)\n-2BA7E Comment Length        0000 (0)\n-2BA80 Disk Start            0000 (0)\n-2BA82 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BA84 Ext File Attributes   00000000 (0)\n-2BA88 Local Header Offset   0000C733 (50995)\n-2BA8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BA8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BAB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BABB   Length              0005 (5)\n-2BABD   Flags               01 (1) 'Modification'\n-2BABE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BAC2 CENTRAL HEADER #37    02014B50 (33639248)\n-2BAC6 Created Zip Spec      14 (20) '2.0'\n-2BAC7 Created OS            00 (0) 'MS-DOS'\n-2BAC8 Extract Zip Spec      14 (20) '2.0'\n-2BAC9 Extract OS            00 (0) 'MS-DOS'\n-2BACA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BACC Compression Method    0000 (0) 'Stored'\n-2BACE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BAD2 CRC                   15091C1F (352918559)\n-2BAD6 Compressed Size       00000B30 (2864)\n-2BADA Uncompressed Size     00000B30 (2864)\n-2BADE Filename Length       0036 (54)\n-2BAE0 Extra Length          0009 (9)\n-2BAE2 Comment Length        0000 (0)\n-2BAE4 Disk Start            0000 (0)\n-2BAE6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BAE8 Ext File Attributes   00000000 (0)\n-2BAEC Local Header Offset   0000D4CC (54476)\n-2BAF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BAF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BB26 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BB28   Length              0005 (5)\n-2BB2A   Flags               01 (1) 'Modification'\n-2BB2B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BB2F CENTRAL HEADER #38    02014B50 (33639248)\n-2BB33 Created Zip Spec      14 (20) '2.0'\n-2BB34 Created OS            00 (0) 'MS-DOS'\n-2BB35 Extract Zip Spec      14 (20) '2.0'\n-2BB36 Extract OS            00 (0) 'MS-DOS'\n-2BB37 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BB39 Compression Method    0000 (0) 'Stored'\n-2BB3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BB3F CRC                   AADA64B2 (2866439346)\n-2BB43 Compressed Size       00000519 (1305)\n-2BB47 Uncompressed Size     00000519 (1305)\n-2BB4B Filename Length       002B (43)\n-2BB4D Extra Length          0009 (9)\n-2BB4F Comment Length        0000 (0)\n-2BB51 Disk Start            0000 (0)\n-2BB53 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BB55 Ext File Attributes   00000000 (0)\n-2BB59 Local Header Offset   0000E069 (57449)\n-2BB5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BB5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BB88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BB8A   Length              0005 (5)\n-2BB8C   Flags               01 (1) 'Modification'\n-2BB8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BB91 CENTRAL HEADER #39    02014B50 (33639248)\n-2BB95 Created Zip Spec      14 (20) '2.0'\n-2BB96 Created OS            00 (0) 'MS-DOS'\n-2BB97 Extract Zip Spec      14 (20) '2.0'\n-2BB98 Extract OS            00 (0) 'MS-DOS'\n-2BB99 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BB9B Compression Method    0000 (0) 'Stored'\n-2BB9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BBA1 CRC                   CD1091C2 (3440415170)\n-2BBA5 Compressed Size       00001084 (4228)\n-2BBA9 Uncompressed Size     00001084 (4228)\n-2BBAD Filename Length       002C (44)\n-2BBAF Extra Length          0009 (9)\n-2BBB1 Comment Length        0000 (0)\n-2BBB3 Disk Start            0000 (0)\n-2BBB5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BBB7 Ext File Attributes   00000000 (0)\n-2BBBB Local Header Offset   0000E5E4 (58852)\n-2BBBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BBBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BBEB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BBED   Length              0005 (5)\n-2BBEF   Flags               01 (1) 'Modification'\n-2BBF0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BBF4 CENTRAL HEADER #40    02014B50 (33639248)\n-2BBF8 Created Zip Spec      14 (20) '2.0'\n-2BBF9 Created OS            00 (0) 'MS-DOS'\n-2BBFA Extract Zip Spec      14 (20) '2.0'\n-2BBFB Extract OS            00 (0) 'MS-DOS'\n-2BBFC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BBFE Compression Method    0000 (0) 'Stored'\n-2BC00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BC04 CRC                   CA6DC12E (3396190510)\n-2BC08 Compressed Size       00000600 (1536)\n-2BC0C Uncompressed Size     00000600 (1536)\n-2BC10 Filename Length       002E (46)\n-2BC12 Extra Length          0009 (9)\n-2BC14 Comment Length        0000 (0)\n-2BC16 Disk Start            0000 (0)\n-2BC18 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BC1A Ext File Attributes   00000000 (0)\n-2BC1E Local Header Offset   0000F6CB (63179)\n-2BC22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BC22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BC50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BC52   Length              0005 (5)\n-2BC54   Flags               01 (1) 'Modification'\n-2BC55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BC59 CENTRAL HEADER #41    02014B50 (33639248)\n-2BC5D Created Zip Spec      14 (20) '2.0'\n-2BC5E Created OS            00 (0) 'MS-DOS'\n-2BC5F Extract Zip Spec      14 (20) '2.0'\n-2BC60 Extract OS            00 (0) 'MS-DOS'\n-2BC61 General Purpose Flag  0000 (0)\n-2BC63 Compression Method    0000 (0) 'Stored'\n-2BC65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BC69 CRC                   00000000 (0)\n-2BC6D Compressed Size       00000000 (0)\n-2BC71 Uncompressed Size     00000000 (0)\n-2BC75 Filename Length       0022 (34)\n-2BC77 Extra Length          0009 (9)\n-2BC79 Comment Length        0000 (0)\n-2BC7B Disk Start            0000 (0)\n-2BC7D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BC7F Ext File Attributes   00000000 (0)\n-2BC83 Local Header Offset   0000FD30 (64816)\n-2BC87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BC87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BCA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BCAB   Length              0005 (5)\n-2BCAD   Flags               01 (1) 'Modification'\n-2BCAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BCB2 CENTRAL HEADER #42    02014B50 (33639248)\n-2BCB6 Created Zip Spec      14 (20) '2.0'\n-2BCB7 Created OS            00 (0) 'MS-DOS'\n-2BCB8 Extract Zip Spec      14 (20) '2.0'\n-2BCB9 Extract OS            00 (0) 'MS-DOS'\n-2BCBA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BCBC Compression Method    0000 (0) 'Stored'\n-2BCBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BCC2 CRC                   8BEA30C0 (2347380928)\n-2BCC6 Compressed Size       00000893 (2195)\n-2BCCA Uncompressed Size     00000893 (2195)\n-2BCCE Filename Length       0034 (52)\n-2BCD0 Extra Length          0009 (9)\n-2BCD2 Comment Length        0000 (0)\n-2BCD4 Disk Start            0000 (0)\n-2BCD6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BCD8 Ext File Attributes   00000000 (0)\n-2BCDC Local Header Offset   0000FD79 (64889)\n-2BCE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BCE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BD14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BD16   Length              0005 (5)\n-2BD18   Flags               01 (1) 'Modification'\n-2BD19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BD1D CENTRAL HEADER #43    02014B50 (33639248)\n-2BD21 Created Zip Spec      14 (20) '2.0'\n-2BD22 Created OS            00 (0) 'MS-DOS'\n-2BD23 Extract Zip Spec      14 (20) '2.0'\n-2BD24 Extract OS            00 (0) 'MS-DOS'\n-2BD25 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BD27 Compression Method    0000 (0) 'Stored'\n-2BD29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BD2D CRC                   9A0D91FA (2584580602)\n-2BD31 Compressed Size       00000A9D (2717)\n-2BD35 Uncompressed Size     00000A9D (2717)\n-2BD39 Filename Length       0038 (56)\n-2BD3B Extra Length          0009 (9)\n-2BD3D Comment Length        0000 (0)\n-2BD3F Disk Start            0000 (0)\n-2BD41 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BD43 Ext File Attributes   00000000 (0)\n-2BD47 Local Header Offset   00010677 (67191)\n-2BD4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BD4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BD83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BD85   Length              0005 (5)\n-2BD87   Flags               01 (1) 'Modification'\n-2BD88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BD8C CENTRAL HEADER #44    02014B50 (33639248)\n-2BD90 Created Zip Spec      14 (20) '2.0'\n-2BD91 Created OS            00 (0) 'MS-DOS'\n-2BD92 Extract Zip Spec      14 (20) '2.0'\n-2BD93 Extract OS            00 (0) 'MS-DOS'\n-2BD94 General Purpose Flag  0000 (0)\n-2BD96 Compression Method    0000 (0) 'Stored'\n-2BD98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BD9C CRC                   00000000 (0)\n-2BDA0 Compressed Size       00000000 (0)\n-2BDA4 Uncompressed Size     00000000 (0)\n-2BDA8 Filename Length       001C (28)\n-2BDAA Extra Length          0009 (9)\n-2BDAC Comment Length        0000 (0)\n-2BDAE Disk Start            0000 (0)\n-2BDB0 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BDB2 Ext File Attributes   00000000 (0)\n-2BDB6 Local Header Offset   00011183 (70019)\n-2BDBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BDBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BDD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BDD8   Length              0005 (5)\n-2BDDA   Flags               01 (1) 'Modification'\n-2BDDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BDDF CENTRAL HEADER #45    02014B50 (33639248)\n-2BDE3 Created Zip Spec      14 (20) '2.0'\n-2BDE4 Created OS            00 (0) 'MS-DOS'\n-2BDE5 Extract Zip Spec      14 (20) '2.0'\n-2BDE6 Extract OS            00 (0) 'MS-DOS'\n-2BDE7 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BDE9 Compression Method    0000 (0) 'Stored'\n-2BDEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BDEF CRC                   93C23403 (2478978051)\n-2BDF3 Compressed Size       000003DE (990)\n-2BDF7 Uncompressed Size     000003DE (990)\n-2BDFB Filename Length       002D (45)\n-2BDFD Extra Length          0009 (9)\n-2BDFF Comment Length        0000 (0)\n-2BE01 Disk Start            0000 (0)\n-2BE03 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BE05 Ext File Attributes   00000000 (0)\n-2BE09 Local Header Offset   000111C6 (70086)\n-2BE0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BE0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BE3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BE3C   Length              0005 (5)\n-2BE3E   Flags               01 (1) 'Modification'\n-2BE3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BE43 CENTRAL HEADER #46    02014B50 (33639248)\n-2BE47 Created Zip Spec      14 (20) '2.0'\n-2BE48 Created OS            00 (0) 'MS-DOS'\n-2BE49 Extract Zip Spec      14 (20) '2.0'\n-2BE4A Extract OS            00 (0) 'MS-DOS'\n-2BE4B General Purpose Flag  0000 (0)\n-2BE4D Compression Method    0000 (0) 'Stored'\n-2BE4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BE53 CRC                   00000000 (0)\n-2BE57 Compressed Size       00000000 (0)\n-2BE5B Uncompressed Size     00000000 (0)\n-2BE5F Filename Length       001C (28)\n-2BE61 Extra Length          0009 (9)\n-2BE63 Comment Length        0000 (0)\n-2BE65 Disk Start            0000 (0)\n-2BE67 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BE69 Ext File Attributes   00000000 (0)\n-2BE6D Local Header Offset   00011608 (71176)\n-2BE71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BE71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BE8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BE8F   Length              0005 (5)\n-2BE91   Flags               01 (1) 'Modification'\n-2BE92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BE96 CENTRAL HEADER #47    02014B50 (33639248)\n-2BE9A Created Zip Spec      14 (20) '2.0'\n-2BE9B Created OS            00 (0) 'MS-DOS'\n-2BE9C Extract Zip Spec      14 (20) '2.0'\n-2BE9D Extract OS            00 (0) 'MS-DOS'\n-2BE9E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BEA0 Compression Method    0000 (0) 'Stored'\n-2BEA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BEA6 CRC                   FA05AB13 (4194675475)\n-2BEAA Compressed Size       00000B10 (2832)\n-2BEAE Uncompressed Size     00000B10 (2832)\n-2BEB2 Filename Length       0034 (52)\n-2BEB4 Extra Length          0009 (9)\n-2BEB6 Comment Length        0000 (0)\n-2BEB8 Disk Start            0000 (0)\n-2BEBA Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BEBC Ext File Attributes   00000000 (0)\n-2BEC0 Local Header Offset   0001164B (71243)\n-2BEC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BEC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BEF8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BEFA   Length              0005 (5)\n-2BEFC   Flags               01 (1) 'Modification'\n-2BEFD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BF01 CENTRAL HEADER #48    02014B50 (33639248)\n-2BF05 Created Zip Spec      14 (20) '2.0'\n-2BF06 Created OS            00 (0) 'MS-DOS'\n-2BF07 Extract Zip Spec      14 (20) '2.0'\n-2BF08 Extract OS            00 (0) 'MS-DOS'\n-2BF09 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BF0B Compression Method    0000 (0) 'Stored'\n-2BF0D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BF11 CRC                   4A88912B (1250464043)\n-2BF15 Compressed Size       00001A65 (6757)\n-2BF19 Uncompressed Size     00001A65 (6757)\n-2BF1D Filename Length       0033 (51)\n-2BF1F Extra Length          0009 (9)\n-2BF21 Comment Length        0000 (0)\n-2BF23 Disk Start            0000 (0)\n-2BF25 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BF27 Ext File Attributes   00000000 (0)\n-2BF2B Local Header Offset   000121C6 (74182)\n-2BF2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BF2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BF62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BF64   Length              0005 (5)\n-2BF66   Flags               01 (1) 'Modification'\n-2BF67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BF6B CENTRAL HEADER #49    02014B50 (33639248)\n-2BF6F Created Zip Spec      14 (20) '2.0'\n-2BF70 Created OS            00 (0) 'MS-DOS'\n-2BF71 Extract Zip Spec      14 (20) '2.0'\n-2BF72 Extract OS            00 (0) 'MS-DOS'\n-2BF73 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BF75 Compression Method    0000 (0) 'Stored'\n-2BF77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BF7B CRC                   0FA20D48 (262278472)\n-2BF7F Compressed Size       000006EF (1775)\n-2BF83 Uncompressed Size     000006EF (1775)\n-2BF87 Filename Length       0035 (53)\n-2BF89 Extra Length          0009 (9)\n-2BF8B Comment Length        0000 (0)\n-2BF8D Disk Start            0000 (0)\n-2BF8F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BF91 Ext File Attributes   00000000 (0)\n-2BF95 Local Header Offset   00013C95 (81045)\n-2BF99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BF99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BFCE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BFD0   Length              0005 (5)\n-2BFD2   Flags               01 (1) 'Modification'\n-2BFD3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2BFD7 CENTRAL HEADER #50    02014B50 (33639248)\n-2BFDB Created Zip Spec      14 (20) '2.0'\n-2BFDC Created OS            00 (0) 'MS-DOS'\n-2BFDD Extract Zip Spec      14 (20) '2.0'\n-2BFDE Extract OS            00 (0) 'MS-DOS'\n-2BFDF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2BFE1 Compression Method    0000 (0) 'Stored'\n-2BFE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BFE7 CRC                   27D9ECF0 (668593392)\n-2BFEB Compressed Size       00002AD5 (10965)\n-2BFEF Uncompressed Size     00002AD5 (10965)\n-2BFF3 Filename Length       0034 (52)\n-2BFF5 Extra Length          0009 (9)\n-2BFF7 Comment Length        0000 (0)\n-2BFF9 Disk Start            0000 (0)\n-2BFFB Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2BFFD Ext File Attributes   00000000 (0)\n-2C001 Local Header Offset   000143F0 (82928)\n-2C005 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C005: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C039 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C03B   Length              0005 (5)\n-2C03D   Flags               01 (1) 'Modification'\n-2C03E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C042 CENTRAL HEADER #51    02014B50 (33639248)\n-2C046 Created Zip Spec      14 (20) '2.0'\n-2C047 Created OS            00 (0) 'MS-DOS'\n-2C048 Extract Zip Spec      14 (20) '2.0'\n-2C049 Extract OS            00 (0) 'MS-DOS'\n-2C04A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C04C Compression Method    0000 (0) 'Stored'\n-2C04E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C052 CRC                   540DE20D (1410195981)\n-2C056 Compressed Size       00001A1C (6684)\n-2C05A Uncompressed Size     00001A1C (6684)\n-2C05E Filename Length       0032 (50)\n-2C060 Extra Length          0009 (9)\n-2C062 Comment Length        0000 (0)\n-2C064 Disk Start            0000 (0)\n-2C066 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C068 Ext File Attributes   00000000 (0)\n-2C06C Local Header Offset   00016F30 (94000)\n-2C070 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C070: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C0A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C0A4   Length              0005 (5)\n-2C0A6   Flags               01 (1) 'Modification'\n-2C0A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C0AB CENTRAL HEADER #52    02014B50 (33639248)\n-2C0AF Created Zip Spec      14 (20) '2.0'\n-2C0B0 Created OS            00 (0) 'MS-DOS'\n-2C0B1 Extract Zip Spec      14 (20) '2.0'\n-2C0B2 Extract OS            00 (0) 'MS-DOS'\n-2C0B3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C0B5 Compression Method    0000 (0) 'Stored'\n-2C0B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C0BB CRC                   256F6EAD (628059821)\n-2C0BF Compressed Size       00000F7C (3964)\n-2C0C3 Uncompressed Size     00000F7C (3964)\n-2C0C7 Filename Length       0031 (49)\n-2C0C9 Extra Length          0009 (9)\n-2C0CB Comment Length        0000 (0)\n-2C0CD Disk Start            0000 (0)\n-2C0CF Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C0D1 Ext File Attributes   00000000 (0)\n-2C0D5 Local Header Offset   000189B5 (100789)\n-2C0D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C0D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C10A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C10C   Length              0005 (5)\n-2C10E   Flags               01 (1) 'Modification'\n-2C10F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C113 CENTRAL HEADER #53    02014B50 (33639248)\n-2C117 Created Zip Spec      14 (20) '2.0'\n-2C118 Created OS            00 (0) 'MS-DOS'\n-2C119 Extract Zip Spec      14 (20) '2.0'\n-2C11A Extract OS            00 (0) 'MS-DOS'\n-2C11B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C11D Compression Method    0000 (0) 'Stored'\n-2C11F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C123 CRC                   41EC82BB (1106019003)\n-2C127 Compressed Size       00000F05 (3845)\n-2C12B Uncompressed Size     00000F05 (3845)\n-2C12F Filename Length       0032 (50)\n-2C131 Extra Length          0009 (9)\n-2C133 Comment Length        0000 (0)\n-2C135 Disk Start            0000 (0)\n-2C137 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C139 Ext File Attributes   00000000 (0)\n-2C13D Local Header Offset   00019999 (104857)\n-2C141 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C141: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C173 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C175   Length              0005 (5)\n-2C177   Flags               01 (1) 'Modification'\n-2C178   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C17C CENTRAL HEADER #54    02014B50 (33639248)\n-2C180 Created Zip Spec      14 (20) '2.0'\n-2C181 Created OS            00 (0) 'MS-DOS'\n-2C182 Extract Zip Spec      14 (20) '2.0'\n-2C183 Extract OS            00 (0) 'MS-DOS'\n-2C184 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C186 Compression Method    0000 (0) 'Stored'\n-2C188 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C18C CRC                   C71A64BF (3340395711)\n-2C190 Compressed Size       00000AD7 (2775)\n-2C194 Uncompressed Size     00000AD7 (2775)\n-2C198 Filename Length       0034 (52)\n-2C19A Extra Length          0009 (9)\n-2C19C Comment Length        0000 (0)\n-2C19E Disk Start            0000 (0)\n-2C1A0 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C1A2 Ext File Attributes   00000000 (0)\n-2C1A6 Local Header Offset   0001A907 (108807)\n-2C1AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C1AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C1DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C1E0   Length              0005 (5)\n-2C1E2   Flags               01 (1) 'Modification'\n-2C1E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C1E7 CENTRAL HEADER #55    02014B50 (33639248)\n-2C1EB Created Zip Spec      14 (20) '2.0'\n-2C1EC Created OS            00 (0) 'MS-DOS'\n-2C1ED Extract Zip Spec      14 (20) '2.0'\n-2C1EE Extract OS            00 (0) 'MS-DOS'\n-2C1EF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C1F1 Compression Method    0000 (0) 'Stored'\n-2C1F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C1F7 CRC                   ED50455A (3981460826)\n-2C1FB Compressed Size       00000A88 (2696)\n-2C1FF Uncompressed Size     00000A88 (2696)\n-2C203 Filename Length       0036 (54)\n-2C205 Extra Length          0009 (9)\n-2C207 Comment Length        0000 (0)\n-2C209 Disk Start            0000 (0)\n-2C20B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C20D Ext File Attributes   00000000 (0)\n-2C211 Local Header Offset   0001B449 (111689)\n-2C215 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C215: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C24B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C24D   Length              0005 (5)\n-2C24F   Flags               01 (1) 'Modification'\n-2C250   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C254 CENTRAL HEADER #56    02014B50 (33639248)\n-2C258 Created Zip Spec      14 (20) '2.0'\n-2C259 Created OS            00 (0) 'MS-DOS'\n-2C25A Extract Zip Spec      14 (20) '2.0'\n-2C25B Extract OS            00 (0) 'MS-DOS'\n-2C25C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C25E Compression Method    0000 (0) 'Stored'\n-2C260 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C264 CRC                   BA485F30 (3125305136)\n-2C268 Compressed Size       00000FBB (4027)\n-2C26C Uncompressed Size     00000FBB (4027)\n-2C270 Filename Length       0033 (51)\n-2C272 Extra Length          0009 (9)\n-2C274 Comment Length        0000 (0)\n-2C276 Disk Start            0000 (0)\n-2C278 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C27A Ext File Attributes   00000000 (0)\n-2C27E Local Header Offset   0001BF3E (114494)\n-2C282 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C282: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C2B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C2B7   Length              0005 (5)\n-2C2B9   Flags               01 (1) 'Modification'\n-2C2BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C2BE CENTRAL HEADER #57    02014B50 (33639248)\n-2C2C2 Created Zip Spec      14 (20) '2.0'\n-2C2C3 Created OS            00 (0) 'MS-DOS'\n-2C2C4 Extract Zip Spec      14 (20) '2.0'\n-2C2C5 Extract OS            00 (0) 'MS-DOS'\n-2C2C6 General Purpose Flag  0000 (0)\n-2C2C8 Compression Method    0000 (0) 'Stored'\n-2C2CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C2CE CRC                   00000000 (0)\n-2C2D2 Compressed Size       00000000 (0)\n-2C2D6 Uncompressed Size     00000000 (0)\n-2C2DA Filename Length       001E (30)\n-2C2DC Extra Length          0009 (9)\n-2C2DE Comment Length        0000 (0)\n-2C2E0 Disk Start            0000 (0)\n-2C2E2 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C2E4 Ext File Attributes   00000000 (0)\n-2C2E8 Local Header Offset   0001CF63 (118627)\n-2C2EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C2EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C30A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C30C   Length              0005 (5)\n-2C30E   Flags               01 (1) 'Modification'\n-2C30F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C313 CENTRAL HEADER #58    02014B50 (33639248)\n-2C317 Created Zip Spec      14 (20) '2.0'\n-2C318 Created OS            00 (0) 'MS-DOS'\n-2C319 Extract Zip Spec      14 (20) '2.0'\n-2C31A Extract OS            00 (0) 'MS-DOS'\n-2C31B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C31D Compression Method    0000 (0) 'Stored'\n-2C31F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C323 CRC                   72812E46 (1921068614)\n-2C327 Compressed Size       000010D3 (4307)\n-2C32B Uncompressed Size     000010D3 (4307)\n-2C32F Filename Length       0035 (53)\n-2C331 Extra Length          0009 (9)\n-2C333 Comment Length        0000 (0)\n-2C335 Disk Start            0000 (0)\n-2C337 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C339 Ext File Attributes   00000000 (0)\n-2C33D Local Header Offset   0001CFA8 (118696)\n-2C341 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C341: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C376 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C378   Length              0005 (5)\n-2C37A   Flags               01 (1) 'Modification'\n-2C37B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C37F CENTRAL HEADER #59    02014B50 (33639248)\n-2C383 Created Zip Spec      14 (20) '2.0'\n-2C384 Created OS            00 (0) 'MS-DOS'\n-2C385 Extract Zip Spec      14 (20) '2.0'\n-2C386 Extract OS            00 (0) 'MS-DOS'\n-2C387 General Purpose Flag  0000 (0)\n-2C389 Compression Method    0000 (0) 'Stored'\n-2C38B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C38F CRC                   00000000 (0)\n-2C393 Compressed Size       00000000 (0)\n-2C397 Uncompressed Size     00000000 (0)\n-2C39B Filename Length       001C (28)\n-2C39D Extra Length          0009 (9)\n-2C39F Comment Length        0000 (0)\n-2C3A1 Disk Start            0000 (0)\n-2C3A3 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C3A5 Ext File Attributes   00000000 (0)\n-2C3A9 Local Header Offset   0001E0E7 (123111)\n-2C3AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C3AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C3C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C3CB   Length              0005 (5)\n-2C3CD   Flags               01 (1) 'Modification'\n-2C3CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C3D2 CENTRAL HEADER #60    02014B50 (33639248)\n-2C3D6 Created Zip Spec      14 (20) '2.0'\n-2C3D7 Created OS            00 (0) 'MS-DOS'\n-2C3D8 Extract Zip Spec      14 (20) '2.0'\n-2C3D9 Extract OS            00 (0) 'MS-DOS'\n-2C3DA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C3DC Compression Method    0000 (0) 'Stored'\n-2C3DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C3E2 CRC                   4C3B1439 (1278940217)\n-2C3E6 Compressed Size       000004E5 (1253)\n-2C3EA Uncompressed Size     000004E5 (1253)\n-2C3EE Filename Length       002A (42)\n-2C3F0 Extra Length          0009 (9)\n-2C3F2 Comment Length        0000 (0)\n-2C3F4 Disk Start            0000 (0)\n-2C3F6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C3F8 Ext File Attributes   00000000 (0)\n-2C3FC Local Header Offset   0001E12A (123178)\n-2C400 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C400: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C42A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C42C   Length              0005 (5)\n-2C42E   Flags               01 (1) 'Modification'\n-2C42F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C433 CENTRAL HEADER #61    02014B50 (33639248)\n-2C437 Created Zip Spec      14 (20) '2.0'\n-2C438 Created OS            00 (0) 'MS-DOS'\n-2C439 Extract Zip Spec      14 (20) '2.0'\n-2C43A Extract OS            00 (0) 'MS-DOS'\n-2C43B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C43D Compression Method    0000 (0) 'Stored'\n-2C43F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C443 CRC                   0C035F96 (201547670)\n-2C447 Compressed Size       000011CA (4554)\n-2C44B Uncompressed Size     000011CA (4554)\n-2C44F Filename Length       0027 (39)\n-2C451 Extra Length          0009 (9)\n-2C453 Comment Length        0000 (0)\n-2C455 Disk Start            0000 (0)\n-2C457 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C459 Ext File Attributes   00000000 (0)\n-2C45D Local Header Offset   0001E670 (124528)\n-2C461 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C461: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C488 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C48A   Length              0005 (5)\n-2C48C   Flags               01 (1) 'Modification'\n-2C48D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C491 CENTRAL HEADER #62    02014B50 (33639248)\n-2C495 Created Zip Spec      14 (20) '2.0'\n-2C496 Created OS            00 (0) 'MS-DOS'\n-2C497 Extract Zip Spec      14 (20) '2.0'\n-2C498 Extract OS            00 (0) 'MS-DOS'\n-2C499 General Purpose Flag  0000 (0)\n-2C49B Compression Method    0000 (0) 'Stored'\n-2C49D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C4A1 CRC                   00000000 (0)\n-2C4A5 Compressed Size       00000000 (0)\n-2C4A9 Uncompressed Size     00000000 (0)\n-2C4AD Filename Length       0024 (36)\n-2C4AF Extra Length          0009 (9)\n-2C4B1 Comment Length        0000 (0)\n-2C4B3 Disk Start            0000 (0)\n-2C4B5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C4B7 Ext File Attributes   00000000 (0)\n-2C4BB Local Header Offset   0001F898 (129176)\n-2C4BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C4BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C4E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C4E5   Length              0005 (5)\n-2C4E7   Flags               01 (1) 'Modification'\n-2C4E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C4EC CENTRAL HEADER #63    02014B50 (33639248)\n-2C4F0 Created Zip Spec      14 (20) '2.0'\n-2C4F1 Created OS            00 (0) 'MS-DOS'\n-2C4F2 Extract Zip Spec      14 (20) '2.0'\n-2C4F3 Extract OS            00 (0) 'MS-DOS'\n-2C4F4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C4F6 Compression Method    0000 (0) 'Stored'\n-2C4F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C4FC CRC                   5688E99A (1451813274)\n-2C500 Compressed Size       00001436 (5174)\n-2C504 Uncompressed Size     00001436 (5174)\n-2C508 Filename Length       003B (59)\n-2C50A Extra Length          0009 (9)\n-2C50C Comment Length        0000 (0)\n-2C50E Disk Start            0000 (0)\n-2C510 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C512 Ext File Attributes   00000000 (0)\n-2C516 Local Header Offset   0001F8E3 (129251)\n-2C51A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C51A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C555 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C557   Length              0005 (5)\n-2C559   Flags               01 (1) 'Modification'\n-2C55A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C55E CENTRAL HEADER #64    02014B50 (33639248)\n-2C562 Created Zip Spec      14 (20) '2.0'\n-2C563 Created OS            00 (0) 'MS-DOS'\n-2C564 Extract Zip Spec      14 (20) '2.0'\n-2C565 Extract OS            00 (0) 'MS-DOS'\n-2C566 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C568 Compression Method    0000 (0) 'Stored'\n-2C56A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C56E CRC                   DA916F8A (3666964362)\n-2C572 Compressed Size       000007A1 (1953)\n-2C576 Uncompressed Size     000007A1 (1953)\n-2C57A Filename Length       003F (63)\n-2C57C Extra Length          0009 (9)\n-2C57E Comment Length        0000 (0)\n-2C580 Disk Start            0000 (0)\n-2C582 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C584 Ext File Attributes   00000000 (0)\n-2C588 Local Header Offset   00020D8B (134539)\n-2C58C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C58C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C5CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C5CD   Length              0005 (5)\n-2C5CF   Flags               01 (1) 'Modification'\n-2C5D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C5D4 CENTRAL HEADER #65    02014B50 (33639248)\n-2C5D8 Created Zip Spec      14 (20) '2.0'\n-2C5D9 Created OS            00 (0) 'MS-DOS'\n-2C5DA Extract Zip Spec      14 (20) '2.0'\n-2C5DB Extract OS            00 (0) 'MS-DOS'\n-2C5DC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C5DE Compression Method    0000 (0) 'Stored'\n-2C5E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C5E4 CRC                   1CB52B1D (481635101)\n-2C5E8 Compressed Size       0000100F (4111)\n-2C5EC Uncompressed Size     0000100F (4111)\n-2C5F0 Filename Length       003A (58)\n-2C5F2 Extra Length          0009 (9)\n-2C5F4 Comment Length        0000 (0)\n-2C5F6 Disk Start            0000 (0)\n-2C5F8 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C5FA Ext File Attributes   00000000 (0)\n-2C5FE Local Header Offset   000215A2 (136610)\n-2C602 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C602: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C63C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C63E   Length              0005 (5)\n-2C640   Flags               01 (1) 'Modification'\n-2C641   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C645 CENTRAL HEADER #66    02014B50 (33639248)\n-2C649 Created Zip Spec      14 (20) '2.0'\n-2C64A Created OS            00 (0) 'MS-DOS'\n-2C64B Extract Zip Spec      14 (20) '2.0'\n-2C64C Extract OS            00 (0) 'MS-DOS'\n-2C64D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C64F Compression Method    0000 (0) 'Stored'\n-2C651 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C655 CRC                   B7AE5AFA (3081657082)\n-2C659 Compressed Size       000006EA (1770)\n-2C65D Uncompressed Size     000006EA (1770)\n-2C661 Filename Length       003F (63)\n-2C663 Extra Length          0009 (9)\n-2C665 Comment Length        0000 (0)\n-2C667 Disk Start            0000 (0)\n-2C669 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C66B Ext File Attributes   00000000 (0)\n-2C66F Local Header Offset   00022622 (140834)\n-2C673 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C673: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C6B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C6B4   Length              0005 (5)\n-2C6B6   Flags               01 (1) 'Modification'\n-2C6B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C6BB CENTRAL HEADER #67    02014B50 (33639248)\n-2C6BF Created Zip Spec      14 (20) '2.0'\n-2C6C0 Created OS            00 (0) 'MS-DOS'\n-2C6C1 Extract Zip Spec      14 (20) '2.0'\n-2C6C2 Extract OS            00 (0) 'MS-DOS'\n-2C6C3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C6C5 Compression Method    0000 (0) 'Stored'\n-2C6C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C6CB CRC                   D392C9E8 (3549612520)\n-2C6CF Compressed Size       00000C81 (3201)\n-2C6D3 Uncompressed Size     00000C81 (3201)\n-2C6D7 Filename Length       003D (61)\n-2C6D9 Extra Length          0009 (9)\n-2C6DB Comment Length        0000 (0)\n-2C6DD Disk Start            0000 (0)\n-2C6DF Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C6E1 Ext File Attributes   00000000 (0)\n-2C6E5 Local Header Offset   00022D82 (142722)\n-2C6E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C6E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C726 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C728   Length              0005 (5)\n-2C72A   Flags               01 (1) 'Modification'\n-2C72B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C72F CENTRAL HEADER #68    02014B50 (33639248)\n-2C733 Created Zip Spec      14 (20) '2.0'\n-2C734 Created OS            00 (0) 'MS-DOS'\n-2C735 Extract Zip Spec      14 (20) '2.0'\n-2C736 Extract OS            00 (0) 'MS-DOS'\n-2C737 General Purpose Flag  0000 (0)\n-2C739 Compression Method    0000 (0) 'Stored'\n-2C73B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C73F CRC                   00000000 (0)\n-2C743 Compressed Size       00000000 (0)\n-2C747 Uncompressed Size     00000000 (0)\n-2C74B Filename Length       001C (28)\n-2C74D Extra Length          0009 (9)\n-2C74F Comment Length        0000 (0)\n-2C751 Disk Start            0000 (0)\n-2C753 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C755 Ext File Attributes   00000000 (0)\n-2C759 Local Header Offset   00023A77 (146039)\n-2C75D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C75D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C779 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C77B   Length              0005 (5)\n-2C77D   Flags               01 (1) 'Modification'\n-2C77E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C782 CENTRAL HEADER #69    02014B50 (33639248)\n-2C786 Created Zip Spec      14 (20) '2.0'\n-2C787 Created OS            00 (0) 'MS-DOS'\n-2C788 Extract Zip Spec      14 (20) '2.0'\n-2C789 Extract OS            00 (0) 'MS-DOS'\n-2C78A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C78C Compression Method    0000 (0) 'Stored'\n-2C78E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C792 CRC                   2AA01116 (715133206)\n-2C796 Compressed Size       000003D7 (983)\n-2C79A Uncompressed Size     000003D7 (983)\n-2C79E Filename Length       002B (43)\n-2C7A0 Extra Length          0009 (9)\n-2C7A2 Comment Length        0000 (0)\n-2C7A4 Disk Start            0000 (0)\n-2C7A6 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C7A8 Ext File Attributes   00000000 (0)\n-2C7AC Local Header Offset   00023ABA (146106)\n-2C7B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C7B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C7DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C7DD   Length              0005 (5)\n-2C7DF   Flags               01 (1) 'Modification'\n-2C7E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C7E4 CENTRAL HEADER #70    02014B50 (33639248)\n-2C7E8 Created Zip Spec      14 (20) '2.0'\n-2C7E9 Created OS            00 (0) 'MS-DOS'\n-2C7EA Extract Zip Spec      14 (20) '2.0'\n-2C7EB Extract OS            00 (0) 'MS-DOS'\n-2C7EC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C7EE Compression Method    0000 (0) 'Stored'\n-2C7F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C7F4 CRC                   70DD7BE1 (1893563361)\n-2C7F8 Compressed Size       00000AAE (2734)\n-2C7FC Uncompressed Size     00000AAE (2734)\n-2C800 Filename Length       0024 (36)\n-2C802 Extra Length          0009 (9)\n-2C804 Comment Length        0000 (0)\n-2C806 Disk Start            0000 (0)\n-2C808 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C80A Ext File Attributes   00000000 (0)\n-2C80E Local Header Offset   00023EF3 (147187)\n-2C812 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C812: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C836 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C838   Length              0005 (5)\n-2C83A   Flags               01 (1) 'Modification'\n-2C83B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C83F CENTRAL HEADER #71    02014B50 (33639248)\n-2C843 Created Zip Spec      14 (20) '2.0'\n-2C844 Created OS            00 (0) 'MS-DOS'\n-2C845 Extract Zip Spec      14 (20) '2.0'\n-2C846 Extract OS            00 (0) 'MS-DOS'\n-2C847 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C849 Compression Method    0000 (0) 'Stored'\n-2C84B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C84F CRC                   725BA0A7 (1918607527)\n-2C853 Compressed Size       000008DD (2269)\n-2C857 Uncompressed Size     000008DD (2269)\n-2C85B Filename Length       0028 (40)\n-2C85D Extra Length          0009 (9)\n-2C85F Comment Length        0000 (0)\n-2C861 Disk Start            0000 (0)\n-2C863 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C865 Ext File Attributes   00000000 (0)\n-2C869 Local Header Offset   000249FC (150012)\n-2C86D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C86D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C895 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C897   Length              0005 (5)\n-2C899   Flags               01 (1) 'Modification'\n-2C89A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C89E CENTRAL HEADER #72    02014B50 (33639248)\n-2C8A2 Created Zip Spec      14 (20) '2.0'\n-2C8A3 Created OS            00 (0) 'MS-DOS'\n-2C8A4 Extract Zip Spec      14 (20) '2.0'\n-2C8A5 Extract OS            00 (0) 'MS-DOS'\n-2C8A6 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C8A8 Compression Method    0000 (0) 'Stored'\n-2C8AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C8AE CRC                   353D3BE5 (893205477)\n-2C8B2 Compressed Size       00003D01 (15617)\n-2C8B6 Uncompressed Size     00003D01 (15617)\n-2C8BA Filename Length       0027 (39)\n-2C8BC Extra Length          0009 (9)\n-2C8BE Comment Length        0000 (0)\n-2C8C0 Disk Start            0000 (0)\n-2C8C2 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C8C4 Ext File Attributes   00000000 (0)\n-2C8C8 Local Header Offset   00025338 (152376)\n-2C8CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C8CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C8F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C8F5   Length              0005 (5)\n-2C8F7   Flags               01 (1) 'Modification'\n-2C8F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C8FC CENTRAL HEADER #73    02014B50 (33639248)\n-2C900 Created Zip Spec      14 (20) '2.0'\n-2C901 Created OS            00 (0) 'MS-DOS'\n-2C902 Extract Zip Spec      14 (20) '2.0'\n-2C903 Extract OS            00 (0) 'MS-DOS'\n-2C904 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2C906 Compression Method    0000 (0) 'Stored'\n-2C908 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C90C CRC                   1DFA3CFF (502938879)\n-2C910 Compressed Size       00001CCE (7374)\n-2C914 Uncompressed Size     00001CCE (7374)\n-2C918 Filename Length       0026 (38)\n-2C91A Extra Length          0009 (9)\n-2C91C Comment Length        0000 (0)\n-2C91E Disk Start            0000 (0)\n-2C920 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2C922 Ext File Attributes   00000000 (0)\n-2C926 Local Header Offset   00029097 (168087)\n-2C92A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C92A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C950 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C952   Length              0005 (5)\n-2C954   Flags               01 (1) 'Modification'\n-2C955   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2C959 END CENTRAL HEADER    06054B50 (101010256)\n-2C95D Number of this disk   0000 (0)\n-2C95F Central Dir Disk no   0000 (0)\n-2C961 Entries in this disk  0049 (73)\n-2C963 Total Entries         0049 (73)\n-2C965 Size of Central Dir   00001B97 (7063)\n-2C969 Offset to Central Dir 0002ADC2 (175554)\n-2C96D Comment Length        0000 (0)\n+04ADE DATA DESCRIPTOR       08074B50 (134695760)\n+04AE2 CRC                   A18B762D (2710271533)\n+04AE6 Compressed Size       0000018D (397)\n+04AEA Uncompressed Size     0000018D (397)\n+\n+04AEE LOCAL HEADER #9       04034B50 (67324752)\n+04AF2 Extract Zip Spec      14 (20) '2.0'\n+04AF3 Extract OS            00 (0) 'MS-DOS'\n+04AF4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+04AF6 Compression Method    0000 (0) 'Stored'\n+04AF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04AFC CRC                   00000000 (0)\n+04B00 Compressed Size       00000000 (0)\n+04B04 Uncompressed Size     00000000 (0)\n+04B08 Filename Length       0046 (70)\n+04B0A Extra Length          0009 (9)\n+04B0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4B0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04B52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04B54   Length              0005 (5)\n+04B56   Flags               01 (1) 'Modification'\n+04B57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04B5B PAYLOAD\n+\n+04D3F DATA DESCRIPTOR       08074B50 (134695760)\n+04D43 CRC                   60DE3136 (1625174326)\n+04D47 Compressed Size       000001E4 (484)\n+04D4B Uncompressed Size     000001E4 (484)\n+\n+04D4F LOCAL HEADER #10      04034B50 (67324752)\n+04D53 Extract Zip Spec      14 (20) '2.0'\n+04D54 Extract OS            00 (0) 'MS-DOS'\n+04D55 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+04D57 Compression Method    0000 (0) 'Stored'\n+04D59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04D5D CRC                   00000000 (0)\n+04D61 Compressed Size       00000000 (0)\n+04D65 Uncompressed Size     00000000 (0)\n+04D69 Filename Length       0035 (53)\n+04D6B Extra Length          0009 (9)\n+04D6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04DA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04DA4   Length              0005 (5)\n+04DA6   Flags               01 (1) 'Modification'\n+04DA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04DAB PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+04DDF DATA DESCRIPTOR       08074B50 (134695760)\n+04DE3 CRC                   66A9E2AF (1722409647)\n+04DE7 Compressed Size       00000034 (52)\n+04DEB Uncompressed Size     00000034 (52)\n+\n+04DEF LOCAL HEADER #11      04034B50 (67324752)\n+04DF3 Extract Zip Spec      14 (20) '2.0'\n+04DF4 Extract OS            00 (0) 'MS-DOS'\n+04DF5 General Purpose Flag  0000 (0)\n+04DF7 Compression Method    0000 (0) 'Stored'\n+04DF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04DFD CRC                   00000000 (0)\n+04E01 Compressed Size       00000000 (0)\n+04E05 Uncompressed Size     00000000 (0)\n+04E09 Filename Length       000F (15)\n+04E0B Extra Length          0009 (9)\n+04E0D Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E0D: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04E1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04E1E   Length              0005 (5)\n+04E20   Flags               01 (1) 'Modification'\n+04E21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04E25 LOCAL HEADER #12      04034B50 (67324752)\n+04E29 Extract Zip Spec      14 (20) '2.0'\n+04E2A Extract OS            00 (0) 'MS-DOS'\n+04E2B General Purpose Flag  0000 (0)\n+04E2D Compression Method    0000 (0) 'Stored'\n+04E2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04E33 CRC                   00000000 (0)\n+04E37 Compressed Size       00000000 (0)\n+04E3B Uncompressed Size     00000000 (0)\n+04E3F Filename Length       0020 (32)\n+04E41 Extra Length          0009 (9)\n+04E43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04E63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04E65   Length              0005 (5)\n+04E67   Flags               01 (1) 'Modification'\n+04E68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04E6C LOCAL HEADER #13      04034B50 (67324752)\n+04E70 Extract Zip Spec      14 (20) '2.0'\n+04E71 Extract OS            00 (0) 'MS-DOS'\n+04E72 General Purpose Flag  0000 (0)\n+04E74 Compression Method    0000 (0) 'Stored'\n+04E76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04E7A CRC                   00000000 (0)\n+04E7E Compressed Size       00000000 (0)\n+04E82 Uncompressed Size     00000000 (0)\n+04E86 Filename Length       002A (42)\n+04E88 Extra Length          0009 (9)\n+04E8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04EB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04EB6   Length              0005 (5)\n+04EB8   Flags               01 (1) 'Modification'\n+04EB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04EBD LOCAL HEADER #14      04034B50 (67324752)\n+04EC1 Extract Zip Spec      14 (20) '2.0'\n+04EC2 Extract OS            00 (0) 'MS-DOS'\n+04EC3 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+04EC5 Compression Method    0000 (0) 'Stored'\n+04EC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04ECB CRC                   00000000 (0)\n+04ECF Compressed Size       00000000 (0)\n+04ED3 Uncompressed Size     00000000 (0)\n+04ED7 Filename Length       0038 (56)\n+04ED9 Extra Length          0009 (9)\n+04EDB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4EDB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04F13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04F15   Length              0005 (5)\n+04F17   Flags               01 (1) 'Modification'\n+04F18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04F1C DATA DESCRIPTOR       08074B50 (134695760)\n+04F20 CRC                   00000000 (0)\n+04F24 Compressed Size       00000000 (0)\n+04F28 Uncompressed Size     00000000 (0)\n+\n+04F2C LOCAL HEADER #15      04034B50 (67324752)\n+04F30 Extract Zip Spec      14 (20) '2.0'\n+04F31 Extract OS            00 (0) 'MS-DOS'\n+04F32 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+04F34 Compression Method    0000 (0) 'Stored'\n+04F36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04F3A CRC                   00000000 (0)\n+04F3E Compressed Size       00000000 (0)\n+04F42 Uncompressed Size     00000000 (0)\n+04F46 Filename Length       0031 (49)\n+04F48 Extra Length          0009 (9)\n+04F4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04F7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04F7D   Length              0005 (5)\n+04F7F   Flags               01 (1) 'Modification'\n+04F80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04F84 PAYLOAD\n+\n+05AC1 DATA DESCRIPTOR       08074B50 (134695760)\n+05AC5 CRC                   CC527EDE (3427958494)\n+05AC9 Compressed Size       00000B3D (2877)\n+05ACD Uncompressed Size     00000B3D (2877)\n+\n+05AD1 LOCAL HEADER #16      04034B50 (67324752)\n+05AD5 Extract Zip Spec      14 (20) '2.0'\n+05AD6 Extract OS            00 (0) 'MS-DOS'\n+05AD7 General Purpose Flag  0000 (0)\n+05AD9 Compression Method    0000 (0) 'Stored'\n+05ADB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05ADF CRC                   00000000 (0)\n+05AE3 Compressed Size       00000000 (0)\n+05AE7 Uncompressed Size     00000000 (0)\n+05AEB Filename Length       0004 (4)\n+05AED Extra Length          0009 (9)\n+05AEF Filename              'XXXX'\n+#\n+# WARNING: Offset 0x5AEF: Filename 'XXXX'\n+#          Zero length filename\n+#\n+05AF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05AF5   Length              0005 (5)\n+05AF7   Flags               01 (1) 'Modification'\n+05AF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05AFC LOCAL HEADER #17      04034B50 (67324752)\n+05B00 Extract Zip Spec      14 (20) '2.0'\n+05B01 Extract OS            00 (0) 'MS-DOS'\n+05B02 General Purpose Flag  0000 (0)\n+05B04 Compression Method    0000 (0) 'Stored'\n+05B06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05B0A CRC                   00000000 (0)\n+05B0E Compressed Size       00000000 (0)\n+05B12 Uncompressed Size     00000000 (0)\n+05B16 Filename Length       000B (11)\n+05B18 Extra Length          0009 (9)\n+05B1A Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B1A: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05B25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05B27   Length              0005 (5)\n+05B29   Flags               01 (1) 'Modification'\n+05B2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05B2E LOCAL HEADER #18      04034B50 (67324752)\n+05B32 Extract Zip Spec      14 (20) '2.0'\n+05B33 Extract OS            00 (0) 'MS-DOS'\n+05B34 General Purpose Flag  0000 (0)\n+05B36 Compression Method    0000 (0) 'Stored'\n+05B38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05B3C CRC                   00000000 (0)\n+05B40 Compressed Size       00000000 (0)\n+05B44 Uncompressed Size     00000000 (0)\n+05B48 Filename Length       0011 (17)\n+05B4A Extra Length          0009 (9)\n+05B4C Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B4C: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05B5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05B5F   Length              0005 (5)\n+05B61   Flags               01 (1) 'Modification'\n+05B62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05B66 LOCAL HEADER #19      04034B50 (67324752)\n+05B6A Extract Zip Spec      14 (20) '2.0'\n+05B6B Extract OS            00 (0) 'MS-DOS'\n+05B6C General Purpose Flag  0000 (0)\n+05B6E Compression Method    0000 (0) 'Stored'\n+05B70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05B74 CRC                   00000000 (0)\n+05B78 Compressed Size       00000000 (0)\n+05B7C Uncompressed Size     00000000 (0)\n+05B80 Filename Length       0015 (21)\n+05B82 Extra Length          0009 (9)\n+05B84 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B84: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05B99 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05B9B   Length              0005 (5)\n+05B9D   Flags               01 (1) 'Modification'\n+05B9E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05BA2 LOCAL HEADER #20      04034B50 (67324752)\n+05BA6 Extract Zip Spec      14 (20) '2.0'\n+05BA7 Extract OS            00 (0) 'MS-DOS'\n+05BA8 General Purpose Flag  0000 (0)\n+05BAA Compression Method    0000 (0) 'Stored'\n+05BAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05BB0 CRC                   00000000 (0)\n+05BB4 Compressed Size       00000000 (0)\n+05BB8 Uncompressed Size     00000000 (0)\n+05BBC Filename Length       001D (29)\n+05BBE Extra Length          0009 (9)\n+05BC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05BDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05BDF   Length              0005 (5)\n+05BE1   Flags               01 (1) 'Modification'\n+05BE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05BE6 LOCAL HEADER #21      04034B50 (67324752)\n+05BEA Extract Zip Spec      14 (20) '2.0'\n+05BEB Extract OS            00 (0) 'MS-DOS'\n+05BEC General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+05BEE Compression Method    0000 (0) 'Stored'\n+05BF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05BF4 CRC                   00000000 (0)\n+05BF8 Compressed Size       00000000 (0)\n+05BFC Uncompressed Size     00000000 (0)\n+05C00 Filename Length       002D (45)\n+05C02 Extra Length          0009 (9)\n+05C04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5C04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05C31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05C33   Length              0005 (5)\n+05C35   Flags               01 (1) 'Modification'\n+05C36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05C3A PAYLOAD\n+\n+06031 DATA DESCRIPTOR       08074B50 (134695760)\n+06035 CRC                   FE44AB9A (4265913242)\n+06039 Compressed Size       000003F7 (1015)\n+0603D Uncompressed Size     000003F7 (1015)\n+\n+06041 LOCAL HEADER #22      04034B50 (67324752)\n+06045 Extract Zip Spec      14 (20) '2.0'\n+06046 Extract OS            00 (0) 'MS-DOS'\n+06047 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+06049 Compression Method    0000 (0) 'Stored'\n+0604B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0604F CRC                   00000000 (0)\n+06053 Compressed Size       00000000 (0)\n+06057 Uncompressed Size     00000000 (0)\n+0605B Filename Length       0030 (48)\n+0605D Extra Length          0009 (9)\n+0605F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x605F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0608F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06091   Length              0005 (5)\n+06093   Flags               01 (1) 'Modification'\n+06094   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06098 PAYLOAD\n+\n+06918 DATA DESCRIPTOR       08074B50 (134695760)\n+0691C CRC                   C783A617 (3347293719)\n+06920 Compressed Size       00000880 (2176)\n+06924 Uncompressed Size     00000880 (2176)\n+\n+06928 LOCAL HEADER #23      04034B50 (67324752)\n+0692C Extract Zip Spec      14 (20) '2.0'\n+0692D Extract OS            00 (0) 'MS-DOS'\n+0692E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+06930 Compression Method    0000 (0) 'Stored'\n+06932 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06936 CRC                   00000000 (0)\n+0693A Compressed Size       00000000 (0)\n+0693E Uncompressed Size     00000000 (0)\n+06942 Filename Length       0037 (55)\n+06944 Extra Length          0009 (9)\n+06946 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6946: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0697D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0697F   Length              0005 (5)\n+06981   Flags               01 (1) 'Modification'\n+06982   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06986 PAYLOAD\n+\n+06E2C DATA DESCRIPTOR       08074B50 (134695760)\n+06E30 CRC                   F2C44151 (4072948049)\n+06E34 Compressed Size       000004A6 (1190)\n+06E38 Uncompressed Size     000004A6 (1190)\n+\n+06E3C LOCAL HEADER #24      04034B50 (67324752)\n+06E40 Extract Zip Spec      14 (20) '2.0'\n+06E41 Extract OS            00 (0) 'MS-DOS'\n+06E42 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+06E44 Compression Method    0000 (0) 'Stored'\n+06E46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06E4A CRC                   00000000 (0)\n+06E4E Compressed Size       00000000 (0)\n+06E52 Uncompressed Size     00000000 (0)\n+06E56 Filename Length       0031 (49)\n+06E58 Extra Length          0009 (9)\n+06E5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06E8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06E8D   Length              0005 (5)\n+06E8F   Flags               01 (1) 'Modification'\n+06E90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06E94 PAYLOAD\n+\n+0733C DATA DESCRIPTOR       08074B50 (134695760)\n+07340 CRC                   D40E78F4 (3557718260)\n+07344 Compressed Size       000004A8 (1192)\n+07348 Uncompressed Size     000004A8 (1192)\n+\n+0734C LOCAL HEADER #25      04034B50 (67324752)\n+07350 Extract Zip Spec      14 (20) '2.0'\n+07351 Extract OS            00 (0) 'MS-DOS'\n+07352 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+07354 Compression Method    0000 (0) 'Stored'\n+07356 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0735A CRC                   00000000 (0)\n+0735E Compressed Size       00000000 (0)\n+07362 Uncompressed Size     00000000 (0)\n+07366 Filename Length       0038 (56)\n+07368 Extra Length          0009 (9)\n+0736A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x736A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+073A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+073A4   Length              0005 (5)\n+073A6   Flags               01 (1) 'Modification'\n+073A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+073AB PAYLOAD\n+\n+079C8 DATA DESCRIPTOR       08074B50 (134695760)\n+079CC CRC                   2A63E263 (711189091)\n+079D0 Compressed Size       0000061D (1565)\n+079D4 Uncompressed Size     0000061D (1565)\n+\n+079D8 LOCAL HEADER #26      04034B50 (67324752)\n+079DC Extract Zip Spec      14 (20) '2.0'\n+079DD Extract OS            00 (0) 'MS-DOS'\n+079DE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\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       0038 (56)\n+079F4 Extra Length          0009 (9)\n+079F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x79F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07A2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07A30   Length              0005 (5)\n+07A32   Flags               01 (1) 'Modification'\n+07A33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+07A37 PAYLOAD\n+\n+07E37 DATA DESCRIPTOR       08074B50 (134695760)\n+07E3B CRC                   D473D979 (3564362105)\n+07E3F Compressed Size       00000400 (1024)\n+07E43 Uncompressed Size     00000400 (1024)\n+\n+07E47 LOCAL HEADER #27      04034B50 (67324752)\n+07E4B Extract Zip Spec      14 (20) '2.0'\n+07E4C Extract OS            00 (0) 'MS-DOS'\n+07E4D General Purpose Flag  0000 (0)\n+07E4F Compression Method    0000 (0) 'Stored'\n+07E51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07E55 CRC                   00000000 (0)\n+07E59 Compressed Size       00000000 (0)\n+07E5D Uncompressed Size     00000000 (0)\n+07E61 Filename Length       0028 (40)\n+07E63 Extra Length          0009 (9)\n+07E65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7E65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07E8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07E8F   Length              0005 (5)\n+07E91   Flags               01 (1) 'Modification'\n+07E92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07E96 LOCAL HEADER #28      04034B50 (67324752)\n+07E9A Extract Zip Spec      14 (20) '2.0'\n+07E9B Extract OS            00 (0) 'MS-DOS'\n+07E9C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+07E9E Compression Method    0000 (0) 'Stored'\n+07EA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07EA4 CRC                   00000000 (0)\n+07EA8 Compressed Size       00000000 (0)\n+07EAC Uncompressed Size     00000000 (0)\n+07EB0 Filename Length       0030 (48)\n+07EB2 Extra Length          0009 (9)\n+07EB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7EB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07EE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07EE6   Length              0005 (5)\n+07EE8   Flags               01 (1) 'Modification'\n+07EE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+07EED PAYLOAD\n+\n+08534 DATA DESCRIPTOR       08074B50 (134695760)\n+08538 CRC                   45D6532E (1171673902)\n+0853C Compressed Size       00000647 (1607)\n+08540 Uncompressed Size     00000647 (1607)\n+\n+08544 LOCAL HEADER #29      04034B50 (67324752)\n+08548 Extract Zip Spec      14 (20) '2.0'\n+08549 Extract OS            00 (0) 'MS-DOS'\n+0854A General Purpose Flag  0000 (0)\n+0854C Compression Method    0000 (0) 'Stored'\n+0854E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08552 CRC                   00000000 (0)\n+08556 Compressed Size       00000000 (0)\n+0855A Uncompressed Size     00000000 (0)\n+0855E Filename Length       0025 (37)\n+08560 Extra Length          0009 (9)\n+08562 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8562: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+08587 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08589   Length              0005 (5)\n+0858B   Flags               01 (1) 'Modification'\n+0858C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+08590 LOCAL HEADER #30      04034B50 (67324752)\n+08594 Extract Zip Spec      14 (20) '2.0'\n+08595 Extract OS            00 (0) 'MS-DOS'\n+08596 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+08598 Compression Method    0000 (0) 'Stored'\n+0859A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0859E CRC                   00000000 (0)\n+085A2 Compressed Size       00000000 (0)\n+085A6 Uncompressed Size     00000000 (0)\n+085AA Filename Length       003C (60)\n+085AC Extra Length          0009 (9)\n+085AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x85AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+085EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+085EC   Length              0005 (5)\n+085EE   Flags               01 (1) 'Modification'\n+085EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+085F3 PAYLOAD\n+\n+09586 DATA DESCRIPTOR       08074B50 (134695760)\n+0958A CRC                   D812ECFA (3625118970)\n+0958E Compressed Size       00000F93 (3987)\n+09592 Uncompressed Size     00000F93 (3987)\n+\n+09596 LOCAL HEADER #31      04034B50 (67324752)\n+0959A Extract Zip Spec      14 (20) '2.0'\n+0959B Extract OS            00 (0) 'MS-DOS'\n+0959C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0959E Compression Method    0000 (0) 'Stored'\n+095A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+095A4 CRC                   00000000 (0)\n+095A8 Compressed Size       00000000 (0)\n+095AC Uncompressed Size     00000000 (0)\n+095B0 Filename Length       003E (62)\n+095B2 Extra Length          0009 (9)\n+095B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x95B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+095F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+095F4   Length              0005 (5)\n+095F6   Flags               01 (1) 'Modification'\n+095F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+095FB PAYLOAD\n+\n+09CB8 DATA DESCRIPTOR       08074B50 (134695760)\n+09CBC CRC                   E1096065 (3775488101)\n+09CC0 Compressed Size       000006BD (1725)\n+09CC4 Uncompressed Size     000006BD (1725)\n+\n+09CC8 LOCAL HEADER #32      04034B50 (67324752)\n+09CCC Extract Zip Spec      14 (20) '2.0'\n+09CCD Extract OS            00 (0) 'MS-DOS'\n+09CCE General Purpose Flag  0000 (0)\n+09CD0 Compression Method    0000 (0) 'Stored'\n+09CD2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+09CD6 CRC                   00000000 (0)\n+09CDA Compressed Size       00000000 (0)\n+09CDE Uncompressed Size     00000000 (0)\n+09CE2 Filename Length       0022 (34)\n+09CE4 Extra Length          0009 (9)\n+09CE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9CE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+09D08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+09D0A   Length              0005 (5)\n+09D0C   Flags               01 (1) 'Modification'\n+09D0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+09D11 LOCAL HEADER #33      04034B50 (67324752)\n+09D15 Extract Zip Spec      14 (20) '2.0'\n+09D16 Extract OS            00 (0) 'MS-DOS'\n+09D17 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+09D19 Compression Method    0000 (0) 'Stored'\n+09D1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+09D1F CRC                   00000000 (0)\n+09D23 Compressed Size       00000000 (0)\n+09D27 Uncompressed Size     00000000 (0)\n+09D2B Filename Length       002B (43)\n+09D2D Extra Length          0009 (9)\n+09D2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9D2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+09D5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+09D5C   Length              0005 (5)\n+09D5E   Flags               01 (1) 'Modification'\n+09D5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+09D63 PAYLOAD\n+\n+0ABE7 DATA DESCRIPTOR       08074B50 (134695760)\n+0ABEB CRC                   86EEED41 (2263805249)\n+0ABEF Compressed Size       00000E84 (3716)\n+0ABF3 Uncompressed Size     00000E84 (3716)\n+\n+0ABF7 LOCAL HEADER #34      04034B50 (67324752)\n+0ABFB Extract Zip Spec      14 (20) '2.0'\n+0ABFC Extract OS            00 (0) 'MS-DOS'\n+0ABFD General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0ABFF Compression Method    0000 (0) 'Stored'\n+0AC01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0AC05 CRC                   00000000 (0)\n+0AC09 Compressed Size       00000000 (0)\n+0AC0D Uncompressed Size     00000000 (0)\n+0AC11 Filename Length       0029 (41)\n+0AC13 Extra Length          0009 (9)\n+0AC15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xAC15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0AC3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0AC40   Length              0005 (5)\n+0AC42   Flags               01 (1) 'Modification'\n+0AC43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0AC47 PAYLOAD\n+\n+0B9D7 DATA DESCRIPTOR       08074B50 (134695760)\n+0B9DB CRC                   E32E7BA0 (3811474336)\n+0B9DF Compressed Size       00000D90 (3472)\n+0B9E3 Uncompressed Size     00000D90 (3472)\n+\n+0B9E7 LOCAL HEADER #35      04034B50 (67324752)\n+0B9EB Extract Zip Spec      14 (20) '2.0'\n+0B9EC Extract OS            00 (0) 'MS-DOS'\n+0B9ED General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0B9EF Compression Method    0000 (0) 'Stored'\n+0B9F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0B9F5 CRC                   00000000 (0)\n+0B9F9 Compressed Size       00000000 (0)\n+0B9FD Uncompressed Size     00000000 (0)\n+0BA01 Filename Length       002E (46)\n+0BA03 Extra Length          0009 (9)\n+0BA05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBA05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0BA33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0BA35   Length              0005 (5)\n+0BA37   Flags               01 (1) 'Modification'\n+0BA38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0BA3C PAYLOAD\n+\n+0C78E DATA DESCRIPTOR       08074B50 (134695760)\n+0C792 CRC                   C56E8E67 (3312356967)\n+0C796 Compressed Size       00000D52 (3410)\n+0C79A Uncompressed Size     00000D52 (3410)\n+\n+0C79E LOCAL HEADER #36      04034B50 (67324752)\n+0C7A2 Extract Zip Spec      14 (20) '2.0'\n+0C7A3 Extract OS            00 (0) 'MS-DOS'\n+0C7A4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0C7A6 Compression Method    0000 (0) 'Stored'\n+0C7A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0C7AC CRC                   00000000 (0)\n+0C7B0 Compressed Size       00000000 (0)\n+0C7B4 Uncompressed Size     00000000 (0)\n+0C7B8 Filename Length       002D (45)\n+0C7BA Extra Length          0009 (9)\n+0C7BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC7BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0C7E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0C7EB   Length              0005 (5)\n+0C7ED   Flags               01 (1) 'Modification'\n+0C7EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0C7F2 PAYLOAD\n+\n+0D577 DATA DESCRIPTOR       08074B50 (134695760)\n+0D57B CRC                   A95B3402 (2841326594)\n+0D57F Compressed Size       00000D85 (3461)\n+0D583 Uncompressed Size     00000D85 (3461)\n+\n+0D587 LOCAL HEADER #37      04034B50 (67324752)\n+0D58B Extract Zip Spec      14 (20) '2.0'\n+0D58C Extract OS            00 (0) 'MS-DOS'\n+0D58D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0D58F Compression Method    0000 (0) 'Stored'\n+0D591 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0D595 CRC                   00000000 (0)\n+0D599 Compressed Size       00000000 (0)\n+0D59D Uncompressed Size     00000000 (0)\n+0D5A1 Filename Length       0036 (54)\n+0D5A3 Extra Length          0009 (9)\n+0D5A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xD5A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0D5DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0D5DD   Length              0005 (5)\n+0D5DF   Flags               01 (1) 'Modification'\n+0D5E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0D5E4 PAYLOAD\n+\n+0E153 DATA DESCRIPTOR       08074B50 (134695760)\n+0E157 CRC                   E56C2CA8 (3849071784)\n+0E15B Compressed Size       00000B6F (2927)\n+0E15F Uncompressed Size     00000B6F (2927)\n+\n+0E163 LOCAL HEADER #38      04034B50 (67324752)\n+0E167 Extract Zip Spec      14 (20) '2.0'\n+0E168 Extract OS            00 (0) 'MS-DOS'\n+0E169 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0E16B Compression Method    0000 (0) 'Stored'\n+0E16D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0E171 CRC                   00000000 (0)\n+0E175 Compressed Size       00000000 (0)\n+0E179 Uncompressed Size     00000000 (0)\n+0E17D Filename Length       002B (43)\n+0E17F Extra Length          0009 (9)\n+0E181 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xE181: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0E1AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0E1AE   Length              0005 (5)\n+0E1B0   Flags               01 (1) 'Modification'\n+0E1B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0E1B5 PAYLOAD\n+\n+0E6CE DATA DESCRIPTOR       08074B50 (134695760)\n+0E6D2 CRC                   AADA64B2 (2866439346)\n+0E6D6 Compressed Size       00000519 (1305)\n+0E6DA Uncompressed Size     00000519 (1305)\n+\n+0E6DE LOCAL HEADER #39      04034B50 (67324752)\n+0E6E2 Extract Zip Spec      14 (20) '2.0'\n+0E6E3 Extract OS            00 (0) 'MS-DOS'\n+0E6E4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0E6E6 Compression Method    0000 (0) 'Stored'\n+0E6E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0E6EC CRC                   00000000 (0)\n+0E6F0 Compressed Size       00000000 (0)\n+0E6F4 Uncompressed Size     00000000 (0)\n+0E6F8 Filename Length       002C (44)\n+0E6FA Extra Length          0009 (9)\n+0E6FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xE6FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0E728 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0E72A   Length              0005 (5)\n+0E72C   Flags               01 (1) 'Modification'\n+0E72D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0E731 PAYLOAD\n+\n+0F814 DATA DESCRIPTOR       08074B50 (134695760)\n+0F818 CRC                   DC712B5A (3698404186)\n+0F81C Compressed Size       000010E3 (4323)\n+0F820 Uncompressed Size     000010E3 (4323)\n+\n+0F824 LOCAL HEADER #40      04034B50 (67324752)\n+0F828 Extract Zip Spec      14 (20) '2.0'\n+0F829 Extract OS            00 (0) 'MS-DOS'\n+0F82A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0F82C Compression Method    0000 (0) 'Stored'\n+0F82E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0F832 CRC                   00000000 (0)\n+0F836 Compressed Size       00000000 (0)\n+0F83A Uncompressed Size     00000000 (0)\n+0F83E Filename Length       002E (46)\n+0F840 Extra Length          0009 (9)\n+0F842 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xF842: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0F870 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0F872   Length              0005 (5)\n+0F874   Flags               01 (1) 'Modification'\n+0F875   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0F879 PAYLOAD\n+\n+0FE9E DATA DESCRIPTOR       08074B50 (134695760)\n+0FEA2 CRC                   1F2281E7 (522355175)\n+0FEA6 Compressed Size       00000625 (1573)\n+0FEAA Uncompressed Size     00000625 (1573)\n+\n+0FEAE LOCAL HEADER #41      04034B50 (67324752)\n+0FEB2 Extract Zip Spec      14 (20) '2.0'\n+0FEB3 Extract OS            00 (0) 'MS-DOS'\n+0FEB4 General Purpose Flag  0000 (0)\n+0FEB6 Compression Method    0000 (0) 'Stored'\n+0FEB8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0FEBC CRC                   00000000 (0)\n+0FEC0 Compressed Size       00000000 (0)\n+0FEC4 Uncompressed Size     00000000 (0)\n+0FEC8 Filename Length       0022 (34)\n+0FECA Extra Length          0009 (9)\n+0FECC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xFECC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0FEEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0FEF0   Length              0005 (5)\n+0FEF2   Flags               01 (1) 'Modification'\n+0FEF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0FEF7 LOCAL HEADER #42      04034B50 (67324752)\n+0FEFB Extract Zip Spec      14 (20) '2.0'\n+0FEFC Extract OS            00 (0) 'MS-DOS'\n+0FEFD General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0FEFF Compression Method    0000 (0) 'Stored'\n+0FF01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0FF05 CRC                   00000000 (0)\n+0FF09 Compressed Size       00000000 (0)\n+0FF0D Uncompressed Size     00000000 (0)\n+0FF11 Filename Length       0034 (52)\n+0FF13 Extra Length          0009 (9)\n+0FF15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xFF15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0FF49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0FF4B   Length              0005 (5)\n+0FF4D   Flags               01 (1) 'Modification'\n+0FF4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0FF52 PAYLOAD\n+\n+10825 DATA DESCRIPTOR       08074B50 (134695760)\n+10829 CRC                   0E9B786A (245069930)\n+1082D Compressed Size       000008D3 (2259)\n+10831 Uncompressed Size     000008D3 (2259)\n+\n+10835 LOCAL HEADER #43      04034B50 (67324752)\n+10839 Extract Zip Spec      14 (20) '2.0'\n+1083A Extract OS            00 (0) 'MS-DOS'\n+1083B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1083D Compression Method    0000 (0) 'Stored'\n+1083F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+10843 CRC                   00000000 (0)\n+10847 Compressed Size       00000000 (0)\n+1084B Uncompressed Size     00000000 (0)\n+1084F Filename Length       0038 (56)\n+10851 Extra Length          0009 (9)\n+10853 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x10853: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1088B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1088D   Length              0005 (5)\n+1088F   Flags               01 (1) 'Modification'\n+10890   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+10894 PAYLOAD\n+\n+1136F DATA DESCRIPTOR       08074B50 (134695760)\n+11373 CRC                   966E868C (2523825804)\n+11377 Compressed Size       00000ADB (2779)\n+1137B Uncompressed Size     00000ADB (2779)\n+\n+1137F LOCAL HEADER #44      04034B50 (67324752)\n+11383 Extract Zip Spec      14 (20) '2.0'\n+11384 Extract OS            00 (0) 'MS-DOS'\n+11385 General Purpose Flag  0000 (0)\n+11387 Compression Method    0000 (0) 'Stored'\n+11389 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1138D CRC                   00000000 (0)\n+11391 Compressed Size       00000000 (0)\n+11395 Uncompressed Size     00000000 (0)\n+11399 Filename Length       001C (28)\n+1139B Extra Length          0009 (9)\n+1139D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1139D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+113B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+113BB   Length              0005 (5)\n+113BD   Flags               01 (1) 'Modification'\n+113BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+113C2 LOCAL HEADER #45      04034B50 (67324752)\n+113C6 Extract Zip Spec      14 (20) '2.0'\n+113C7 Extract OS            00 (0) 'MS-DOS'\n+113C8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+113CA Compression Method    0000 (0) 'Stored'\n+113CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+113D0 CRC                   00000000 (0)\n+113D4 Compressed Size       00000000 (0)\n+113D8 Uncompressed Size     00000000 (0)\n+113DC Filename Length       002D (45)\n+113DE Extra Length          0009 (9)\n+113E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x113E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1140D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1140F   Length              0005 (5)\n+11411   Flags               01 (1) 'Modification'\n+11412   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11416 PAYLOAD\n+\n+117F4 DATA DESCRIPTOR       08074B50 (134695760)\n+117F8 CRC                   93C23403 (2478978051)\n+117FC Compressed Size       000003DE (990)\n+11800 Uncompressed Size     000003DE (990)\n+\n+11804 LOCAL HEADER #46      04034B50 (67324752)\n+11808 Extract Zip Spec      14 (20) '2.0'\n+11809 Extract OS            00 (0) 'MS-DOS'\n+1180A General Purpose Flag  0000 (0)\n+1180C Compression Method    0000 (0) 'Stored'\n+1180E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11812 CRC                   00000000 (0)\n+11816 Compressed Size       00000000 (0)\n+1181A Uncompressed Size     00000000 (0)\n+1181E Filename Length       001C (28)\n+11820 Extra Length          0009 (9)\n+11822 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11822: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1183E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11840   Length              0005 (5)\n+11842   Flags               01 (1) 'Modification'\n+11843   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+11847 LOCAL HEADER #47      04034B50 (67324752)\n+1184B Extract Zip Spec      14 (20) '2.0'\n+1184C Extract OS            00 (0) 'MS-DOS'\n+1184D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1184F Compression Method    0000 (0) 'Stored'\n+11851 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11855 CRC                   00000000 (0)\n+11859 Compressed Size       00000000 (0)\n+1185D Uncompressed Size     00000000 (0)\n+11861 Filename Length       0034 (52)\n+11863 Extra Length          0009 (9)\n+11865 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11865: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11899 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1189B   Length              0005 (5)\n+1189D   Flags               01 (1) 'Modification'\n+1189E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+118A2 PAYLOAD\n+\n+123F3 DATA DESCRIPTOR       08074B50 (134695760)\n+123F7 CRC                   4EEFA113 (1324327187)\n+123FB Compressed Size       00000B51 (2897)\n+123FF Uncompressed Size     00000B51 (2897)\n+\n+12403 LOCAL HEADER #48      04034B50 (67324752)\n+12407 Extract Zip Spec      14 (20) '2.0'\n+12408 Extract OS            00 (0) 'MS-DOS'\n+12409 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1240B Compression Method    0000 (0) 'Stored'\n+1240D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12411 CRC                   00000000 (0)\n+12415 Compressed Size       00000000 (0)\n+12419 Uncompressed Size     00000000 (0)\n+1241D Filename Length       0033 (51)\n+1241F Extra Length          0009 (9)\n+12421 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12421: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12454 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12456   Length              0005 (5)\n+12458   Flags               01 (1) 'Modification'\n+12459   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1245D PAYLOAD\n+\n+13F65 DATA DESCRIPTOR       08074B50 (134695760)\n+13F69 CRC                   9CF5D1EF (2633355759)\n+13F6D Compressed Size       00001B08 (6920)\n+13F71 Uncompressed Size     00001B08 (6920)\n+\n+13F75 LOCAL HEADER #49      04034B50 (67324752)\n+13F79 Extract Zip Spec      14 (20) '2.0'\n+13F7A Extract OS            00 (0) 'MS-DOS'\n+13F7B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+13F7D Compression Method    0000 (0) 'Stored'\n+13F7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13F83 CRC                   00000000 (0)\n+13F87 Compressed Size       00000000 (0)\n+13F8B Uncompressed Size     00000000 (0)\n+13F8F Filename Length       0035 (53)\n+13F91 Extra Length          0009 (9)\n+13F93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13F93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13FC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13FCA   Length              0005 (5)\n+13FCC   Flags               01 (1) 'Modification'\n+13FCD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13FD1 PAYLOAD\n+\n+146EE DATA DESCRIPTOR       08074B50 (134695760)\n+146F2 CRC                   60B50DD7 (1622478295)\n+146F6 Compressed Size       0000071D (1821)\n+146FA Uncompressed Size     0000071D (1821)\n+\n+146FE LOCAL HEADER #50      04034B50 (67324752)\n+14702 Extract Zip Spec      14 (20) '2.0'\n+14703 Extract OS            00 (0) 'MS-DOS'\n+14704 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+14706 Compression Method    0000 (0) 'Stored'\n+14708 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1470C CRC                   00000000 (0)\n+14710 Compressed Size       00000000 (0)\n+14714 Uncompressed Size     00000000 (0)\n+14718 Filename Length       0034 (52)\n+1471A Extra Length          0009 (9)\n+1471C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1471C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14750 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14752   Length              0005 (5)\n+14754   Flags               01 (1) 'Modification'\n+14755   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14759 PAYLOAD\n+\n+17333 DATA DESCRIPTOR       08074B50 (134695760)\n+17337 CRC                   78614F57 (2019643223)\n+1733B Compressed Size       00002BDA (11226)\n+1733F Uncompressed Size     00002BDA (11226)\n+\n+17343 LOCAL HEADER #51      04034B50 (67324752)\n+17347 Extract Zip Spec      14 (20) '2.0'\n+17348 Extract OS            00 (0) 'MS-DOS'\n+17349 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1734B Compression Method    0000 (0) 'Stored'\n+1734D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+17351 CRC                   00000000 (0)\n+17355 Compressed Size       00000000 (0)\n+17359 Uncompressed Size     00000000 (0)\n+1735D Filename Length       0032 (50)\n+1735F Extra Length          0009 (9)\n+17361 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x17361: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+17393 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+17395   Length              0005 (5)\n+17397   Flags               01 (1) 'Modification'\n+17398   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1739C PAYLOAD\n+\n+18E5E DATA DESCRIPTOR       08074B50 (134695760)\n+18E62 CRC                   17A6F6D0 (396818128)\n+18E66 Compressed Size       00001AC2 (6850)\n+18E6A Uncompressed Size     00001AC2 (6850)\n+\n+18E6E LOCAL HEADER #52      04034B50 (67324752)\n+18E72 Extract Zip Spec      14 (20) '2.0'\n+18E73 Extract OS            00 (0) 'MS-DOS'\n+18E74 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+18E76 Compression Method    0000 (0) 'Stored'\n+18E78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+18E7C CRC                   00000000 (0)\n+18E80 Compressed Size       00000000 (0)\n+18E84 Uncompressed Size     00000000 (0)\n+18E88 Filename Length       0031 (49)\n+18E8A Extra Length          0009 (9)\n+18E8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x18E8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+18EBD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+18EBF   Length              0005 (5)\n+18EC1   Flags               01 (1) 'Modification'\n+18EC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+18EC6 PAYLOAD\n+\n+19E9D DATA DESCRIPTOR       08074B50 (134695760)\n+19EA1 CRC                   65289261 (1697157729)\n+19EA5 Compressed Size       00000FD7 (4055)\n+19EA9 Uncompressed Size     00000FD7 (4055)\n+\n+19EAD LOCAL HEADER #53      04034B50 (67324752)\n+19EB1 Extract Zip Spec      14 (20) '2.0'\n+19EB2 Extract OS            00 (0) 'MS-DOS'\n+19EB3 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+19EB5 Compression Method    0000 (0) 'Stored'\n+19EB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+19EBB CRC                   00000000 (0)\n+19EBF Compressed Size       00000000 (0)\n+19EC3 Uncompressed Size     00000000 (0)\n+19EC7 Filename Length       0032 (50)\n+19EC9 Extra Length          0009 (9)\n+19ECB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x19ECB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+19EFD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+19EFF   Length              0005 (5)\n+19F01   Flags               01 (1) 'Modification'\n+19F02   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+19F06 PAYLOAD\n+\n+1AE6B DATA DESCRIPTOR       08074B50 (134695760)\n+1AE6F CRC                   59C732CA (1506226890)\n+1AE73 Compressed Size       00000F65 (3941)\n+1AE77 Uncompressed Size     00000F65 (3941)\n+\n+1AE7B LOCAL HEADER #54      04034B50 (67324752)\n+1AE7F Extract Zip Spec      14 (20) '2.0'\n+1AE80 Extract OS            00 (0) 'MS-DOS'\n+1AE81 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1AE83 Compression Method    0000 (0) 'Stored'\n+1AE85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1AE89 CRC                   00000000 (0)\n+1AE8D Compressed Size       00000000 (0)\n+1AE91 Uncompressed Size     00000000 (0)\n+1AE95 Filename Length       0034 (52)\n+1AE97 Extra Length          0009 (9)\n+1AE99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1AE99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1AECD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1AECF   Length              0005 (5)\n+1AED1   Flags               01 (1) 'Modification'\n+1AED2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1AED6 PAYLOAD\n+\n+1B9E9 DATA DESCRIPTOR       08074B50 (134695760)\n+1B9ED CRC                   62C17732 (1656846130)\n+1B9F1 Compressed Size       00000B13 (2835)\n+1B9F5 Uncompressed Size     00000B13 (2835)\n+\n+1B9F9 LOCAL HEADER #55      04034B50 (67324752)\n+1B9FD Extract Zip Spec      14 (20) '2.0'\n+1B9FE Extract OS            00 (0) 'MS-DOS'\n+1B9FF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1BA01 Compression Method    0000 (0) 'Stored'\n+1BA03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1BA07 CRC                   00000000 (0)\n+1BA0B Compressed Size       00000000 (0)\n+1BA0F Uncompressed Size     00000000 (0)\n+1BA13 Filename Length       0036 (54)\n+1BA15 Extra Length          0009 (9)\n+1BA17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1BA17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1BA4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1BA4F   Length              0005 (5)\n+1BA51   Flags               01 (1) 'Modification'\n+1BA52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1BA56 PAYLOAD\n+\n+1C51D DATA DESCRIPTOR       08074B50 (134695760)\n+1C521 CRC                   BD59212E (3176735022)\n+1C525 Compressed Size       00000AC7 (2759)\n+1C529 Uncompressed Size     00000AC7 (2759)\n+\n+1C52D LOCAL HEADER #56      04034B50 (67324752)\n+1C531 Extract Zip Spec      14 (20) '2.0'\n+1C532 Extract OS            00 (0) 'MS-DOS'\n+1C533 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1C535 Compression Method    0000 (0) 'Stored'\n+1C537 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C53B CRC                   00000000 (0)\n+1C53F Compressed Size       00000000 (0)\n+1C543 Uncompressed Size     00000000 (0)\n+1C547 Filename Length       0033 (51)\n+1C549 Extra Length          0009 (9)\n+1C54B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C54B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C57E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C580   Length              0005 (5)\n+1C582   Flags               01 (1) 'Modification'\n+1C583   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C587 PAYLOAD\n+\n+1D59F DATA DESCRIPTOR       08074B50 (134695760)\n+1D5A3 CRC                   6E324421 (1848788001)\n+1D5A7 Compressed Size       00001018 (4120)\n+1D5AB Uncompressed Size     00001018 (4120)\n+\n+1D5AF LOCAL HEADER #57      04034B50 (67324752)\n+1D5B3 Extract Zip Spec      14 (20) '2.0'\n+1D5B4 Extract OS            00 (0) 'MS-DOS'\n+1D5B5 General Purpose Flag  0000 (0)\n+1D5B7 Compression Method    0000 (0) 'Stored'\n+1D5B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D5BD CRC                   00000000 (0)\n+1D5C1 Compressed Size       00000000 (0)\n+1D5C5 Uncompressed Size     00000000 (0)\n+1D5C9 Filename Length       001E (30)\n+1D5CB Extra Length          0009 (9)\n+1D5CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D5CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D5EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D5ED   Length              0005 (5)\n+1D5EF   Flags               01 (1) 'Modification'\n+1D5F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1D5F4 LOCAL HEADER #58      04034B50 (67324752)\n+1D5F8 Extract Zip Spec      14 (20) '2.0'\n+1D5F9 Extract OS            00 (0) 'MS-DOS'\n+1D5FA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1D5FC Compression Method    0000 (0) 'Stored'\n+1D5FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D602 CRC                   00000000 (0)\n+1D606 Compressed Size       00000000 (0)\n+1D60A Uncompressed Size     00000000 (0)\n+1D60E Filename Length       0035 (53)\n+1D610 Extra Length          0009 (9)\n+1D612 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D612: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D647 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D649   Length              0005 (5)\n+1D64B   Flags               01 (1) 'Modification'\n+1D64C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D650 PAYLOAD\n+\n+1E79E DATA DESCRIPTOR       08074B50 (134695760)\n+1E7A2 CRC                   5829DD8D (1479138701)\n+1E7A6 Compressed Size       0000114E (4430)\n+1E7AA Uncompressed Size     0000114E (4430)\n+\n+1E7AE LOCAL HEADER #59      04034B50 (67324752)\n+1E7B2 Extract Zip Spec      14 (20) '2.0'\n+1E7B3 Extract OS            00 (0) 'MS-DOS'\n+1E7B4 General Purpose Flag  0000 (0)\n+1E7B6 Compression Method    0000 (0) 'Stored'\n+1E7B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E7BC CRC                   00000000 (0)\n+1E7C0 Compressed Size       00000000 (0)\n+1E7C4 Uncompressed Size     00000000 (0)\n+1E7C8 Filename Length       001C (28)\n+1E7CA Extra Length          0009 (9)\n+1E7CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E7CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E7E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E7EA   Length              0005 (5)\n+1E7EC   Flags               01 (1) 'Modification'\n+1E7ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1E7F1 LOCAL HEADER #60      04034B50 (67324752)\n+1E7F5 Extract Zip Spec      14 (20) '2.0'\n+1E7F6 Extract OS            00 (0) 'MS-DOS'\n+1E7F7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1E7F9 Compression Method    0000 (0) 'Stored'\n+1E7FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E7FF CRC                   00000000 (0)\n+1E803 Compressed Size       00000000 (0)\n+1E807 Uncompressed Size     00000000 (0)\n+1E80B Filename Length       002A (42)\n+1E80D Extra Length          0009 (9)\n+1E80F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E80F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E839 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E83B   Length              0005 (5)\n+1E83D   Flags               01 (1) 'Modification'\n+1E83E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1E842 PAYLOAD\n+\n+1ED40 DATA DESCRIPTOR       08074B50 (134695760)\n+1ED44 CRC                   AF68925C (2942866012)\n+1ED48 Compressed Size       000004FE (1278)\n+1ED4C Uncompressed Size     000004FE (1278)\n+\n+1ED50 LOCAL HEADER #61      04034B50 (67324752)\n+1ED54 Extract Zip Spec      14 (20) '2.0'\n+1ED55 Extract OS            00 (0) 'MS-DOS'\n+1ED56 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1ED58 Compression Method    0000 (0) 'Stored'\n+1ED5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1ED5E CRC                   00000000 (0)\n+1ED62 Compressed Size       00000000 (0)\n+1ED66 Uncompressed Size     00000000 (0)\n+1ED6A Filename Length       0027 (39)\n+1ED6C Extra Length          0009 (9)\n+1ED6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1ED6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1ED95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1ED97   Length              0005 (5)\n+1ED99   Flags               01 (1) 'Modification'\n+1ED9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1ED9E PAYLOAD\n+\n+20004 DATA DESCRIPTOR       08074B50 (134695760)\n+20008 CRC                   97DFDDD6 (2548030934)\n+2000C Compressed Size       00001266 (4710)\n+20010 Uncompressed Size     00001266 (4710)\n+\n+20014 LOCAL HEADER #62      04034B50 (67324752)\n+20018 Extract Zip Spec      14 (20) '2.0'\n+20019 Extract OS            00 (0) 'MS-DOS'\n+2001A General Purpose Flag  0000 (0)\n+2001C Compression Method    0000 (0) 'Stored'\n+2001E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+20022 CRC                   00000000 (0)\n+20026 Compressed Size       00000000 (0)\n+2002A Uncompressed Size     00000000 (0)\n+2002E Filename Length       0024 (36)\n+20030 Extra Length          0009 (9)\n+20032 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x20032: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+20056 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+20058   Length              0005 (5)\n+2005A   Flags               01 (1) 'Modification'\n+2005B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2005F LOCAL HEADER #63      04034B50 (67324752)\n+20063 Extract Zip Spec      14 (20) '2.0'\n+20064 Extract OS            00 (0) 'MS-DOS'\n+20065 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+20067 Compression Method    0000 (0) 'Stored'\n+20069 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2006D CRC                   00000000 (0)\n+20071 Compressed Size       00000000 (0)\n+20075 Uncompressed Size     00000000 (0)\n+20079 Filename Length       003B (59)\n+2007B Extra Length          0009 (9)\n+2007D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2007D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+200B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+200BA   Length              0005 (5)\n+200BC   Flags               01 (1) 'Modification'\n+200BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+200C1 PAYLOAD\n+\n+214F7 DATA DESCRIPTOR       08074B50 (134695760)\n+214FB CRC                   5688E99A (1451813274)\n+214FF Compressed Size       00001436 (5174)\n+21503 Uncompressed Size     00001436 (5174)\n+\n+21507 LOCAL HEADER #64      04034B50 (67324752)\n+2150B Extract Zip Spec      14 (20) '2.0'\n+2150C Extract OS            00 (0) 'MS-DOS'\n+2150D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2150F Compression Method    0000 (0) 'Stored'\n+21511 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21515 CRC                   00000000 (0)\n+21519 Compressed Size       00000000 (0)\n+2151D Uncompressed Size     00000000 (0)\n+21521 Filename Length       003F (63)\n+21523 Extra Length          0009 (9)\n+21525 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21525: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21564 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21566   Length              0005 (5)\n+21568   Flags               01 (1) 'Modification'\n+21569   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2156D PAYLOAD\n+\n+21D0E DATA DESCRIPTOR       08074B50 (134695760)\n+21D12 CRC                   DA916F8A (3666964362)\n+21D16 Compressed Size       000007A1 (1953)\n+21D1A Uncompressed Size     000007A1 (1953)\n+\n+21D1E LOCAL HEADER #65      04034B50 (67324752)\n+21D22 Extract Zip Spec      14 (20) '2.0'\n+21D23 Extract OS            00 (0) 'MS-DOS'\n+21D24 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+21D26 Compression Method    0000 (0) 'Stored'\n+21D28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21D2C CRC                   00000000 (0)\n+21D30 Compressed Size       00000000 (0)\n+21D34 Uncompressed Size     00000000 (0)\n+21D38 Filename Length       003A (58)\n+21D3A Extra Length          0009 (9)\n+21D3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21D3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21D76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21D78   Length              0005 (5)\n+21D7A   Flags               01 (1) 'Modification'\n+21D7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+21D7F PAYLOAD\n+\n+22DFD DATA DESCRIPTOR       08074B50 (134695760)\n+22E01 CRC                   5C0FF18B (1544548747)\n+22E05 Compressed Size       0000107E (4222)\n+22E09 Uncompressed Size     0000107E (4222)\n+\n+22E0D LOCAL HEADER #66      04034B50 (67324752)\n+22E11 Extract Zip Spec      14 (20) '2.0'\n+22E12 Extract OS            00 (0) 'MS-DOS'\n+22E13 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+22E15 Compression Method    0000 (0) 'Stored'\n+22E17 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22E1B CRC                   00000000 (0)\n+22E1F Compressed Size       00000000 (0)\n+22E23 Uncompressed Size     00000000 (0)\n+22E27 Filename Length       003F (63)\n+22E29 Extra Length          0009 (9)\n+22E2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22E2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22E6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22E6C   Length              0005 (5)\n+22E6E   Flags               01 (1) 'Modification'\n+22E6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22E73 PAYLOAD\n+\n+23586 DATA DESCRIPTOR       08074B50 (134695760)\n+2358A CRC                   F592DA8D (4120042125)\n+2358E Compressed Size       00000713 (1811)\n+23592 Uncompressed Size     00000713 (1811)\n+\n+23596 LOCAL HEADER #67      04034B50 (67324752)\n+2359A Extract Zip Spec      14 (20) '2.0'\n+2359B Extract OS            00 (0) 'MS-DOS'\n+2359C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2359E Compression Method    0000 (0) 'Stored'\n+235A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+235A4 CRC                   00000000 (0)\n+235A8 Compressed Size       00000000 (0)\n+235AC Uncompressed Size     00000000 (0)\n+235B0 Filename Length       003D (61)\n+235B2 Extra Length          0009 (9)\n+235B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x235B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+235F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+235F3   Length              0005 (5)\n+235F5   Flags               01 (1) 'Modification'\n+235F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+235FA PAYLOAD\n+\n+242C4 DATA DESCRIPTOR       08074B50 (134695760)\n+242C8 CRC                   D705EF34 (3607490356)\n+242CC Compressed Size       00000CCA (3274)\n+242D0 Uncompressed Size     00000CCA (3274)\n+\n+242D4 LOCAL HEADER #68      04034B50 (67324752)\n+242D8 Extract Zip Spec      14 (20) '2.0'\n+242D9 Extract OS            00 (0) 'MS-DOS'\n+242DA General Purpose Flag  0000 (0)\n+242DC Compression Method    0000 (0) 'Stored'\n+242DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+242E2 CRC                   00000000 (0)\n+242E6 Compressed Size       00000000 (0)\n+242EA Uncompressed Size     00000000 (0)\n+242EE Filename Length       001C (28)\n+242F0 Extra Length          0009 (9)\n+242F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x242F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2430E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24310   Length              0005 (5)\n+24312   Flags               01 (1) 'Modification'\n+24313   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+24317 LOCAL HEADER #69      04034B50 (67324752)\n+2431B Extract Zip Spec      14 (20) '2.0'\n+2431C Extract OS            00 (0) 'MS-DOS'\n+2431D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2431F Compression Method    0000 (0) 'Stored'\n+24321 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+24325 CRC                   00000000 (0)\n+24329 Compressed Size       00000000 (0)\n+2432D Uncompressed Size     00000000 (0)\n+24331 Filename Length       002B (43)\n+24333 Extra Length          0009 (9)\n+24335 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x24335: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24360 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24362   Length              0005 (5)\n+24364   Flags               01 (1) 'Modification'\n+24365   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+24369 PAYLOAD\n+\n+24740 DATA DESCRIPTOR       08074B50 (134695760)\n+24744 CRC                   2AA01116 (715133206)\n+24748 Compressed Size       000003D7 (983)\n+2474C Uncompressed Size     000003D7 (983)\n+\n+24750 LOCAL HEADER #70      04034B50 (67324752)\n+24754 Extract Zip Spec      14 (20) '2.0'\n+24755 Extract OS            00 (0) 'MS-DOS'\n+24756 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+24758 Compression Method    0000 (0) 'Stored'\n+2475A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2475E CRC                   00000000 (0)\n+24762 Compressed Size       00000000 (0)\n+24766 Uncompressed Size     00000000 (0)\n+2476A Filename Length       0024 (36)\n+2476C Extra Length          0009 (9)\n+2476E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2476E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24792 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24794   Length              0005 (5)\n+24796   Flags               01 (1) 'Modification'\n+24797   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2479B PAYLOAD\n+\n+25249 DATA DESCRIPTOR       08074B50 (134695760)\n+2524D CRC                   70DD7BE1 (1893563361)\n+25251 Compressed Size       00000AAE (2734)\n+25255 Uncompressed Size     00000AAE (2734)\n+\n+25259 LOCAL HEADER #71      04034B50 (67324752)\n+2525D Extract Zip Spec      14 (20) '2.0'\n+2525E Extract OS            00 (0) 'MS-DOS'\n+2525F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+25261 Compression Method    0000 (0) 'Stored'\n+25263 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+25267 CRC                   00000000 (0)\n+2526B Compressed Size       00000000 (0)\n+2526F Uncompressed Size     00000000 (0)\n+25273 Filename Length       0028 (40)\n+25275 Extra Length          0009 (9)\n+25277 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x25277: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2529F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+252A1   Length              0005 (5)\n+252A3   Flags               01 (1) 'Modification'\n+252A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+252A8 PAYLOAD\n+\n+25B85 DATA DESCRIPTOR       08074B50 (134695760)\n+25B89 CRC                   725BA0A7 (1918607527)\n+25B8D Compressed Size       000008DD (2269)\n+25B91 Uncompressed Size     000008DD (2269)\n+\n+25B95 LOCAL HEADER #72      04034B50 (67324752)\n+25B99 Extract Zip Spec      14 (20) '2.0'\n+25B9A Extract OS            00 (0) 'MS-DOS'\n+25B9B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+25B9D Compression Method    0000 (0) 'Stored'\n+25B9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+25BA3 CRC                   00000000 (0)\n+25BA7 Compressed Size       00000000 (0)\n+25BAB Uncompressed Size     00000000 (0)\n+25BAF Filename Length       0027 (39)\n+25BB1 Extra Length          0009 (9)\n+25BB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x25BB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+25BDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+25BDC   Length              0005 (5)\n+25BDE   Flags               01 (1) 'Modification'\n+25BDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+25BE3 PAYLOAD\n+\n+29B1A DATA DESCRIPTOR       08074B50 (134695760)\n+29B1E CRC                   7076ABE9 (1886825449)\n+29B22 Compressed Size       00003F37 (16183)\n+29B26 Uncompressed Size     00003F37 (16183)\n+\n+29B2A LOCAL HEADER #73      04034B50 (67324752)\n+29B2E Extract Zip Spec      14 (20) '2.0'\n+29B2F Extract OS            00 (0) 'MS-DOS'\n+29B30 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+29B32 Compression Method    0000 (0) 'Stored'\n+29B34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29B38 CRC                   00000000 (0)\n+29B3C Compressed Size       00000000 (0)\n+29B40 Uncompressed Size     00000000 (0)\n+29B44 Filename Length       0026 (38)\n+29B46 Extra Length          0009 (9)\n+29B48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29B48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+29B6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+29B70   Length              0005 (5)\n+29B72   Flags               01 (1) 'Modification'\n+29B73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+29B77 PAYLOAD\n+\n+2B94F DATA DESCRIPTOR       08074B50 (134695760)\n+2B953 CRC                   E7722336 (3883017014)\n+2B957 Compressed Size       00001DD8 (7640)\n+2B95B Uncompressed Size     00001DD8 (7640)\n+\n+2B95F CENTRAL HEADER #1     02014B50 (33639248)\n+2B963 Created Zip Spec      14 (20) '2.0'\n+2B964 Created OS            00 (0) 'MS-DOS'\n+2B965 Extract Zip Spec      14 (20) '2.0'\n+2B966 Extract OS            00 (0) 'MS-DOS'\n+2B967 General Purpose Flag  0000 (0)\n+2B969 Compression Method    0000 (0) 'Stored'\n+2B96B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B96F CRC                   00000000 (0)\n+2B973 Compressed Size       00000000 (0)\n+2B977 Uncompressed Size     00000000 (0)\n+2B97B Filename Length       0009 (9)\n+2B97D Extra Length          0009 (9)\n+2B97F Comment Length        0000 (0)\n+2B981 Disk Start            0000 (0)\n+2B983 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2B985 Ext File Attributes   00000000 (0)\n+2B989 Local Header Offset   00000000 (0)\n+2B98D Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B98D: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+2B996 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B998   Length              0005 (5)\n+2B99A   Flags               01 (1) 'Modification'\n+2B99B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2B99F CENTRAL HEADER #2     02014B50 (33639248)\n+2B9A3 Created Zip Spec      14 (20) '2.0'\n+2B9A4 Created OS            00 (0) 'MS-DOS'\n+2B9A5 Extract Zip Spec      14 (20) '2.0'\n+2B9A6 Extract OS            00 (0) 'MS-DOS'\n+2B9A7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2B9A9 Compression Method    0000 (0) 'Stored'\n+2B9AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B9AF CRC                   3FA1E7D4 (1067575252)\n+2B9B3 Compressed Size       00001A04 (6660)\n+2B9B7 Uncompressed Size     00001A04 (6660)\n+2B9BB Filename Length       0015 (21)\n+2B9BD Extra Length          0009 (9)\n+2B9BF Comment Length        0000 (0)\n+2B9C1 Disk Start            0000 (0)\n+2B9C3 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2B9C5 Ext File Attributes   00000000 (0)\n+2B9C9 Local Header Offset   00000030 (48)\n+2B9CD Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B9CD: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2B9E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B9E4   Length              0005 (5)\n+2B9E6   Flags               01 (1) 'Modification'\n+2B9E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2B9EB CENTRAL HEADER #3     02014B50 (33639248)\n+2B9EF Created Zip Spec      14 (20) '2.0'\n+2B9F0 Created OS            00 (0) 'MS-DOS'\n+2B9F1 Extract Zip Spec      14 (20) '2.0'\n+2B9F2 Extract OS            00 (0) 'MS-DOS'\n+2B9F3 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2B9F5 Compression Method    0000 (0) 'Stored'\n+2B9F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B9FB CRC                   86E2B4B4 (2263004340)\n+2B9FF Compressed Size       00002C5E (11358)\n+2BA03 Uncompressed Size     00002C5E (11358)\n+2BA07 Filename Length       0010 (16)\n+2BA09 Extra Length          0009 (9)\n+2BA0B Comment Length        0000 (0)\n+2BA0D Disk Start            0000 (0)\n+2BA0F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BA11 Ext File Attributes   00000000 (0)\n+2BA15 Local Header Offset   00001A80 (6784)\n+2BA19 Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BA19: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BA29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BA2B   Length              0005 (5)\n+2BA2D   Flags               01 (1) 'Modification'\n+2BA2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BA32 CENTRAL HEADER #4     02014B50 (33639248)\n+2BA36 Created Zip Spec      14 (20) '2.0'\n+2BA37 Created OS            00 (0) 'MS-DOS'\n+2BA38 Extract Zip Spec      14 (20) '2.0'\n+2BA39 Extract OS            00 (0) 'MS-DOS'\n+2BA3A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2BA3C Compression Method    0000 (0) 'Stored'\n+2BA3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BA42 CRC                   EE027FB2 (3993141170)\n+2BA46 Compressed Size       00000019 (25)\n+2BA4A Uncompressed Size     00000019 (25)\n+2BA4E Filename Length       0014 (20)\n+2BA50 Extra Length          0009 (9)\n+2BA52 Comment Length        0000 (0)\n+2BA54 Disk Start            0000 (0)\n+2BA56 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BA58 Ext File Attributes   00000000 (0)\n+2BA5C Local Header Offset   00004725 (18213)\n+2BA60 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BA60: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BA74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BA76   Length              0005 (5)\n+2BA78   Flags               01 (1) 'Modification'\n+2BA79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BA7D CENTRAL HEADER #5     02014B50 (33639248)\n+2BA81 Created Zip Spec      14 (20) '2.0'\n+2BA82 Created OS            00 (0) 'MS-DOS'\n+2BA83 Extract Zip Spec      14 (20) '2.0'\n+2BA84 Extract OS            00 (0) 'MS-DOS'\n+2BA85 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2BA87 Compression Method    0000 (0) 'Stored'\n+2BA89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BA8D CRC                   6BA82C99 (1806183577)\n+2BA91 Compressed Size       000000A6 (166)\n+2BA95 Uncompressed Size     000000A6 (166)\n+2BA99 Filename Length       000F (15)\n+2BA9B Extra Length          0009 (9)\n+2BA9D Comment Length        0000 (0)\n+2BA9F Disk Start            0000 (0)\n+2BAA1 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BAA3 Ext File Attributes   00000000 (0)\n+2BAA7 Local Header Offset   00004789 (18313)\n+2BAAB Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BAAB: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BABA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BABC   Length              0005 (5)\n+2BABE   Flags               01 (1) 'Modification'\n+2BABF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BAC3 CENTRAL HEADER #6     02014B50 (33639248)\n+2BAC7 Created Zip Spec      14 (20) '2.0'\n+2BAC8 Created OS            00 (0) 'MS-DOS'\n+2BAC9 Extract Zip Spec      14 (20) '2.0'\n+2BACA Extract OS            00 (0) 'MS-DOS'\n+2BACB General Purpose Flag  0000 (0)\n+2BACD Compression Method    0000 (0) 'Stored'\n+2BACF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BAD3 CRC                   00000000 (0)\n+2BAD7 Compressed Size       00000000 (0)\n+2BADB Uncompressed Size     00000000 (0)\n+2BADF Filename Length       000F (15)\n+2BAE1 Extra Length          0009 (9)\n+2BAE3 Comment Length        0000 (0)\n+2BAE5 Disk Start            0000 (0)\n+2BAE7 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BAE9 Ext File Attributes   00000000 (0)\n+2BAED Local Header Offset   00004875 (18549)\n+2BAF1 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BAF1: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BB00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BB02   Length              0005 (5)\n+2BB04   Flags               01 (1) 'Modification'\n+2BB05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BB09 CENTRAL HEADER #7     02014B50 (33639248)\n+2BB0D Created Zip Spec      14 (20) '2.0'\n+2BB0E Created OS            00 (0) 'MS-DOS'\n+2BB0F Extract Zip Spec      14 (20) '2.0'\n+2BB10 Extract OS            00 (0) 'MS-DOS'\n+2BB11 General Purpose Flag  0000 (0)\n+2BB13 Compression Method    0000 (0) 'Stored'\n+2BB15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BB19 CRC                   00000000 (0)\n+2BB1D Compressed Size       00000000 (0)\n+2BB21 Uncompressed Size     00000000 (0)\n+2BB25 Filename Length       0018 (24)\n+2BB27 Extra Length          0009 (9)\n+2BB29 Comment Length        0000 (0)\n+2BB2B Disk Start            0000 (0)\n+2BB2D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BB2F Ext File Attributes   00000000 (0)\n+2BB33 Local Header Offset   000048AB (18603)\n+2BB37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BB37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BB4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BB51   Length              0005 (5)\n+2BB53   Flags               01 (1) 'Modification'\n+2BB54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BB58 CENTRAL HEADER #8     02014B50 (33639248)\n+2BB5C Created Zip Spec      14 (20) '2.0'\n+2BB5D Created OS            00 (0) 'MS-DOS'\n+2BB5E Extract Zip Spec      14 (20) '2.0'\n+2BB5F Extract OS            00 (0) 'MS-DOS'\n+2BB60 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2BB62 Compression Method    0000 (0) 'Stored'\n+2BB64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BB68 CRC                   A18B762D (2710271533)\n+2BB6C Compressed Size       0000018D (397)\n+2BB70 Uncompressed Size     0000018D (397)\n+2BB74 Filename Length       0040 (64)\n+2BB76 Extra Length          0009 (9)\n+2BB78 Comment Length        0000 (0)\n+2BB7A Disk Start            0000 (0)\n+2BB7C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BB7E Ext File Attributes   00000000 (0)\n+2BB82 Local Header Offset   000048EA (18666)\n+2BB86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BB86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BBC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BBC8   Length              0005 (5)\n+2BBCA   Flags               01 (1) 'Modification'\n+2BBCB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BBCF CENTRAL HEADER #9     02014B50 (33639248)\n+2BBD3 Created Zip Spec      14 (20) '2.0'\n+2BBD4 Created OS            00 (0) 'MS-DOS'\n+2BBD5 Extract Zip Spec      14 (20) '2.0'\n+2BBD6 Extract OS            00 (0) 'MS-DOS'\n+2BBD7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2BBD9 Compression Method    0000 (0) 'Stored'\n+2BBDB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BBDF CRC                   60DE3136 (1625174326)\n+2BBE3 Compressed Size       000001E4 (484)\n+2BBE7 Uncompressed Size     000001E4 (484)\n+2BBEB Filename Length       0046 (70)\n+2BBED Extra Length          0009 (9)\n+2BBEF Comment Length        0000 (0)\n+2BBF1 Disk Start            0000 (0)\n+2BBF3 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BBF5 Ext File Attributes   00000000 (0)\n+2BBF9 Local Header Offset   00004AEE (19182)\n+2BBFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BBFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BC43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BC45   Length              0005 (5)\n+2BC47   Flags               01 (1) 'Modification'\n+2BC48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BC4C CENTRAL HEADER #10    02014B50 (33639248)\n+2BC50 Created Zip Spec      14 (20) '2.0'\n+2BC51 Created OS            00 (0) 'MS-DOS'\n+2BC52 Extract Zip Spec      14 (20) '2.0'\n+2BC53 Extract OS            00 (0) 'MS-DOS'\n+2BC54 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2BC56 Compression Method    0000 (0) 'Stored'\n+2BC58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BC5C CRC                   66A9E2AF (1722409647)\n+2BC60 Compressed Size       00000034 (52)\n+2BC64 Uncompressed Size     00000034 (52)\n+2BC68 Filename Length       0035 (53)\n+2BC6A Extra Length          0009 (9)\n+2BC6C Comment Length        0000 (0)\n+2BC6E Disk Start            0000 (0)\n+2BC70 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BC72 Ext File Attributes   00000000 (0)\n+2BC76 Local Header Offset   00004D4F (19791)\n+2BC7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BC7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BCAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BCB1   Length              0005 (5)\n+2BCB3   Flags               01 (1) 'Modification'\n+2BCB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BCB8 CENTRAL HEADER #11    02014B50 (33639248)\n+2BCBC Created Zip Spec      14 (20) '2.0'\n+2BCBD Created OS            00 (0) 'MS-DOS'\n+2BCBE Extract Zip Spec      14 (20) '2.0'\n+2BCBF Extract OS            00 (0) 'MS-DOS'\n+2BCC0 General Purpose Flag  0000 (0)\n+2BCC2 Compression Method    0000 (0) 'Stored'\n+2BCC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BCC8 CRC                   00000000 (0)\n+2BCCC Compressed Size       00000000 (0)\n+2BCD0 Uncompressed Size     00000000 (0)\n+2BCD4 Filename Length       000F (15)\n+2BCD6 Extra Length          0009 (9)\n+2BCD8 Comment Length        0000 (0)\n+2BCDA Disk Start            0000 (0)\n+2BCDC Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BCDE Ext File Attributes   00000000 (0)\n+2BCE2 Local Header Offset   00004DEF (19951)\n+2BCE6 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BCE6: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BCF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BCF7   Length              0005 (5)\n+2BCF9   Flags               01 (1) 'Modification'\n+2BCFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BCFE CENTRAL HEADER #12    02014B50 (33639248)\n+2BD02 Created Zip Spec      14 (20) '2.0'\n+2BD03 Created OS            00 (0) 'MS-DOS'\n+2BD04 Extract Zip Spec      14 (20) '2.0'\n+2BD05 Extract OS            00 (0) 'MS-DOS'\n+2BD06 General Purpose Flag  0000 (0)\n+2BD08 Compression Method    0000 (0) 'Stored'\n+2BD0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BD0E CRC                   00000000 (0)\n+2BD12 Compressed Size       00000000 (0)\n+2BD16 Uncompressed Size     00000000 (0)\n+2BD1A Filename Length       0020 (32)\n+2BD1C Extra Length          0009 (9)\n+2BD1E Comment Length        0000 (0)\n+2BD20 Disk Start            0000 (0)\n+2BD22 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BD24 Ext File Attributes   00000000 (0)\n+2BD28 Local Header Offset   00004E25 (20005)\n+2BD2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BD2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BD4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BD4E   Length              0005 (5)\n+2BD50   Flags               01 (1) 'Modification'\n+2BD51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BD55 CENTRAL HEADER #13    02014B50 (33639248)\n+2BD59 Created Zip Spec      14 (20) '2.0'\n+2BD5A Created OS            00 (0) 'MS-DOS'\n+2BD5B Extract Zip Spec      14 (20) '2.0'\n+2BD5C Extract OS            00 (0) 'MS-DOS'\n+2BD5D General Purpose Flag  0000 (0)\n+2BD5F Compression Method    0000 (0) 'Stored'\n+2BD61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BD65 CRC                   00000000 (0)\n+2BD69 Compressed Size       00000000 (0)\n+2BD6D Uncompressed Size     00000000 (0)\n+2BD71 Filename Length       002A (42)\n+2BD73 Extra Length          0009 (9)\n+2BD75 Comment Length        0000 (0)\n+2BD77 Disk Start            0000 (0)\n+2BD79 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BD7B Ext File Attributes   00000000 (0)\n+2BD7F Local Header Offset   00004E6C (20076)\n+2BD83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BD83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BDAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BDAF   Length              0005 (5)\n+2BDB1   Flags               01 (1) 'Modification'\n+2BDB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BDB6 CENTRAL HEADER #14    02014B50 (33639248)\n+2BDBA Created Zip Spec      14 (20) '2.0'\n+2BDBB Created OS            00 (0) 'MS-DOS'\n+2BDBC Extract Zip Spec      14 (20) '2.0'\n+2BDBD Extract OS            00 (0) 'MS-DOS'\n+2BDBE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2BDC0 Compression Method    0000 (0) 'Stored'\n+2BDC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BDC6 CRC                   00000000 (0)\n+2BDCA Compressed Size       00000000 (0)\n+2BDCE Uncompressed Size     00000000 (0)\n+2BDD2 Filename Length       0038 (56)\n+2BDD4 Extra Length          0009 (9)\n+2BDD6 Comment Length        0000 (0)\n+2BDD8 Disk Start            0000 (0)\n+2BDDA Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BDDC Ext File Attributes   00000000 (0)\n+2BDE0 Local Header Offset   00004EBD (20157)\n+2BDE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BDE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BE1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BE1E   Length              0005 (5)\n+2BE20   Flags               01 (1) 'Modification'\n+2BE21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BE25 CENTRAL HEADER #15    02014B50 (33639248)\n+2BE29 Created Zip Spec      14 (20) '2.0'\n+2BE2A Created OS            00 (0) 'MS-DOS'\n+2BE2B Extract Zip Spec      14 (20) '2.0'\n+2BE2C Extract OS            00 (0) 'MS-DOS'\n+2BE2D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2BE2F Compression Method    0000 (0) 'Stored'\n+2BE31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BE35 CRC                   CC527EDE (3427958494)\n+2BE39 Compressed Size       00000B3D (2877)\n+2BE3D Uncompressed Size     00000B3D (2877)\n+2BE41 Filename Length       0031 (49)\n+2BE43 Extra Length          0009 (9)\n+2BE45 Comment Length        0000 (0)\n+2BE47 Disk Start            0000 (0)\n+2BE49 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BE4B Ext File Attributes   00000000 (0)\n+2BE4F Local Header Offset   00004F2C (20268)\n+2BE53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BE53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BE84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BE86   Length              0005 (5)\n+2BE88   Flags               01 (1) 'Modification'\n+2BE89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BE8D CENTRAL HEADER #16    02014B50 (33639248)\n+2BE91 Created Zip Spec      14 (20) '2.0'\n+2BE92 Created OS            00 (0) 'MS-DOS'\n+2BE93 Extract Zip Spec      14 (20) '2.0'\n+2BE94 Extract OS            00 (0) 'MS-DOS'\n+2BE95 General Purpose Flag  0000 (0)\n+2BE97 Compression Method    0000 (0) 'Stored'\n+2BE99 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BE9D CRC                   00000000 (0)\n+2BEA1 Compressed Size       00000000 (0)\n+2BEA5 Uncompressed Size     00000000 (0)\n+2BEA9 Filename Length       0004 (4)\n+2BEAB Extra Length          0009 (9)\n+2BEAD Comment Length        0000 (0)\n+2BEAF Disk Start            0000 (0)\n+2BEB1 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BEB3 Ext File Attributes   00000000 (0)\n+2BEB7 Local Header Offset   00005AD1 (23249)\n+2BEBB Filename              'XXXX'\n+#\n+# WARNING: Offset 0x2BEBB: Filename 'XXXX'\n+#          Zero length filename\n+#\n+2BEBF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BEC1   Length              0005 (5)\n+2BEC3   Flags               01 (1) 'Modification'\n+2BEC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BEC8 CENTRAL HEADER #17    02014B50 (33639248)\n+2BECC Created Zip Spec      14 (20) '2.0'\n+2BECD Created OS            00 (0) 'MS-DOS'\n+2BECE Extract Zip Spec      14 (20) '2.0'\n+2BECF Extract OS            00 (0) 'MS-DOS'\n+2BED0 General Purpose Flag  0000 (0)\n+2BED2 Compression Method    0000 (0) 'Stored'\n+2BED4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BED8 CRC                   00000000 (0)\n+2BEDC Compressed Size       00000000 (0)\n+2BEE0 Uncompressed Size     00000000 (0)\n+2BEE4 Filename Length       000B (11)\n+2BEE6 Extra Length          0009 (9)\n+2BEE8 Comment Length        0000 (0)\n+2BEEA Disk Start            0000 (0)\n+2BEEC Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BEEE Ext File Attributes   00000000 (0)\n+2BEF2 Local Header Offset   00005AFC (23292)\n+2BEF6 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BEF6: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BF01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BF03   Length              0005 (5)\n+2BF05   Flags               01 (1) 'Modification'\n+2BF06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BF0A CENTRAL HEADER #18    02014B50 (33639248)\n+2BF0E Created Zip Spec      14 (20) '2.0'\n+2BF0F Created OS            00 (0) 'MS-DOS'\n+2BF10 Extract Zip Spec      14 (20) '2.0'\n+2BF11 Extract OS            00 (0) 'MS-DOS'\n+2BF12 General Purpose Flag  0000 (0)\n+2BF14 Compression Method    0000 (0) 'Stored'\n+2BF16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BF1A CRC                   00000000 (0)\n+2BF1E Compressed Size       00000000 (0)\n+2BF22 Uncompressed Size     00000000 (0)\n+2BF26 Filename Length       0011 (17)\n+2BF28 Extra Length          0009 (9)\n+2BF2A Comment Length        0000 (0)\n+2BF2C Disk Start            0000 (0)\n+2BF2E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BF30 Ext File Attributes   00000000 (0)\n+2BF34 Local Header Offset   00005B2E (23342)\n+2BF38 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BF38: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BF49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BF4B   Length              0005 (5)\n+2BF4D   Flags               01 (1) 'Modification'\n+2BF4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BF52 CENTRAL HEADER #19    02014B50 (33639248)\n+2BF56 Created Zip Spec      14 (20) '2.0'\n+2BF57 Created OS            00 (0) 'MS-DOS'\n+2BF58 Extract Zip Spec      14 (20) '2.0'\n+2BF59 Extract OS            00 (0) 'MS-DOS'\n+2BF5A General Purpose Flag  0000 (0)\n+2BF5C Compression Method    0000 (0) 'Stored'\n+2BF5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BF62 CRC                   00000000 (0)\n+2BF66 Compressed Size       00000000 (0)\n+2BF6A Uncompressed Size     00000000 (0)\n+2BF6E Filename Length       0015 (21)\n+2BF70 Extra Length          0009 (9)\n+2BF72 Comment Length        0000 (0)\n+2BF74 Disk Start            0000 (0)\n+2BF76 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BF78 Ext File Attributes   00000000 (0)\n+2BF7C Local Header Offset   00005B66 (23398)\n+2BF80 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BF80: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BF95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BF97   Length              0005 (5)\n+2BF99   Flags               01 (1) 'Modification'\n+2BF9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BF9E CENTRAL HEADER #20    02014B50 (33639248)\n+2BFA2 Created Zip Spec      14 (20) '2.0'\n+2BFA3 Created OS            00 (0) 'MS-DOS'\n+2BFA4 Extract Zip Spec      14 (20) '2.0'\n+2BFA5 Extract OS            00 (0) 'MS-DOS'\n+2BFA6 General Purpose Flag  0000 (0)\n+2BFA8 Compression Method    0000 (0) 'Stored'\n+2BFAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BFAE CRC                   00000000 (0)\n+2BFB2 Compressed Size       00000000 (0)\n+2BFB6 Uncompressed Size     00000000 (0)\n+2BFBA Filename Length       001D (29)\n+2BFBC Extra Length          0009 (9)\n+2BFBE Comment Length        0000 (0)\n+2BFC0 Disk Start            0000 (0)\n+2BFC2 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2BFC4 Ext File Attributes   00000000 (0)\n+2BFC8 Local Header Offset   00005BA2 (23458)\n+2BFCC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BFCC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BFE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BFEB   Length              0005 (5)\n+2BFED   Flags               01 (1) 'Modification'\n+2BFEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2BFF2 CENTRAL HEADER #21    02014B50 (33639248)\n+2BFF6 Created Zip Spec      14 (20) '2.0'\n+2BFF7 Created OS            00 (0) 'MS-DOS'\n+2BFF8 Extract Zip Spec      14 (20) '2.0'\n+2BFF9 Extract OS            00 (0) 'MS-DOS'\n+2BFFA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2BFFC Compression Method    0000 (0) 'Stored'\n+2BFFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C002 CRC                   FE44AB9A (4265913242)\n+2C006 Compressed Size       000003F7 (1015)\n+2C00A Uncompressed Size     000003F7 (1015)\n+2C00E Filename Length       002D (45)\n+2C010 Extra Length          0009 (9)\n+2C012 Comment Length        0000 (0)\n+2C014 Disk Start            0000 (0)\n+2C016 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C018 Ext File Attributes   00000000 (0)\n+2C01C Local Header Offset   00005BE6 (23526)\n+2C020 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C020: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C04D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C04F   Length              0005 (5)\n+2C051   Flags               01 (1) 'Modification'\n+2C052   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C056 CENTRAL HEADER #22    02014B50 (33639248)\n+2C05A Created Zip Spec      14 (20) '2.0'\n+2C05B Created OS            00 (0) 'MS-DOS'\n+2C05C Extract Zip Spec      14 (20) '2.0'\n+2C05D Extract OS            00 (0) 'MS-DOS'\n+2C05E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C060 Compression Method    0000 (0) 'Stored'\n+2C062 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C066 CRC                   C783A617 (3347293719)\n+2C06A Compressed Size       00000880 (2176)\n+2C06E Uncompressed Size     00000880 (2176)\n+2C072 Filename Length       0030 (48)\n+2C074 Extra Length          0009 (9)\n+2C076 Comment Length        0000 (0)\n+2C078 Disk Start            0000 (0)\n+2C07A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C07C Ext File Attributes   00000000 (0)\n+2C080 Local Header Offset   00006041 (24641)\n+2C084 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C084: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C0B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C0B6   Length              0005 (5)\n+2C0B8   Flags               01 (1) 'Modification'\n+2C0B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C0BD CENTRAL HEADER #23    02014B50 (33639248)\n+2C0C1 Created Zip Spec      14 (20) '2.0'\n+2C0C2 Created OS            00 (0) 'MS-DOS'\n+2C0C3 Extract Zip Spec      14 (20) '2.0'\n+2C0C4 Extract OS            00 (0) 'MS-DOS'\n+2C0C5 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C0C7 Compression Method    0000 (0) 'Stored'\n+2C0C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C0CD CRC                   F2C44151 (4072948049)\n+2C0D1 Compressed Size       000004A6 (1190)\n+2C0D5 Uncompressed Size     000004A6 (1190)\n+2C0D9 Filename Length       0037 (55)\n+2C0DB Extra Length          0009 (9)\n+2C0DD Comment Length        0000 (0)\n+2C0DF Disk Start            0000 (0)\n+2C0E1 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C0E3 Ext File Attributes   00000000 (0)\n+2C0E7 Local Header Offset   00006928 (26920)\n+2C0EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C0EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C122 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C124   Length              0005 (5)\n+2C126   Flags               01 (1) 'Modification'\n+2C127   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C12B CENTRAL HEADER #24    02014B50 (33639248)\n+2C12F Created Zip Spec      14 (20) '2.0'\n+2C130 Created OS            00 (0) 'MS-DOS'\n+2C131 Extract Zip Spec      14 (20) '2.0'\n+2C132 Extract OS            00 (0) 'MS-DOS'\n+2C133 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C135 Compression Method    0000 (0) 'Stored'\n+2C137 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C13B CRC                   D40E78F4 (3557718260)\n+2C13F Compressed Size       000004A8 (1192)\n+2C143 Uncompressed Size     000004A8 (1192)\n+2C147 Filename Length       0031 (49)\n+2C149 Extra Length          0009 (9)\n+2C14B Comment Length        0000 (0)\n+2C14D Disk Start            0000 (0)\n+2C14F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C151 Ext File Attributes   00000000 (0)\n+2C155 Local Header Offset   00006E3C (28220)\n+2C159 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C159: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C18A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C18C   Length              0005 (5)\n+2C18E   Flags               01 (1) 'Modification'\n+2C18F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C193 CENTRAL HEADER #25    02014B50 (33639248)\n+2C197 Created Zip Spec      14 (20) '2.0'\n+2C198 Created OS            00 (0) 'MS-DOS'\n+2C199 Extract Zip Spec      14 (20) '2.0'\n+2C19A Extract OS            00 (0) 'MS-DOS'\n+2C19B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C19D Compression Method    0000 (0) 'Stored'\n+2C19F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C1A3 CRC                   2A63E263 (711189091)\n+2C1A7 Compressed Size       0000061D (1565)\n+2C1AB Uncompressed Size     0000061D (1565)\n+2C1AF Filename Length       0038 (56)\n+2C1B1 Extra Length          0009 (9)\n+2C1B3 Comment Length        0000 (0)\n+2C1B5 Disk Start            0000 (0)\n+2C1B7 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C1B9 Ext File Attributes   00000000 (0)\n+2C1BD Local Header Offset   0000734C (29516)\n+2C1C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C1C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C1F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C1FB   Length              0005 (5)\n+2C1FD   Flags               01 (1) 'Modification'\n+2C1FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C202 CENTRAL HEADER #26    02014B50 (33639248)\n+2C206 Created Zip Spec      14 (20) '2.0'\n+2C207 Created OS            00 (0) 'MS-DOS'\n+2C208 Extract Zip Spec      14 (20) '2.0'\n+2C209 Extract OS            00 (0) 'MS-DOS'\n+2C20A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C20C Compression Method    0000 (0) 'Stored'\n+2C20E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C212 CRC                   D473D979 (3564362105)\n+2C216 Compressed Size       00000400 (1024)\n+2C21A Uncompressed Size     00000400 (1024)\n+2C21E Filename Length       0038 (56)\n+2C220 Extra Length          0009 (9)\n+2C222 Comment Length        0000 (0)\n+2C224 Disk Start            0000 (0)\n+2C226 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C228 Ext File Attributes   00000000 (0)\n+2C22C Local Header Offset   000079D8 (31192)\n+2C230 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C230: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C268 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C26A   Length              0005 (5)\n+2C26C   Flags               01 (1) 'Modification'\n+2C26D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C271 CENTRAL HEADER #27    02014B50 (33639248)\n+2C275 Created Zip Spec      14 (20) '2.0'\n+2C276 Created OS            00 (0) 'MS-DOS'\n+2C277 Extract Zip Spec      14 (20) '2.0'\n+2C278 Extract OS            00 (0) 'MS-DOS'\n+2C279 General Purpose Flag  0000 (0)\n+2C27B Compression Method    0000 (0) 'Stored'\n+2C27D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C281 CRC                   00000000 (0)\n+2C285 Compressed Size       00000000 (0)\n+2C289 Uncompressed Size     00000000 (0)\n+2C28D Filename Length       0028 (40)\n+2C28F Extra Length          0009 (9)\n+2C291 Comment Length        0000 (0)\n+2C293 Disk Start            0000 (0)\n+2C295 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C297 Ext File Attributes   00000000 (0)\n+2C29B Local Header Offset   00007E47 (32327)\n+2C29F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C29F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C2C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C2C9   Length              0005 (5)\n+2C2CB   Flags               01 (1) 'Modification'\n+2C2CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C2D0 CENTRAL HEADER #28    02014B50 (33639248)\n+2C2D4 Created Zip Spec      14 (20) '2.0'\n+2C2D5 Created OS            00 (0) 'MS-DOS'\n+2C2D6 Extract Zip Spec      14 (20) '2.0'\n+2C2D7 Extract OS            00 (0) 'MS-DOS'\n+2C2D8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C2DA Compression Method    0000 (0) 'Stored'\n+2C2DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C2E0 CRC                   45D6532E (1171673902)\n+2C2E4 Compressed Size       00000647 (1607)\n+2C2E8 Uncompressed Size     00000647 (1607)\n+2C2EC Filename Length       0030 (48)\n+2C2EE Extra Length          0009 (9)\n+2C2F0 Comment Length        0000 (0)\n+2C2F2 Disk Start            0000 (0)\n+2C2F4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C2F6 Ext File Attributes   00000000 (0)\n+2C2FA Local Header Offset   00007E96 (32406)\n+2C2FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C2FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C32E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C330   Length              0005 (5)\n+2C332   Flags               01 (1) 'Modification'\n+2C333   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C337 CENTRAL HEADER #29    02014B50 (33639248)\n+2C33B Created Zip Spec      14 (20) '2.0'\n+2C33C Created OS            00 (0) 'MS-DOS'\n+2C33D Extract Zip Spec      14 (20) '2.0'\n+2C33E Extract OS            00 (0) 'MS-DOS'\n+2C33F General Purpose Flag  0000 (0)\n+2C341 Compression Method    0000 (0) 'Stored'\n+2C343 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C347 CRC                   00000000 (0)\n+2C34B Compressed Size       00000000 (0)\n+2C34F Uncompressed Size     00000000 (0)\n+2C353 Filename Length       0025 (37)\n+2C355 Extra Length          0009 (9)\n+2C357 Comment Length        0000 (0)\n+2C359 Disk Start            0000 (0)\n+2C35B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C35D Ext File Attributes   00000000 (0)\n+2C361 Local Header Offset   00008544 (34116)\n+2C365 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C365: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C38A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C38C   Length              0005 (5)\n+2C38E   Flags               01 (1) 'Modification'\n+2C38F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C393 CENTRAL HEADER #30    02014B50 (33639248)\n+2C397 Created Zip Spec      14 (20) '2.0'\n+2C398 Created OS            00 (0) 'MS-DOS'\n+2C399 Extract Zip Spec      14 (20) '2.0'\n+2C39A Extract OS            00 (0) 'MS-DOS'\n+2C39B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C39D Compression Method    0000 (0) 'Stored'\n+2C39F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C3A3 CRC                   D812ECFA (3625118970)\n+2C3A7 Compressed Size       00000F93 (3987)\n+2C3AB Uncompressed Size     00000F93 (3987)\n+2C3AF Filename Length       003C (60)\n+2C3B1 Extra Length          0009 (9)\n+2C3B3 Comment Length        0000 (0)\n+2C3B5 Disk Start            0000 (0)\n+2C3B7 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C3B9 Ext File Attributes   00000000 (0)\n+2C3BD Local Header Offset   00008590 (34192)\n+2C3C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C3C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C3FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C3FF   Length              0005 (5)\n+2C401   Flags               01 (1) 'Modification'\n+2C402   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C406 CENTRAL HEADER #31    02014B50 (33639248)\n+2C40A Created Zip Spec      14 (20) '2.0'\n+2C40B Created OS            00 (0) 'MS-DOS'\n+2C40C Extract Zip Spec      14 (20) '2.0'\n+2C40D Extract OS            00 (0) 'MS-DOS'\n+2C40E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C410 Compression Method    0000 (0) 'Stored'\n+2C412 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C416 CRC                   E1096065 (3775488101)\n+2C41A Compressed Size       000006BD (1725)\n+2C41E Uncompressed Size     000006BD (1725)\n+2C422 Filename Length       003E (62)\n+2C424 Extra Length          0009 (9)\n+2C426 Comment Length        0000 (0)\n+2C428 Disk Start            0000 (0)\n+2C42A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C42C Ext File Attributes   00000000 (0)\n+2C430 Local Header Offset   00009596 (38294)\n+2C434 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C434: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C472 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C474   Length              0005 (5)\n+2C476   Flags               01 (1) 'Modification'\n+2C477   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C47B CENTRAL HEADER #32    02014B50 (33639248)\n+2C47F Created Zip Spec      14 (20) '2.0'\n+2C480 Created OS            00 (0) 'MS-DOS'\n+2C481 Extract Zip Spec      14 (20) '2.0'\n+2C482 Extract OS            00 (0) 'MS-DOS'\n+2C483 General Purpose Flag  0000 (0)\n+2C485 Compression Method    0000 (0) 'Stored'\n+2C487 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C48B CRC                   00000000 (0)\n+2C48F Compressed Size       00000000 (0)\n+2C493 Uncompressed Size     00000000 (0)\n+2C497 Filename Length       0022 (34)\n+2C499 Extra Length          0009 (9)\n+2C49B Comment Length        0000 (0)\n+2C49D Disk Start            0000 (0)\n+2C49F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C4A1 Ext File Attributes   00000000 (0)\n+2C4A5 Local Header Offset   00009CC8 (40136)\n+2C4A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C4A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C4CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C4CD   Length              0005 (5)\n+2C4CF   Flags               01 (1) 'Modification'\n+2C4D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C4D4 CENTRAL HEADER #33    02014B50 (33639248)\n+2C4D8 Created Zip Spec      14 (20) '2.0'\n+2C4D9 Created OS            00 (0) 'MS-DOS'\n+2C4DA Extract Zip Spec      14 (20) '2.0'\n+2C4DB Extract OS            00 (0) 'MS-DOS'\n+2C4DC General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C4DE Compression Method    0000 (0) 'Stored'\n+2C4E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C4E4 CRC                   86EEED41 (2263805249)\n+2C4E8 Compressed Size       00000E84 (3716)\n+2C4EC Uncompressed Size     00000E84 (3716)\n+2C4F0 Filename Length       002B (43)\n+2C4F2 Extra Length          0009 (9)\n+2C4F4 Comment Length        0000 (0)\n+2C4F6 Disk Start            0000 (0)\n+2C4F8 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C4FA Ext File Attributes   00000000 (0)\n+2C4FE Local Header Offset   00009D11 (40209)\n+2C502 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C502: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C52D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C52F   Length              0005 (5)\n+2C531   Flags               01 (1) 'Modification'\n+2C532   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C536 CENTRAL HEADER #34    02014B50 (33639248)\n+2C53A Created Zip Spec      14 (20) '2.0'\n+2C53B Created OS            00 (0) 'MS-DOS'\n+2C53C Extract Zip Spec      14 (20) '2.0'\n+2C53D Extract OS            00 (0) 'MS-DOS'\n+2C53E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C540 Compression Method    0000 (0) 'Stored'\n+2C542 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C546 CRC                   E32E7BA0 (3811474336)\n+2C54A Compressed Size       00000D90 (3472)\n+2C54E Uncompressed Size     00000D90 (3472)\n+2C552 Filename Length       0029 (41)\n+2C554 Extra Length          0009 (9)\n+2C556 Comment Length        0000 (0)\n+2C558 Disk Start            0000 (0)\n+2C55A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C55C Ext File Attributes   00000000 (0)\n+2C560 Local Header Offset   0000ABF7 (44023)\n+2C564 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C564: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C58D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C58F   Length              0005 (5)\n+2C591   Flags               01 (1) 'Modification'\n+2C592   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C596 CENTRAL HEADER #35    02014B50 (33639248)\n+2C59A Created Zip Spec      14 (20) '2.0'\n+2C59B Created OS            00 (0) 'MS-DOS'\n+2C59C Extract Zip Spec      14 (20) '2.0'\n+2C59D Extract OS            00 (0) 'MS-DOS'\n+2C59E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C5A0 Compression Method    0000 (0) 'Stored'\n+2C5A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C5A6 CRC                   C56E8E67 (3312356967)\n+2C5AA Compressed Size       00000D52 (3410)\n+2C5AE Uncompressed Size     00000D52 (3410)\n+2C5B2 Filename Length       002E (46)\n+2C5B4 Extra Length          0009 (9)\n+2C5B6 Comment Length        0000 (0)\n+2C5B8 Disk Start            0000 (0)\n+2C5BA Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C5BC Ext File Attributes   00000000 (0)\n+2C5C0 Local Header Offset   0000B9E7 (47591)\n+2C5C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C5C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C5F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C5F4   Length              0005 (5)\n+2C5F6   Flags               01 (1) 'Modification'\n+2C5F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C5FB CENTRAL HEADER #36    02014B50 (33639248)\n+2C5FF Created Zip Spec      14 (20) '2.0'\n+2C600 Created OS            00 (0) 'MS-DOS'\n+2C601 Extract Zip Spec      14 (20) '2.0'\n+2C602 Extract OS            00 (0) 'MS-DOS'\n+2C603 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C605 Compression Method    0000 (0) 'Stored'\n+2C607 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C60B CRC                   A95B3402 (2841326594)\n+2C60F Compressed Size       00000D85 (3461)\n+2C613 Uncompressed Size     00000D85 (3461)\n+2C617 Filename Length       002D (45)\n+2C619 Extra Length          0009 (9)\n+2C61B Comment Length        0000 (0)\n+2C61D Disk Start            0000 (0)\n+2C61F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C621 Ext File Attributes   00000000 (0)\n+2C625 Local Header Offset   0000C79E (51102)\n+2C629 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C629: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C656 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C658   Length              0005 (5)\n+2C65A   Flags               01 (1) 'Modification'\n+2C65B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C65F CENTRAL HEADER #37    02014B50 (33639248)\n+2C663 Created Zip Spec      14 (20) '2.0'\n+2C664 Created OS            00 (0) 'MS-DOS'\n+2C665 Extract Zip Spec      14 (20) '2.0'\n+2C666 Extract OS            00 (0) 'MS-DOS'\n+2C667 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C669 Compression Method    0000 (0) 'Stored'\n+2C66B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C66F CRC                   E56C2CA8 (3849071784)\n+2C673 Compressed Size       00000B6F (2927)\n+2C677 Uncompressed Size     00000B6F (2927)\n+2C67B Filename Length       0036 (54)\n+2C67D Extra Length          0009 (9)\n+2C67F Comment Length        0000 (0)\n+2C681 Disk Start            0000 (0)\n+2C683 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C685 Ext File Attributes   00000000 (0)\n+2C689 Local Header Offset   0000D587 (54663)\n+2C68D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C68D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C6C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C6C5   Length              0005 (5)\n+2C6C7   Flags               01 (1) 'Modification'\n+2C6C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C6CC CENTRAL HEADER #38    02014B50 (33639248)\n+2C6D0 Created Zip Spec      14 (20) '2.0'\n+2C6D1 Created OS            00 (0) 'MS-DOS'\n+2C6D2 Extract Zip Spec      14 (20) '2.0'\n+2C6D3 Extract OS            00 (0) 'MS-DOS'\n+2C6D4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C6D6 Compression Method    0000 (0) 'Stored'\n+2C6D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C6DC CRC                   AADA64B2 (2866439346)\n+2C6E0 Compressed Size       00000519 (1305)\n+2C6E4 Uncompressed Size     00000519 (1305)\n+2C6E8 Filename Length       002B (43)\n+2C6EA Extra Length          0009 (9)\n+2C6EC Comment Length        0000 (0)\n+2C6EE Disk Start            0000 (0)\n+2C6F0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C6F2 Ext File Attributes   00000000 (0)\n+2C6F6 Local Header Offset   0000E163 (57699)\n+2C6FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C6FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C725 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C727   Length              0005 (5)\n+2C729   Flags               01 (1) 'Modification'\n+2C72A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C72E CENTRAL HEADER #39    02014B50 (33639248)\n+2C732 Created Zip Spec      14 (20) '2.0'\n+2C733 Created OS            00 (0) 'MS-DOS'\n+2C734 Extract Zip Spec      14 (20) '2.0'\n+2C735 Extract OS            00 (0) 'MS-DOS'\n+2C736 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C738 Compression Method    0000 (0) 'Stored'\n+2C73A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C73E CRC                   DC712B5A (3698404186)\n+2C742 Compressed Size       000010E3 (4323)\n+2C746 Uncompressed Size     000010E3 (4323)\n+2C74A Filename Length       002C (44)\n+2C74C Extra Length          0009 (9)\n+2C74E Comment Length        0000 (0)\n+2C750 Disk Start            0000 (0)\n+2C752 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C754 Ext File Attributes   00000000 (0)\n+2C758 Local Header Offset   0000E6DE (59102)\n+2C75C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C75C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C788 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C78A   Length              0005 (5)\n+2C78C   Flags               01 (1) 'Modification'\n+2C78D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C791 CENTRAL HEADER #40    02014B50 (33639248)\n+2C795 Created Zip Spec      14 (20) '2.0'\n+2C796 Created OS            00 (0) 'MS-DOS'\n+2C797 Extract Zip Spec      14 (20) '2.0'\n+2C798 Extract OS            00 (0) 'MS-DOS'\n+2C799 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C79B Compression Method    0000 (0) 'Stored'\n+2C79D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C7A1 CRC                   1F2281E7 (522355175)\n+2C7A5 Compressed Size       00000625 (1573)\n+2C7A9 Uncompressed Size     00000625 (1573)\n+2C7AD Filename Length       002E (46)\n+2C7AF Extra Length          0009 (9)\n+2C7B1 Comment Length        0000 (0)\n+2C7B3 Disk Start            0000 (0)\n+2C7B5 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C7B7 Ext File Attributes   00000000 (0)\n+2C7BB Local Header Offset   0000F824 (63524)\n+2C7BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C7BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C7ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C7EF   Length              0005 (5)\n+2C7F1   Flags               01 (1) 'Modification'\n+2C7F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C7F6 CENTRAL HEADER #41    02014B50 (33639248)\n+2C7FA Created Zip Spec      14 (20) '2.0'\n+2C7FB Created OS            00 (0) 'MS-DOS'\n+2C7FC Extract Zip Spec      14 (20) '2.0'\n+2C7FD Extract OS            00 (0) 'MS-DOS'\n+2C7FE General Purpose Flag  0000 (0)\n+2C800 Compression Method    0000 (0) 'Stored'\n+2C802 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C806 CRC                   00000000 (0)\n+2C80A Compressed Size       00000000 (0)\n+2C80E Uncompressed Size     00000000 (0)\n+2C812 Filename Length       0022 (34)\n+2C814 Extra Length          0009 (9)\n+2C816 Comment Length        0000 (0)\n+2C818 Disk Start            0000 (0)\n+2C81A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C81C Ext File Attributes   00000000 (0)\n+2C820 Local Header Offset   0000FEAE (65198)\n+2C824 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C824: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C846 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C848   Length              0005 (5)\n+2C84A   Flags               01 (1) 'Modification'\n+2C84B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C84F CENTRAL HEADER #42    02014B50 (33639248)\n+2C853 Created Zip Spec      14 (20) '2.0'\n+2C854 Created OS            00 (0) 'MS-DOS'\n+2C855 Extract Zip Spec      14 (20) '2.0'\n+2C856 Extract OS            00 (0) 'MS-DOS'\n+2C857 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C859 Compression Method    0000 (0) 'Stored'\n+2C85B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C85F CRC                   0E9B786A (245069930)\n+2C863 Compressed Size       000008D3 (2259)\n+2C867 Uncompressed Size     000008D3 (2259)\n+2C86B Filename Length       0034 (52)\n+2C86D Extra Length          0009 (9)\n+2C86F Comment Length        0000 (0)\n+2C871 Disk Start            0000 (0)\n+2C873 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C875 Ext File Attributes   00000000 (0)\n+2C879 Local Header Offset   0000FEF7 (65271)\n+2C87D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C87D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C8B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C8B3   Length              0005 (5)\n+2C8B5   Flags               01 (1) 'Modification'\n+2C8B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C8BA CENTRAL HEADER #43    02014B50 (33639248)\n+2C8BE Created Zip Spec      14 (20) '2.0'\n+2C8BF Created OS            00 (0) 'MS-DOS'\n+2C8C0 Extract Zip Spec      14 (20) '2.0'\n+2C8C1 Extract OS            00 (0) 'MS-DOS'\n+2C8C2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C8C4 Compression Method    0000 (0) 'Stored'\n+2C8C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C8CA CRC                   966E868C (2523825804)\n+2C8CE Compressed Size       00000ADB (2779)\n+2C8D2 Uncompressed Size     00000ADB (2779)\n+2C8D6 Filename Length       0038 (56)\n+2C8D8 Extra Length          0009 (9)\n+2C8DA Comment Length        0000 (0)\n+2C8DC Disk Start            0000 (0)\n+2C8DE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C8E0 Ext File Attributes   00000000 (0)\n+2C8E4 Local Header Offset   00010835 (67637)\n+2C8E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C8E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C920 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C922   Length              0005 (5)\n+2C924   Flags               01 (1) 'Modification'\n+2C925   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C929 CENTRAL HEADER #44    02014B50 (33639248)\n+2C92D Created Zip Spec      14 (20) '2.0'\n+2C92E Created OS            00 (0) 'MS-DOS'\n+2C92F Extract Zip Spec      14 (20) '2.0'\n+2C930 Extract OS            00 (0) 'MS-DOS'\n+2C931 General Purpose Flag  0000 (0)\n+2C933 Compression Method    0000 (0) 'Stored'\n+2C935 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C939 CRC                   00000000 (0)\n+2C93D Compressed Size       00000000 (0)\n+2C941 Uncompressed Size     00000000 (0)\n+2C945 Filename Length       001C (28)\n+2C947 Extra Length          0009 (9)\n+2C949 Comment Length        0000 (0)\n+2C94B Disk Start            0000 (0)\n+2C94D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C94F Ext File Attributes   00000000 (0)\n+2C953 Local Header Offset   0001137F (70527)\n+2C957 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C957: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C973 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C975   Length              0005 (5)\n+2C977   Flags               01 (1) 'Modification'\n+2C978   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C97C CENTRAL HEADER #45    02014B50 (33639248)\n+2C980 Created Zip Spec      14 (20) '2.0'\n+2C981 Created OS            00 (0) 'MS-DOS'\n+2C982 Extract Zip Spec      14 (20) '2.0'\n+2C983 Extract OS            00 (0) 'MS-DOS'\n+2C984 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2C986 Compression Method    0000 (0) 'Stored'\n+2C988 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C98C CRC                   93C23403 (2478978051)\n+2C990 Compressed Size       000003DE (990)\n+2C994 Uncompressed Size     000003DE (990)\n+2C998 Filename Length       002D (45)\n+2C99A Extra Length          0009 (9)\n+2C99C Comment Length        0000 (0)\n+2C99E Disk Start            0000 (0)\n+2C9A0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2C9A2 Ext File Attributes   00000000 (0)\n+2C9A6 Local Header Offset   000113C2 (70594)\n+2C9AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C9AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C9D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C9D9   Length              0005 (5)\n+2C9DB   Flags               01 (1) 'Modification'\n+2C9DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2C9E0 CENTRAL HEADER #46    02014B50 (33639248)\n+2C9E4 Created Zip Spec      14 (20) '2.0'\n+2C9E5 Created OS            00 (0) 'MS-DOS'\n+2C9E6 Extract Zip Spec      14 (20) '2.0'\n+2C9E7 Extract OS            00 (0) 'MS-DOS'\n+2C9E8 General Purpose Flag  0000 (0)\n+2C9EA Compression Method    0000 (0) 'Stored'\n+2C9EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C9F0 CRC                   00000000 (0)\n+2C9F4 Compressed Size       00000000 (0)\n+2C9F8 Uncompressed Size     00000000 (0)\n+2C9FC Filename Length       001C (28)\n+2C9FE Extra Length          0009 (9)\n+2CA00 Comment Length        0000 (0)\n+2CA02 Disk Start            0000 (0)\n+2CA04 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CA06 Ext File Attributes   00000000 (0)\n+2CA0A Local Header Offset   00011804 (71684)\n+2CA0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CA0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CA2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CA2C   Length              0005 (5)\n+2CA2E   Flags               01 (1) 'Modification'\n+2CA2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CA33 CENTRAL HEADER #47    02014B50 (33639248)\n+2CA37 Created Zip Spec      14 (20) '2.0'\n+2CA38 Created OS            00 (0) 'MS-DOS'\n+2CA39 Extract Zip Spec      14 (20) '2.0'\n+2CA3A Extract OS            00 (0) 'MS-DOS'\n+2CA3B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CA3D Compression Method    0000 (0) 'Stored'\n+2CA3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CA43 CRC                   4EEFA113 (1324327187)\n+2CA47 Compressed Size       00000B51 (2897)\n+2CA4B Uncompressed Size     00000B51 (2897)\n+2CA4F Filename Length       0034 (52)\n+2CA51 Extra Length          0009 (9)\n+2CA53 Comment Length        0000 (0)\n+2CA55 Disk Start            0000 (0)\n+2CA57 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CA59 Ext File Attributes   00000000 (0)\n+2CA5D Local Header Offset   00011847 (71751)\n+2CA61 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CA61: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CA95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CA97   Length              0005 (5)\n+2CA99   Flags               01 (1) 'Modification'\n+2CA9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CA9E CENTRAL HEADER #48    02014B50 (33639248)\n+2CAA2 Created Zip Spec      14 (20) '2.0'\n+2CAA3 Created OS            00 (0) 'MS-DOS'\n+2CAA4 Extract Zip Spec      14 (20) '2.0'\n+2CAA5 Extract OS            00 (0) 'MS-DOS'\n+2CAA6 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CAA8 Compression Method    0000 (0) 'Stored'\n+2CAAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CAAE CRC                   9CF5D1EF (2633355759)\n+2CAB2 Compressed Size       00001B08 (6920)\n+2CAB6 Uncompressed Size     00001B08 (6920)\n+2CABA Filename Length       0033 (51)\n+2CABC Extra Length          0009 (9)\n+2CABE Comment Length        0000 (0)\n+2CAC0 Disk Start            0000 (0)\n+2CAC2 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CAC4 Ext File Attributes   00000000 (0)\n+2CAC8 Local Header Offset   00012403 (74755)\n+2CACC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CACC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CAFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CB01   Length              0005 (5)\n+2CB03   Flags               01 (1) 'Modification'\n+2CB04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CB08 CENTRAL HEADER #49    02014B50 (33639248)\n+2CB0C Created Zip Spec      14 (20) '2.0'\n+2CB0D Created OS            00 (0) 'MS-DOS'\n+2CB0E Extract Zip Spec      14 (20) '2.0'\n+2CB0F Extract OS            00 (0) 'MS-DOS'\n+2CB10 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CB12 Compression Method    0000 (0) 'Stored'\n+2CB14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CB18 CRC                   60B50DD7 (1622478295)\n+2CB1C Compressed Size       0000071D (1821)\n+2CB20 Uncompressed Size     0000071D (1821)\n+2CB24 Filename Length       0035 (53)\n+2CB26 Extra Length          0009 (9)\n+2CB28 Comment Length        0000 (0)\n+2CB2A Disk Start            0000 (0)\n+2CB2C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CB2E Ext File Attributes   00000000 (0)\n+2CB32 Local Header Offset   00013F75 (81781)\n+2CB36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CB36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CB6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CB6D   Length              0005 (5)\n+2CB6F   Flags               01 (1) 'Modification'\n+2CB70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CB74 CENTRAL HEADER #50    02014B50 (33639248)\n+2CB78 Created Zip Spec      14 (20) '2.0'\n+2CB79 Created OS            00 (0) 'MS-DOS'\n+2CB7A Extract Zip Spec      14 (20) '2.0'\n+2CB7B Extract OS            00 (0) 'MS-DOS'\n+2CB7C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CB7E Compression Method    0000 (0) 'Stored'\n+2CB80 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CB84 CRC                   78614F57 (2019643223)\n+2CB88 Compressed Size       00002BDA (11226)\n+2CB8C Uncompressed Size     00002BDA (11226)\n+2CB90 Filename Length       0034 (52)\n+2CB92 Extra Length          0009 (9)\n+2CB94 Comment Length        0000 (0)\n+2CB96 Disk Start            0000 (0)\n+2CB98 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CB9A Ext File Attributes   00000000 (0)\n+2CB9E Local Header Offset   000146FE (83710)\n+2CBA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CBA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CBD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CBD8   Length              0005 (5)\n+2CBDA   Flags               01 (1) 'Modification'\n+2CBDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CBDF CENTRAL HEADER #51    02014B50 (33639248)\n+2CBE3 Created Zip Spec      14 (20) '2.0'\n+2CBE4 Created OS            00 (0) 'MS-DOS'\n+2CBE5 Extract Zip Spec      14 (20) '2.0'\n+2CBE6 Extract OS            00 (0) 'MS-DOS'\n+2CBE7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CBE9 Compression Method    0000 (0) 'Stored'\n+2CBEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CBEF CRC                   17A6F6D0 (396818128)\n+2CBF3 Compressed Size       00001AC2 (6850)\n+2CBF7 Uncompressed Size     00001AC2 (6850)\n+2CBFB Filename Length       0032 (50)\n+2CBFD Extra Length          0009 (9)\n+2CBFF Comment Length        0000 (0)\n+2CC01 Disk Start            0000 (0)\n+2CC03 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CC05 Ext File Attributes   00000000 (0)\n+2CC09 Local Header Offset   00017343 (95043)\n+2CC0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CC0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CC3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CC41   Length              0005 (5)\n+2CC43   Flags               01 (1) 'Modification'\n+2CC44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CC48 CENTRAL HEADER #52    02014B50 (33639248)\n+2CC4C Created Zip Spec      14 (20) '2.0'\n+2CC4D Created OS            00 (0) 'MS-DOS'\n+2CC4E Extract Zip Spec      14 (20) '2.0'\n+2CC4F Extract OS            00 (0) 'MS-DOS'\n+2CC50 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CC52 Compression Method    0000 (0) 'Stored'\n+2CC54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CC58 CRC                   65289261 (1697157729)\n+2CC5C Compressed Size       00000FD7 (4055)\n+2CC60 Uncompressed Size     00000FD7 (4055)\n+2CC64 Filename Length       0031 (49)\n+2CC66 Extra Length          0009 (9)\n+2CC68 Comment Length        0000 (0)\n+2CC6A Disk Start            0000 (0)\n+2CC6C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CC6E Ext File Attributes   00000000 (0)\n+2CC72 Local Header Offset   00018E6E (101998)\n+2CC76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CC76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CCA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CCA9   Length              0005 (5)\n+2CCAB   Flags               01 (1) 'Modification'\n+2CCAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CCB0 CENTRAL HEADER #53    02014B50 (33639248)\n+2CCB4 Created Zip Spec      14 (20) '2.0'\n+2CCB5 Created OS            00 (0) 'MS-DOS'\n+2CCB6 Extract Zip Spec      14 (20) '2.0'\n+2CCB7 Extract OS            00 (0) 'MS-DOS'\n+2CCB8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CCBA Compression Method    0000 (0) 'Stored'\n+2CCBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CCC0 CRC                   59C732CA (1506226890)\n+2CCC4 Compressed Size       00000F65 (3941)\n+2CCC8 Uncompressed Size     00000F65 (3941)\n+2CCCC Filename Length       0032 (50)\n+2CCCE Extra Length          0009 (9)\n+2CCD0 Comment Length        0000 (0)\n+2CCD2 Disk Start            0000 (0)\n+2CCD4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CCD6 Ext File Attributes   00000000 (0)\n+2CCDA Local Header Offset   00019EAD (106157)\n+2CCDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CCDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CD10 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CD12   Length              0005 (5)\n+2CD14   Flags               01 (1) 'Modification'\n+2CD15   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CD19 CENTRAL HEADER #54    02014B50 (33639248)\n+2CD1D Created Zip Spec      14 (20) '2.0'\n+2CD1E Created OS            00 (0) 'MS-DOS'\n+2CD1F Extract Zip Spec      14 (20) '2.0'\n+2CD20 Extract OS            00 (0) 'MS-DOS'\n+2CD21 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CD23 Compression Method    0000 (0) 'Stored'\n+2CD25 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CD29 CRC                   62C17732 (1656846130)\n+2CD2D Compressed Size       00000B13 (2835)\n+2CD31 Uncompressed Size     00000B13 (2835)\n+2CD35 Filename Length       0034 (52)\n+2CD37 Extra Length          0009 (9)\n+2CD39 Comment Length        0000 (0)\n+2CD3B Disk Start            0000 (0)\n+2CD3D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CD3F Ext File Attributes   00000000 (0)\n+2CD43 Local Header Offset   0001AE7B (110203)\n+2CD47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CD47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CD7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CD7D   Length              0005 (5)\n+2CD7F   Flags               01 (1) 'Modification'\n+2CD80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CD84 CENTRAL HEADER #55    02014B50 (33639248)\n+2CD88 Created Zip Spec      14 (20) '2.0'\n+2CD89 Created OS            00 (0) 'MS-DOS'\n+2CD8A Extract Zip Spec      14 (20) '2.0'\n+2CD8B Extract OS            00 (0) 'MS-DOS'\n+2CD8C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CD8E Compression Method    0000 (0) 'Stored'\n+2CD90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CD94 CRC                   BD59212E (3176735022)\n+2CD98 Compressed Size       00000AC7 (2759)\n+2CD9C Uncompressed Size     00000AC7 (2759)\n+2CDA0 Filename Length       0036 (54)\n+2CDA2 Extra Length          0009 (9)\n+2CDA4 Comment Length        0000 (0)\n+2CDA6 Disk Start            0000 (0)\n+2CDA8 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CDAA Ext File Attributes   00000000 (0)\n+2CDAE Local Header Offset   0001B9F9 (113145)\n+2CDB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CDB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CDE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CDEA   Length              0005 (5)\n+2CDEC   Flags               01 (1) 'Modification'\n+2CDED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CDF1 CENTRAL HEADER #56    02014B50 (33639248)\n+2CDF5 Created Zip Spec      14 (20) '2.0'\n+2CDF6 Created OS            00 (0) 'MS-DOS'\n+2CDF7 Extract Zip Spec      14 (20) '2.0'\n+2CDF8 Extract OS            00 (0) 'MS-DOS'\n+2CDF9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CDFB Compression Method    0000 (0) 'Stored'\n+2CDFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CE01 CRC                   6E324421 (1848788001)\n+2CE05 Compressed Size       00001018 (4120)\n+2CE09 Uncompressed Size     00001018 (4120)\n+2CE0D Filename Length       0033 (51)\n+2CE0F Extra Length          0009 (9)\n+2CE11 Comment Length        0000 (0)\n+2CE13 Disk Start            0000 (0)\n+2CE15 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CE17 Ext File Attributes   00000000 (0)\n+2CE1B Local Header Offset   0001C52D (116013)\n+2CE1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CE1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CE52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CE54   Length              0005 (5)\n+2CE56   Flags               01 (1) 'Modification'\n+2CE57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CE5B CENTRAL HEADER #57    02014B50 (33639248)\n+2CE5F Created Zip Spec      14 (20) '2.0'\n+2CE60 Created OS            00 (0) 'MS-DOS'\n+2CE61 Extract Zip Spec      14 (20) '2.0'\n+2CE62 Extract OS            00 (0) 'MS-DOS'\n+2CE63 General Purpose Flag  0000 (0)\n+2CE65 Compression Method    0000 (0) 'Stored'\n+2CE67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CE6B CRC                   00000000 (0)\n+2CE6F Compressed Size       00000000 (0)\n+2CE73 Uncompressed Size     00000000 (0)\n+2CE77 Filename Length       001E (30)\n+2CE79 Extra Length          0009 (9)\n+2CE7B Comment Length        0000 (0)\n+2CE7D Disk Start            0000 (0)\n+2CE7F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CE81 Ext File Attributes   00000000 (0)\n+2CE85 Local Header Offset   0001D5AF (120239)\n+2CE89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CE89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CEA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CEA9   Length              0005 (5)\n+2CEAB   Flags               01 (1) 'Modification'\n+2CEAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CEB0 CENTRAL HEADER #58    02014B50 (33639248)\n+2CEB4 Created Zip Spec      14 (20) '2.0'\n+2CEB5 Created OS            00 (0) 'MS-DOS'\n+2CEB6 Extract Zip Spec      14 (20) '2.0'\n+2CEB7 Extract OS            00 (0) 'MS-DOS'\n+2CEB8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CEBA Compression Method    0000 (0) 'Stored'\n+2CEBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CEC0 CRC                   5829DD8D (1479138701)\n+2CEC4 Compressed Size       0000114E (4430)\n+2CEC8 Uncompressed Size     0000114E (4430)\n+2CECC Filename Length       0035 (53)\n+2CECE Extra Length          0009 (9)\n+2CED0 Comment Length        0000 (0)\n+2CED2 Disk Start            0000 (0)\n+2CED4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CED6 Ext File Attributes   00000000 (0)\n+2CEDA Local Header Offset   0001D5F4 (120308)\n+2CEDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CEDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CF13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CF15   Length              0005 (5)\n+2CF17   Flags               01 (1) 'Modification'\n+2CF18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CF1C CENTRAL HEADER #59    02014B50 (33639248)\n+2CF20 Created Zip Spec      14 (20) '2.0'\n+2CF21 Created OS            00 (0) 'MS-DOS'\n+2CF22 Extract Zip Spec      14 (20) '2.0'\n+2CF23 Extract OS            00 (0) 'MS-DOS'\n+2CF24 General Purpose Flag  0000 (0)\n+2CF26 Compression Method    0000 (0) 'Stored'\n+2CF28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CF2C CRC                   00000000 (0)\n+2CF30 Compressed Size       00000000 (0)\n+2CF34 Uncompressed Size     00000000 (0)\n+2CF38 Filename Length       001C (28)\n+2CF3A Extra Length          0009 (9)\n+2CF3C Comment Length        0000 (0)\n+2CF3E Disk Start            0000 (0)\n+2CF40 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CF42 Ext File Attributes   00000000 (0)\n+2CF46 Local Header Offset   0001E7AE (124846)\n+2CF4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CF4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CF66 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CF68   Length              0005 (5)\n+2CF6A   Flags               01 (1) 'Modification'\n+2CF6B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CF6F CENTRAL HEADER #60    02014B50 (33639248)\n+2CF73 Created Zip Spec      14 (20) '2.0'\n+2CF74 Created OS            00 (0) 'MS-DOS'\n+2CF75 Extract Zip Spec      14 (20) '2.0'\n+2CF76 Extract OS            00 (0) 'MS-DOS'\n+2CF77 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CF79 Compression Method    0000 (0) 'Stored'\n+2CF7B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CF7F CRC                   AF68925C (2942866012)\n+2CF83 Compressed Size       000004FE (1278)\n+2CF87 Uncompressed Size     000004FE (1278)\n+2CF8B Filename Length       002A (42)\n+2CF8D Extra Length          0009 (9)\n+2CF8F Comment Length        0000 (0)\n+2CF91 Disk Start            0000 (0)\n+2CF93 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CF95 Ext File Attributes   00000000 (0)\n+2CF99 Local Header Offset   0001E7F1 (124913)\n+2CF9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CF9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2CFC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2CFC9   Length              0005 (5)\n+2CFCB   Flags               01 (1) 'Modification'\n+2CFCC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2CFD0 CENTRAL HEADER #61    02014B50 (33639248)\n+2CFD4 Created Zip Spec      14 (20) '2.0'\n+2CFD5 Created OS            00 (0) 'MS-DOS'\n+2CFD6 Extract Zip Spec      14 (20) '2.0'\n+2CFD7 Extract OS            00 (0) 'MS-DOS'\n+2CFD8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2CFDA Compression Method    0000 (0) 'Stored'\n+2CFDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2CFE0 CRC                   97DFDDD6 (2548030934)\n+2CFE4 Compressed Size       00001266 (4710)\n+2CFE8 Uncompressed Size     00001266 (4710)\n+2CFEC Filename Length       0027 (39)\n+2CFEE Extra Length          0009 (9)\n+2CFF0 Comment Length        0000 (0)\n+2CFF2 Disk Start            0000 (0)\n+2CFF4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2CFF6 Ext File Attributes   00000000 (0)\n+2CFFA Local Header Offset   0001ED50 (126288)\n+2CFFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2CFFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D025 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D027   Length              0005 (5)\n+2D029   Flags               01 (1) 'Modification'\n+2D02A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D02E CENTRAL HEADER #62    02014B50 (33639248)\n+2D032 Created Zip Spec      14 (20) '2.0'\n+2D033 Created OS            00 (0) 'MS-DOS'\n+2D034 Extract Zip Spec      14 (20) '2.0'\n+2D035 Extract OS            00 (0) 'MS-DOS'\n+2D036 General Purpose Flag  0000 (0)\n+2D038 Compression Method    0000 (0) 'Stored'\n+2D03A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D03E CRC                   00000000 (0)\n+2D042 Compressed Size       00000000 (0)\n+2D046 Uncompressed Size     00000000 (0)\n+2D04A Filename Length       0024 (36)\n+2D04C Extra Length          0009 (9)\n+2D04E Comment Length        0000 (0)\n+2D050 Disk Start            0000 (0)\n+2D052 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D054 Ext File Attributes   00000000 (0)\n+2D058 Local Header Offset   00020014 (131092)\n+2D05C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D05C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D080 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D082   Length              0005 (5)\n+2D084   Flags               01 (1) 'Modification'\n+2D085   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D089 CENTRAL HEADER #63    02014B50 (33639248)\n+2D08D Created Zip Spec      14 (20) '2.0'\n+2D08E Created OS            00 (0) 'MS-DOS'\n+2D08F Extract Zip Spec      14 (20) '2.0'\n+2D090 Extract OS            00 (0) 'MS-DOS'\n+2D091 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2D093 Compression Method    0000 (0) 'Stored'\n+2D095 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D099 CRC                   5688E99A (1451813274)\n+2D09D Compressed Size       00001436 (5174)\n+2D0A1 Uncompressed Size     00001436 (5174)\n+2D0A5 Filename Length       003B (59)\n+2D0A7 Extra Length          0009 (9)\n+2D0A9 Comment Length        0000 (0)\n+2D0AB Disk Start            0000 (0)\n+2D0AD Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D0AF Ext File Attributes   00000000 (0)\n+2D0B3 Local Header Offset   0002005F (131167)\n+2D0B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D0B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D0F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D0F4   Length              0005 (5)\n+2D0F6   Flags               01 (1) 'Modification'\n+2D0F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D0FB CENTRAL HEADER #64    02014B50 (33639248)\n+2D0FF Created Zip Spec      14 (20) '2.0'\n+2D100 Created OS            00 (0) 'MS-DOS'\n+2D101 Extract Zip Spec      14 (20) '2.0'\n+2D102 Extract OS            00 (0) 'MS-DOS'\n+2D103 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2D105 Compression Method    0000 (0) 'Stored'\n+2D107 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D10B CRC                   DA916F8A (3666964362)\n+2D10F Compressed Size       000007A1 (1953)\n+2D113 Uncompressed Size     000007A1 (1953)\n+2D117 Filename Length       003F (63)\n+2D119 Extra Length          0009 (9)\n+2D11B Comment Length        0000 (0)\n+2D11D Disk Start            0000 (0)\n+2D11F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D121 Ext File Attributes   00000000 (0)\n+2D125 Local Header Offset   00021507 (136455)\n+2D129 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D129: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D168 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D16A   Length              0005 (5)\n+2D16C   Flags               01 (1) 'Modification'\n+2D16D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D171 CENTRAL HEADER #65    02014B50 (33639248)\n+2D175 Created Zip Spec      14 (20) '2.0'\n+2D176 Created OS            00 (0) 'MS-DOS'\n+2D177 Extract Zip Spec      14 (20) '2.0'\n+2D178 Extract OS            00 (0) 'MS-DOS'\n+2D179 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2D17B Compression Method    0000 (0) 'Stored'\n+2D17D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D181 CRC                   5C0FF18B (1544548747)\n+2D185 Compressed Size       0000107E (4222)\n+2D189 Uncompressed Size     0000107E (4222)\n+2D18D Filename Length       003A (58)\n+2D18F Extra Length          0009 (9)\n+2D191 Comment Length        0000 (0)\n+2D193 Disk Start            0000 (0)\n+2D195 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D197 Ext File Attributes   00000000 (0)\n+2D19B Local Header Offset   00021D1E (138526)\n+2D19F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D19F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D1D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D1DB   Length              0005 (5)\n+2D1DD   Flags               01 (1) 'Modification'\n+2D1DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D1E2 CENTRAL HEADER #66    02014B50 (33639248)\n+2D1E6 Created Zip Spec      14 (20) '2.0'\n+2D1E7 Created OS            00 (0) 'MS-DOS'\n+2D1E8 Extract Zip Spec      14 (20) '2.0'\n+2D1E9 Extract OS            00 (0) 'MS-DOS'\n+2D1EA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2D1EC Compression Method    0000 (0) 'Stored'\n+2D1EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D1F2 CRC                   F592DA8D (4120042125)\n+2D1F6 Compressed Size       00000713 (1811)\n+2D1FA Uncompressed Size     00000713 (1811)\n+2D1FE Filename Length       003F (63)\n+2D200 Extra Length          0009 (9)\n+2D202 Comment Length        0000 (0)\n+2D204 Disk Start            0000 (0)\n+2D206 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D208 Ext File Attributes   00000000 (0)\n+2D20C Local Header Offset   00022E0D (142861)\n+2D210 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D210: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D24F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D251   Length              0005 (5)\n+2D253   Flags               01 (1) 'Modification'\n+2D254   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D258 CENTRAL HEADER #67    02014B50 (33639248)\n+2D25C Created Zip Spec      14 (20) '2.0'\n+2D25D Created OS            00 (0) 'MS-DOS'\n+2D25E Extract Zip Spec      14 (20) '2.0'\n+2D25F Extract OS            00 (0) 'MS-DOS'\n+2D260 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2D262 Compression Method    0000 (0) 'Stored'\n+2D264 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D268 CRC                   D705EF34 (3607490356)\n+2D26C Compressed Size       00000CCA (3274)\n+2D270 Uncompressed Size     00000CCA (3274)\n+2D274 Filename Length       003D (61)\n+2D276 Extra Length          0009 (9)\n+2D278 Comment Length        0000 (0)\n+2D27A Disk Start            0000 (0)\n+2D27C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D27E Ext File Attributes   00000000 (0)\n+2D282 Local Header Offset   00023596 (144790)\n+2D286 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D286: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D2C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D2C5   Length              0005 (5)\n+2D2C7   Flags               01 (1) 'Modification'\n+2D2C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D2CC CENTRAL HEADER #68    02014B50 (33639248)\n+2D2D0 Created Zip Spec      14 (20) '2.0'\n+2D2D1 Created OS            00 (0) 'MS-DOS'\n+2D2D2 Extract Zip Spec      14 (20) '2.0'\n+2D2D3 Extract OS            00 (0) 'MS-DOS'\n+2D2D4 General Purpose Flag  0000 (0)\n+2D2D6 Compression Method    0000 (0) 'Stored'\n+2D2D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D2DC CRC                   00000000 (0)\n+2D2E0 Compressed Size       00000000 (0)\n+2D2E4 Uncompressed Size     00000000 (0)\n+2D2E8 Filename Length       001C (28)\n+2D2EA Extra Length          0009 (9)\n+2D2EC Comment Length        0000 (0)\n+2D2EE Disk Start            0000 (0)\n+2D2F0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D2F2 Ext File Attributes   00000000 (0)\n+2D2F6 Local Header Offset   000242D4 (148180)\n+2D2FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D2FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D316 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D318   Length              0005 (5)\n+2D31A   Flags               01 (1) 'Modification'\n+2D31B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D31F CENTRAL HEADER #69    02014B50 (33639248)\n+2D323 Created Zip Spec      14 (20) '2.0'\n+2D324 Created OS            00 (0) 'MS-DOS'\n+2D325 Extract Zip Spec      14 (20) '2.0'\n+2D326 Extract OS            00 (0) 'MS-DOS'\n+2D327 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2D329 Compression Method    0000 (0) 'Stored'\n+2D32B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D32F CRC                   2AA01116 (715133206)\n+2D333 Compressed Size       000003D7 (983)\n+2D337 Uncompressed Size     000003D7 (983)\n+2D33B Filename Length       002B (43)\n+2D33D Extra Length          0009 (9)\n+2D33F Comment Length        0000 (0)\n+2D341 Disk Start            0000 (0)\n+2D343 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D345 Ext File Attributes   00000000 (0)\n+2D349 Local Header Offset   00024317 (148247)\n+2D34D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D34D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D378 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D37A   Length              0005 (5)\n+2D37C   Flags               01 (1) 'Modification'\n+2D37D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D381 CENTRAL HEADER #70    02014B50 (33639248)\n+2D385 Created Zip Spec      14 (20) '2.0'\n+2D386 Created OS            00 (0) 'MS-DOS'\n+2D387 Extract Zip Spec      14 (20) '2.0'\n+2D388 Extract OS            00 (0) 'MS-DOS'\n+2D389 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2D38B Compression Method    0000 (0) 'Stored'\n+2D38D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D391 CRC                   70DD7BE1 (1893563361)\n+2D395 Compressed Size       00000AAE (2734)\n+2D399 Uncompressed Size     00000AAE (2734)\n+2D39D Filename Length       0024 (36)\n+2D39F Extra Length          0009 (9)\n+2D3A1 Comment Length        0000 (0)\n+2D3A3 Disk Start            0000 (0)\n+2D3A5 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D3A7 Ext File Attributes   00000000 (0)\n+2D3AB Local Header Offset   00024750 (149328)\n+2D3AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D3AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D3D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D3D5   Length              0005 (5)\n+2D3D7   Flags               01 (1) 'Modification'\n+2D3D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D3DC CENTRAL HEADER #71    02014B50 (33639248)\n+2D3E0 Created Zip Spec      14 (20) '2.0'\n+2D3E1 Created OS            00 (0) 'MS-DOS'\n+2D3E2 Extract Zip Spec      14 (20) '2.0'\n+2D3E3 Extract OS            00 (0) 'MS-DOS'\n+2D3E4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2D3E6 Compression Method    0000 (0) 'Stored'\n+2D3E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D3EC CRC                   725BA0A7 (1918607527)\n+2D3F0 Compressed Size       000008DD (2269)\n+2D3F4 Uncompressed Size     000008DD (2269)\n+2D3F8 Filename Length       0028 (40)\n+2D3FA Extra Length          0009 (9)\n+2D3FC Comment Length        0000 (0)\n+2D3FE Disk Start            0000 (0)\n+2D400 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D402 Ext File Attributes   00000000 (0)\n+2D406 Local Header Offset   00025259 (152153)\n+2D40A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D40A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D432 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D434   Length              0005 (5)\n+2D436   Flags               01 (1) 'Modification'\n+2D437   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D43B CENTRAL HEADER #72    02014B50 (33639248)\n+2D43F Created Zip Spec      14 (20) '2.0'\n+2D440 Created OS            00 (0) 'MS-DOS'\n+2D441 Extract Zip Spec      14 (20) '2.0'\n+2D442 Extract OS            00 (0) 'MS-DOS'\n+2D443 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2D445 Compression Method    0000 (0) 'Stored'\n+2D447 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D44B CRC                   7076ABE9 (1886825449)\n+2D44F Compressed Size       00003F37 (16183)\n+2D453 Uncompressed Size     00003F37 (16183)\n+2D457 Filename Length       0027 (39)\n+2D459 Extra Length          0009 (9)\n+2D45B Comment Length        0000 (0)\n+2D45D Disk Start            0000 (0)\n+2D45F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D461 Ext File Attributes   00000000 (0)\n+2D465 Local Header Offset   00025B95 (154517)\n+2D469 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D469: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D490 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D492   Length              0005 (5)\n+2D494   Flags               01 (1) 'Modification'\n+2D495   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D499 CENTRAL HEADER #73    02014B50 (33639248)\n+2D49D Created Zip Spec      14 (20) '2.0'\n+2D49E Created OS            00 (0) 'MS-DOS'\n+2D49F Extract Zip Spec      14 (20) '2.0'\n+2D4A0 Extract OS            00 (0) 'MS-DOS'\n+2D4A1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2D4A3 Compression Method    0000 (0) 'Stored'\n+2D4A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D4A9 CRC                   E7722336 (3883017014)\n+2D4AD Compressed Size       00001DD8 (7640)\n+2D4B1 Uncompressed Size     00001DD8 (7640)\n+2D4B5 Filename Length       0026 (38)\n+2D4B7 Extra Length          0009 (9)\n+2D4B9 Comment Length        0000 (0)\n+2D4BB Disk Start            0000 (0)\n+2D4BD Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2D4BF Ext File Attributes   00000000 (0)\n+2D4C3 Local Header Offset   00029B2A (170794)\n+2D4C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D4C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D4ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D4EF   Length              0005 (5)\n+2D4F1   Flags               01 (1) 'Modification'\n+2D4F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2D4F6 END CENTRAL HEADER    06054B50 (101010256)\n+2D4FA Number of this disk   0000 (0)\n+2D4FC Central Dir Disk no   0000 (0)\n+2D4FE Entries in this disk  0049 (73)\n+2D500 Total Entries         0049 (73)\n+2D502 Size of Central Dir   00001B97 (7063)\n+2D506 Offset to Central Dir 0002B95F (178527)\n+2D50A Comment Length        0000 (0)\n #\n # Warning Count: 146\n #\n # Done\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.qos.command.BaseCommand", "source2": "META-INF/dubbo/internal/org.apache.dubbo.qos.command.BaseCommand", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,8 +1,8 @@\n-online=org.apache.dubbo.qos.command.impl.Online\n-help=org.apache.dubbo.qos.command.impl.Help\n-quit=org.apache.dubbo.qos.command.impl.Quit\n-ls=org.apache.dubbo.qos.command.impl.Ls\n-offline=org.apache.dubbo.qos.command.impl.Offline\n-ready=org.apache.dubbo.qos.command.impl.Ready\n-version=org.apache.dubbo.qos.command.impl.Version\n-publish-metadata=org.apache.dubbo.qos.command.impl.PublishMetadata\n+online=org.apache.dubbo.qos.command.impl.Online\r\n+help=org.apache.dubbo.qos.command.impl.Help\r\n+quit=org.apache.dubbo.qos.command.impl.Quit\r\n+ls=org.apache.dubbo.qos.command.impl.Ls\r\n+offline=org.apache.dubbo.qos.command.impl.Offline\r\n+ready=org.apache.dubbo.qos.command.impl.Ready\r\n+version=org.apache.dubbo.qos.command.impl.Version\r\n+publish-metadata=org.apache.dubbo.qos.command.impl.PublishMetadata\r\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.remoting.telnet.TelnetHandler", "source2": "META-INF/dubbo/internal/org.apache.dubbo.remoting.telnet.TelnetHandler", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,9 +1,9 @@\n-ls=org.apache.dubbo.qos.legacy.ListTelnetHandler\n-ps=org.apache.dubbo.qos.legacy.PortTelnetHandler\n-cd=org.apache.dubbo.qos.legacy.ChangeTelnetHandler\n-pwd=org.apache.dubbo.qos.legacy.CurrentTelnetHandler\n-invoke=org.apache.dubbo.qos.legacy.InvokeTelnetHandler\n-trace=org.apache.dubbo.qos.legacy.TraceTelnetHandler\n-count=org.apache.dubbo.qos.legacy.CountTelnetHandler\n-select=org.apache.dubbo.qos.legacy.SelectTelnetHandler\n+ls=org.apache.dubbo.qos.legacy.ListTelnetHandler\r\n+ps=org.apache.dubbo.qos.legacy.PortTelnetHandler\r\n+cd=org.apache.dubbo.qos.legacy.ChangeTelnetHandler\r\n+pwd=org.apache.dubbo.qos.legacy.CurrentTelnetHandler\r\n+invoke=org.apache.dubbo.qos.legacy.InvokeTelnetHandler\r\n+trace=org.apache.dubbo.qos.legacy.TraceTelnetHandler\r\n+count=org.apache.dubbo.qos.legacy.CountTelnetHandler\r\n+select=org.apache.dubbo.qos.legacy.SelectTelnetHandler\r\n shutdown=org.apache.dubbo.qos.legacy.ShutdownTelnetHandler\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-qos/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-qos/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,185 +1,180 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d70 6c75 6769 6e3c 2f61 7274 6966  bo-plugin</artif\n-000004a0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004b0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004c0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004d0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-000004e0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000004f0: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000500: 7469 6661 6374 4964 3e64 7562 626f 2d71  tifactId>dubbo-q\n-00000510: 6f73 3c2f 6172 7469 6661 6374 4964 3e0d  os</artifactId>.\n-00000520: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n-00000530: 3130 3c2f 7665 7273 696f 6e3e 0d0a 2020  10</version>..  \n-00000540: 3c6e 616d 653e 6475 6262 6f2d 716f 733c  <name>dubbo-qos<\n-00000550: 2f6e 616d 653e 0d0a 2020 3c6c 6963 656e  /name>..  <licen\n-00000560: 7365 733e 0d0a 2020 2020 3c6c 6963 656e  ses>..    <licen\n-00000570: 7365 3e0d 0a20 2020 2020 203c 6e61 6d65  se>..      <name\n-00000580: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n-00000590: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n-000005a0: 6d65 3e0d 0a20 2020 2020 203c 7572 6c3e  me>..      <url>\n-000005b0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n-000005c0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n-000005d0: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n-000005e0: 0d0a 2020 2020 2020 3c64 6973 7472 6962  ..      <distrib\n-000005f0: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n-00000600: 7269 6275 7469 6f6e 3e0d 0a20 2020 203c  ribution>..    <\n-00000610: 2f6c 6963 656e 7365 3e0d 0a20 203c 2f6c  /license>..  </l\n-00000620: 6963 656e 7365 733e 0d0a 2020 3c70 726f  icenses>..  <pro\n-00000630: 7065 7274 6965 733e 0d0a 2020 2020 3c73  perties>..    <s\n-00000640: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-00000650: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n-00000660: 656e 5f64 6570 6c6f 793e 0d0a 2020 2020  en_deploy>..    \n-00000670: 3c70 726f 6a65 6374 2e62 7569 6c64 2e73  <project.build.s\n-00000680: 6f75 7263 6545 6e63 6f64 696e 673e 5554  ourceEncoding>UT\n-00000690: 462d 383c 2f70 726f 6a65 6374 2e62 7569  F-8</project.bui\n-000006a0: 6c64 2e73 6f75 7263 6545 6e63 6f64 696e  ld.sourceEncodin\n-000006b0: 673e 0d0a 2020 3c2f 7072 6f70 6572 7469  g>..  </properti\n-000006c0: 6573 3e0d 0a20 203c 6465 7065 6e64 656e  es>..  <dependen\n-000006d0: 6369 6573 3e0d 0a20 2020 203c 6465 7065  cies>..    <depe\n-000006e0: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-000006f0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000700: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000710: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000720: 6163 7449 643e 6475 6262 6f2d 636f 6d6d  actId>dubbo-comm\n-00000730: 6f6e 3c2f 6172 7469 6661 6374 4964 3e0d  on</artifactId>.\n-00000740: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000750: 247b 7072 6f6a 6563 742e 7665 7273 696f  ${project.versio\n-00000760: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00000770: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000780: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000790: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-000007a0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-000007b0: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-000007c0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-000007d0: 6475 6262 6f2d 7265 6769 7374 7279 2d61  dubbo-registry-a\n-000007e0: 7069 3c2f 6172 7469 6661 6374 4964 3e0d  pi</artifactId>.\n-000007f0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000800: 247b 7072 6f6a 6563 742e 7665 7273 696f  ${project.versio\n-00000810: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00000820: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000830: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000840: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000850: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-00000860: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000870: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000880: 6475 6262 6f2d 636f 6e66 6967 2d61 7069  dubbo-config-api\n-00000890: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-000008a0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-000008b0: 7072 6f6a 6563 742e 7665 7273 696f 6e7d  project.version}\n-000008c0: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-000008d0: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-000008e0: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-000008f0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000900: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000910: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000920: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000930: 6262 6f2d 7270 632d 6475 6262 6f3c 2f61  bbo-rpc-dubbo</a\n-00000940: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000950: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-00000960: 6a65 6374 2e76 6572 7369 6f6e 7d3c 2f76  ject.version}</v\n-00000970: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000980: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000990: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-000009a0: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-000009b0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000009c0: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-000009d0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000009e0: 2d72 656d 6f74 696e 672d 6e65 7474 7934  -remoting-netty4\n-000009f0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000a00: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000a10: 7072 6f6a 6563 742e 7665 7273 696f 6e7d  project.version}\n-00000a20: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-00000a30: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000a40: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000a50: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000a60: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000a70: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000a80: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000a90: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n-00000aa0: 6e2d 6865 7373 6961 6e32 3c2f 6172 7469  n-hessian2</arti\n-00000ab0: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000ac0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000ad0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n-00000ae0: 696f 6e3e 0d0a 2020 2020 3c2f 6465 7065  ion>..    </depe\n-00000af0: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-00000b00: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000b10: 203c 6772 6f75 7049 643e 696f 2e6e 6574   <groupId>io.net\n-00000b20: 7479 3c2f 6772 6f75 7049 643e 0d0a 2020  ty</groupId>..  \n-00000b30: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000b40: 6e65 7474 792d 616c 6c3c 2f61 7274 6966  netty-all</artif\n-00000b50: 6163 7449 643e 0d0a 2020 2020 3c2f 6465  actId>..    </de\n-00000b60: 7065 6e64 656e 6379 3e0d 0a20 203c 2f64  pendency>..  </d\n-00000b70: 6570 656e 6465 6e63 6965 733e 0d0a 3c2f  ependencies>..</\n-00000b80: 7072 6f6a 6563 743e 0d0a                 project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d70 6c75  factId>dubbo-plu\n+00000480: 6769 6e3c 2f61 7274 6966 6163 7449 643e  gin</artifactId>\n+00000490: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004a0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004b0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004c0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004d0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000004e0: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+000004f0: 7562 626f 2d71 6f73 3c2f 6172 7469 6661  ubbo-qos</artifa\n+00000500: 6374 4964 3e0a 2020 3c76 6572 7369 6f6e  ctId>.  <version\n+00000510: 3e32 2e37 2e31 303c 2f76 6572 7369 6f6e  >2.7.10</version\n+00000520: 3e0a 2020 3c6e 616d 653e 6475 6262 6f2d  >.  <name>dubbo-\n+00000530: 716f 733c 2f6e 616d 653e 0a20 203c 6c69  qos</name>.  <li\n+00000540: 6365 6e73 6573 3e0a 2020 2020 3c6c 6963  censes>.    <lic\n+00000550: 656e 7365 3e0a 2020 2020 2020 3c6e 616d  ense>.      <nam\n+00000560: 653e 4170 6163 6865 204c 6963 656e 7365  e>Apache License\n+00000570: 2c20 5665 7273 696f 6e20 322e 303c 2f6e  , Version 2.0</n\n+00000580: 616d 653e 0a20 2020 2020 203c 7572 6c3e  ame>.      <url>\n+00000590: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000005a0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+000005b0: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n+000005c0: 0a20 2020 2020 203c 6469 7374 7269 6275  .      <distribu\n+000005d0: 7469 6f6e 3e72 6570 6f3c 2f64 6973 7472  tion>repo</distr\n+000005e0: 6962 7574 696f 6e3e 0a20 2020 203c 2f6c  ibution>.    </l\n+000005f0: 6963 656e 7365 3e0a 2020 3c2f 6c69 6365  icense>.  </lice\n+00000600: 6e73 6573 3e0a 2020 3c70 726f 7065 7274  nses>.  <propert\n+00000610: 6965 733e 0a20 2020 203c 736b 6970 5f6d  ies>.    <skip_m\n+00000620: 6176 656e 5f64 6570 6c6f 793e 6661 6c73  aven_deploy>fals\n+00000630: 653c 2f73 6b69 705f 6d61 7665 6e5f 6465  e</skip_maven_de\n+00000640: 706c 6f79 3e0a 2020 2020 3c70 726f 6a65  ploy>.    <proje\n+00000650: 6374 2e62 7569 6c64 2e73 6f75 7263 6545  ct.build.sourceE\n+00000660: 6e63 6f64 696e 673e 5554 462d 383c 2f70  ncoding>UTF-8</p\n+00000670: 726f 6a65 6374 2e62 7569 6c64 2e73 6f75  roject.build.sou\n+00000680: 7263 6545 6e63 6f64 696e 673e 0a20 203c  rceEncoding>.  <\n+00000690: 2f70 726f 7065 7274 6965 733e 0a20 203c  /properties>.  <\n+000006a0: 6465 7065 6e64 656e 6369 6573 3e0a 2020  dependencies>.  \n+000006b0: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+000006c0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+000006d0: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n+000006e0: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+000006f0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n+00000700: 2d63 6f6d 6d6f 6e3c 2f61 7274 6966 6163  -common</artifac\n+00000710: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+00000720: 696f 6e3e 247b 7072 6f6a 6563 742e 7665  ion>${project.ve\n+00000730: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+00000740: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000750: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000760: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000770: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000780: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000790: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+000007a0: 6475 6262 6f2d 7265 6769 7374 7279 2d61  dubbo-registry-a\n+000007b0: 7069 3c2f 6172 7469 6661 6374 4964 3e0a  pi</artifactId>.\n+000007c0: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n+000007d0: 7b70 726f 6a65 6374 2e76 6572 7369 6f6e  {project.version\n+000007e0: 7d3c 2f76 6572 7369 6f6e 3e0a 2020 2020  }</version>.    \n+000007f0: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000800: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000810: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+00000820: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n+00000830: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+00000840: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n+00000850: 2d63 6f6e 6669 672d 6170 693c 2f61 7274  -config-api</art\n+00000860: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+00000870: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+00000880: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+00000890: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+000008a0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000008b0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+000008c0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+000008d0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+000008e0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+000008f0: 7449 643e 6475 6262 6f2d 7270 632d 6475  tId>dubbo-rpc-du\n+00000900: 6262 6f3c 2f61 7274 6966 6163 7449 643e  bbo</artifactId>\n+00000910: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000920: 247b 7072 6f6a 6563 742e 7665 7273 696f  ${project.versio\n+00000930: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+00000940: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000950: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000960: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000970: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000980: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000990: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000009a0: 6f2d 7265 6d6f 7469 6e67 2d6e 6574 7479  o-remoting-netty\n+000009b0: 343c 2f61 7274 6966 6163 7449 643e 0a20  4</artifactId>. \n+000009c0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n+000009d0: 7072 6f6a 6563 742e 7665 7273 696f 6e7d  project.version}\n+000009e0: 3c2f 7665 7273 696f 6e3e 0a20 2020 203c  </version>.    <\n+000009f0: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000a00: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000a10: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000a20: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n+00000a30: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+00000a40: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n+00000a50: 7365 7269 616c 697a 6174 696f 6e2d 6865  serialization-he\n+00000a60: 7373 6961 6e32 3c2f 6172 7469 6661 6374  ssian2</artifact\n+00000a70: 4964 3e0a 2020 2020 2020 3c76 6572 7369  Id>.      <versi\n+00000a80: 6f6e 3e24 7b70 726f 6a65 6374 2e76 6572  on>${project.ver\n+00000a90: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000aa0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000ab0: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000ac0: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000ad0: 643e 696f 2e6e 6574 7479 3c2f 6772 6f75  d>io.netty</grou\n+00000ae0: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+00000af0: 6661 6374 4964 3e6e 6574 7479 2d61 6c6c  factId>netty-all\n+00000b00: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000b10: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000b20: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n+00000b30: 3e0a 3c2f 7072 6f6a 6563 743e 0a         >.</project>.\n"}, {"source1": "org/apache/dubbo/qos/command/impl/Ls.java", "source2": "org/apache/dubbo/qos/command/impl/Ls.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,88 +1,88 @@\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.qos.command.impl;\n-\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-import org.apache.dubbo.qos.command.util.ServiceCheckUtils;\n-import org.apache.dubbo.qos.textui.TTable;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ConsumerModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-\n-import java.util.Collection;\n-\n-@Cmd(name = \"ls\", summary = \"ls service\", example = {\n-        \"ls\"\n-})\n-public class Ls implements BaseCommand {\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        StringBuilder result = new StringBuilder();\n-        result.append(listProvider());\n-        result.append(listConsumer());\n-\n-        return result.toString();\n-    }\n-\n-    public String listProvider() {\n-        StringBuilder stringBuilder = new StringBuilder();\n-        stringBuilder.append(\"As Provider side:\" + System.lineSeparator());\n-        Collection<ProviderModel> providerModelList = ApplicationModel.allProviderModels();\n-\n-        TTable tTable = new TTable(new TTable.ColumnDefine[]{\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE),\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE)\n-        });\n-\n-        //Header\n-        tTable.addRow(\"Provider Service Name\", \"PUB\");\n-\n-        //Content\n-        for (ProviderModel providerModel : providerModelList) {\n-            tTable.addRow(providerModel.getServiceKey(), ServiceCheckUtils.isRegistered(providerModel) ? \"Y\" : \"N\");\n-        }\n-        stringBuilder.append(tTable.rendering());\n-\n-        return stringBuilder.toString();\n-    }\n-\n-    public String listConsumer() {\n-        StringBuilder stringBuilder = new StringBuilder();\n-        stringBuilder.append(\"As Consumer side:\" + System.lineSeparator());\n-        Collection<ConsumerModel> consumerModelList = ApplicationModel.allConsumerModels();\n-\n-        TTable tTable = new TTable(new TTable.ColumnDefine[]{\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE),\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE)\n-        });\n-\n-        //Header\n-        tTable.addRow(\"Consumer Service Name\", \"NUM\");\n-\n-        //Content\n-        //TODO to calculate consumerAddressNum\n-        for (ConsumerModel consumerModel : consumerModelList) {\n-            tTable.addRow(consumerModel.getServiceKey(), ServiceCheckUtils.getConsumerAddressNum(consumerModel));\n-        }\n-\n-        stringBuilder.append(tTable.rendering());\n-\n-        return stringBuilder.toString();\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.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+import org.apache.dubbo.qos.command.util.ServiceCheckUtils;\r\n+import org.apache.dubbo.qos.textui.TTable;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ConsumerModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+\r\n+import java.util.Collection;\r\n+\r\n+@Cmd(name = \"ls\", summary = \"ls service\", example = {\r\n+        \"ls\"\r\n+})\r\n+public class Ls implements BaseCommand {\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        StringBuilder result = new StringBuilder();\r\n+        result.append(listProvider());\r\n+        result.append(listConsumer());\r\n+\r\n+        return result.toString();\r\n+    }\r\n+\r\n+    public String listProvider() {\r\n+        StringBuilder stringBuilder = new StringBuilder();\r\n+        stringBuilder.append(\"As Provider side:\" + System.lineSeparator());\r\n+        Collection<ProviderModel> providerModelList = ApplicationModel.allProviderModels();\r\n+\r\n+        TTable tTable = new TTable(new TTable.ColumnDefine[]{\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE),\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE)\r\n+        });\r\n+\r\n+        //Header\r\n+        tTable.addRow(\"Provider Service Name\", \"PUB\");\r\n+\r\n+        //Content\r\n+        for (ProviderModel providerModel : providerModelList) {\r\n+            tTable.addRow(providerModel.getServiceKey(), ServiceCheckUtils.isRegistered(providerModel) ? \"Y\" : \"N\");\r\n+        }\r\n+        stringBuilder.append(tTable.rendering());\r\n+\r\n+        return stringBuilder.toString();\r\n+    }\r\n+\r\n+    public String listConsumer() {\r\n+        StringBuilder stringBuilder = new StringBuilder();\r\n+        stringBuilder.append(\"As Consumer side:\" + System.lineSeparator());\r\n+        Collection<ConsumerModel> consumerModelList = ApplicationModel.allConsumerModels();\r\n+\r\n+        TTable tTable = new TTable(new TTable.ColumnDefine[]{\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE),\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE)\r\n+        });\r\n+\r\n+        //Header\r\n+        tTable.addRow(\"Consumer Service Name\", \"NUM\");\r\n+\r\n+        //Content\r\n+        //TODO to calculate consumerAddressNum\r\n+        for (ConsumerModel consumerModel : consumerModelList) {\r\n+            tTable.addRow(consumerModel.getServiceKey(), ServiceCheckUtils.getConsumerAddressNum(consumerModel));\r\n+        }\r\n+\r\n+        stringBuilder.append(tTable.rendering());\r\n+\r\n+        return stringBuilder.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/Offline.java", "source2": "org/apache/dubbo/qos/command/impl/Offline.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.qos.command.impl;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.RegistryFactory;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-\n-import java.util.Collection;\n-import java.util.List;\n-\n-@Cmd(name = \"offline\", summary = \"offline dubbo\", example = {\n-        \"offline dubbo\",\n-        \"offline xx.xx.xxx.service\"\n-})\n-public class Offline implements BaseCommand {\n-    private Logger logger = LoggerFactory.getLogger(Offline.class);\n-    private static RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();\n-    private static ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\n-\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        logger.info(\"receive offline command\");\n-        String servicePattern = \".*\";\n-        if (args != null && args.length > 0) {\n-            servicePattern = args[0];\n-        }\n-\n-        boolean hasService = offline(servicePattern);\n-\n-        if (hasService) {\n-            return \"OK\";\n-        } else {\n-            return \"service not found\";\n-        }\n-    }\n-\n-    public static boolean offline(String servicePattern) {\n-        boolean hasService = false;\n-\n-        Collection<ProviderModel> providerModelList = serviceRepository.getExportedServices();\n-        for (ProviderModel providerModel : providerModelList) {\n-            if (providerModel.getServiceMetadata().getDisplayServiceKey().matches(servicePattern)) {\n-                hasService = true;\n-                List<ProviderModel.RegisterStatedURL> statedUrls = providerModel.getStatedUrl();\n-                for (ProviderModel.RegisterStatedURL statedURL : statedUrls) {\n-                    if (statedURL.isRegistered()) {\n-                        Registry registry = registryFactory.getRegistry(statedURL.getRegistryUrl());\n-                        registry.unregister(statedURL.getProviderUrl());\n-                        statedURL.setRegistered(false);\n-                    }\n-                }\n-            }\n-        }\n-\n-        return hasService;\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.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.RegistryFactory;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+\r\n+@Cmd(name = \"offline\", summary = \"offline dubbo\", example = {\r\n+        \"offline dubbo\",\r\n+        \"offline xx.xx.xxx.service\"\r\n+})\r\n+public class Offline implements BaseCommand {\r\n+    private Logger logger = LoggerFactory.getLogger(Offline.class);\r\n+    private static RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();\r\n+    private static ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\r\n+\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        logger.info(\"receive offline command\");\r\n+        String servicePattern = \".*\";\r\n+        if (args != null && args.length > 0) {\r\n+            servicePattern = args[0];\r\n+        }\r\n+\r\n+        boolean hasService = offline(servicePattern);\r\n+\r\n+        if (hasService) {\r\n+            return \"OK\";\r\n+        } else {\r\n+            return \"service not found\";\r\n+        }\r\n+    }\r\n+\r\n+    public static boolean offline(String servicePattern) {\r\n+        boolean hasService = false;\r\n+\r\n+        Collection<ProviderModel> providerModelList = serviceRepository.getExportedServices();\r\n+        for (ProviderModel providerModel : providerModelList) {\r\n+            if (providerModel.getServiceMetadata().getDisplayServiceKey().matches(servicePattern)) {\r\n+                hasService = true;\r\n+                List<ProviderModel.RegisterStatedURL> statedUrls = providerModel.getStatedUrl();\r\n+                for (ProviderModel.RegisterStatedURL statedURL : statedUrls) {\r\n+                    if (statedURL.isRegistered()) {\r\n+                        Registry registry = registryFactory.getRegistry(statedURL.getRegistryUrl());\r\n+                        registry.unregister(statedURL.getProviderUrl());\r\n+                        statedURL.setRegistered(false);\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return hasService;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/Online.java", "source2": "org/apache/dubbo/qos/command/impl/Online.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.qos.command.impl;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.RegistryFactory;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-\n-import java.util.Collection;\n-import java.util.List;\n-\n-@Cmd(name = \"online\", summary = \"online dubbo\", example = {\n-        \"online dubbo\",\n-        \"online xx.xx.xxx.service\"\n-})\n-public class Online implements BaseCommand {\n-    private static final Logger logger = LoggerFactory.getLogger(Online.class);\n-    private static RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();\n-    private static ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\n-\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        logger.info(\"receive online command\");\n-        String servicePattern = \".*\";\n-        if (ArrayUtils.isNotEmpty(args)) {\n-            servicePattern = \"\" + args[0];\n-        }\n-\n-        boolean hasService = online(servicePattern);\n-        if (hasService) {\n-            return \"OK\";\n-        } else {\n-            return \"service not found\";\n-        }\n-    }\n-\n-    public static boolean online(String servicePattern) {\n-        boolean hasService = false;\n-\n-        Collection<ProviderModel> providerModelList = serviceRepository.getExportedServices();\n-        for (ProviderModel providerModel : providerModelList) {\n-            if (providerModel.getServiceMetadata().getDisplayServiceKey().matches(servicePattern)) {\n-                hasService = true;\n-                List<ProviderModel.RegisterStatedURL> statedUrls = providerModel.getStatedUrl();\n-                for (ProviderModel.RegisterStatedURL statedURL : statedUrls) {\n-                    if (!statedURL.isRegistered()) {\n-                        Registry registry = registryFactory.getRegistry(statedURL.getRegistryUrl());\n-                        registry.register(statedURL.getProviderUrl());\n-                        statedURL.setRegistered(true);\n-                    }\n-                }\n-            }\n-        }\n-\n-        return hasService;\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.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.RegistryFactory;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+\r\n+@Cmd(name = \"online\", summary = \"online dubbo\", example = {\r\n+        \"online dubbo\",\r\n+        \"online xx.xx.xxx.service\"\r\n+})\r\n+public class Online implements BaseCommand {\r\n+    private static final Logger logger = LoggerFactory.getLogger(Online.class);\r\n+    private static RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();\r\n+    private static ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\r\n+\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        logger.info(\"receive online command\");\r\n+        String servicePattern = \".*\";\r\n+        if (ArrayUtils.isNotEmpty(args)) {\r\n+            servicePattern = \"\" + args[0];\r\n+        }\r\n+\r\n+        boolean hasService = online(servicePattern);\r\n+        if (hasService) {\r\n+            return \"OK\";\r\n+        } else {\r\n+            return \"service not found\";\r\n+        }\r\n+    }\r\n+\r\n+    public static boolean online(String servicePattern) {\r\n+        boolean hasService = false;\r\n+\r\n+        Collection<ProviderModel> providerModelList = serviceRepository.getExportedServices();\r\n+        for (ProviderModel providerModel : providerModelList) {\r\n+            if (providerModel.getServiceMetadata().getDisplayServiceKey().matches(servicePattern)) {\r\n+                hasService = true;\r\n+                List<ProviderModel.RegisterStatedURL> statedUrls = providerModel.getStatedUrl();\r\n+                for (ProviderModel.RegisterStatedURL statedURL : statedUrls) {\r\n+                    if (!statedURL.isRegistered()) {\r\n+                        Registry registry = registryFactory.getRegistry(statedURL.getRegistryUrl());\r\n+                        registry.register(statedURL.getProviderUrl());\r\n+                        statedURL.setRegistered(true);\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return hasService;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/PublishMetadata.java", "source2": "org/apache/dubbo/qos/command/impl/PublishMetadata.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,63 +1,63 @@\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.qos.command.impl;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;\n-\n-import java.util.concurrent.ScheduledFuture;\n-import java.util.concurrent.TimeUnit;\n-\n-@Cmd(name = \"publishMetadata\", summary = \"update service metadata and service instance\", example = {\n-        \"publishMetadata\",\n-        \"publishMetadata 5\"\n-})\n-public class PublishMetadata implements BaseCommand {\n-    private static final Logger logger = LoggerFactory.getLogger(PublishMetadata.class);\n-    private final ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\n-    private ScheduledFuture future;\n-\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        logger.info(\"received publishMetadata command.\");\n-\n-        if (ArrayUtils.isEmpty(args)) {\n-            ServiceInstanceMetadataUtils.refreshMetadataAndInstance();\n-            return \"publish metadata succeeded.\";\n-        }\n-\n-        try {\n-            int delay = Integer.parseInt(args[0]);\n-            if (future == null || future.isDone() || future.isCancelled()) {\n-                future = executorRepository.nextScheduledExecutor()\n-                        .scheduleWithFixedDelay(ServiceInstanceMetadataUtils::refreshMetadataAndInstance, 0, delay, TimeUnit.MILLISECONDS);\n-            }\n-        } catch (NumberFormatException e) {\n-            logger.error(\"Wrong delay param\", e);\n-            return \"publishMetadata failed! Wrong delay param!\";\n-        }\n-        return \"publish task submitted, will publish in \" + args[0] + \" seconds.\";\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.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;\r\n+\r\n+import java.util.concurrent.ScheduledFuture;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+@Cmd(name = \"publishMetadata\", summary = \"update service metadata and service instance\", example = {\r\n+        \"publishMetadata\",\r\n+        \"publishMetadata 5\"\r\n+})\r\n+public class PublishMetadata implements BaseCommand {\r\n+    private static final Logger logger = LoggerFactory.getLogger(PublishMetadata.class);\r\n+    private final ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\r\n+    private ScheduledFuture future;\r\n+\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        logger.info(\"received publishMetadata command.\");\r\n+\r\n+        if (ArrayUtils.isEmpty(args)) {\r\n+            ServiceInstanceMetadataUtils.refreshMetadataAndInstance();\r\n+            return \"publish metadata succeeded.\";\r\n+        }\r\n+\r\n+        try {\r\n+            int delay = Integer.parseInt(args[0]);\r\n+            if (future == null || future.isDone() || future.isCancelled()) {\r\n+                future = executorRepository.nextScheduledExecutor()\r\n+                        .scheduleWithFixedDelay(ServiceInstanceMetadataUtils::refreshMetadataAndInstance, 0, delay, TimeUnit.MILLISECONDS);\r\n+            }\r\n+        } catch (NumberFormatException e) {\r\n+            logger.error(\"Wrong delay param\", e);\r\n+            return \"publishMetadata failed! Wrong delay param!\";\r\n+        }\r\n+        return \"publish task submitted, will publish in \" + args[0] + \" seconds.\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/Ready.java", "source2": "org/apache/dubbo/qos/command/impl/Ready.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,95 +1,95 @@\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.qos.command.impl;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.bootstrap.DubboBootstrap;\n-import org.apache.dubbo.config.utils.ConfigValidationUtils;\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-import org.apache.dubbo.qos.textui.TTable;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.stream.Collectors;\n-\n-@Cmd(name = \"ready\",summary = \"Judge if application or service has started? \")\n-public class Ready implements BaseCommand {\n-\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        String serviceName = args.length > 0 ? args[0] : null;\n-        if (StringUtils.isEmpty(serviceName)) {\n-            // judge application has started\n-            return DubboBootstrap.getInstance().isReady() ? \"true\" : \"false\";\n-        } else {\n-            // judge service has started\n-            Map<String, Boolean> serviceReadyMap = isServiceReady(serviceName);\n-            if (serviceReadyMap == null || serviceReadyMap.size() <= 0) {\n-                return \"can't match service=\" + serviceName;\n-            }\n-            return buildUiText(serviceReadyMap);\n-        }\n-    }\n-\n-    private String buildUiText(Map<String, Boolean> serviceReadyMap) {\n-        TTable tTable = new TTable(new TTable.ColumnDefine[]{\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE),\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE)\n-        });\n-\n-        //Header\n-        tTable.addRow(\"Provider Service Name\", \"STATUS\");\n-        for (Map.Entry<String, Boolean> entry : serviceReadyMap.entrySet()) {\n-            String status = Boolean.TRUE.equals(entry.getValue()) ? \"TRUE\" : \"FALSE\";\n-            tTable.addRow(entry.getKey(),status);\n-        }\n-        return tTable.rendering();\n-    }\n-\n-    /**\n-     * judge service provider is started\n-     * @param serviceName service name,eg: org.apache.dubbo.demo.DemoService\n-     * @return Map[serviceKey,isStarted] eg:[org.apache.dubbo.demo.DemoService,true] or [group1/org.apache.dubbo.demo.DemoService,false]\n-     */\n-    private Map<String,Boolean> isServiceReady(String serviceName) {\n-        Map<String,Boolean> res = new HashMap<>();\n-        for (ProviderModel providerModel : ApplicationModel.allProviderModels()) {\n-            String serviceKey = providerModel.getServiceKey();\n-            String interfaceName = providerModel.getServiceConfig().getInterface();\n-            if (interfaceName.equals(serviceName)) {\n-                List<URL> needRegistryURLs = ConfigValidationUtils.loadRegistries(providerModel.getServiceConfig(), true);\n-                List<URL> registeredRegistryURLs = providerModel.getStatedUrl().stream()\n-                        .filter(x -> Boolean.TRUE.equals(x.isRegistered()))\n-                        .map(ProviderModel.RegisterStatedURL::getRegistryUrl)\n-                        .collect(Collectors.toList());\n-                if (needRegistryURLs.size() == registeredRegistryURLs.size()) {\n-                    res.put(serviceKey,true);\n-                } else {\n-                    res.put(serviceKey,false);\n-                }\n-            }\n-        }\n-        return res;\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.qos.command.impl;\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.config.bootstrap.DubboBootstrap;\r\n+import org.apache.dubbo.config.utils.ConfigValidationUtils;\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+import org.apache.dubbo.qos.textui.TTable;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.stream.Collectors;\r\n+\r\n+@Cmd(name = \"ready\",summary = \"Judge if application or service has started? \")\r\n+public class Ready implements BaseCommand {\r\n+\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        String serviceName = args.length > 0 ? args[0] : null;\r\n+        if (StringUtils.isEmpty(serviceName)) {\r\n+            // judge application has started\r\n+            return DubboBootstrap.getInstance().isReady() ? \"true\" : \"false\";\r\n+        } else {\r\n+            // judge service has started\r\n+            Map<String, Boolean> serviceReadyMap = isServiceReady(serviceName);\r\n+            if (serviceReadyMap == null || serviceReadyMap.size() <= 0) {\r\n+                return \"can't match service=\" + serviceName;\r\n+            }\r\n+            return buildUiText(serviceReadyMap);\r\n+        }\r\n+    }\r\n+\r\n+    private String buildUiText(Map<String, Boolean> serviceReadyMap) {\r\n+        TTable tTable = new TTable(new TTable.ColumnDefine[]{\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE),\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE)\r\n+        });\r\n+\r\n+        //Header\r\n+        tTable.addRow(\"Provider Service Name\", \"STATUS\");\r\n+        for (Map.Entry<String, Boolean> entry : serviceReadyMap.entrySet()) {\r\n+            String status = Boolean.TRUE.equals(entry.getValue()) ? \"TRUE\" : \"FALSE\";\r\n+            tTable.addRow(entry.getKey(),status);\r\n+        }\r\n+        return tTable.rendering();\r\n+    }\r\n+\r\n+    /**\r\n+     * judge service provider is started\r\n+     * @param serviceName service name,eg: org.apache.dubbo.demo.DemoService\r\n+     * @return Map[serviceKey,isStarted] eg:[org.apache.dubbo.demo.DemoService,true] or [group1/org.apache.dubbo.demo.DemoService,false]\r\n+     */\r\n+    private Map<String,Boolean> isServiceReady(String serviceName) {\r\n+        Map<String,Boolean> res = new HashMap<>();\r\n+        for (ProviderModel providerModel : ApplicationModel.allProviderModels()) {\r\n+            String serviceKey = providerModel.getServiceKey();\r\n+            String interfaceName = providerModel.getServiceConfig().getInterface();\r\n+            if (interfaceName.equals(serviceName)) {\r\n+                List<URL> needRegistryURLs = ConfigValidationUtils.loadRegistries(providerModel.getServiceConfig(), true);\r\n+                List<URL> registeredRegistryURLs = providerModel.getStatedUrl().stream()\r\n+                        .filter(x -> Boolean.TRUE.equals(x.isRegistered()))\r\n+                        .map(ProviderModel.RegisterStatedURL::getRegistryUrl)\r\n+                        .collect(Collectors.toList());\r\n+                if (needRegistryURLs.size() == registeredRegistryURLs.size()) {\r\n+                    res.put(serviceKey,true);\r\n+                } else {\r\n+                    res.put(serviceKey,false);\r\n+                }\r\n+            }\r\n+        }\r\n+        return res;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/Version.java", "source2": "org/apache/dubbo/qos/command/impl/Version.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\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.qos.command.impl;\n-\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-\n-@Cmd(name = \"version\", summary = \"version command(show dubbo version)\", example = {\n-        \"version\"\n-})\n-public class Version implements BaseCommand {\n-\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        StringBuilder versionDescBuilder = new StringBuilder();\n-        versionDescBuilder.append(\"dubbo version \\\"\");\n-        versionDescBuilder.append(org.apache.dubbo.common.Version.getVersion());\n-        versionDescBuilder.append(\"\\\"\");\n-        return versionDescBuilder.toString();\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.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+\r\n+@Cmd(name = \"version\", summary = \"version command(show dubbo version)\", example = {\r\n+        \"version\"\r\n+})\r\n+public class Version implements BaseCommand {\r\n+\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        StringBuilder versionDescBuilder = new StringBuilder();\r\n+        versionDescBuilder.append(\"dubbo version \\\"\");\r\n+        versionDescBuilder.append(org.apache.dubbo.common.Version.getVersion());\r\n+        versionDescBuilder.append(\"\\\"\");\r\n+        return versionDescBuilder.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/util/CommandHelper.java", "source2": "org/apache/dubbo/qos/command/util/CommandHelper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\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.qos.command.util;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.qos.command.BaseCommand;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Set;\n-\n-public class CommandHelper {\n-\n-    private CommandHelper() {\n-    }\n-\n-    public static boolean hasCommand(String commandName) {\n-\n-        BaseCommand command = null;\n-        try {\n-            command = ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName);\n-        } catch (Throwable throwable) {\n-            return false;\n-        }\n-\n-        return command != null;\n-\n-    }\n-\n-    public static List<Class<?>> getAllCommandClass() {\n-        final Set<String> commandList = ExtensionLoader.getExtensionLoader(BaseCommand.class).getSupportedExtensions();\n-        final List<Class<?>> classes = new ArrayList<Class<?>>();\n-\n-        for (String commandName : commandList) {\n-            BaseCommand command = ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName);\n-            classes.add(command.getClass());\n-        }\n-\n-        return classes;\n-    }\n-\n-\n-    public static Class<?> getCommandClass(String commandName) {\n-        if (hasCommand(commandName)) {\n-            return ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName).getClass();\n-        } else {\n-            return null;\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.qos.command.util;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+\r\n+public class CommandHelper {\r\n+\r\n+    private CommandHelper() {\r\n+    }\r\n+\r\n+    public static boolean hasCommand(String commandName) {\r\n+\r\n+        BaseCommand command = null;\r\n+        try {\r\n+            command = ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName);\r\n+        } catch (Throwable throwable) {\r\n+            return false;\r\n+        }\r\n+\r\n+        return command != null;\r\n+\r\n+    }\r\n+\r\n+    public static List<Class<?>> getAllCommandClass() {\r\n+        final Set<String> commandList = ExtensionLoader.getExtensionLoader(BaseCommand.class).getSupportedExtensions();\r\n+        final List<Class<?>> classes = new ArrayList<Class<?>>();\r\n+\r\n+        for (String commandName : commandList) {\r\n+            BaseCommand command = ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName);\r\n+            classes.add(command.getClass());\r\n+        }\r\n+\r\n+        return classes;\r\n+    }\r\n+\r\n+\r\n+    public static Class<?> getCommandClass(String commandName) {\r\n+        if (hasCommand(commandName)) {\r\n+            return ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName).getClass();\r\n+        } else {\r\n+            return null;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/util/ServiceCheckUtils.java", "source2": "org/apache/dubbo/qos/command/util/ServiceCheckUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,62 +1,62 @@\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.qos.command.util;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.support.AbstractRegistry;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-import org.apache.dubbo.rpc.model.ConsumerModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-\n-import java.util.Collection;\n-import java.util.List;\n-import java.util.Map;\n-\n-public class ServiceCheckUtils {\n-\n-    public static boolean isRegistered(ProviderModel providerModel) {\n-        // TODO, only check the status of one registry and no protocol now.\n-        Collection<Registry> registries = AbstractRegistryFactory.getRegistries();\n-        if (CollectionUtils.isNotEmpty(registries)) {\n-            AbstractRegistry abstractRegistry = (AbstractRegistry) registries.iterator().next();\n-            if (abstractRegistry.getRegistered().stream().anyMatch(url -> url.getServiceKey().equals(providerModel.getServiceKey()))) {\n-                return true;\n-            }\n-        }\n-        return false;\n-    }\n-\n-    public static int getConsumerAddressNum(ConsumerModel consumerModel) {\n-        // TODO, only check one registry by default.\n-        int num = 0;\n-\n-        Collection<Registry> registries = AbstractRegistryFactory.getRegistries();\n-        if (CollectionUtils.isNotEmpty(registries)) {\n-            AbstractRegistry abstractRegistry = (AbstractRegistry) registries.iterator().next();\n-            for (Map.Entry<URL, Map<String, List<URL>>> entry : abstractRegistry.getNotified().entrySet()) {\n-                if (entry.getKey().getServiceKey().equals(consumerModel.getServiceKey())) {\n-                    if (CollectionUtils.isNotEmptyMap(entry.getValue())) {\n-                        num = entry.getValue().size();\n-                    }\n-                }\n-            }\n-        }\n-        return num;\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.qos.command.util;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.support.AbstractRegistry;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+import org.apache.dubbo.rpc.model.ConsumerModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+public class ServiceCheckUtils {\r\n+\r\n+    public static boolean isRegistered(ProviderModel providerModel) {\r\n+        // TODO, only check the status of one registry and no protocol now.\r\n+        Collection<Registry> registries = AbstractRegistryFactory.getRegistries();\r\n+        if (CollectionUtils.isNotEmpty(registries)) {\r\n+            AbstractRegistry abstractRegistry = (AbstractRegistry) registries.iterator().next();\r\n+            if (abstractRegistry.getRegistered().stream().anyMatch(url -> url.getServiceKey().equals(providerModel.getServiceKey()))) {\r\n+                return true;\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    public static int getConsumerAddressNum(ConsumerModel consumerModel) {\r\n+        // TODO, only check one registry by default.\r\n+        int num = 0;\r\n+\r\n+        Collection<Registry> registries = AbstractRegistryFactory.getRegistries();\r\n+        if (CollectionUtils.isNotEmpty(registries)) {\r\n+            AbstractRegistry abstractRegistry = (AbstractRegistry) registries.iterator().next();\r\n+            for (Map.Entry<URL, Map<String, List<URL>>> entry : abstractRegistry.getNotified().entrySet()) {\r\n+                if (entry.getKey().getServiceKey().equals(consumerModel.getServiceKey())) {\r\n+                    if (CollectionUtils.isNotEmptyMap(entry.getValue())) {\r\n+                        num = entry.getValue().size();\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+        return num;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\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.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\n-\n-/**\n- * ChangeServiceTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[service]\", summary = \"Change default service.\", detail = \"Change default service.\")\n-public class ChangeTelnetHandler implements TelnetHandler {\n-\n-    public static final String SERVICE_KEY = \"telnet.service\";\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        if (message == null || message.length() == 0) {\n-            return \"Please input service name, eg: \\r\\ncd XxxService\\r\\ncd com.xxx.XxxService\";\n-        }\n-        StringBuilder buf = new StringBuilder();\n-        if (\"/\".equals(message) || \"..\".equals(message)) {\n-            String service = (String) channel.getAttribute(SERVICE_KEY);\n-            channel.removeAttribute(SERVICE_KEY);\n-            buf.append(\"Cancelled default service \").append(service).append(\".\");\n-        } else {\n-            boolean found = false;\n-            for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\n-                if (message.equals(exporter.getInvoker().getInterface().getSimpleName())\n-                        || message.equals(exporter.getInvoker().getInterface().getName())\n-                        || message.equals(exporter.getInvoker().getUrl().getPath())) {\n-                    found = true;\n-                    break;\n-                }\n-            }\n-            if (found) {\n-                channel.setAttribute(SERVICE_KEY, message);\n-                buf.append(\"Used the \").append(message).append(\" as default.\\r\\nYou can cancel default service by command: cd /\");\n-            } else {\n-                buf.append(\"No such service \").append(message);\n-            }\n-        }\n-        return buf.toString();\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.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\r\n+\r\n+/**\r\n+ * ChangeServiceTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[service]\", summary = \"Change default service.\", detail = \"Change default service.\")\r\n+public class ChangeTelnetHandler implements TelnetHandler {\r\n+\r\n+    public static final String SERVICE_KEY = \"telnet.service\";\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        if (message == null || message.length() == 0) {\r\n+            return \"Please input service name, eg: \\r\\ncd XxxService\\r\\ncd com.xxx.XxxService\";\r\n+        }\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (\"/\".equals(message) || \"..\".equals(message)) {\r\n+            String service = (String) channel.getAttribute(SERVICE_KEY);\r\n+            channel.removeAttribute(SERVICE_KEY);\r\n+            buf.append(\"Cancelled default service \").append(service).append(\".\");\r\n+        } else {\r\n+            boolean found = false;\r\n+            for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\r\n+                if (message.equals(exporter.getInvoker().getInterface().getSimpleName())\r\n+                        || message.equals(exporter.getInvoker().getInterface().getName())\r\n+                        || message.equals(exporter.getInvoker().getUrl().getPath())) {\r\n+                    found = true;\r\n+                    break;\r\n+                }\r\n+            }\r\n+            if (found) {\r\n+                channel.setAttribute(SERVICE_KEY, message);\r\n+                buf.append(\"Used the \").append(message).append(\" as default.\\r\\nYou can cancel default service by command: cd /\");\r\n+            } else {\r\n+                buf.append(\"No such service \").append(message);\r\n+            }\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/CountTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/CountTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,163 +1,163 @@\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.qos.legacy;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.remoting.telnet.support.TelnetUtils;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcStatus;\n-import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\n-\n-import java.lang.reflect.Method;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * CountTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[service] [method] [times]\", summary = \"Count the service.\", detail = \"Count the service.\")\n-public class CountTelnetHandler implements TelnetHandler {\n-\n-    @Override\n-    public String telnet(final Channel channel, String message) {\n-        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\n-        if ((service == null || service.length() == 0)\n-                && (message == null || message.length() == 0)) {\n-            return \"Please input service name, eg: \\r\\ncount XxxService\\r\\ncount XxxService xxxMethod\\r\\ncount XxxService xxxMethod 10\\r\\nor \\\"cd XxxService\\\" firstly.\";\n-        }\n-        StringBuilder buf = new StringBuilder();\n-        if (service != null && service.length() > 0) {\n-            buf.append(\"Use default service \").append(service).append(\".\\r\\n\");\n-        }\n-        String[] parts = message.split(\"\\\\s+\");\n-        String method;\n-        String times;\n-        if (service == null || service.length() == 0) {\n-            service = parts.length > 0 ? parts[0] : null;\n-            method = parts.length > 1 ? parts[1] : null;\n-        } else {\n-            method = parts.length > 0 ? parts[0] : null;\n-        }\n-        if (StringUtils.isInteger(method)) {\n-            times = method;\n-            method = null;\n-        } else {\n-            times = parts.length > 2 ? parts[2] : \"1\";\n-        }\n-        if (!StringUtils.isInteger(times)) {\n-            return \"Illegal times \" + times + \", must be integer.\";\n-        }\n-        final int t = Integer.parseInt(times);\n-        Invoker<?> invoker = null;\n-        for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\n-            if (service.equals(exporter.getInvoker().getInterface().getSimpleName())\n-                    || service.equals(exporter.getInvoker().getInterface().getName())\n-                    || service.equals(exporter.getInvoker().getUrl().getPath())) {\n-                invoker = exporter.getInvoker();\n-                break;\n-            }\n-        }\n-        if (invoker != null) {\n-            if (t > 0) {\n-                final String mtd = method;\n-                final Invoker<?> inv = invoker;\n-                final String prompt = channel.getUrl().getParameter(\"prompt\", \"telnet\");\n-                Thread thread = new Thread(new Runnable() {\n-                    @Override\n-                    public void run() {\n-                        for (int i = 0; i < t; i++) {\n-                            String result = count(inv, mtd);\n-                            try {\n-                                channel.send(\"\\r\\n\" + result);\n-                            } catch (RemotingException e1) {\n-                                return;\n-                            }\n-                            if (i < t - 1) {\n-                                try {\n-                                    Thread.sleep(1000);\n-                                } catch (InterruptedException e) {\n-                                }\n-                            }\n-                        }\n-                        try {\n-                            channel.send(\"\\r\\n\" + prompt + \"> \");\n-                        } catch (RemotingException e1) {\n-                            return;\n-                        }\n-                    }\n-                }, \"TelnetCount\");\n-                thread.setDaemon(true);\n-                thread.start();\n-            }\n-        } else {\n-            buf.append(\"No such service \").append(service);\n-        }\n-        return buf.toString();\n-    }\n-\n-    private String count(Invoker<?> invoker, String method) {\n-        URL url = invoker.getUrl();\n-        List<List<String>> table = new ArrayList<List<String>>();\n-        List<String> header = new ArrayList<String>();\n-        header.add(\"method\");\n-        header.add(\"total\");\n-        header.add(\"failed\");\n-        header.add(\"active\");\n-        header.add(\"average\");\n-        header.add(\"max\");\n-        if (method == null || method.length() == 0) {\n-            for (Method m : invoker.getInterface().getMethods()) {\n-                RpcStatus count = RpcStatus.getStatus(url, m.getName());\n-                table.add(createRow(m.getName(),count));\n-            }\n-        } else {\n-            boolean found = false;\n-            for (Method m : invoker.getInterface().getMethods()) {\n-                if (m.getName().equals(method)) {\n-                    found = true;\n-                    break;\n-                }\n-            }\n-            if (found) {\n-                RpcStatus count = RpcStatus.getStatus(url, method);\n-                table.add(createRow(method,count));\n-            } else {\n-                return \"No such method \" + method + \" in class \" + invoker.getInterface().getName();\n-            }\n-        }\n-        return TelnetUtils.toTable(header, table);\n-    }\n-\n-    private List<String> createRow(String methodName,RpcStatus count) {\n-        List<String> row = new ArrayList<String>();\n-        row.add(methodName);\n-        row.add(String.valueOf(count.getTotal()));\n-        row.add(String.valueOf(count.getFailed()));\n-        row.add(String.valueOf(count.getActive()));\n-        row.add(count.getSucceededAverageElapsed() + \"ms\");\n-        row.add(count.getSucceededMaxElapsed() + \"ms\");\n-        return row;\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.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.remoting.telnet.support.TelnetUtils;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcStatus;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * CountTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[service] [method] [times]\", summary = \"Count the service.\", detail = \"Count the service.\")\r\n+public class CountTelnetHandler implements TelnetHandler {\r\n+\r\n+    @Override\r\n+    public String telnet(final Channel channel, String message) {\r\n+        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\r\n+        if ((service == null || service.length() == 0)\r\n+                && (message == null || message.length() == 0)) {\r\n+            return \"Please input service name, eg: \\r\\ncount XxxService\\r\\ncount XxxService xxxMethod\\r\\ncount XxxService xxxMethod 10\\r\\nor \\\"cd XxxService\\\" firstly.\";\r\n+        }\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (service != null && service.length() > 0) {\r\n+            buf.append(\"Use default service \").append(service).append(\".\\r\\n\");\r\n+        }\r\n+        String[] parts = message.split(\"\\\\s+\");\r\n+        String method;\r\n+        String times;\r\n+        if (service == null || service.length() == 0) {\r\n+            service = parts.length > 0 ? parts[0] : null;\r\n+            method = parts.length > 1 ? parts[1] : null;\r\n+        } else {\r\n+            method = parts.length > 0 ? parts[0] : null;\r\n+        }\r\n+        if (StringUtils.isInteger(method)) {\r\n+            times = method;\r\n+            method = null;\r\n+        } else {\r\n+            times = parts.length > 2 ? parts[2] : \"1\";\r\n+        }\r\n+        if (!StringUtils.isInteger(times)) {\r\n+            return \"Illegal times \" + times + \", must be integer.\";\r\n+        }\r\n+        final int t = Integer.parseInt(times);\r\n+        Invoker<?> invoker = null;\r\n+        for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\r\n+            if (service.equals(exporter.getInvoker().getInterface().getSimpleName())\r\n+                    || service.equals(exporter.getInvoker().getInterface().getName())\r\n+                    || service.equals(exporter.getInvoker().getUrl().getPath())) {\r\n+                invoker = exporter.getInvoker();\r\n+                break;\r\n+            }\r\n+        }\r\n+        if (invoker != null) {\r\n+            if (t > 0) {\r\n+                final String mtd = method;\r\n+                final Invoker<?> inv = invoker;\r\n+                final String prompt = channel.getUrl().getParameter(\"prompt\", \"telnet\");\r\n+                Thread thread = new Thread(new Runnable() {\r\n+                    @Override\r\n+                    public void run() {\r\n+                        for (int i = 0; i < t; i++) {\r\n+                            String result = count(inv, mtd);\r\n+                            try {\r\n+                                channel.send(\"\\r\\n\" + result);\r\n+                            } catch (RemotingException e1) {\r\n+                                return;\r\n+                            }\r\n+                            if (i < t - 1) {\r\n+                                try {\r\n+                                    Thread.sleep(1000);\r\n+                                } catch (InterruptedException e) {\r\n+                                }\r\n+                            }\r\n+                        }\r\n+                        try {\r\n+                            channel.send(\"\\r\\n\" + prompt + \"> \");\r\n+                        } catch (RemotingException e1) {\r\n+                            return;\r\n+                        }\r\n+                    }\r\n+                }, \"TelnetCount\");\r\n+                thread.setDaemon(true);\r\n+                thread.start();\r\n+            }\r\n+        } else {\r\n+            buf.append(\"No such service \").append(service);\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+    private String count(Invoker<?> invoker, String method) {\r\n+        URL url = invoker.getUrl();\r\n+        List<List<String>> table = new ArrayList<List<String>>();\r\n+        List<String> header = new ArrayList<String>();\r\n+        header.add(\"method\");\r\n+        header.add(\"total\");\r\n+        header.add(\"failed\");\r\n+        header.add(\"active\");\r\n+        header.add(\"average\");\r\n+        header.add(\"max\");\r\n+        if (method == null || method.length() == 0) {\r\n+            for (Method m : invoker.getInterface().getMethods()) {\r\n+                RpcStatus count = RpcStatus.getStatus(url, m.getName());\r\n+                table.add(createRow(m.getName(),count));\r\n+            }\r\n+        } else {\r\n+            boolean found = false;\r\n+            for (Method m : invoker.getInterface().getMethods()) {\r\n+                if (m.getName().equals(method)) {\r\n+                    found = true;\r\n+                    break;\r\n+                }\r\n+            }\r\n+            if (found) {\r\n+                RpcStatus count = RpcStatus.getStatus(url, method);\r\n+                table.add(createRow(method,count));\r\n+            } else {\r\n+                return \"No such method \" + method + \" in class \" + invoker.getInterface().getName();\r\n+            }\r\n+        }\r\n+        return TelnetUtils.toTable(header, table);\r\n+    }\r\n+\r\n+    private List<String> createRow(String methodName,RpcStatus count) {\r\n+        List<String> row = new ArrayList<String>();\r\n+        row.add(methodName);\r\n+        row.add(String.valueOf(count.getTotal()));\r\n+        row.add(String.valueOf(count.getFailed()));\r\n+        row.add(String.valueOf(count.getActive()));\r\n+        row.add(count.getSucceededAverageElapsed() + \"ms\");\r\n+        row.add(count.getSucceededMaxElapsed() + \"ms\");\r\n+        return row;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,46 +1,46 @@\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.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-\n-/**\n- * CurrentServiceTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"\", summary = \"Print working default service.\", detail = \"Print working default service.\")\n-public class CurrentTelnetHandler implements TelnetHandler {\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        if (message.length() > 0) {\n-            return \"Unsupported parameter \" + message + \" for pwd.\";\n-        }\n-        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\n-        StringBuilder buf = new StringBuilder();\n-        if (service == null || service.length() == 0) {\n-            buf.append(\"/\");\n-        } else {\n-            buf.append(service);\n-        }\n-        return buf.toString();\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.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+\r\n+/**\r\n+ * CurrentServiceTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"\", summary = \"Print working default service.\", detail = \"Print working default service.\")\r\n+public class CurrentTelnetHandler implements TelnetHandler {\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        if (message.length() > 0) {\r\n+            return \"Unsupported parameter \" + message + \" for pwd.\";\r\n+        }\r\n+        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (service == null || service.length() == 0) {\r\n+            buf.append(\"/\");\r\n+        } else {\r\n+            buf.append(service);\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,261 +1,261 @@\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.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.MethodDescriptor;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-\n-import com.alibaba.fastjson.JSON;\n-\n-import java.lang.reflect.Method;\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.utils.PojoUtils.realize;\n-\n-/**\n- * InvokeTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[service.]method(args) \", summary = \"Invoke the service method.\",\n-        detail = \"Invoke the service method.\")\n-public class InvokeTelnetHandler implements TelnetHandler {\n-\n-    public static final String INVOKE_MESSAGE_KEY = \"telnet.invoke.method.message\";\n-    public static final String INVOKE_METHOD_LIST_KEY = \"telnet.invoke.method.list\";\n-    public static final String INVOKE_METHOD_PROVIDER_KEY = \"telnet.invoke.method.provider\";\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public String telnet(Channel channel, String message) {\n-        if (StringUtils.isEmpty(message)) {\n-            return \"Please input method name, eg: \\r\\ninvoke xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\\r\\n\" +\n-                    \"invoke XxxService.xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\\r\\n\" +\n-                    \"invoke com.xxx.XxxService.xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\";\n-        }\n-\n-        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\n-\n-        int i = message.indexOf(\"(\");\n-\n-        if (i < 0 || !message.endsWith(\")\")) {\n-            return \"Invalid parameters, format: service.method(args)\";\n-        }\n-\n-        String method = message.substring(0, i).trim();\n-        String args = message.substring(i + 1, message.length() - 1).trim();\n-        i = method.lastIndexOf(\".\");\n-        if (i >= 0) {\n-            service = method.substring(0, i).trim();\n-            method = method.substring(i + 1).trim();\n-        }\n-\n-        List<Object> list;\n-        try {\n-            list = JSON.parseArray(\"[\" + args + \"]\", Object.class);\n-        } catch (Throwable t) {\n-            return \"Invalid json argument, cause: \" + t.getMessage();\n-        }\n-        StringBuilder buf = new StringBuilder();\n-        Method invokeMethod = null;\n-        ProviderModel selectedProvider = null;\n-        if (isInvokedSelectCommand(channel)) {\n-            selectedProvider = (ProviderModel) channel.getAttribute(INVOKE_METHOD_PROVIDER_KEY);\n-            invokeMethod = (Method) channel.getAttribute(SelectTelnetHandler.SELECT_METHOD_KEY);\n-        } else {\n-            for (ProviderModel provider : ApplicationModel.allProviderModels()) {\n-                if (isServiceMatch(service, provider)) {\n-                    selectedProvider = provider;\n-                    List<Method> methodList = findSameSignatureMethod(provider.getAllMethods(), method, list);\n-                    if (CollectionUtils.isNotEmpty(methodList)) {\n-                        if (methodList.size() == 1) {\n-                            invokeMethod = methodList.get(0);\n-                        } else {\n-                            List<Method> matchMethods = findMatchMethods(methodList, list);\n-                            if (CollectionUtils.isNotEmpty(matchMethods)) {\n-                                if (matchMethods.size() == 1) {\n-                                    invokeMethod = matchMethods.get(0);\n-                                } else { //exist overridden method\n-                                    channel.setAttribute(INVOKE_METHOD_PROVIDER_KEY, provider);\n-                                    channel.setAttribute(INVOKE_METHOD_LIST_KEY, matchMethods);\n-                                    channel.setAttribute(INVOKE_MESSAGE_KEY, message);\n-                                    printSelectMessage(buf, matchMethods);\n-                                    return buf.toString();\n-                                }\n-                            }\n-                        }\n-                    }\n-                    break;\n-                }\n-            }\n-        }\n-\n-\n-        if (!StringUtils.isEmpty(service)) {\n-            buf.append(\"Use default service \").append(service).append(\".\");\n-        }\n-        if (selectedProvider != null) {\n-            if (invokeMethod != null) {\n-                try {\n-                    Object[] array = realize(list.toArray(), invokeMethod.getParameterTypes(),\n-                            invokeMethod.getGenericParameterTypes());\n-                    long start = System.currentTimeMillis();\n-                    AppResponse result = new AppResponse();\n-                    try {\n-                        Object o = invokeMethod.invoke(selectedProvider.getServiceInstance(), array);\n-                        result.setValue(o);\n-                    } catch (Throwable t) {\n-                        result.setException(t);\n-                    }\n-                    long end = System.currentTimeMillis();\n-                    buf.append(\"\\r\\nresult: \");\n-                    buf.append(JSON.toJSONString(result.recreate()));\n-                    buf.append(\"\\r\\nelapsed: \");\n-                    buf.append(end - start);\n-                    buf.append(\" ms.\");\n-                } catch (Throwable t) {\n-                    return \"Failed to invoke method \" + invokeMethod.getName() + \", cause: \" + StringUtils.toString(t);\n-                }\n-            } else {\n-                buf.append(\"\\r\\nNo such method \").append(method).append(\" in service \").append(service);\n-            }\n-        } else {\n-            buf.append(\"\\r\\nNo such service \").append(service);\n-        }\n-        return buf.toString();\n-    }\n-\n-\n-    private boolean isServiceMatch(String service, ProviderModel provider) {\n-        return provider.getServiceKey().equalsIgnoreCase(service)\n-                || provider.getServiceInterfaceClass().getSimpleName().equalsIgnoreCase(service)\n-                || provider.getServiceInterfaceClass().getName().equalsIgnoreCase(service)\n-                || StringUtils.isEmpty(service);\n-    }\n-\n-    private List<Method> findSameSignatureMethod(Set<MethodDescriptor> methods, String lookupMethodName, List<Object> args) {\n-        List<Method> sameSignatureMethods = new ArrayList<>();\n-        for (MethodDescriptor model : methods) {\n-            Method method = model.getMethod();\n-            if (method.getName().equals(lookupMethodName) && method.getParameterTypes().length == args.size()) {\n-                sameSignatureMethods.add(method);\n-            }\n-        }\n-        return sameSignatureMethods;\n-    }\n-\n-    private List<Method> findMatchMethods(List<Method> methods, List<Object> args) {\n-        List<Method> matchMethod = new ArrayList<>();\n-        for (Method method : methods) {\n-            if (isMatch(method, args)) {\n-                matchMethod.add(method);\n-            }\n-        }\n-        return matchMethod;\n-    }\n-\n-    private static boolean isMatch(Method method, List<Object> args) {\n-        Class<?>[] types = method.getParameterTypes();\n-        if (types.length != args.size()) {\n-            return false;\n-        }\n-        for (int i = 0; i < types.length; i++) {\n-            Class<?> type = types[i];\n-            Object arg = args.get(i);\n-\n-            if (arg == null) {\n-                if (type.isPrimitive()) {\n-                    return false;\n-                }\n-\n-                // if the type is not primitive, we choose to believe what the invoker want is a null value\n-                continue;\n-            }\n-\n-            if (ReflectUtils.isPrimitive(arg.getClass())) {\n-                // allow string arg to enum type, @see PojoUtils.realize0()\n-                if (arg instanceof String && type.isEnum()) {\n-                    continue;\n-                }\n-\n-                if (!ReflectUtils.isPrimitive(type)) {\n-                    return false;\n-                }\n-\n-                if (!ReflectUtils.isCompatible(type, arg)) {\n-                    return false;\n-                }\n-            } else if (arg instanceof Map) {\n-                String name = (String) ((Map<?, ?>) arg).get(\"class\");\n-                if (StringUtils.isNotEmpty(name)) {\n-                    Class<?> cls = ReflectUtils.forName(name);\n-                    if (!type.isAssignableFrom(cls)) {\n-                        return false;\n-                    }\n-                } else {\n-                    return true;\n-                }\n-            } else if (arg instanceof Collection) {\n-                if (!type.isArray() && !type.isAssignableFrom(arg.getClass())) {\n-                    return false;\n-                }\n-            } else {\n-                if (!type.isAssignableFrom(arg.getClass())) {\n-                    return false;\n-                }\n-            }\n-        }\n-        return true;\n-    }\n-\n-    private void printSelectMessage(StringBuilder buf, List<Method> methods) {\n-        buf.append(\"Methods:\\r\\n\");\n-        for (int i = 0; i < methods.size(); i++) {\n-            Method method = methods.get(i);\n-            buf.append(i + 1).append(\". \").append(method.getName()).append(\"(\");\n-            Class<?>[] parameterTypes = method.getParameterTypes();\n-            for (int n = 0; n < parameterTypes.length; n++) {\n-                buf.append(parameterTypes[n].getSimpleName());\n-                if (n != parameterTypes.length - 1) {\n-                    buf.append(\",\");\n-                }\n-            }\n-            buf.append(\")\\r\\n\");\n-        }\n-        buf.append(\"Please use the select command to select the method you want to invoke. eg: select 1\");\n-    }\n-\n-    private boolean isInvokedSelectCommand(Channel channel) {\n-        if (channel.hasAttribute(SelectTelnetHandler.SELECT_KEY)) {\n-            channel.removeAttribute(SelectTelnetHandler.SELECT_KEY);\n-            return true;\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.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.MethodDescriptor;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.utils.PojoUtils.realize;\r\n+\r\n+/**\r\n+ * InvokeTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[service.]method(args) \", summary = \"Invoke the service method.\",\r\n+        detail = \"Invoke the service method.\")\r\n+public class InvokeTelnetHandler implements TelnetHandler {\r\n+\r\n+    public static final String INVOKE_MESSAGE_KEY = \"telnet.invoke.method.message\";\r\n+    public static final String INVOKE_METHOD_LIST_KEY = \"telnet.invoke.method.list\";\r\n+    public static final String INVOKE_METHOD_PROVIDER_KEY = \"telnet.invoke.method.provider\";\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public String telnet(Channel channel, String message) {\r\n+        if (StringUtils.isEmpty(message)) {\r\n+            return \"Please input method name, eg: \\r\\ninvoke xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\\r\\n\" +\r\n+                    \"invoke XxxService.xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\\r\\n\" +\r\n+                    \"invoke com.xxx.XxxService.xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\";\r\n+        }\r\n+\r\n+        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\r\n+\r\n+        int i = message.indexOf(\"(\");\r\n+\r\n+        if (i < 0 || !message.endsWith(\")\")) {\r\n+            return \"Invalid parameters, format: service.method(args)\";\r\n+        }\r\n+\r\n+        String method = message.substring(0, i).trim();\r\n+        String args = message.substring(i + 1, message.length() - 1).trim();\r\n+        i = method.lastIndexOf(\".\");\r\n+        if (i >= 0) {\r\n+            service = method.substring(0, i).trim();\r\n+            method = method.substring(i + 1).trim();\r\n+        }\r\n+\r\n+        List<Object> list;\r\n+        try {\r\n+            list = JSON.parseArray(\"[\" + args + \"]\", Object.class);\r\n+        } catch (Throwable t) {\r\n+            return \"Invalid json argument, cause: \" + t.getMessage();\r\n+        }\r\n+        StringBuilder buf = new StringBuilder();\r\n+        Method invokeMethod = null;\r\n+        ProviderModel selectedProvider = null;\r\n+        if (isInvokedSelectCommand(channel)) {\r\n+            selectedProvider = (ProviderModel) channel.getAttribute(INVOKE_METHOD_PROVIDER_KEY);\r\n+            invokeMethod = (Method) channel.getAttribute(SelectTelnetHandler.SELECT_METHOD_KEY);\r\n+        } else {\r\n+            for (ProviderModel provider : ApplicationModel.allProviderModels()) {\r\n+                if (isServiceMatch(service, provider)) {\r\n+                    selectedProvider = provider;\r\n+                    List<Method> methodList = findSameSignatureMethod(provider.getAllMethods(), method, list);\r\n+                    if (CollectionUtils.isNotEmpty(methodList)) {\r\n+                        if (methodList.size() == 1) {\r\n+                            invokeMethod = methodList.get(0);\r\n+                        } else {\r\n+                            List<Method> matchMethods = findMatchMethods(methodList, list);\r\n+                            if (CollectionUtils.isNotEmpty(matchMethods)) {\r\n+                                if (matchMethods.size() == 1) {\r\n+                                    invokeMethod = matchMethods.get(0);\r\n+                                } else { //exist overridden method\r\n+                                    channel.setAttribute(INVOKE_METHOD_PROVIDER_KEY, provider);\r\n+                                    channel.setAttribute(INVOKE_METHOD_LIST_KEY, matchMethods);\r\n+                                    channel.setAttribute(INVOKE_MESSAGE_KEY, message);\r\n+                                    printSelectMessage(buf, matchMethods);\r\n+                                    return buf.toString();\r\n+                                }\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                    break;\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+\r\n+        if (!StringUtils.isEmpty(service)) {\r\n+            buf.append(\"Use default service \").append(service).append(\".\");\r\n+        }\r\n+        if (selectedProvider != null) {\r\n+            if (invokeMethod != null) {\r\n+                try {\r\n+                    Object[] array = realize(list.toArray(), invokeMethod.getParameterTypes(),\r\n+                            invokeMethod.getGenericParameterTypes());\r\n+                    long start = System.currentTimeMillis();\r\n+                    AppResponse result = new AppResponse();\r\n+                    try {\r\n+                        Object o = invokeMethod.invoke(selectedProvider.getServiceInstance(), array);\r\n+                        result.setValue(o);\r\n+                    } catch (Throwable t) {\r\n+                        result.setException(t);\r\n+                    }\r\n+                    long end = System.currentTimeMillis();\r\n+                    buf.append(\"\\r\\nresult: \");\r\n+                    buf.append(JSON.toJSONString(result.recreate()));\r\n+                    buf.append(\"\\r\\nelapsed: \");\r\n+                    buf.append(end - start);\r\n+                    buf.append(\" ms.\");\r\n+                } catch (Throwable t) {\r\n+                    return \"Failed to invoke method \" + invokeMethod.getName() + \", cause: \" + StringUtils.toString(t);\r\n+                }\r\n+            } else {\r\n+                buf.append(\"\\r\\nNo such method \").append(method).append(\" in service \").append(service);\r\n+            }\r\n+        } else {\r\n+            buf.append(\"\\r\\nNo such service \").append(service);\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+\r\n+    private boolean isServiceMatch(String service, ProviderModel provider) {\r\n+        return provider.getServiceKey().equalsIgnoreCase(service)\r\n+                || provider.getServiceInterfaceClass().getSimpleName().equalsIgnoreCase(service)\r\n+                || provider.getServiceInterfaceClass().getName().equalsIgnoreCase(service)\r\n+                || StringUtils.isEmpty(service);\r\n+    }\r\n+\r\n+    private List<Method> findSameSignatureMethod(Set<MethodDescriptor> methods, String lookupMethodName, List<Object> args) {\r\n+        List<Method> sameSignatureMethods = new ArrayList<>();\r\n+        for (MethodDescriptor model : methods) {\r\n+            Method method = model.getMethod();\r\n+            if (method.getName().equals(lookupMethodName) && method.getParameterTypes().length == args.size()) {\r\n+                sameSignatureMethods.add(method);\r\n+            }\r\n+        }\r\n+        return sameSignatureMethods;\r\n+    }\r\n+\r\n+    private List<Method> findMatchMethods(List<Method> methods, List<Object> args) {\r\n+        List<Method> matchMethod = new ArrayList<>();\r\n+        for (Method method : methods) {\r\n+            if (isMatch(method, args)) {\r\n+                matchMethod.add(method);\r\n+            }\r\n+        }\r\n+        return matchMethod;\r\n+    }\r\n+\r\n+    private static boolean isMatch(Method method, List<Object> args) {\r\n+        Class<?>[] types = method.getParameterTypes();\r\n+        if (types.length != args.size()) {\r\n+            return false;\r\n+        }\r\n+        for (int i = 0; i < types.length; i++) {\r\n+            Class<?> type = types[i];\r\n+            Object arg = args.get(i);\r\n+\r\n+            if (arg == null) {\r\n+                if (type.isPrimitive()) {\r\n+                    return false;\r\n+                }\r\n+\r\n+                // if the type is not primitive, we choose to believe what the invoker want is a null value\r\n+                continue;\r\n+            }\r\n+\r\n+            if (ReflectUtils.isPrimitive(arg.getClass())) {\r\n+                // allow string arg to enum type, @see PojoUtils.realize0()\r\n+                if (arg instanceof String && type.isEnum()) {\r\n+                    continue;\r\n+                }\r\n+\r\n+                if (!ReflectUtils.isPrimitive(type)) {\r\n+                    return false;\r\n+                }\r\n+\r\n+                if (!ReflectUtils.isCompatible(type, arg)) {\r\n+                    return false;\r\n+                }\r\n+            } else if (arg instanceof Map) {\r\n+                String name = (String) ((Map<?, ?>) arg).get(\"class\");\r\n+                if (StringUtils.isNotEmpty(name)) {\r\n+                    Class<?> cls = ReflectUtils.forName(name);\r\n+                    if (!type.isAssignableFrom(cls)) {\r\n+                        return false;\r\n+                    }\r\n+                } else {\r\n+                    return true;\r\n+                }\r\n+            } else if (arg instanceof Collection) {\r\n+                if (!type.isArray() && !type.isAssignableFrom(arg.getClass())) {\r\n+                    return false;\r\n+                }\r\n+            } else {\r\n+                if (!type.isAssignableFrom(arg.getClass())) {\r\n+                    return false;\r\n+                }\r\n+            }\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    private void printSelectMessage(StringBuilder buf, List<Method> methods) {\r\n+        buf.append(\"Methods:\\r\\n\");\r\n+        for (int i = 0; i < methods.size(); i++) {\r\n+            Method method = methods.get(i);\r\n+            buf.append(i + 1).append(\". \").append(method.getName()).append(\"(\");\r\n+            Class<?>[] parameterTypes = method.getParameterTypes();\r\n+            for (int n = 0; n < parameterTypes.length; n++) {\r\n+                buf.append(parameterTypes[n].getSimpleName());\r\n+                if (n != parameterTypes.length - 1) {\r\n+                    buf.append(\",\");\r\n+                }\r\n+            }\r\n+            buf.append(\")\\r\\n\");\r\n+        }\r\n+        buf.append(\"Please use the select command to select the method you want to invoke. eg: select 1\");\r\n+    }\r\n+\r\n+    private boolean isInvokedSelectCommand(Channel channel) {\r\n+        if (channel.hasAttribute(SelectTelnetHandler.SELECT_KEY)) {\r\n+            channel.removeAttribute(SelectTelnetHandler.SELECT_KEY);\r\n+            return true;\r\n+        }\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/ListTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/ListTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,166 +1,166 @@\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.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.qos.command.util.ServiceCheckUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ConsumerModel;\n-import org.apache.dubbo.rpc.model.MethodDescriptor;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-\n-import java.lang.reflect.Method;\n-import java.util.List;\n-\n-/**\n- * ListTelnetHandler handler list services and its methods details.\n- */\n-@Activate\n-@Help(parameter = \"[-l] [service]\", summary = \"List services and methods.\", detail = \"List services and methods.\")\n-public class ListTelnetHandler implements TelnetHandler {\n-\n-    private ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        StringBuilder buf = new StringBuilder();\n-        String service = null;\n-        boolean detail = false;\n-        if (message.length() > 0) {\n-            String[] parts = message.split(\"\\\\s+\");\n-            for (String part : parts) {\n-                if (\"-l\".equals(part)) {\n-                    detail = true;\n-                } else {\n-                    if (!StringUtils.isEmpty(service)) {\n-                        return \"Invalid parameter \" + part;\n-                    }\n-                    service = part;\n-                }\n-            }\n-        } else {\n-            service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\n-            if (StringUtils.isNotEmpty(service)) {\n-                buf.append(\"Use default service \").append(service).append(\".\\r\\n\");\n-            }\n-        }\n-\n-        if (StringUtils.isEmpty(service)) {\n-            printAllServices(buf, detail);\n-        } else {\n-            printSpecifiedService(service, buf, detail);\n-\n-            if (buf.length() == 0) {\n-                buf.append(\"No such service: \").append(service);\n-            }\n-        }\n-        return buf.toString();\n-    }\n-\n-    private void printAllServices(StringBuilder buf, boolean detail) {\n-        printAllProvidedServices(buf, detail);\n-        printAllReferredServices(buf, detail);\n-    }\n-\n-    private void printAllProvidedServices(StringBuilder buf, boolean detail) {\n-        List<ProviderModel> providerModels = serviceRepository.getExportedServices();\n-        if (!providerModels.isEmpty()) {\n-            buf.append(\"PROVIDER:\\r\\n\");\n-        }\n-\n-        for (ProviderModel provider : providerModels) {\n-            buf.append(provider.getServiceKey());\n-            if (detail) {\n-                buf.append(\" -> \");\n-                buf.append(\" published: \");\n-                buf.append(ServiceCheckUtils.isRegistered(provider) ? \"Y\" : \"N\");\n-            }\n-            buf.append(\"\\r\\n\");\n-        }\n-    }\n-\n-    private void printAllReferredServices(StringBuilder buf, boolean detail) {\n-        List<ConsumerModel> consumerModels = serviceRepository.getReferredServices();\n-        if (!consumerModels.isEmpty()) {\n-            buf.append(\"CONSUMER:\\r\\n\");\n-        }\n-\n-        for (ConsumerModel consumer : consumerModels) {\n-            buf.append(consumer.getServiceKey());\n-            if (detail) {\n-                buf.append(\" -> \");\n-                buf.append(\" addresses: \");\n-                buf.append(ServiceCheckUtils.getConsumerAddressNum(consumer));\n-            }\n-            buf.append(\"\\r\\n\");\n-        }\n-    }\n-\n-    private void printSpecifiedService(String service, StringBuilder buf, boolean detail) {\n-        printSpecifiedProvidedService(service, buf, detail);\n-        printSpecifiedReferredService(service, buf, detail);\n-    }\n-\n-    private void printSpecifiedProvidedService(String service, StringBuilder buf, boolean detail) {\n-        for (ProviderModel provider : ApplicationModel.allProviderModels()) {\n-            if (isProviderMatched(service,provider)) {\n-                buf.append(provider.getServiceKey()).append(\" (as provider):\\r\\n\");\n-                for (MethodDescriptor method : provider.getAllMethods()) {\n-                    printMethod(method.getMethod(), buf, detail);\n-                }\n-            }\n-        }\n-    }\n-\n-    private void printSpecifiedReferredService(String service, StringBuilder buf, boolean detail) {\n-        for (ConsumerModel consumer : ApplicationModel.allConsumerModels()) {\n-            if (isConsumerMatcher(service,consumer)) {\n-                buf.append(consumer.getServiceKey()).append(\" (as consumer):\\r\\n\");\n-                for (MethodDescriptor method : consumer.getAllMethods()) {\n-                    printMethod(method.getMethod(), buf, detail);\n-                }\n-            }\n-        }\n-    }\n-\n-    private void printMethod(Method method, StringBuilder buf, boolean detail) {\n-        if (detail) {\n-            buf.append('\\t').append(ReflectUtils.getName(method));\n-        } else {\n-            buf.append('\\t').append(method.getName());\n-        }\n-        buf.append(\"\\r\\n\");\n-    }\n-\n-    private boolean isProviderMatched(String service, ProviderModel provider) {\n-        return service.equalsIgnoreCase(provider.getServiceKey())\n-                || service.equalsIgnoreCase(provider.getServiceInterfaceClass().getName())\n-                || service.equalsIgnoreCase(provider.getServiceInterfaceClass().getSimpleName());\n-    }\n-\n-    private boolean isConsumerMatcher(String service,ConsumerModel consumer) {\n-        return service.equalsIgnoreCase(consumer.getServiceKey())\n-                || service.equalsIgnoreCase(consumer.getServiceInterfaceClass().getName())\n-                || service.equalsIgnoreCase(consumer.getServiceInterfaceClass().getSimpleName());\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.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.qos.command.util.ServiceCheckUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ConsumerModel;\r\n+import org.apache.dubbo.rpc.model.MethodDescriptor;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * ListTelnetHandler handler list services and its methods details.\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[-l] [service]\", summary = \"List services and methods.\", detail = \"List services and methods.\")\r\n+public class ListTelnetHandler implements TelnetHandler {\r\n+\r\n+    private ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        StringBuilder buf = new StringBuilder();\r\n+        String service = null;\r\n+        boolean detail = false;\r\n+        if (message.length() > 0) {\r\n+            String[] parts = message.split(\"\\\\s+\");\r\n+            for (String part : parts) {\r\n+                if (\"-l\".equals(part)) {\r\n+                    detail = true;\r\n+                } else {\r\n+                    if (!StringUtils.isEmpty(service)) {\r\n+                        return \"Invalid parameter \" + part;\r\n+                    }\r\n+                    service = part;\r\n+                }\r\n+            }\r\n+        } else {\r\n+            service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\r\n+            if (StringUtils.isNotEmpty(service)) {\r\n+                buf.append(\"Use default service \").append(service).append(\".\\r\\n\");\r\n+            }\r\n+        }\r\n+\r\n+        if (StringUtils.isEmpty(service)) {\r\n+            printAllServices(buf, detail);\r\n+        } else {\r\n+            printSpecifiedService(service, buf, detail);\r\n+\r\n+            if (buf.length() == 0) {\r\n+                buf.append(\"No such service: \").append(service);\r\n+            }\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+    private void printAllServices(StringBuilder buf, boolean detail) {\r\n+        printAllProvidedServices(buf, detail);\r\n+        printAllReferredServices(buf, detail);\r\n+    }\r\n+\r\n+    private void printAllProvidedServices(StringBuilder buf, boolean detail) {\r\n+        List<ProviderModel> providerModels = serviceRepository.getExportedServices();\r\n+        if (!providerModels.isEmpty()) {\r\n+            buf.append(\"PROVIDER:\\r\\n\");\r\n+        }\r\n+\r\n+        for (ProviderModel provider : providerModels) {\r\n+            buf.append(provider.getServiceKey());\r\n+            if (detail) {\r\n+                buf.append(\" -> \");\r\n+                buf.append(\" published: \");\r\n+                buf.append(ServiceCheckUtils.isRegistered(provider) ? \"Y\" : \"N\");\r\n+            }\r\n+            buf.append(\"\\r\\n\");\r\n+        }\r\n+    }\r\n+\r\n+    private void printAllReferredServices(StringBuilder buf, boolean detail) {\r\n+        List<ConsumerModel> consumerModels = serviceRepository.getReferredServices();\r\n+        if (!consumerModels.isEmpty()) {\r\n+            buf.append(\"CONSUMER:\\r\\n\");\r\n+        }\r\n+\r\n+        for (ConsumerModel consumer : consumerModels) {\r\n+            buf.append(consumer.getServiceKey());\r\n+            if (detail) {\r\n+                buf.append(\" -> \");\r\n+                buf.append(\" addresses: \");\r\n+                buf.append(ServiceCheckUtils.getConsumerAddressNum(consumer));\r\n+            }\r\n+            buf.append(\"\\r\\n\");\r\n+        }\r\n+    }\r\n+\r\n+    private void printSpecifiedService(String service, StringBuilder buf, boolean detail) {\r\n+        printSpecifiedProvidedService(service, buf, detail);\r\n+        printSpecifiedReferredService(service, buf, detail);\r\n+    }\r\n+\r\n+    private void printSpecifiedProvidedService(String service, StringBuilder buf, boolean detail) {\r\n+        for (ProviderModel provider : ApplicationModel.allProviderModels()) {\r\n+            if (isProviderMatched(service,provider)) {\r\n+                buf.append(provider.getServiceKey()).append(\" (as provider):\\r\\n\");\r\n+                for (MethodDescriptor method : provider.getAllMethods()) {\r\n+                    printMethod(method.getMethod(), buf, detail);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void printSpecifiedReferredService(String service, StringBuilder buf, boolean detail) {\r\n+        for (ConsumerModel consumer : ApplicationModel.allConsumerModels()) {\r\n+            if (isConsumerMatcher(service,consumer)) {\r\n+                buf.append(consumer.getServiceKey()).append(\" (as consumer):\\r\\n\");\r\n+                for (MethodDescriptor method : consumer.getAllMethods()) {\r\n+                    printMethod(method.getMethod(), buf, detail);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void printMethod(Method method, StringBuilder buf, boolean detail) {\r\n+        if (detail) {\r\n+            buf.append('\\t').append(ReflectUtils.getName(method));\r\n+        } else {\r\n+            buf.append('\\t').append(method.getName());\r\n+        }\r\n+        buf.append(\"\\r\\n\");\r\n+    }\r\n+\r\n+    private boolean isProviderMatched(String service, ProviderModel provider) {\r\n+        return service.equalsIgnoreCase(provider.getServiceKey())\r\n+                || service.equalsIgnoreCase(provider.getServiceInterfaceClass().getName())\r\n+                || service.equalsIgnoreCase(provider.getServiceInterfaceClass().getSimpleName());\r\n+    }\r\n+\r\n+    private boolean isConsumerMatcher(String service,ConsumerModel consumer) {\r\n+        return service.equalsIgnoreCase(consumer.getServiceKey())\r\n+                || service.equalsIgnoreCase(consumer.getServiceInterfaceClass().getName())\r\n+                || service.equalsIgnoreCase(consumer.getServiceInterfaceClass().getSimpleName());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/LogTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/LogTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,91 +1,91 @@\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.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Level;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-\n-import java.io.File;\n-import java.io.FileInputStream;\n-import java.nio.ByteBuffer;\n-import java.nio.channels.FileChannel;\n-import java.text.SimpleDateFormat;\n-import java.util.Date;\n-\n-/**\n- * LogTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"level\", summary = \"Change log level or show log \", detail = \"Change log level or show log\")\n-public class LogTelnetHandler implements TelnetHandler {\n-\n-    public static final String SERVICE_KEY = \"telnet.log\";\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        long size;\n-        File file = LoggerFactory.getFile();\n-        StringBuilder buf = new StringBuilder();\n-        if (message == null || message.trim().length() == 0) {\n-            buf.append(\"EXAMPLE: log error / log 100\");\n-        } else {\n-            String[] str = message.split(\" \");\n-            if (!StringUtils.isInteger(str[0])) {\n-                LoggerFactory.setLevel(Level.valueOf(message.toUpperCase()));\n-            } else {\n-                int showLogLength = Integer.parseInt(str[0]);\n-\n-                if (file != null && file.exists()) {\n-                    try(FileInputStream fis = new FileInputStream(file)) {\n-                        FileChannel filechannel = fis.getChannel();\n-                        size = filechannel.size();\n-                        ByteBuffer bb;\n-                        if (size <= showLogLength) {\n-                            bb = ByteBuffer.allocate((int) size);\n-                            filechannel.read(bb, 0);\n-                        } else {\n-                            int pos = (int) (size - showLogLength);\n-                            bb = ByteBuffer.allocate(showLogLength);\n-                            filechannel.read(bb, pos);\n-                        }\n-                        bb.flip();\n-                        String content = new String(bb.array()).replace(\"<\", \"&lt;\")\n-                                .replace(\">\", \"&gt;\").replace(\"\\n\", \"<br/><br/>\");\n-                        buf.append(\"\\r\\ncontent:\").append(content);\n-\n-                        buf.append(\"\\r\\nmodified:\").append(new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\n-                                .format(new Date(file.lastModified())));\n-                        buf.append(\"\\r\\nsize:\").append(size).append(\"\\r\\n\");\n-                    } catch (Exception e) {\n-                        buf.append(e.getMessage());\n-                    }\n-                } else {\n-                    buf.append(\"\\r\\nMESSAGE: log file not exists or log appender is console .\");\n-                }\n-            }\n-        }\n-        buf.append(\"\\r\\nCURRENT LOG LEVEL:\").append(LoggerFactory.getLevel()).append(\"\\r\\nCURRENT LOG APPENDER:\")\n-                .append(file == null ? \"console\" : file.getAbsolutePath());\n-        return buf.toString();\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.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Level;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+\r\n+import java.io.File;\r\n+import java.io.FileInputStream;\r\n+import java.nio.ByteBuffer;\r\n+import java.nio.channels.FileChannel;\r\n+import java.text.SimpleDateFormat;\r\n+import java.util.Date;\r\n+\r\n+/**\r\n+ * LogTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"level\", summary = \"Change log level or show log \", detail = \"Change log level or show log\")\r\n+public class LogTelnetHandler implements TelnetHandler {\r\n+\r\n+    public static final String SERVICE_KEY = \"telnet.log\";\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        long size;\r\n+        File file = LoggerFactory.getFile();\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (message == null || message.trim().length() == 0) {\r\n+            buf.append(\"EXAMPLE: log error / log 100\");\r\n+        } else {\r\n+            String[] str = message.split(\" \");\r\n+            if (!StringUtils.isInteger(str[0])) {\r\n+                LoggerFactory.setLevel(Level.valueOf(message.toUpperCase()));\r\n+            } else {\r\n+                int showLogLength = Integer.parseInt(str[0]);\r\n+\r\n+                if (file != null && file.exists()) {\r\n+                    try(FileInputStream fis = new FileInputStream(file)) {\r\n+                        FileChannel filechannel = fis.getChannel();\r\n+                        size = filechannel.size();\r\n+                        ByteBuffer bb;\r\n+                        if (size <= showLogLength) {\r\n+                            bb = ByteBuffer.allocate((int) size);\r\n+                            filechannel.read(bb, 0);\r\n+                        } else {\r\n+                            int pos = (int) (size - showLogLength);\r\n+                            bb = ByteBuffer.allocate(showLogLength);\r\n+                            filechannel.read(bb, pos);\r\n+                        }\r\n+                        bb.flip();\r\n+                        String content = new String(bb.array()).replace(\"<\", \"&lt;\")\r\n+                                .replace(\">\", \"&gt;\").replace(\"\\n\", \"<br/><br/>\");\r\n+                        buf.append(\"\\r\\ncontent:\").append(content);\r\n+\r\n+                        buf.append(\"\\r\\nmodified:\").append(new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\r\n+                                .format(new Date(file.lastModified())));\r\n+                        buf.append(\"\\r\\nsize:\").append(size).append(\"\\r\\n\");\r\n+                    } catch (Exception e) {\r\n+                        buf.append(e.getMessage());\r\n+                    }\r\n+                } else {\r\n+                    buf.append(\"\\r\\nMESSAGE: log file not exists or log appender is console .\");\r\n+                }\r\n+            }\r\n+        }\r\n+        buf.append(\"\\r\\nCURRENT LOG LEVEL:\").append(LoggerFactory.getLevel()).append(\"\\r\\nCURRENT LOG APPENDER:\")\r\n+                .append(file == null ? \"console\" : file.getAbsolutePath());\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/PortTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/PortTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,96 +1,96 @@\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.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.exchange.ExchangeChannel;\n-import org.apache.dubbo.remoting.exchange.ExchangeServer;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\n-\n-import java.util.Collection;\n-\n-/**\n- * ServerTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[-l] [port]\", summary = \"Print server ports and connections.\", detail = \"Print server ports and connections.\")\n-public class PortTelnetHandler implements TelnetHandler {\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        StringBuilder buf = new StringBuilder();\n-        String port = null;\n-        boolean detail = false;\n-        if (message.length() > 0) {\n-            String[] parts = message.split(\"\\\\s+\");\n-            for (String part : parts) {\n-                if (\"-l\".equals(part)) {\n-                    detail = true;\n-                } else {\n-                    if (!StringUtils.isInteger(part)) {\n-                        return \"Illegal port \" + part + \", must be integer.\";\n-                    }\n-                    port = part;\n-                }\n-            }\n-        }\n-        if (port == null || port.length() == 0) {\n-            for (ProtocolServer server : DubboProtocol.getDubboProtocol().getServers()) {\n-                if (buf.length() > 0) {\n-                    buf.append(\"\\r\\n\");\n-                }\n-                if (detail) {\n-                    buf.append(server.getUrl().getProtocol()).append(\"://\").append(server.getUrl().getAddress());\n-                } else {\n-                    buf.append(server.getUrl().getPort());\n-                }\n-            }\n-        } else {\n-            int p = Integer.parseInt(port);\n-            ProtocolServer protocolServer = null;\n-            for (ProtocolServer s : DubboProtocol.getDubboProtocol().getServers()) {\n-                if (p == s.getUrl().getPort()) {\n-                    protocolServer = s;\n-                    break;\n-                }\n-            }\n-            if (protocolServer != null) {\n-                ExchangeServer server = (ExchangeServer) protocolServer.getRemotingServer();\n-                Collection<ExchangeChannel> channels = server.getExchangeChannels();\n-                for (ExchangeChannel c : channels) {\n-                    if (buf.length() > 0) {\n-                        buf.append(\"\\r\\n\");\n-                    }\n-                    if (detail) {\n-                        buf.append(c.getRemoteAddress()).append(\" -> \").append(c.getLocalAddress());\n-                    } else {\n-                        buf.append(c.getRemoteAddress());\n-                    }\n-                }\n-            } else {\n-                buf.append(\"No such port \").append(port);\n-            }\n-        }\n-        return buf.toString();\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.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeChannel;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeServer;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\r\n+\r\n+import java.util.Collection;\r\n+\r\n+/**\r\n+ * ServerTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[-l] [port]\", summary = \"Print server ports and connections.\", detail = \"Print server ports and connections.\")\r\n+public class PortTelnetHandler implements TelnetHandler {\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        StringBuilder buf = new StringBuilder();\r\n+        String port = null;\r\n+        boolean detail = false;\r\n+        if (message.length() > 0) {\r\n+            String[] parts = message.split(\"\\\\s+\");\r\n+            for (String part : parts) {\r\n+                if (\"-l\".equals(part)) {\r\n+                    detail = true;\r\n+                } else {\r\n+                    if (!StringUtils.isInteger(part)) {\r\n+                        return \"Illegal port \" + part + \", must be integer.\";\r\n+                    }\r\n+                    port = part;\r\n+                }\r\n+            }\r\n+        }\r\n+        if (port == null || port.length() == 0) {\r\n+            for (ProtocolServer server : DubboProtocol.getDubboProtocol().getServers()) {\r\n+                if (buf.length() > 0) {\r\n+                    buf.append(\"\\r\\n\");\r\n+                }\r\n+                if (detail) {\r\n+                    buf.append(server.getUrl().getProtocol()).append(\"://\").append(server.getUrl().getAddress());\r\n+                } else {\r\n+                    buf.append(server.getUrl().getPort());\r\n+                }\r\n+            }\r\n+        } else {\r\n+            int p = Integer.parseInt(port);\r\n+            ProtocolServer protocolServer = null;\r\n+            for (ProtocolServer s : DubboProtocol.getDubboProtocol().getServers()) {\r\n+                if (p == s.getUrl().getPort()) {\r\n+                    protocolServer = s;\r\n+                    break;\r\n+                }\r\n+            }\r\n+            if (protocolServer != null) {\r\n+                ExchangeServer server = (ExchangeServer) protocolServer.getRemotingServer();\r\n+                Collection<ExchangeChannel> channels = server.getExchangeChannels();\r\n+                for (ExchangeChannel c : channels) {\r\n+                    if (buf.length() > 0) {\r\n+                        buf.append(\"\\r\\n\");\r\n+                    }\r\n+                    if (detail) {\r\n+                        buf.append(c.getRemoteAddress()).append(\" -> \").append(c.getLocalAddress());\r\n+                    } else {\r\n+                        buf.append(c.getRemoteAddress());\r\n+                    }\r\n+                }\r\n+            } else {\r\n+                buf.append(\"No such port \").append(port);\r\n+            }\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/SelectTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/SelectTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,60 +1,60 @@\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.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-\n-import java.lang.reflect.Method;\n-import java.util.List;\n-\n-/**\n- * SelectTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[index]\", summary = \"Select the index of the method you want to invoke.\",\n-        detail = \"Select the index of the method you want to invoke.\")\n-public class SelectTelnetHandler implements TelnetHandler {\n-    public static final String SELECT_METHOD_KEY = \"telnet.select.method\";\n-    public static final String SELECT_KEY = \"telnet.select\";\n-\n-    private InvokeTelnetHandler invokeTelnetHandler = new InvokeTelnetHandler();\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public String telnet(Channel channel, String message) {\n-        if (message == null || message.length() == 0) {\n-            return \"Please input the index of the method you want to invoke, eg: \\r\\n select 1\";\n-        }\n-        List<Method> methodList = (List<Method>) channel.getAttribute(InvokeTelnetHandler.INVOKE_METHOD_LIST_KEY);\n-        if (CollectionUtils.isEmpty(methodList)) {\n-            return \"Please use the invoke command first.\";\n-        }\n-        if (!StringUtils.isInteger(message) || Integer.parseInt(message) < 1 || Integer.parseInt(message) > methodList.size()) {\n-            return \"Illegal index ,please input select 1~\" + methodList.size();\n-        }\n-        Method method = methodList.get(Integer.parseInt(message) - 1);\n-        channel.setAttribute(SELECT_METHOD_KEY, method);\n-        channel.setAttribute(SELECT_KEY, Boolean.TRUE);\n-        String invokeMessage = (String) channel.getAttribute(InvokeTelnetHandler.INVOKE_MESSAGE_KEY);\n-        return invokeTelnetHandler.telnet(channel, invokeMessage);\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.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * SelectTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[index]\", summary = \"Select the index of the method you want to invoke.\",\r\n+        detail = \"Select the index of the method you want to invoke.\")\r\n+public class SelectTelnetHandler implements TelnetHandler {\r\n+    public static final String SELECT_METHOD_KEY = \"telnet.select.method\";\r\n+    public static final String SELECT_KEY = \"telnet.select\";\r\n+\r\n+    private InvokeTelnetHandler invokeTelnetHandler = new InvokeTelnetHandler();\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public String telnet(Channel channel, String message) {\r\n+        if (message == null || message.length() == 0) {\r\n+            return \"Please input the index of the method you want to invoke, eg: \\r\\n select 1\";\r\n+        }\r\n+        List<Method> methodList = (List<Method>) channel.getAttribute(InvokeTelnetHandler.INVOKE_METHOD_LIST_KEY);\r\n+        if (CollectionUtils.isEmpty(methodList)) {\r\n+            return \"Please use the invoke command first.\";\r\n+        }\r\n+        if (!StringUtils.isInteger(message) || Integer.parseInt(message) < 1 || Integer.parseInt(message) > methodList.size()) {\r\n+            return \"Illegal index ,please input select 1~\" + methodList.size();\r\n+        }\r\n+        Method method = methodList.get(Integer.parseInt(message) - 1);\r\n+        channel.setAttribute(SELECT_METHOD_KEY, method);\r\n+        channel.setAttribute(SELECT_KEY, Boolean.TRUE);\r\n+        String invokeMessage = (String) channel.getAttribute(InvokeTelnetHandler.INVOKE_MESSAGE_KEY);\r\n+        return invokeTelnetHandler.telnet(channel, invokeMessage);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/ShutdownTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/ShutdownTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,63 +1,63 @@\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.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.DubboShutdownHook;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-\n-/**\n- * ShutdownTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[-t <milliseconds>]\", summary = \"Shutdown Dubbo Application.\", detail = \"Shutdown Dubbo Application.\")\n-public class ShutdownTelnetHandler implements TelnetHandler {\n-    @Override\n-    public String telnet(Channel channel, String message) throws RemotingException {\n-\n-        int sleepMilliseconds = 0;\n-        if (StringUtils.isNotEmpty(message)) {\n-            String[] parameters = message.split(\"\\\\s+\");\n-            if (parameters.length == 2 && \"-t\".equals(parameters[0]) && StringUtils.isInteger(parameters[1])) {\n-                sleepMilliseconds = Integer.parseInt(parameters[1]);\n-            } else {\n-                return \"Invalid parameter,please input like shutdown -t 10000\";\n-            }\n-        }\n-        long start = System.currentTimeMillis();\n-        if (sleepMilliseconds > 0) {\n-            try {\n-                Thread.sleep(sleepMilliseconds);\n-            } catch (InterruptedException e) {\n-                return \"Failed to invoke shutdown command, cause: \" + e.getMessage();\n-            }\n-        }\n-        StringBuilder buf = new StringBuilder();\n-        DubboShutdownHook.getDubboShutdownHook().unregister();\n-        DubboShutdownHook.getDubboShutdownHook().doDestroy();\n-        long end = System.currentTimeMillis();\n-        buf.append(\"Application has shutdown successfully\");\n-        buf.append(\"\\r\\nelapsed: \");\n-        buf.append(end - start);\n-        buf.append(\" ms.\");\n-        return buf.toString();\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.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.DubboShutdownHook;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+\r\n+/**\r\n+ * ShutdownTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[-t <milliseconds>]\", summary = \"Shutdown Dubbo Application.\", detail = \"Shutdown Dubbo Application.\")\r\n+public class ShutdownTelnetHandler implements TelnetHandler {\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) throws RemotingException {\r\n+\r\n+        int sleepMilliseconds = 0;\r\n+        if (StringUtils.isNotEmpty(message)) {\r\n+            String[] parameters = message.split(\"\\\\s+\");\r\n+            if (parameters.length == 2 && \"-t\".equals(parameters[0]) && StringUtils.isInteger(parameters[1])) {\r\n+                sleepMilliseconds = Integer.parseInt(parameters[1]);\r\n+            } else {\r\n+                return \"Invalid parameter,please input like shutdown -t 10000\";\r\n+            }\r\n+        }\r\n+        long start = System.currentTimeMillis();\r\n+        if (sleepMilliseconds > 0) {\r\n+            try {\r\n+                Thread.sleep(sleepMilliseconds);\r\n+            } catch (InterruptedException e) {\r\n+                return \"Failed to invoke shutdown command, cause: \" + e.getMessage();\r\n+            }\r\n+        }\r\n+        StringBuilder buf = new StringBuilder();\r\n+        DubboShutdownHook.getDubboShutdownHook().unregister();\r\n+        DubboShutdownHook.getDubboShutdownHook().doDestroy();\r\n+        long end = System.currentTimeMillis();\r\n+        buf.append(\"Application has shutdown successfully\");\r\n+        buf.append(\"\\r\\nelapsed: \");\r\n+        buf.append(end - start);\r\n+        buf.append(\" ms.\");\r\n+        return buf.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/TraceTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/TraceTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,93 +1,93 @@\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.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\n-import org.apache.dubbo.rpc.protocol.dubbo.filter.TraceFilter;\n-\n-import java.lang.reflect.Method;\n-\n-/**\n- * TraceTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[service] [method] [times]\", summary = \"Trace the service.\", detail = \"Trace the service.\")\n-public class TraceTelnetHandler implements TelnetHandler {\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\n-        if ((service == null || service.length() == 0)\n-                && (message == null || message.length() == 0)) {\n-            return \"Please input service name, eg: \\r\\ntrace XxxService\\r\\ntrace XxxService xxxMethod\\r\\ntrace XxxService xxxMethod 10\\r\\nor \\\"cd XxxService\\\" firstly.\";\n-        }\n-        String[] parts = message.split(\"\\\\s+\");\n-        String method;\n-        String times;\n-        // message like : XxxService , XxxService 10 , XxxService xxxMethod , XxxService xxxMethod 10\n-        if (StringUtils.isEmpty(service)) {\n-            service = parts.length > 0 ? parts[0] : null;\n-            method = parts.length > 1 ? parts[1] : null;\n-            times = parts.length > 2 ? parts[2] : \"1\";\n-        } else {  //message like : xxxMethod, xxxMethod 10\n-            method = parts.length > 0 ? parts[0] : null;\n-            times = parts.length > 1 ? parts[1] : \"1\";\n-        }\n-        if (StringUtils.isInteger(method)) {\n-            times = method;\n-            method = null;\n-        }\n-        if (!StringUtils.isInteger(times)) {\n-            return \"Illegal times \" + times + \", must be integer.\";\n-        }\n-        Invoker<?> invoker = null;\n-        for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\n-            if (service.equals(exporter.getInvoker().getInterface().getSimpleName())\n-                    || service.equals(exporter.getInvoker().getInterface().getName())\n-                    || service.equals(exporter.getInvoker().getUrl().getPath())) {\n-                invoker = exporter.getInvoker();\n-                break;\n-            }\n-        }\n-        if (invoker != null) {\n-            if (method != null && method.length() > 0) {\n-                boolean found = false;\n-                for (Method m : invoker.getInterface().getMethods()) {\n-                    if (m.getName().equals(method)) {\n-                        found = true;\n-                        break;\n-                    }\n-                }\n-                if (!found) {\n-                    return \"No such method \" + method + \" in class \" + invoker.getInterface().getName();\n-                }\n-            }\n-            TraceFilter.addTracer(invoker.getInterface(), method, channel, Integer.parseInt(times));\n-        } else {\n-            return \"No such service \" + service;\n-        }\n-        return null;\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.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.filter.TraceFilter;\r\n+\r\n+import java.lang.reflect.Method;\r\n+\r\n+/**\r\n+ * TraceTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[service] [method] [times]\", summary = \"Trace the service.\", detail = \"Trace the service.\")\r\n+public class TraceTelnetHandler implements TelnetHandler {\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\r\n+        if ((service == null || service.length() == 0)\r\n+                && (message == null || message.length() == 0)) {\r\n+            return \"Please input service name, eg: \\r\\ntrace XxxService\\r\\ntrace XxxService xxxMethod\\r\\ntrace XxxService xxxMethod 10\\r\\nor \\\"cd XxxService\\\" firstly.\";\r\n+        }\r\n+        String[] parts = message.split(\"\\\\s+\");\r\n+        String method;\r\n+        String times;\r\n+        // message like : XxxService , XxxService 10 , XxxService xxxMethod , XxxService xxxMethod 10\r\n+        if (StringUtils.isEmpty(service)) {\r\n+            service = parts.length > 0 ? parts[0] : null;\r\n+            method = parts.length > 1 ? parts[1] : null;\r\n+            times = parts.length > 2 ? parts[2] : \"1\";\r\n+        } else {  //message like : xxxMethod, xxxMethod 10\r\n+            method = parts.length > 0 ? parts[0] : null;\r\n+            times = parts.length > 1 ? parts[1] : \"1\";\r\n+        }\r\n+        if (StringUtils.isInteger(method)) {\r\n+            times = method;\r\n+            method = null;\r\n+        }\r\n+        if (!StringUtils.isInteger(times)) {\r\n+            return \"Illegal times \" + times + \", must be integer.\";\r\n+        }\r\n+        Invoker<?> invoker = null;\r\n+        for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\r\n+            if (service.equals(exporter.getInvoker().getInterface().getSimpleName())\r\n+                    || service.equals(exporter.getInvoker().getInterface().getName())\r\n+                    || service.equals(exporter.getInvoker().getUrl().getPath())) {\r\n+                invoker = exporter.getInvoker();\r\n+                break;\r\n+            }\r\n+        }\r\n+        if (invoker != null) {\r\n+            if (method != null && method.length() > 0) {\r\n+                boolean found = false;\r\n+                for (Method m : invoker.getInterface().getMethods()) {\r\n+                    if (m.getName().equals(method)) {\r\n+                        found = true;\r\n+                        break;\r\n+                    }\r\n+                }\r\n+                if (!found) {\r\n+                    return \"No such method \" + method + \" in class \" + invoker.getInterface().getName();\r\n+                }\r\n+            }\r\n+            TraceFilter.addTracer(invoker.getInterface(), method, channel, Integer.parseInt(times));\r\n+        } else {\r\n+            return \"No such service \" + service;\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/protocol/QosProtocolWrapper.java", "source2": "org/apache/dubbo/qos/protocol/QosProtocolWrapper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,123 +1,123 @@\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.qos.protocol;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.UrlUtils;\n-import org.apache.dubbo.qos.common.QosConstants;\n-import org.apache.dubbo.qos.server.Server;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import java.util.List;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT;\n-\n-\n-public class QosProtocolWrapper implements Protocol {\n-\n-    private final Logger logger = LoggerFactory.getLogger(QosProtocolWrapper.class);\n-\n-    private static AtomicBoolean hasStarted = new AtomicBoolean(false);\n-\n-    private Protocol protocol;\n-\n-    public QosProtocolWrapper(Protocol protocol) {\n-        if (protocol == null) {\n-            throw new IllegalArgumentException(\"protocol == null\");\n-        }\n-        this.protocol = protocol;\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return protocol.getDefaultPort();\n-    }\n-\n-    @Override\n-    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {\n-        if (UrlUtils.isRegistry(invoker.getUrl())) {\n-            startQosServer(invoker.getUrl());\n-            return protocol.export(invoker);\n-        }\n-        return protocol.export(invoker);\n-    }\n-\n-    @Override\n-    public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {\n-        if (UrlUtils.isRegistry(url)) {\n-            startQosServer(url);\n-            return protocol.refer(type, url);\n-        }\n-        return protocol.refer(type, url);\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        protocol.destroy();\n-        stopServer();\n-    }\n-\n-    @Override\n-    public List<ProtocolServer> getServers() {\n-        return protocol.getServers();\n-    }\n-\n-    private void startQosServer(URL url) {\n-        try {\n-            if (!hasStarted.compareAndSet(false, true)) {\n-                return;\n-            }\n-\n-            boolean qosEnable = url.getParameter(QOS_ENABLE, true);\n-            if (!qosEnable) {\n-                logger.info(\"qos won't be started because it is disabled. \" +\n-                        \"Please check dubbo.application.qos.enable is configured either in system property, \" +\n-                        \"dubbo.properties or XML/spring-boot configuration.\");\n-                return;\n-            }\n-\n-            String host = url.getParameter(QOS_HOST);\n-            int port = url.getParameter(QOS_PORT, QosConstants.DEFAULT_PORT);\n-            boolean acceptForeignIp = Boolean.parseBoolean(url.getParameter(ACCEPT_FOREIGN_IP, \"false\"));\n-            Server server = Server.getInstance();\n-            server.setHost(host);\n-            server.setPort(port);\n-            server.setAcceptForeignIp(acceptForeignIp);\n-            server.start();\n-\n-        } catch (Throwable throwable) {\n-            logger.warn(\"Fail to start qos server: \", throwable);\n-        }\n-    }\n-\n-    /*package*/ void stopServer() {\n-        if (hasStarted.compareAndSet(true, false)) {\n-            Server server = Server.getInstance();\n-            server.stop();\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.qos.protocol;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.UrlUtils;\r\n+import org.apache.dubbo.qos.common.QosConstants;\r\n+import org.apache.dubbo.qos.server.Server;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT;\r\n+\r\n+\r\n+public class QosProtocolWrapper implements Protocol {\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(QosProtocolWrapper.class);\r\n+\r\n+    private static AtomicBoolean hasStarted = new AtomicBoolean(false);\r\n+\r\n+    private Protocol protocol;\r\n+\r\n+    public QosProtocolWrapper(Protocol protocol) {\r\n+        if (protocol == null) {\r\n+            throw new IllegalArgumentException(\"protocol == null\");\r\n+        }\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return protocol.getDefaultPort();\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {\r\n+        if (UrlUtils.isRegistry(invoker.getUrl())) {\r\n+            startQosServer(invoker.getUrl());\r\n+            return protocol.export(invoker);\r\n+        }\r\n+        return protocol.export(invoker);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {\r\n+        if (UrlUtils.isRegistry(url)) {\r\n+            startQosServer(url);\r\n+            return protocol.refer(type, url);\r\n+        }\r\n+        return protocol.refer(type, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        protocol.destroy();\r\n+        stopServer();\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ProtocolServer> getServers() {\r\n+        return protocol.getServers();\r\n+    }\r\n+\r\n+    private void startQosServer(URL url) {\r\n+        try {\r\n+            if (!hasStarted.compareAndSet(false, true)) {\r\n+                return;\r\n+            }\r\n+\r\n+            boolean qosEnable = url.getParameter(QOS_ENABLE, true);\r\n+            if (!qosEnable) {\r\n+                logger.info(\"qos won't be started because it is disabled. \" +\r\n+                        \"Please check dubbo.application.qos.enable is configured either in system property, \" +\r\n+                        \"dubbo.properties or XML/spring-boot configuration.\");\r\n+                return;\r\n+            }\r\n+\r\n+            String host = url.getParameter(QOS_HOST);\r\n+            int port = url.getParameter(QOS_PORT, QosConstants.DEFAULT_PORT);\r\n+            boolean acceptForeignIp = Boolean.parseBoolean(url.getParameter(ACCEPT_FOREIGN_IP, \"false\"));\r\n+            Server server = Server.getInstance();\r\n+            server.setHost(host);\r\n+            server.setPort(port);\r\n+            server.setAcceptForeignIp(acceptForeignIp);\r\n+            server.start();\r\n+\r\n+        } catch (Throwable throwable) {\r\n+            logger.warn(\"Fail to start qos server: \", throwable);\r\n+        }\r\n+    }\r\n+\r\n+    /*package*/ void stopServer() {\r\n+        if (hasStarted.compareAndSet(true, false)) {\r\n+            Server server = Server.getInstance();\r\n+            server.stop();\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/server/DubboLogo.java", "source2": "org/apache/dubbo/qos/server/DubboLogo.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,25 +1,25 @@\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.qos.server;\n-\n-public class DubboLogo {\n-    public static final String DUBBO =\n-                    \"   ___   __  __ ___   ___   ____     \" + System.lineSeparator() +\n-                    \"  / _ \\\\ / / / // _ ) / _ ) / __ \\\\  \" + System.lineSeparator() +\n-                    \" / // // /_/ // _  |/ _  |/ /_/ /    \" + System.lineSeparator() +\n-                    \"/____/ \\\\____//____//____/ \\\\____/   \" + System.lineSeparator();\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.qos.server;\r\n+\r\n+public class DubboLogo {\r\n+    public static final String DUBBO =\r\n+                    \"   ___   __  __ ___   ___   ____     \" + System.lineSeparator() +\r\n+                    \"  / _ \\\\ / / / // _ ) / _ ) / __ \\\\  \" + System.lineSeparator() +\r\n+                    \" / // // /_/ // _  |/ _  |/ /_/ /    \" + System.lineSeparator() +\r\n+                    \"/____/ \\\\____//____//____/ \\\\____/   \" + System.lineSeparator();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/server/Server.java", "source2": "org/apache/dubbo/qos/server/Server.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,156 +1,156 @@\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.qos.server;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.qos.server.handler.QosProcessHandler;\n-\n-import io.netty.bootstrap.ServerBootstrap;\n-import io.netty.channel.Channel;\n-import io.netty.channel.ChannelInitializer;\n-import io.netty.channel.ChannelOption;\n-import io.netty.channel.EventLoopGroup;\n-import io.netty.channel.nio.NioEventLoopGroup;\n-import io.netty.channel.socket.nio.NioServerSocketChannel;\n-import io.netty.util.concurrent.DefaultThreadFactory;\n-\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-/**\n- * A server serves for both telnet access and http access\n- * <ul>\n- * <li>static initialize server</li>\n- * <li>start server and bind port</li>\n- * <li>close server</li>\n- * </ul>\n- */\n-public class Server {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(Server.class);\n-    private static final Server INSTANCE = new Server();\n-\n-    public static final Server getInstance() {\n-        return INSTANCE;\n-    }\n-\n-    private String host;\n-\n-    private int port;\n-\n-    private boolean acceptForeignIp = true;\n-\n-    private EventLoopGroup boss;\n-\n-    private EventLoopGroup worker;\n-\n-    private Server() {\n-        this.welcome = DubboLogo.DUBBO;\n-    }\n-\n-    private String welcome;\n-\n-    private AtomicBoolean started = new AtomicBoolean();\n-\n-    /**\n-     * welcome message\n-     */\n-    public void setWelcome(String welcome) {\n-        this.welcome = welcome;\n-    }\n-\n-    public int getPort() {\n-        return port;\n-    }\n-\n-    /**\n-     * start server, bind port\n-     */\n-    public void start() throws Throwable {\n-        if (!started.compareAndSet(false, true)) {\n-            return;\n-        }\n-        boss = new NioEventLoopGroup(1, new DefaultThreadFactory(\"qos-boss\", true));\n-        worker = new NioEventLoopGroup(0, new DefaultThreadFactory(\"qos-worker\", true));\n-        ServerBootstrap serverBootstrap = new ServerBootstrap();\n-        serverBootstrap.group(boss, worker);\n-        serverBootstrap.channel(NioServerSocketChannel.class);\n-        serverBootstrap.option(ChannelOption.SO_REUSEADDR, true);\n-        serverBootstrap.childOption(ChannelOption.TCP_NODELAY, true);\n-        serverBootstrap.childHandler(new ChannelInitializer<Channel>() {\n-\n-            @Override\n-            protected void initChannel(Channel ch) throws Exception {\n-                ch.pipeline().addLast(new QosProcessHandler(welcome, acceptForeignIp));\n-            }\n-        });\n-        try {\n-            if (StringUtils.isBlank(host)) {\n-                serverBootstrap.bind(port).sync();\n-            } else {\n-                serverBootstrap.bind(host, port).sync();\n-            }\n-\n-            logger.info(\"qos-server bind localhost:\" + port);\n-        } catch (Throwable throwable) {\n-            logger.error(\"qos-server can not bind localhost:\" + port, throwable);\n-            throw throwable;\n-        }\n-    }\n-\n-    /**\n-     * close server\n-     */\n-    public void stop() {\n-        logger.info(\"qos-server stopped.\");\n-        if (boss != null) {\n-            boss.shutdownGracefully();\n-        }\n-        if (worker != null) {\n-            worker.shutdownGracefully();\n-        }\n-    }\n-\n-    public String getHost() {\n-        return host;\n-    }\n-\n-    public void setHost(String host) {\n-        this.host = host;\n-    }\n-\n-    public void setPort(int port) {\n-        this.port = port;\n-    }\n-\n-    public boolean isAcceptForeignIp() {\n-        return acceptForeignIp;\n-    }\n-\n-    public void setAcceptForeignIp(boolean acceptForeignIp) {\n-        this.acceptForeignIp = acceptForeignIp;\n-    }\n-\n-    public String getWelcome() {\n-        return welcome;\n-    }\n-\n-    public boolean isStarted() {\n-        return started.get();\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.qos.server;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.qos.server.handler.QosProcessHandler;\r\n+\r\n+import io.netty.bootstrap.ServerBootstrap;\r\n+import io.netty.channel.Channel;\r\n+import io.netty.channel.ChannelInitializer;\r\n+import io.netty.channel.ChannelOption;\r\n+import io.netty.channel.EventLoopGroup;\r\n+import io.netty.channel.nio.NioEventLoopGroup;\r\n+import io.netty.channel.socket.nio.NioServerSocketChannel;\r\n+import io.netty.util.concurrent.DefaultThreadFactory;\r\n+\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+/**\r\n+ * A server serves for both telnet access and http access\r\n+ * <ul>\r\n+ * <li>static initialize server</li>\r\n+ * <li>start server and bind port</li>\r\n+ * <li>close server</li>\r\n+ * </ul>\r\n+ */\r\n+public class Server {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(Server.class);\r\n+    private static final Server INSTANCE = new Server();\r\n+\r\n+    public static final Server getInstance() {\r\n+        return INSTANCE;\r\n+    }\r\n+\r\n+    private String host;\r\n+\r\n+    private int port;\r\n+\r\n+    private boolean acceptForeignIp = true;\r\n+\r\n+    private EventLoopGroup boss;\r\n+\r\n+    private EventLoopGroup worker;\r\n+\r\n+    private Server() {\r\n+        this.welcome = DubboLogo.DUBBO;\r\n+    }\r\n+\r\n+    private String welcome;\r\n+\r\n+    private AtomicBoolean started = new AtomicBoolean();\r\n+\r\n+    /**\r\n+     * welcome message\r\n+     */\r\n+    public void setWelcome(String welcome) {\r\n+        this.welcome = welcome;\r\n+    }\r\n+\r\n+    public int getPort() {\r\n+        return port;\r\n+    }\r\n+\r\n+    /**\r\n+     * start server, bind port\r\n+     */\r\n+    public void start() throws Throwable {\r\n+        if (!started.compareAndSet(false, true)) {\r\n+            return;\r\n+        }\r\n+        boss = new NioEventLoopGroup(1, new DefaultThreadFactory(\"qos-boss\", true));\r\n+        worker = new NioEventLoopGroup(0, new DefaultThreadFactory(\"qos-worker\", true));\r\n+        ServerBootstrap serverBootstrap = new ServerBootstrap();\r\n+        serverBootstrap.group(boss, worker);\r\n+        serverBootstrap.channel(NioServerSocketChannel.class);\r\n+        serverBootstrap.option(ChannelOption.SO_REUSEADDR, true);\r\n+        serverBootstrap.childOption(ChannelOption.TCP_NODELAY, true);\r\n+        serverBootstrap.childHandler(new ChannelInitializer<Channel>() {\r\n+\r\n+            @Override\r\n+            protected void initChannel(Channel ch) throws Exception {\r\n+                ch.pipeline().addLast(new QosProcessHandler(welcome, acceptForeignIp));\r\n+            }\r\n+        });\r\n+        try {\r\n+            if (StringUtils.isBlank(host)) {\r\n+                serverBootstrap.bind(port).sync();\r\n+            } else {\r\n+                serverBootstrap.bind(host, port).sync();\r\n+            }\r\n+\r\n+            logger.info(\"qos-server bind localhost:\" + port);\r\n+        } catch (Throwable throwable) {\r\n+            logger.error(\"qos-server can not bind localhost:\" + port, throwable);\r\n+            throw throwable;\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * close server\r\n+     */\r\n+    public void stop() {\r\n+        logger.info(\"qos-server stopped.\");\r\n+        if (boss != null) {\r\n+            boss.shutdownGracefully();\r\n+        }\r\n+        if (worker != null) {\r\n+            worker.shutdownGracefully();\r\n+        }\r\n+    }\r\n+\r\n+    public String getHost() {\r\n+        return host;\r\n+    }\r\n+\r\n+    public void setHost(String host) {\r\n+        this.host = host;\r\n+    }\r\n+\r\n+    public void setPort(int port) {\r\n+        this.port = port;\r\n+    }\r\n+\r\n+    public boolean isAcceptForeignIp() {\r\n+        return acceptForeignIp;\r\n+    }\r\n+\r\n+    public void setAcceptForeignIp(boolean acceptForeignIp) {\r\n+        this.acceptForeignIp = acceptForeignIp;\r\n+    }\r\n+\r\n+    public String getWelcome() {\r\n+        return welcome;\r\n+    }\r\n+\r\n+    public boolean isStarted() {\r\n+        return started.get();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/server/handler/QosProcessHandler.java", "source2": "org/apache/dubbo/qos/server/handler/QosProcessHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,111 +1,111 @@\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.qos.server.handler;\n-\n-import io.netty.buffer.ByteBuf;\n-import io.netty.buffer.Unpooled;\n-import io.netty.channel.ChannelHandlerContext;\n-import io.netty.channel.ChannelPipeline;\n-import io.netty.handler.codec.ByteToMessageDecoder;\n-import io.netty.handler.codec.LineBasedFrameDecoder;\n-import io.netty.handler.codec.http.HttpObjectAggregator;\n-import io.netty.handler.codec.http.HttpServerCodec;\n-import io.netty.handler.codec.string.StringDecoder;\n-import io.netty.handler.codec.string.StringEncoder;\n-import io.netty.handler.timeout.IdleStateEvent;\n-import io.netty.handler.timeout.IdleStateHandler;\n-import io.netty.util.CharsetUtil;\n-import io.netty.util.concurrent.ScheduledFuture;\n-import org.apache.dubbo.common.utils.ExecutorUtil;\n-\n-import java.util.List;\n-import java.util.concurrent.TimeUnit;\n-\n-public class QosProcessHandler extends ByteToMessageDecoder {\n-\n-    private ScheduledFuture<?> welcomeFuture;\n-\n-    private String welcome;\n-    // true means to accept foreign IP\n-    private boolean acceptForeignIp;\n-\n-    public static final String PROMPT = \"dubbo>\";\n-\n-    public QosProcessHandler(String welcome, boolean acceptForeignIp) {\n-        this.welcome = welcome;\n-        this.acceptForeignIp = acceptForeignIp;\n-    }\n-\n-    @Override\n-    public void channelActive(final ChannelHandlerContext ctx) throws Exception {\n-        welcomeFuture = ctx.executor().schedule(new Runnable() {\n-\n-            @Override\n-            public void run() {\n-                if (welcome != null) {\n-                    ctx.write(Unpooled.wrappedBuffer(welcome.getBytes()));\n-                    ctx.writeAndFlush(Unpooled.wrappedBuffer(PROMPT.getBytes()));\n-                }\n-            }\n-\n-        }, 500, TimeUnit.MILLISECONDS);\n-    }\n-\n-    @Override\n-    protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception {\n-        if (in.readableBytes() < 1) {\n-            return;\n-        }\n-\n-        // read one byte to guess protocol\n-        final int magic = in.getByte(in.readerIndex());\n-\n-        ChannelPipeline p = ctx.pipeline();\n-        p.addLast(new LocalHostPermitHandler(acceptForeignIp));\n-        if (isHttp(magic)) {\n-            // no welcome output for http protocol\n-            if (welcomeFuture != null && welcomeFuture.isCancellable()) {\n-                welcomeFuture.cancel(false);\n-            }\n-            p.addLast(new HttpServerCodec());\n-            p.addLast(new HttpObjectAggregator(1048576));\n-            p.addLast(new HttpProcessHandler());\n-            p.remove(this);\n-        } else {\n-            p.addLast(new LineBasedFrameDecoder(2048));\n-            p.addLast(new StringDecoder(CharsetUtil.UTF_8));\n-            p.addLast(new StringEncoder(CharsetUtil.UTF_8));\n-            p.addLast(new IdleStateHandler(0, 0, 5 * 60));\n-            p.addLast(new TelnetIdleEventHandler());\n-            p.addLast(new TelnetProcessHandler());\n-            p.remove(this);\n-        }\n-    }\n-\n-    @Override\n-    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\n-        if (evt instanceof IdleStateEvent) {\n-            ExecutorUtil.cancelScheduledFuture(welcomeFuture);\n-            ctx.close();\n-        }\n-    }\n-\n-    // G for GET, and P for POST\n-    private static boolean isHttp(int magic) {\n-        return magic == 'G' || magic == 'P';\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.qos.server.handler;\r\n+\r\n+import io.netty.buffer.ByteBuf;\r\n+import io.netty.buffer.Unpooled;\r\n+import io.netty.channel.ChannelHandlerContext;\r\n+import io.netty.channel.ChannelPipeline;\r\n+import io.netty.handler.codec.ByteToMessageDecoder;\r\n+import io.netty.handler.codec.LineBasedFrameDecoder;\r\n+import io.netty.handler.codec.http.HttpObjectAggregator;\r\n+import io.netty.handler.codec.http.HttpServerCodec;\r\n+import io.netty.handler.codec.string.StringDecoder;\r\n+import io.netty.handler.codec.string.StringEncoder;\r\n+import io.netty.handler.timeout.IdleStateEvent;\r\n+import io.netty.handler.timeout.IdleStateHandler;\r\n+import io.netty.util.CharsetUtil;\r\n+import io.netty.util.concurrent.ScheduledFuture;\r\n+import org.apache.dubbo.common.utils.ExecutorUtil;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+public class QosProcessHandler extends ByteToMessageDecoder {\r\n+\r\n+    private ScheduledFuture<?> welcomeFuture;\r\n+\r\n+    private String welcome;\r\n+    // true means to accept foreign IP\r\n+    private boolean acceptForeignIp;\r\n+\r\n+    public static final String PROMPT = \"dubbo>\";\r\n+\r\n+    public QosProcessHandler(String welcome, boolean acceptForeignIp) {\r\n+        this.welcome = welcome;\r\n+        this.acceptForeignIp = acceptForeignIp;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void channelActive(final ChannelHandlerContext ctx) throws Exception {\r\n+        welcomeFuture = ctx.executor().schedule(new Runnable() {\r\n+\r\n+            @Override\r\n+            public void run() {\r\n+                if (welcome != null) {\r\n+                    ctx.write(Unpooled.wrappedBuffer(welcome.getBytes()));\r\n+                    ctx.writeAndFlush(Unpooled.wrappedBuffer(PROMPT.getBytes()));\r\n+                }\r\n+            }\r\n+\r\n+        }, 500, TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception {\r\n+        if (in.readableBytes() < 1) {\r\n+            return;\r\n+        }\r\n+\r\n+        // read one byte to guess protocol\r\n+        final int magic = in.getByte(in.readerIndex());\r\n+\r\n+        ChannelPipeline p = ctx.pipeline();\r\n+        p.addLast(new LocalHostPermitHandler(acceptForeignIp));\r\n+        if (isHttp(magic)) {\r\n+            // no welcome output for http protocol\r\n+            if (welcomeFuture != null && welcomeFuture.isCancellable()) {\r\n+                welcomeFuture.cancel(false);\r\n+            }\r\n+            p.addLast(new HttpServerCodec());\r\n+            p.addLast(new HttpObjectAggregator(1048576));\r\n+            p.addLast(new HttpProcessHandler());\r\n+            p.remove(this);\r\n+        } else {\r\n+            p.addLast(new LineBasedFrameDecoder(2048));\r\n+            p.addLast(new StringDecoder(CharsetUtil.UTF_8));\r\n+            p.addLast(new StringEncoder(CharsetUtil.UTF_8));\r\n+            p.addLast(new IdleStateHandler(0, 0, 5 * 60));\r\n+            p.addLast(new TelnetIdleEventHandler());\r\n+            p.addLast(new TelnetProcessHandler());\r\n+            p.remove(this);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\r\n+        if (evt instanceof IdleStateEvent) {\r\n+            ExecutorUtil.cancelScheduledFuture(welcomeFuture);\r\n+            ctx.close();\r\n+        }\r\n+    }\r\n+\r\n+    // G for GET, and P for POST\r\n+    private static boolean isHttp(int magic) {\r\n+        return magic == 'G' || magic == 'P';\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/server/handler/TelnetIdleEventHandler.java", "source2": "org/apache/dubbo/qos/server/handler/TelnetIdleEventHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\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.qos.server.handler;\n-\n-import io.netty.channel.Channel;\n-import io.netty.channel.ChannelDuplexHandler;\n-import io.netty.channel.ChannelHandlerContext;\n-import io.netty.handler.timeout.IdleStateEvent;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-\n-public class TelnetIdleEventHandler extends ChannelDuplexHandler {\n-    private static final Logger log = LoggerFactory.getLogger(TelnetIdleEventHandler.class);\n-\n-    @Override\n-    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\n-        // server will close channel when server don't receive any request from client util timeout.\n-        if (evt instanceof IdleStateEvent) {\n-            Channel channel = ctx.channel();\n-            log.info(\"IdleStateEvent triggered, close channel \" + channel);\n-            channel.close();\n-        } else {\n-            super.userEventTriggered(ctx, evt);\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.qos.server.handler;\r\n+\r\n+import io.netty.channel.Channel;\r\n+import io.netty.channel.ChannelDuplexHandler;\r\n+import io.netty.channel.ChannelHandlerContext;\r\n+import io.netty.handler.timeout.IdleStateEvent;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+\r\n+public class TelnetIdleEventHandler extends ChannelDuplexHandler {\r\n+    private static final Logger log = LoggerFactory.getLogger(TelnetIdleEventHandler.class);\r\n+\r\n+    @Override\r\n+    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\r\n+        // server will close channel when server don't receive any request from client util timeout.\r\n+        if (evt instanceof IdleStateEvent) {\r\n+            Channel channel = ctx.channel();\r\n+            log.info(\"IdleStateEvent triggered, close channel \" + channel);\r\n+            channel.close();\r\n+        } else {\r\n+            super.userEventTriggered(ctx, evt);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/server/handler/TelnetProcessHandler.java", "source2": "org/apache/dubbo/qos/server/handler/TelnetProcessHandler.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.qos.server.handler;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.CommandExecutor;\n-import org.apache.dubbo.qos.command.DefaultCommandExecutor;\n-import org.apache.dubbo.qos.command.NoSuchCommandException;\n-import org.apache.dubbo.qos.command.decoder.TelnetCommandDecoder;\n-import org.apache.dubbo.qos.common.QosConstants;\n-\n-import io.netty.channel.ChannelFutureListener;\n-import io.netty.channel.ChannelHandlerContext;\n-import io.netty.channel.SimpleChannelInboundHandler;\n-\n-/**\n- * Telnet process handler\n- */\n-public class TelnetProcessHandler extends SimpleChannelInboundHandler<String> {\n-\n-    private static final Logger log = LoggerFactory.getLogger(TelnetProcessHandler.class);\n-    private static CommandExecutor commandExecutor = new DefaultCommandExecutor();\n-\n-    @Override\n-    protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {\n-\n-        if (StringUtils.isBlank(msg)) {\n-            ctx.writeAndFlush(QosProcessHandler.PROMPT);\n-        } else {\n-            CommandContext commandContext = TelnetCommandDecoder.decode(msg);\n-            commandContext.setRemote(ctx.channel());\n-\n-            try {\n-                String result = commandExecutor.execute(commandContext);\n-                if (StringUtils.isEquals(QosConstants.CLOSE, result)) {\n-                    ctx.writeAndFlush(getByeLabel()).addListener(ChannelFutureListener.CLOSE);\n-                } else {\n-                    ctx.writeAndFlush(result + QosConstants.BR_STR + QosProcessHandler.PROMPT);\n-                }\n-            } catch (NoSuchCommandException ex) {\n-                ctx.writeAndFlush(msg + \" :no such command\");\n-                ctx.writeAndFlush(QosConstants.BR_STR + QosProcessHandler.PROMPT);\n-                log.error(\"can not found command \" + commandContext, ex);\n-            } catch (Exception ex) {\n-                ctx.writeAndFlush(msg + \" :fail to execute commandContext by \" + ex.getMessage());\n-                ctx.writeAndFlush(QosConstants.BR_STR + QosProcessHandler.PROMPT);\n-                log.error(\"execute commandContext got exception \" + commandContext, ex);\n-            }\n-        }\n-    }\n-\n-    private String getByeLabel() {\n-        return \"BYE!\\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.qos.server.handler;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.CommandExecutor;\r\n+import org.apache.dubbo.qos.command.DefaultCommandExecutor;\r\n+import org.apache.dubbo.qos.command.NoSuchCommandException;\r\n+import org.apache.dubbo.qos.command.decoder.TelnetCommandDecoder;\r\n+import org.apache.dubbo.qos.common.QosConstants;\r\n+\r\n+import io.netty.channel.ChannelFutureListener;\r\n+import io.netty.channel.ChannelHandlerContext;\r\n+import io.netty.channel.SimpleChannelInboundHandler;\r\n+\r\n+/**\r\n+ * Telnet process handler\r\n+ */\r\n+public class TelnetProcessHandler extends SimpleChannelInboundHandler<String> {\r\n+\r\n+    private static final Logger log = LoggerFactory.getLogger(TelnetProcessHandler.class);\r\n+    private static CommandExecutor commandExecutor = new DefaultCommandExecutor();\r\n+\r\n+    @Override\r\n+    protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {\r\n+\r\n+        if (StringUtils.isBlank(msg)) {\r\n+            ctx.writeAndFlush(QosProcessHandler.PROMPT);\r\n+        } else {\r\n+            CommandContext commandContext = TelnetCommandDecoder.decode(msg);\r\n+            commandContext.setRemote(ctx.channel());\r\n+\r\n+            try {\r\n+                String result = commandExecutor.execute(commandContext);\r\n+                if (StringUtils.isEquals(QosConstants.CLOSE, result)) {\r\n+                    ctx.writeAndFlush(getByeLabel()).addListener(ChannelFutureListener.CLOSE);\r\n+                } else {\r\n+                    ctx.writeAndFlush(result + QosConstants.BR_STR + QosProcessHandler.PROMPT);\r\n+                }\r\n+            } catch (NoSuchCommandException ex) {\r\n+                ctx.writeAndFlush(msg + \" :no such command\");\r\n+                ctx.writeAndFlush(QosConstants.BR_STR + QosProcessHandler.PROMPT);\r\n+                log.error(\"can not found command \" + commandContext, ex);\r\n+            } catch (Exception ex) {\r\n+                ctx.writeAndFlush(msg + \" :fail to execute commandContext by \" + ex.getMessage());\r\n+                ctx.writeAndFlush(QosConstants.BR_STR + QosProcessHandler.PROMPT);\r\n+                log.error(\"execute commandContext got exception \" + commandContext, ex);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private String getByeLabel() {\r\n+        return \"BYE!\\n\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/textui/TTable.java", "source2": "org/apache/dubbo/qos/textui/TTable.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,566 +1,566 @@\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.qos.textui;\n-\n-import java.io.StringReader;\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Scanner;\n-\n-import static java.lang.Math.abs;\n-import static java.lang.Math.max;\n-import static java.lang.String.format;\n-import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\n-import static org.apache.dubbo.common.utils.StringUtils.length;\n-import static org.apache.dubbo.common.utils.StringUtils.repeat;\n-import static org.apache.dubbo.common.utils.StringUtils.replace;\n-\n-/**\n- * Table\n- */\n-public class TTable implements TComponent {\n-\n-    // column definition\n-    private final ColumnDefine[] columnDefineArray;\n-\n-    // border\n-    private final Border border = new Border();\n-\n-    // padding\n-    private int padding;\n-\n-    public TTable(ColumnDefine[] columnDefineArray) {\n-        this.columnDefineArray = null == columnDefineArray\n-                ? new ColumnDefine[0]\n-                : columnDefineArray;\n-    }\n-\n-    public TTable(int columnNum) {\n-        this.columnDefineArray = new ColumnDefine[columnNum];\n-        for (int index = 0; index < this.columnDefineArray.length; index++) {\n-            columnDefineArray[index] = new ColumnDefine();\n-        }\n-    }\n-\n-\n-    @Override\n-    public String rendering() {\n-        final StringBuilder tableSB = new StringBuilder();\n-\n-        // process width cache\n-        final int[] widthCacheArray = new int[getColumnCount()];\n-        for (int index = 0; index < widthCacheArray.length; index++) {\n-            widthCacheArray[index] = abs(columnDefineArray[index].getWidth());\n-        }\n-\n-        final int rowCount = getRowCount();\n-        for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) {\n-\n-            final boolean isFirstRow = rowIndex == 0;\n-            final boolean isLastRow = rowIndex == rowCount - 1;\n-\n-            // print first separation line\n-            if (isFirstRow\n-                    && border.has(Border.BORDER_OUTER_TOP)) {\n-                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\n-            }\n-\n-            // print inner separation lines\n-            if (!isFirstRow\n-                    && border.has(Border.BORDER_INNER_H)) {\n-                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\n-            }\n-\n-            // draw one line\n-            tableSB.append(drawRow(widthCacheArray, rowIndex));\n-\n-\n-            // print ending separation line\n-            if (isLastRow\n-                    && border.has(Border.BORDER_OUTER_BOTTOM)) {\n-                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\n-            }\n-\n-        }\n-\n-\n-        return tableSB.toString();\n-    }\n-\n-\n-    private String drawRow(int[] widthCacheArray, int rowIndex) {\n-\n-        final StringBuilder rowSB = new StringBuilder();\n-        final Scanner[] scannerArray = new Scanner[getColumnCount()];\n-        try {\n-            boolean hasNextLine;\n-            do {\n-\n-                hasNextLine = false;\n-                final StringBuilder segmentSB = new StringBuilder();\n-\n-                for (int colIndex = 0; colIndex < getColumnCount(); colIndex++) {\n-\n-\n-                    final int width = widthCacheArray[colIndex];\n-                    final boolean isFirstColOfRow = colIndex == 0;\n-                    final boolean isLastColOfRow = colIndex == widthCacheArray.length - 1;\n-\n-                    final String borderChar;\n-                    if (isFirstColOfRow\n-                            && border.has(Border.BORDER_OUTER_LEFT)) {\n-                        borderChar = \"|\";\n-                    } else if (!isFirstColOfRow\n-                            && border.has(Border.BORDER_INNER_V)) {\n-                        borderChar = \"|\";\n-                    } else {\n-                        borderChar = EMPTY_STRING;\n-                    }\n-\n-\n-                    if (null == scannerArray[colIndex]) {\n-                        scannerArray[colIndex] = new Scanner(\n-                                new StringReader(wrap(getData(rowIndex, columnDefineArray[colIndex]), width)));\n-                    }\n-                    final Scanner scanner = scannerArray[colIndex];\n-\n-                    final String data;\n-                    if (scanner.hasNextLine()) {\n-                        data = scanner.nextLine();\n-                        hasNextLine = true;\n-                    } else {\n-                        data = EMPTY_STRING;\n-                    }\n-\n-                    if (width > 0) {\n-                        final ColumnDefine columnDefine = columnDefineArray[colIndex];\n-                        final String dataFormat = getDataFormat(columnDefine, width, data);\n-                        final String paddingChar = repeat(\" \", padding);\n-                        segmentSB.append(format(borderChar + paddingChar + dataFormat + paddingChar, data));\n-                    }\n-\n-                    if (isLastColOfRow) {\n-                        if (border.has(Border.BORDER_OUTER_RIGHT)) {\n-                            segmentSB.append(\"|\");\n-                        }\n-                        segmentSB.append(System.lineSeparator());\n-                    }\n-\n-                }\n-\n-                if (hasNextLine) {\n-                    rowSB.append(segmentSB);\n-                }\n-\n-            } while (hasNextLine);\n-\n-            return rowSB.toString();\n-        } finally {\n-            for (Scanner scanner : scannerArray) {\n-                if (null != scanner) {\n-                    scanner.close();\n-                }\n-            }\n-        }\n-\n-    }\n-\n-    private String getData(int rowIndex, ColumnDefine columnDefine) {\n-        return columnDefine.getRowCount() <= rowIndex\n-                ? EMPTY_STRING\n-                : columnDefine.rows.get(rowIndex);\n-    }\n-\n-    private String getDataFormat(ColumnDefine columnDefine, int width, String data) {\n-        switch (columnDefine.align) {\n-            case MIDDLE: {\n-                final int length = length(data);\n-                final int diff = width - length;\n-                final int left = diff / 2;\n-                return repeat(\" \", diff - left) + \"%s\" + repeat(\" \", left);\n-            }\n-            case RIGHT: {\n-                return \"%\" + width + \"s\";\n-            }\n-            case LEFT:\n-            default: {\n-                return \"%-\" + width + \"s\";\n-            }\n-        }\n-    }\n-\n-    /**\n-     * get row count\n-     */\n-    private int getRowCount() {\n-        int rowCount = 0;\n-        for (ColumnDefine columnDefine : columnDefineArray) {\n-            rowCount = max(rowCount, columnDefine.getRowCount());\n-        }\n-        return rowCount;\n-    }\n-\n-    /**\n-     * position to last column\n-     */\n-    private int indexLastCol(final int[] widthCacheArray) {\n-        for (int colIndex = widthCacheArray.length - 1; colIndex >= 0; colIndex--) {\n-            final int width = widthCacheArray[colIndex];\n-            if (width <= 0) {\n-                continue;\n-            }\n-            return colIndex;\n-        }\n-        return 0;\n-    }\n-\n-    /**\n-     * draw separation line\n-     */\n-    private String drawSeparationLine(final int[] widthCacheArray) {\n-        final StringBuilder separationLineSB = new StringBuilder();\n-\n-        final int lastCol = indexLastCol(widthCacheArray);\n-        final int colCount = widthCacheArray.length;\n-        for (int colIndex = 0; colIndex < colCount; colIndex++) {\n-            final int width = widthCacheArray[colIndex];\n-            if (width <= 0) {\n-                continue;\n-            }\n-\n-            final boolean isFirstCol = colIndex == 0;\n-            final boolean isLastCol = colIndex == lastCol;\n-\n-            if (isFirstCol\n-                    && border.has(Border.BORDER_OUTER_LEFT)) {\n-                separationLineSB.append(\"+\");\n-            }\n-\n-            if (!isFirstCol\n-                    && border.has(Border.BORDER_INNER_V)) {\n-                separationLineSB.append(\"+\");\n-            }\n-\n-            separationLineSB.append(repeat(\"-\", width + 2 * padding));\n-\n-            if (isLastCol\n-                    && border.has(Border.BORDER_OUTER_RIGHT)) {\n-                separationLineSB.append(\"+\");\n-            }\n-\n-        }\n-        return separationLineSB.toString();\n-    }\n-\n-    /**\n-     * Add a row\n-     */\n-    public TTable addRow(Object... columnDataArray) {\n-\n-        if (null != columnDataArray) {\n-            for (int index = 0; index < columnDefineArray.length; index++) {\n-                final ColumnDefine columnDefine = columnDefineArray[index];\n-                if (index < columnDataArray.length\n-                        && null != columnDataArray[index]) {\n-                    columnDefine.rows.add(replaceTab(columnDataArray[index].toString()));\n-                } else {\n-                    columnDefine.rows.add(EMPTY_STRING);\n-                }\n-            }\n-        }\n-\n-        return this;\n-    }\n-\n-\n-    /**\n-     * alignment\n-     */\n-    public enum Align {\n-\n-        /**\n-         * left-alignment\n-         */\n-        LEFT,\n-\n-        /**\n-         * right-alignment\n-         */\n-        RIGHT,\n-\n-        /**\n-         * middle-alignment\n-         */\n-        MIDDLE\n-    }\n-\n-    /**\n-     * column definition\n-     */\n-    public static class ColumnDefine {\n-\n-        // column width\n-        private final int width;\n-\n-        // whether to auto resize\n-        private final boolean isAutoResize;\n-\n-        // alignment\n-        private final Align align;\n-\n-        // data rows\n-        private final List<String> rows = new ArrayList<String>();\n-\n-        public ColumnDefine(int width, boolean isAutoResize, Align align) {\n-            this.width = width;\n-            this.isAutoResize = isAutoResize;\n-            this.align = align;\n-        }\n-\n-        public ColumnDefine(Align align) {\n-            this(0, true, align);\n-        }\n-\n-        public ColumnDefine(int width) {\n-            this(width, false, Align.LEFT);\n-        }\n-\n-        public ColumnDefine(int width, Align align) {\n-            this(width, false, align);\n-        }\n-\n-        public ColumnDefine() {\n-            this(Align.LEFT);\n-        }\n-\n-        /**\n-         * get current width\n-         *\n-         * @return width\n-         */\n-        public int getWidth() {\n-\n-            // if not auto resize, return preset width\n-            if (!isAutoResize) {\n-                return width;\n-            }\n-\n-            // if it's auto resize, then calculate the possible max width\n-            int maxWidth = 0;\n-            for (String data : rows) {\n-                maxWidth = max(width(data), maxWidth);\n-            }\n-\n-            return maxWidth;\n-        }\n-\n-        /**\n-         * get rows for the current column\n-         *\n-         * @return current column's rows\n-         */\n-        public int getRowCount() {\n-            return rows.size();\n-        }\n-\n-    }\n-\n-    /**\n-     * set padding\n-     *\n-     * @param padding padding\n-     */\n-    public TTable padding(int padding) {\n-        this.padding = padding;\n-        return this;\n-    }\n-\n-    /**\n-     * get column count\n-     *\n-     * @return column count\n-     */\n-    public int getColumnCount() {\n-        return columnDefineArray.length;\n-    }\n-\n-\n-    /**\n-     * replace tab to four spaces\n-     *\n-     * @param string the original string\n-     * @return the replaced string\n-     */\n-    private static String replaceTab(String string) {\n-        return replace(string, \"\\t\", \"    \");\n-    }\n-\n-    /**\n-     * visible width for the given string.\n-     *\n-     * for example: \"abc\\n1234\"'s width is 4.\n-     *\n-     * @param string the given string\n-     * @return visible width\n-     */\n-    private static int width(String string) {\n-        int maxWidth = 0;\n-        try (Scanner scanner = new Scanner(new StringReader(string))) {\n-            while (scanner.hasNextLine()) {\n-                maxWidth = max(length(scanner.nextLine()), maxWidth);\n-            }\n-        }\n-        return maxWidth;\n-    }\n-\n-    /**\n-     * get border\n-     *\n-     * @return table border\n-     */\n-    public Border getBorder() {\n-        return border;\n-    }\n-\n-    /**\n-     * border style\n-     */\n-    public class Border {\n-\n-        private int borders = BORDER_OUTER | BORDER_INNER;\n-\n-        /**\n-         * border outer top\n-         */\n-        public static final int BORDER_OUTER_TOP = 1 << 0;\n-\n-        /**\n-         * border outer right\n-         */\n-        public static final int BORDER_OUTER_RIGHT = 1 << 1;\n-\n-        /**\n-         * border outer bottom\n-         */\n-        public static final int BORDER_OUTER_BOTTOM = 1 << 2;\n-\n-        /**\n-         * border outer left\n-         */\n-        public static final int BORDER_OUTER_LEFT = 1 << 3;\n-\n-        /**\n-         * inner border: horizon\n-         */\n-        public static final int BORDER_INNER_H = 1 << 4;\n-\n-        /**\n-         * inner border: vertical\n-         */\n-        public static final int BORDER_INNER_V = 1 << 5;\n-\n-        /**\n-         * outer border\n-         */\n-        public static final int BORDER_OUTER = BORDER_OUTER_TOP | BORDER_OUTER_BOTTOM | BORDER_OUTER_LEFT | BORDER_OUTER_RIGHT;\n-\n-        /**\n-         * inner border\n-         */\n-        public static final int BORDER_INNER = BORDER_INNER_H | BORDER_INNER_V;\n-\n-        /**\n-         * no border\n-         */\n-        public static final int BORDER_NON = 0;\n-\n-        /**\n-         * whether has one of the specified border styles\n-         *\n-         * @param borderArray border styles\n-         * @return whether has one of the specified border styles\n-         */\n-        public boolean has(int... borderArray) {\n-            if (null == borderArray) {\n-                return false;\n-            }\n-            for (int b : borderArray) {\n-                if ((this.borders & b) == b) {\n-                    return true;\n-                }\n-            }\n-            return false;\n-        }\n-\n-        /**\n-         * get border style\n-         *\n-         * @return border style\n-         */\n-        public int get() {\n-            return borders;\n-        }\n-\n-        /**\n-         * set border style\n-         *\n-         * @param border border style\n-         * @return this\n-         */\n-        public Border set(int border) {\n-            this.borders = border;\n-            return this;\n-        }\n-\n-        public Border add(int border) {\n-            return set(get() | border);\n-        }\n-\n-        public Border remove(int border) {\n-            return set(get() ^ border);\n-        }\n-\n-    }\n-\n-\n-    public static String wrap(String string, int width) {\n-        final StringBuilder sb = new StringBuilder();\n-        final char[] buffer = string.toCharArray();\n-        int count = 0;\n-        for (char c : buffer) {\n-\n-            if (count == width) {\n-                count = 0;\n-                sb.append('\\n');\n-                if (c == '\\n') {\n-                    continue;\n-                }\n-            }\n-\n-            if (c == '\\n') {\n-                count = 0;\n-            } else {\n-                count++;\n-            }\n-\n-            sb.append(c);\n-\n-        }\n-        return sb.toString();\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.qos.textui;\r\n+\r\n+import java.io.StringReader;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Scanner;\r\n+\r\n+import static java.lang.Math.abs;\r\n+import static java.lang.Math.max;\r\n+import static java.lang.String.format;\r\n+import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\r\n+import static org.apache.dubbo.common.utils.StringUtils.length;\r\n+import static org.apache.dubbo.common.utils.StringUtils.repeat;\r\n+import static org.apache.dubbo.common.utils.StringUtils.replace;\r\n+\r\n+/**\r\n+ * Table\r\n+ */\r\n+public class TTable implements TComponent {\r\n+\r\n+    // column definition\r\n+    private final ColumnDefine[] columnDefineArray;\r\n+\r\n+    // border\r\n+    private final Border border = new Border();\r\n+\r\n+    // padding\r\n+    private int padding;\r\n+\r\n+    public TTable(ColumnDefine[] columnDefineArray) {\r\n+        this.columnDefineArray = null == columnDefineArray\r\n+                ? new ColumnDefine[0]\r\n+                : columnDefineArray;\r\n+    }\r\n+\r\n+    public TTable(int columnNum) {\r\n+        this.columnDefineArray = new ColumnDefine[columnNum];\r\n+        for (int index = 0; index < this.columnDefineArray.length; index++) {\r\n+            columnDefineArray[index] = new ColumnDefine();\r\n+        }\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public String rendering() {\r\n+        final StringBuilder tableSB = new StringBuilder();\r\n+\r\n+        // process width cache\r\n+        final int[] widthCacheArray = new int[getColumnCount()];\r\n+        for (int index = 0; index < widthCacheArray.length; index++) {\r\n+            widthCacheArray[index] = abs(columnDefineArray[index].getWidth());\r\n+        }\r\n+\r\n+        final int rowCount = getRowCount();\r\n+        for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) {\r\n+\r\n+            final boolean isFirstRow = rowIndex == 0;\r\n+            final boolean isLastRow = rowIndex == rowCount - 1;\r\n+\r\n+            // print first separation line\r\n+            if (isFirstRow\r\n+                    && border.has(Border.BORDER_OUTER_TOP)) {\r\n+                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\r\n+            }\r\n+\r\n+            // print inner separation lines\r\n+            if (!isFirstRow\r\n+                    && border.has(Border.BORDER_INNER_H)) {\r\n+                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\r\n+            }\r\n+\r\n+            // draw one line\r\n+            tableSB.append(drawRow(widthCacheArray, rowIndex));\r\n+\r\n+\r\n+            // print ending separation line\r\n+            if (isLastRow\r\n+                    && border.has(Border.BORDER_OUTER_BOTTOM)) {\r\n+                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\r\n+            }\r\n+\r\n+        }\r\n+\r\n+\r\n+        return tableSB.toString();\r\n+    }\r\n+\r\n+\r\n+    private String drawRow(int[] widthCacheArray, int rowIndex) {\r\n+\r\n+        final StringBuilder rowSB = new StringBuilder();\r\n+        final Scanner[] scannerArray = new Scanner[getColumnCount()];\r\n+        try {\r\n+            boolean hasNextLine;\r\n+            do {\r\n+\r\n+                hasNextLine = false;\r\n+                final StringBuilder segmentSB = new StringBuilder();\r\n+\r\n+                for (int colIndex = 0; colIndex < getColumnCount(); colIndex++) {\r\n+\r\n+\r\n+                    final int width = widthCacheArray[colIndex];\r\n+                    final boolean isFirstColOfRow = colIndex == 0;\r\n+                    final boolean isLastColOfRow = colIndex == widthCacheArray.length - 1;\r\n+\r\n+                    final String borderChar;\r\n+                    if (isFirstColOfRow\r\n+                            && border.has(Border.BORDER_OUTER_LEFT)) {\r\n+                        borderChar = \"|\";\r\n+                    } else if (!isFirstColOfRow\r\n+                            && border.has(Border.BORDER_INNER_V)) {\r\n+                        borderChar = \"|\";\r\n+                    } else {\r\n+                        borderChar = EMPTY_STRING;\r\n+                    }\r\n+\r\n+\r\n+                    if (null == scannerArray[colIndex]) {\r\n+                        scannerArray[colIndex] = new Scanner(\r\n+                                new StringReader(wrap(getData(rowIndex, columnDefineArray[colIndex]), width)));\r\n+                    }\r\n+                    final Scanner scanner = scannerArray[colIndex];\r\n+\r\n+                    final String data;\r\n+                    if (scanner.hasNextLine()) {\r\n+                        data = scanner.nextLine();\r\n+                        hasNextLine = true;\r\n+                    } else {\r\n+                        data = EMPTY_STRING;\r\n+                    }\r\n+\r\n+                    if (width > 0) {\r\n+                        final ColumnDefine columnDefine = columnDefineArray[colIndex];\r\n+                        final String dataFormat = getDataFormat(columnDefine, width, data);\r\n+                        final String paddingChar = repeat(\" \", padding);\r\n+                        segmentSB.append(format(borderChar + paddingChar + dataFormat + paddingChar, data));\r\n+                    }\r\n+\r\n+                    if (isLastColOfRow) {\r\n+                        if (border.has(Border.BORDER_OUTER_RIGHT)) {\r\n+                            segmentSB.append(\"|\");\r\n+                        }\r\n+                        segmentSB.append(System.lineSeparator());\r\n+                    }\r\n+\r\n+                }\r\n+\r\n+                if (hasNextLine) {\r\n+                    rowSB.append(segmentSB);\r\n+                }\r\n+\r\n+            } while (hasNextLine);\r\n+\r\n+            return rowSB.toString();\r\n+        } finally {\r\n+            for (Scanner scanner : scannerArray) {\r\n+                if (null != scanner) {\r\n+                    scanner.close();\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    private String getData(int rowIndex, ColumnDefine columnDefine) {\r\n+        return columnDefine.getRowCount() <= rowIndex\r\n+                ? EMPTY_STRING\r\n+                : columnDefine.rows.get(rowIndex);\r\n+    }\r\n+\r\n+    private String getDataFormat(ColumnDefine columnDefine, int width, String data) {\r\n+        switch (columnDefine.align) {\r\n+            case MIDDLE: {\r\n+                final int length = length(data);\r\n+                final int diff = width - length;\r\n+                final int left = diff / 2;\r\n+                return repeat(\" \", diff - left) + \"%s\" + repeat(\" \", left);\r\n+            }\r\n+            case RIGHT: {\r\n+                return \"%\" + width + \"s\";\r\n+            }\r\n+            case LEFT:\r\n+            default: {\r\n+                return \"%-\" + width + \"s\";\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * get row count\r\n+     */\r\n+    private int getRowCount() {\r\n+        int rowCount = 0;\r\n+        for (ColumnDefine columnDefine : columnDefineArray) {\r\n+            rowCount = max(rowCount, columnDefine.getRowCount());\r\n+        }\r\n+        return rowCount;\r\n+    }\r\n+\r\n+    /**\r\n+     * position to last column\r\n+     */\r\n+    private int indexLastCol(final int[] widthCacheArray) {\r\n+        for (int colIndex = widthCacheArray.length - 1; colIndex >= 0; colIndex--) {\r\n+            final int width = widthCacheArray[colIndex];\r\n+            if (width <= 0) {\r\n+                continue;\r\n+            }\r\n+            return colIndex;\r\n+        }\r\n+        return 0;\r\n+    }\r\n+\r\n+    /**\r\n+     * draw separation line\r\n+     */\r\n+    private String drawSeparationLine(final int[] widthCacheArray) {\r\n+        final StringBuilder separationLineSB = new StringBuilder();\r\n+\r\n+        final int lastCol = indexLastCol(widthCacheArray);\r\n+        final int colCount = widthCacheArray.length;\r\n+        for (int colIndex = 0; colIndex < colCount; colIndex++) {\r\n+            final int width = widthCacheArray[colIndex];\r\n+            if (width <= 0) {\r\n+                continue;\r\n+            }\r\n+\r\n+            final boolean isFirstCol = colIndex == 0;\r\n+            final boolean isLastCol = colIndex == lastCol;\r\n+\r\n+            if (isFirstCol\r\n+                    && border.has(Border.BORDER_OUTER_LEFT)) {\r\n+                separationLineSB.append(\"+\");\r\n+            }\r\n+\r\n+            if (!isFirstCol\r\n+                    && border.has(Border.BORDER_INNER_V)) {\r\n+                separationLineSB.append(\"+\");\r\n+            }\r\n+\r\n+            separationLineSB.append(repeat(\"-\", width + 2 * padding));\r\n+\r\n+            if (isLastCol\r\n+                    && border.has(Border.BORDER_OUTER_RIGHT)) {\r\n+                separationLineSB.append(\"+\");\r\n+            }\r\n+\r\n+        }\r\n+        return separationLineSB.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * Add a row\r\n+     */\r\n+    public TTable addRow(Object... columnDataArray) {\r\n+\r\n+        if (null != columnDataArray) {\r\n+            for (int index = 0; index < columnDefineArray.length; index++) {\r\n+                final ColumnDefine columnDefine = columnDefineArray[index];\r\n+                if (index < columnDataArray.length\r\n+                        && null != columnDataArray[index]) {\r\n+                    columnDefine.rows.add(replaceTab(columnDataArray[index].toString()));\r\n+                } else {\r\n+                    columnDefine.rows.add(EMPTY_STRING);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return this;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * alignment\r\n+     */\r\n+    public enum Align {\r\n+\r\n+        /**\r\n+         * left-alignment\r\n+         */\r\n+        LEFT,\r\n+\r\n+        /**\r\n+         * right-alignment\r\n+         */\r\n+        RIGHT,\r\n+\r\n+        /**\r\n+         * middle-alignment\r\n+         */\r\n+        MIDDLE\r\n+    }\r\n+\r\n+    /**\r\n+     * column definition\r\n+     */\r\n+    public static class ColumnDefine {\r\n+\r\n+        // column width\r\n+        private final int width;\r\n+\r\n+        // whether to auto resize\r\n+        private final boolean isAutoResize;\r\n+\r\n+        // alignment\r\n+        private final Align align;\r\n+\r\n+        // data rows\r\n+        private final List<String> rows = new ArrayList<String>();\r\n+\r\n+        public ColumnDefine(int width, boolean isAutoResize, Align align) {\r\n+            this.width = width;\r\n+            this.isAutoResize = isAutoResize;\r\n+            this.align = align;\r\n+        }\r\n+\r\n+        public ColumnDefine(Align align) {\r\n+            this(0, true, align);\r\n+        }\r\n+\r\n+        public ColumnDefine(int width) {\r\n+            this(width, false, Align.LEFT);\r\n+        }\r\n+\r\n+        public ColumnDefine(int width, Align align) {\r\n+            this(width, false, align);\r\n+        }\r\n+\r\n+        public ColumnDefine() {\r\n+            this(Align.LEFT);\r\n+        }\r\n+\r\n+        /**\r\n+         * get current width\r\n+         *\r\n+         * @return width\r\n+         */\r\n+        public int getWidth() {\r\n+\r\n+            // if not auto resize, return preset width\r\n+            if (!isAutoResize) {\r\n+                return width;\r\n+            }\r\n+\r\n+            // if it's auto resize, then calculate the possible max width\r\n+            int maxWidth = 0;\r\n+            for (String data : rows) {\r\n+                maxWidth = max(width(data), maxWidth);\r\n+            }\r\n+\r\n+            return maxWidth;\r\n+        }\r\n+\r\n+        /**\r\n+         * get rows for the current column\r\n+         *\r\n+         * @return current column's rows\r\n+         */\r\n+        public int getRowCount() {\r\n+            return rows.size();\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * set padding\r\n+     *\r\n+     * @param padding padding\r\n+     */\r\n+    public TTable padding(int padding) {\r\n+        this.padding = padding;\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * get column count\r\n+     *\r\n+     * @return column count\r\n+     */\r\n+    public int getColumnCount() {\r\n+        return columnDefineArray.length;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * replace tab to four spaces\r\n+     *\r\n+     * @param string the original string\r\n+     * @return the replaced string\r\n+     */\r\n+    private static String replaceTab(String string) {\r\n+        return replace(string, \"\\t\", \"    \");\r\n+    }\r\n+\r\n+    /**\r\n+     * visible width for the given string.\r\n+     *\r\n+     * for example: \"abc\\n1234\"'s width is 4.\r\n+     *\r\n+     * @param string the given string\r\n+     * @return visible width\r\n+     */\r\n+    private static int width(String string) {\r\n+        int maxWidth = 0;\r\n+        try (Scanner scanner = new Scanner(new StringReader(string))) {\r\n+            while (scanner.hasNextLine()) {\r\n+                maxWidth = max(length(scanner.nextLine()), maxWidth);\r\n+            }\r\n+        }\r\n+        return maxWidth;\r\n+    }\r\n+\r\n+    /**\r\n+     * get border\r\n+     *\r\n+     * @return table border\r\n+     */\r\n+    public Border getBorder() {\r\n+        return border;\r\n+    }\r\n+\r\n+    /**\r\n+     * border style\r\n+     */\r\n+    public class Border {\r\n+\r\n+        private int borders = BORDER_OUTER | BORDER_INNER;\r\n+\r\n+        /**\r\n+         * border outer top\r\n+         */\r\n+        public static final int BORDER_OUTER_TOP = 1 << 0;\r\n+\r\n+        /**\r\n+         * border outer right\r\n+         */\r\n+        public static final int BORDER_OUTER_RIGHT = 1 << 1;\r\n+\r\n+        /**\r\n+         * border outer bottom\r\n+         */\r\n+        public static final int BORDER_OUTER_BOTTOM = 1 << 2;\r\n+\r\n+        /**\r\n+         * border outer left\r\n+         */\r\n+        public static final int BORDER_OUTER_LEFT = 1 << 3;\r\n+\r\n+        /**\r\n+         * inner border: horizon\r\n+         */\r\n+        public static final int BORDER_INNER_H = 1 << 4;\r\n+\r\n+        /**\r\n+         * inner border: vertical\r\n+         */\r\n+        public static final int BORDER_INNER_V = 1 << 5;\r\n+\r\n+        /**\r\n+         * outer border\r\n+         */\r\n+        public static final int BORDER_OUTER = BORDER_OUTER_TOP | BORDER_OUTER_BOTTOM | BORDER_OUTER_LEFT | BORDER_OUTER_RIGHT;\r\n+\r\n+        /**\r\n+         * inner border\r\n+         */\r\n+        public static final int BORDER_INNER = BORDER_INNER_H | BORDER_INNER_V;\r\n+\r\n+        /**\r\n+         * no border\r\n+         */\r\n+        public static final int BORDER_NON = 0;\r\n+\r\n+        /**\r\n+         * whether has one of the specified border styles\r\n+         *\r\n+         * @param borderArray border styles\r\n+         * @return whether has one of the specified border styles\r\n+         */\r\n+        public boolean has(int... borderArray) {\r\n+            if (null == borderArray) {\r\n+                return false;\r\n+            }\r\n+            for (int b : borderArray) {\r\n+                if ((this.borders & b) == b) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+            return false;\r\n+        }\r\n+\r\n+        /**\r\n+         * get border style\r\n+         *\r\n+         * @return border style\r\n+         */\r\n+        public int get() {\r\n+            return borders;\r\n+        }\r\n+\r\n+        /**\r\n+         * set border style\r\n+         *\r\n+         * @param border border style\r\n+         * @return this\r\n+         */\r\n+        public Border set(int border) {\r\n+            this.borders = border;\r\n+            return this;\r\n+        }\r\n+\r\n+        public Border add(int border) {\r\n+            return set(get() | border);\r\n+        }\r\n+\r\n+        public Border remove(int border) {\r\n+            return set(get() ^ border);\r\n+        }\r\n+\r\n+    }\r\n+\r\n+\r\n+    public static String wrap(String string, int width) {\r\n+        final StringBuilder sb = new StringBuilder();\r\n+        final char[] buffer = string.toCharArray();\r\n+        int count = 0;\r\n+        for (char c : buffer) {\r\n+\r\n+            if (count == width) {\r\n+                count = 0;\r\n+                sb.append('\\n');\r\n+                if (c == '\\n') {\r\n+                    continue;\r\n+                }\r\n+            }\r\n+\r\n+            if (c == '\\n') {\r\n+                count = 0;\r\n+            } else {\r\n+                count++;\r\n+            }\r\n+\r\n+            sb.append(c);\r\n+\r\n+        }\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/textui/TTree.java", "source2": "org/apache/dubbo/qos/textui/TTree.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,266 +1,266 @@\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.qos.textui;\n-\n-import java.io.StringReader;\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Scanner;\n-\n-import static java.lang.System.currentTimeMillis;\n-import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\n-import static org.apache.dubbo.common.utils.StringUtils.length;\n-import static org.apache.dubbo.common.utils.StringUtils.repeat;\n-\n-/**\n- * tree\n- */\n-public class TTree implements TComponent {\n-\n-    private static final String STEP_FIRST_CHAR = \"`---\";\n-    private static final String STEP_NORMAL_CHAR = \"+---\";\n-    private static final String STEP_HAS_BOARD = \"|   \";\n-    private static final String STEP_EMPTY_BOARD = \"    \";\n-\n-    // should output cost or not\n-    private final boolean isPrintCost;\n-\n-    // tree node\n-    private final Node root;\n-\n-    // current node\n-    private Node current;\n-\n-\n-    public TTree(boolean isPrintCost, String title) {\n-        this.root = new Node(title).markBegin().markEnd();\n-        this.current = root;\n-        this.isPrintCost = isPrintCost;\n-    }\n-\n-\n-    @Override\n-    public String rendering() {\n-\n-        final StringBuilder treeSB = new StringBuilder();\n-        recursive(0, true, \"\", root, new Callback() {\n-\n-            @Override\n-            public void callback(int deep, boolean isLast, String prefix, Node node) {\n-\n-                final boolean hasChild = !node.children.isEmpty();\n-                final String stepString = isLast ? STEP_FIRST_CHAR : STEP_NORMAL_CHAR;\n-                final int stepStringLength = length(stepString);\n-                treeSB.append(prefix).append(stepString);\n-\n-                int costPrefixLength = 0;\n-                if (hasChild) {\n-                    treeSB.append(\"+\");\n-                }\n-                if (isPrintCost\n-                        && !node.isRoot()) {\n-                    final String costPrefix = String.format(\"[%s,%sms]\", (node.endTimestamp - root.beginTimestamp), (node.endTimestamp - node.beginTimestamp));\n-                    costPrefixLength = length(costPrefix);\n-                    treeSB.append(costPrefix);\n-                }\n-\n-                try (Scanner scanner = new Scanner(new StringReader(node.data.toString()))) {\n-                    boolean isFirst = true;\n-                    while (scanner.hasNextLine()) {\n-                        if (isFirst) {\n-                            treeSB.append(scanner.nextLine()).append(\"\\n\");\n-                            isFirst = false;\n-                        } else {\n-                            treeSB.append(prefix)\n-                                    .append(repeat(' ', stepStringLength))\n-                                    .append(hasChild ? \"|\" : EMPTY_STRING)\n-                                    .append(repeat(' ', costPrefixLength))\n-                                    .append(scanner.nextLine())\n-                                    .append(System.lineSeparator());\n-                        }\n-                    }\n-                }\n-\n-            }\n-\n-        });\n-\n-        return treeSB.toString();\n-    }\n-\n-    /**\n-     * recursive visit\n-     */\n-    private void recursive(int deep, boolean isLast, String prefix, Node node, Callback callback) {\n-        callback.callback(deep, isLast, prefix, node);\n-        if (!node.isLeaf()) {\n-            final int size = node.children.size();\n-            for (int index = 0; index < size; index++) {\n-                final boolean isLastFlag = index == size - 1;\n-                final String currentPrefix = isLast ? prefix + STEP_EMPTY_BOARD : prefix + STEP_HAS_BOARD;\n-                recursive(\n-                        deep + 1,\n-                        isLastFlag,\n-                        currentPrefix,\n-                        node.children.get(index),\n-                        callback\n-                );\n-            }\n-        }\n-    }\n-\n-    public boolean isTop() {\n-        return current.isRoot();\n-    }\n-\n-    /**\n-     * create a branch node\n-     *\n-     * @param data node data\n-     * @return this\n-     */\n-    public TTree begin(Object data) {\n-        current = new Node(current, data);\n-        current.markBegin();\n-        return this;\n-    }\n-\n-    public TTree begin() {\n-        return begin(null);\n-    }\n-\n-    public Object get() {\n-        if (current.isRoot()) {\n-            throw new IllegalStateException(\"current node is root.\");\n-        }\n-        return current.data;\n-    }\n-\n-    public TTree set(Object data) {\n-        if (current.isRoot()) {\n-            throw new IllegalStateException(\"current node is root.\");\n-        }\n-        current.data = data;\n-        return this;\n-    }\n-\n-    /**\n-     * end a branch node\n-     *\n-     * @return this\n-     */\n-    public TTree end() {\n-        if (current.isRoot()) {\n-            throw new IllegalStateException(\"current node is root.\");\n-        }\n-        current.markEnd();\n-        current = current.parent;\n-        return this;\n-    }\n-\n-\n-    /**\n-     * tree node\n-     */\n-    private static class Node {\n-\n-        /**\n-         * parent node\n-         */\n-        final Node parent;\n-\n-        /**\n-         * node data\n-         */\n-        Object data;\n-\n-        /**\n-         * child nodes\n-         */\n-        final List<Node> children = new ArrayList<Node>();\n-\n-        /**\n-         * begin timestamp\n-         */\n-        private long beginTimestamp;\n-\n-        /**\n-         * end timestamp\n-         */\n-        private long endTimestamp;\n-\n-        /**\n-         * construct root node\n-         */\n-        private Node(Object data) {\n-            this.parent = null;\n-            this.data = data;\n-        }\n-\n-        /**\n-         * construct a regular node\n-         *\n-         * @param parent parent node\n-         * @param data   node data\n-         */\n-        private Node(Node parent, Object data) {\n-            this.parent = parent;\n-            this.data = data;\n-            parent.children.add(this);\n-        }\n-\n-        /**\n-         * is the current node the root node\n-         *\n-         * @return true / false\n-         */\n-        boolean isRoot() {\n-            return null == parent;\n-        }\n-\n-        /**\n-         * if the current node the leaf node\n-         *\n-         * @return true / false\n-         */\n-        boolean isLeaf() {\n-            return children.isEmpty();\n-        }\n-\n-        Node markBegin() {\n-            beginTimestamp = currentTimeMillis();\n-            return this;\n-        }\n-\n-        Node markEnd() {\n-            endTimestamp = currentTimeMillis();\n-            return this;\n-        }\n-\n-    }\n-\n-\n-    /**\n-     * callback interface for recursive visit\n-     */\n-    private interface Callback {\n-\n-        void callback(int deep, boolean isLast, String prefix, Node node);\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.qos.textui;\r\n+\r\n+import java.io.StringReader;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Scanner;\r\n+\r\n+import static java.lang.System.currentTimeMillis;\r\n+import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\r\n+import static org.apache.dubbo.common.utils.StringUtils.length;\r\n+import static org.apache.dubbo.common.utils.StringUtils.repeat;\r\n+\r\n+/**\r\n+ * tree\r\n+ */\r\n+public class TTree implements TComponent {\r\n+\r\n+    private static final String STEP_FIRST_CHAR = \"`---\";\r\n+    private static final String STEP_NORMAL_CHAR = \"+---\";\r\n+    private static final String STEP_HAS_BOARD = \"|   \";\r\n+    private static final String STEP_EMPTY_BOARD = \"    \";\r\n+\r\n+    // should output cost or not\r\n+    private final boolean isPrintCost;\r\n+\r\n+    // tree node\r\n+    private final Node root;\r\n+\r\n+    // current node\r\n+    private Node current;\r\n+\r\n+\r\n+    public TTree(boolean isPrintCost, String title) {\r\n+        this.root = new Node(title).markBegin().markEnd();\r\n+        this.current = root;\r\n+        this.isPrintCost = isPrintCost;\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public String rendering() {\r\n+\r\n+        final StringBuilder treeSB = new StringBuilder();\r\n+        recursive(0, true, \"\", root, new Callback() {\r\n+\r\n+            @Override\r\n+            public void callback(int deep, boolean isLast, String prefix, Node node) {\r\n+\r\n+                final boolean hasChild = !node.children.isEmpty();\r\n+                final String stepString = isLast ? STEP_FIRST_CHAR : STEP_NORMAL_CHAR;\r\n+                final int stepStringLength = length(stepString);\r\n+                treeSB.append(prefix).append(stepString);\r\n+\r\n+                int costPrefixLength = 0;\r\n+                if (hasChild) {\r\n+                    treeSB.append(\"+\");\r\n+                }\r\n+                if (isPrintCost\r\n+                        && !node.isRoot()) {\r\n+                    final String costPrefix = String.format(\"[%s,%sms]\", (node.endTimestamp - root.beginTimestamp), (node.endTimestamp - node.beginTimestamp));\r\n+                    costPrefixLength = length(costPrefix);\r\n+                    treeSB.append(costPrefix);\r\n+                }\r\n+\r\n+                try (Scanner scanner = new Scanner(new StringReader(node.data.toString()))) {\r\n+                    boolean isFirst = true;\r\n+                    while (scanner.hasNextLine()) {\r\n+                        if (isFirst) {\r\n+                            treeSB.append(scanner.nextLine()).append(\"\\n\");\r\n+                            isFirst = false;\r\n+                        } else {\r\n+                            treeSB.append(prefix)\r\n+                                    .append(repeat(' ', stepStringLength))\r\n+                                    .append(hasChild ? \"|\" : EMPTY_STRING)\r\n+                                    .append(repeat(' ', costPrefixLength))\r\n+                                    .append(scanner.nextLine())\r\n+                                    .append(System.lineSeparator());\r\n+                        }\r\n+                    }\r\n+                }\r\n+\r\n+            }\r\n+\r\n+        });\r\n+\r\n+        return treeSB.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * recursive visit\r\n+     */\r\n+    private void recursive(int deep, boolean isLast, String prefix, Node node, Callback callback) {\r\n+        callback.callback(deep, isLast, prefix, node);\r\n+        if (!node.isLeaf()) {\r\n+            final int size = node.children.size();\r\n+            for (int index = 0; index < size; index++) {\r\n+                final boolean isLastFlag = index == size - 1;\r\n+                final String currentPrefix = isLast ? prefix + STEP_EMPTY_BOARD : prefix + STEP_HAS_BOARD;\r\n+                recursive(\r\n+                        deep + 1,\r\n+                        isLastFlag,\r\n+                        currentPrefix,\r\n+                        node.children.get(index),\r\n+                        callback\r\n+                );\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public boolean isTop() {\r\n+        return current.isRoot();\r\n+    }\r\n+\r\n+    /**\r\n+     * create a branch node\r\n+     *\r\n+     * @param data node data\r\n+     * @return this\r\n+     */\r\n+    public TTree begin(Object data) {\r\n+        current = new Node(current, data);\r\n+        current.markBegin();\r\n+        return this;\r\n+    }\r\n+\r\n+    public TTree begin() {\r\n+        return begin(null);\r\n+    }\r\n+\r\n+    public Object get() {\r\n+        if (current.isRoot()) {\r\n+            throw new IllegalStateException(\"current node is root.\");\r\n+        }\r\n+        return current.data;\r\n+    }\r\n+\r\n+    public TTree set(Object data) {\r\n+        if (current.isRoot()) {\r\n+            throw new IllegalStateException(\"current node is root.\");\r\n+        }\r\n+        current.data = data;\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * end a branch node\r\n+     *\r\n+     * @return this\r\n+     */\r\n+    public TTree end() {\r\n+        if (current.isRoot()) {\r\n+            throw new IllegalStateException(\"current node is root.\");\r\n+        }\r\n+        current.markEnd();\r\n+        current = current.parent;\r\n+        return this;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * tree node\r\n+     */\r\n+    private static class Node {\r\n+\r\n+        /**\r\n+         * parent node\r\n+         */\r\n+        final Node parent;\r\n+\r\n+        /**\r\n+         * node data\r\n+         */\r\n+        Object data;\r\n+\r\n+        /**\r\n+         * child nodes\r\n+         */\r\n+        final List<Node> children = new ArrayList<Node>();\r\n+\r\n+        /**\r\n+         * begin timestamp\r\n+         */\r\n+        private long beginTimestamp;\r\n+\r\n+        /**\r\n+         * end timestamp\r\n+         */\r\n+        private long endTimestamp;\r\n+\r\n+        /**\r\n+         * construct root node\r\n+         */\r\n+        private Node(Object data) {\r\n+            this.parent = null;\r\n+            this.data = data;\r\n+        }\r\n+\r\n+        /**\r\n+         * construct a regular node\r\n+         *\r\n+         * @param parent parent node\r\n+         * @param data   node data\r\n+         */\r\n+        private Node(Node parent, Object data) {\r\n+            this.parent = parent;\r\n+            this.data = data;\r\n+            parent.children.add(this);\r\n+        }\r\n+\r\n+        /**\r\n+         * is the current node the root node\r\n+         *\r\n+         * @return true / false\r\n+         */\r\n+        boolean isRoot() {\r\n+            return null == parent;\r\n+        }\r\n+\r\n+        /**\r\n+         * if the current node the leaf node\r\n+         *\r\n+         * @return true / false\r\n+         */\r\n+        boolean isLeaf() {\r\n+            return children.isEmpty();\r\n+        }\r\n+\r\n+        Node markBegin() {\r\n+            beginTimestamp = currentTimeMillis();\r\n+            return this;\r\n+        }\r\n+\r\n+        Node markEnd() {\r\n+            endTimestamp = currentTimeMillis();\r\n+            return this;\r\n+        }\r\n+\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * callback interface for recursive visit\r\n+     */\r\n+    private interface Callback {\r\n+\r\n+        void callback(int deep, boolean isLast, String prefix, Node node);\r\n+\r\n+    }\r\n+\r\n+}\r\n"}]}
