{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,27 +1,27 @@\n-Zip file size: 49824 bytes, number of entries: 25\n+Zip file size: 50406 bytes, number of entries: 25\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/\n -rw----     2.0 fat     2964 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      176 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       61 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.Transporter\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-remoting-mina/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.properties\n--rw----     2.0 fat     2445 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.xml\n+-rw----     2.0 fat     2383 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/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/remoting/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/\n--rw----     2.0 fat     5876 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaChannel.java\n--rw----     2.0 fat     7402 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaClient.java\n--rw----     2.0 fat     6103 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java\n+-rw----     2.0 fat     6067 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaChannel.java\n+-rw----     2.0 fat     7576 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaClient.java\n+-rw----     2.0 fat     6270 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java\n -rw----     2.0 fat     3255 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaHandler.java\n--rw----     2.0 fat     4221 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaServer.java\n+-rw----     2.0 fat     4333 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaServer.java\n -rw----     2.0 fat     1580 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaTransporter.java\n-25 files, 45466 bytes uncompressed, 45466 bytes compressed:  0.0%\n+25 files, 46048 bytes uncompressed, 46048 bytes compressed:  0.0%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -312,1056 +312,1056 @@\n #\n 3CDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 3CE1   Length              0005 (5)\n 3CE3   Flags               01 (1) 'Modification'\n 3CE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n 3CE8 PAYLOAD\n \n-4675 DATA DESCRIPTOR       08074B50 (134695760)\n-4679 CRC                   00C3B148 (12824904)\n-467D Compressed Size       0000098D (2445)\n-4681 Uncompressed Size     0000098D (2445)\n-\n-4685 LOCAL HEADER #14      04034B50 (67324752)\n-4689 Extract Zip Spec      14 (20) '2.0'\n-468A Extract OS            00 (0) 'MS-DOS'\n-468B General Purpose Flag  0000 (0)\n-468D Compression Method    0000 (0) 'Stored'\n-468F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4693 CRC                   00000000 (0)\n-4697 Compressed Size       00000000 (0)\n-469B Uncompressed Size     00000000 (0)\n-469F Filename Length       0004 (4)\n-46A1 Extra Length          0009 (9)\n-46A3 Filename              'XXXX'\n-#\n-# WARNING: Offset 0x46A3: Filename 'XXXX'\n-#          Zero length filename\n-#\n-46A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-46A9   Length              0005 (5)\n-46AB   Flags               01 (1) 'Modification'\n-46AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-46B0 LOCAL HEADER #15      04034B50 (67324752)\n-46B4 Extract Zip Spec      14 (20) '2.0'\n-46B5 Extract OS            00 (0) 'MS-DOS'\n-46B6 General Purpose Flag  0000 (0)\n-46B8 Compression Method    0000 (0) 'Stored'\n-46BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46BE CRC                   00000000 (0)\n-46C2 Compressed Size       00000000 (0)\n-46C6 Uncompressed Size     00000000 (0)\n-46CA Filename Length       000B (11)\n-46CC Extra Length          0009 (9)\n-46CE Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46CE: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-46D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-46DB   Length              0005 (5)\n-46DD   Flags               01 (1) 'Modification'\n-46DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-46E2 LOCAL HEADER #16      04034B50 (67324752)\n-46E6 Extract Zip Spec      14 (20) '2.0'\n-46E7 Extract OS            00 (0) 'MS-DOS'\n-46E8 General Purpose Flag  0000 (0)\n-46EA Compression Method    0000 (0) 'Stored'\n-46EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46F0 CRC                   00000000 (0)\n-46F4 Compressed Size       00000000 (0)\n-46F8 Uncompressed Size     00000000 (0)\n-46FC Filename Length       0011 (17)\n-46FE Extra Length          0009 (9)\n-4700 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4700: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4711 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4713   Length              0005 (5)\n-4715   Flags               01 (1) 'Modification'\n-4716   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-471A LOCAL HEADER #17      04034B50 (67324752)\n-471E Extract Zip Spec      14 (20) '2.0'\n-471F Extract OS            00 (0) 'MS-DOS'\n-4720 General Purpose Flag  0000 (0)\n-4722 Compression Method    0000 (0) 'Stored'\n-4724 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4728 CRC                   00000000 (0)\n-472C Compressed Size       00000000 (0)\n-4730 Uncompressed Size     00000000 (0)\n-4734 Filename Length       001A (26)\n-4736 Extra Length          0009 (9)\n-4738 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4738: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4752 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4754   Length              0005 (5)\n-4756   Flags               01 (1) 'Modification'\n-4757   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-475B LOCAL HEADER #18      04034B50 (67324752)\n-475F Extract Zip Spec      14 (20) '2.0'\n-4760 Extract OS            00 (0) 'MS-DOS'\n-4761 General Purpose Flag  0000 (0)\n-4763 Compression Method    0000 (0) 'Stored'\n-4765 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4769 CRC                   00000000 (0)\n-476D Compressed Size       00000000 (0)\n-4771 Uncompressed Size     00000000 (0)\n-4775 Filename Length       0024 (36)\n-4777 Extra Length          0009 (9)\n-4779 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4779: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-479D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-479F   Length              0005 (5)\n-47A1   Flags               01 (1) 'Modification'\n-47A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-47A6 LOCAL HEADER #19      04034B50 (67324752)\n-47AA Extract Zip Spec      14 (20) '2.0'\n-47AB Extract OS            00 (0) 'MS-DOS'\n-47AC General Purpose Flag  0000 (0)\n-47AE Compression Method    0000 (0) 'Stored'\n-47B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47B4 CRC                   00000000 (0)\n-47B8 Compressed Size       00000000 (0)\n-47BC Uncompressed Size     00000000 (0)\n-47C0 Filename Length       0029 (41)\n-47C2 Extra Length          0009 (9)\n-47C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47EF   Length              0005 (5)\n-47F1   Flags               01 (1) 'Modification'\n-47F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-47F6 LOCAL HEADER #20      04034B50 (67324752)\n-47FA Extract Zip Spec      14 (20) '2.0'\n-47FB Extract OS            00 (0) 'MS-DOS'\n-47FC General Purpose Flag  0008 (8)\n+4637 DATA DESCRIPTOR       08074B50 (134695760)\n+463B CRC                   5512F588 (1427305864)\n+463F Compressed Size       0000094F (2383)\n+4643 Uncompressed Size     0000094F (2383)\n+\n+4647 LOCAL HEADER #14      04034B50 (67324752)\n+464B Extract Zip Spec      14 (20) '2.0'\n+464C Extract OS            00 (0) 'MS-DOS'\n+464D General Purpose Flag  0000 (0)\n+464F Compression Method    0000 (0) 'Stored'\n+4651 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4655 CRC                   00000000 (0)\n+4659 Compressed Size       00000000 (0)\n+465D Uncompressed Size     00000000 (0)\n+4661 Filename Length       0004 (4)\n+4663 Extra Length          0009 (9)\n+4665 Filename              'XXXX'\n+#\n+# WARNING: Offset 0x4665: Filename 'XXXX'\n+#          Zero length filename\n+#\n+4669 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+466B   Length              0005 (5)\n+466D   Flags               01 (1) 'Modification'\n+466E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4672 LOCAL HEADER #15      04034B50 (67324752)\n+4676 Extract Zip Spec      14 (20) '2.0'\n+4677 Extract OS            00 (0) 'MS-DOS'\n+4678 General Purpose Flag  0000 (0)\n+467A Compression Method    0000 (0) 'Stored'\n+467C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4680 CRC                   00000000 (0)\n+4684 Compressed Size       00000000 (0)\n+4688 Uncompressed Size     00000000 (0)\n+468C Filename Length       000B (11)\n+468E Extra Length          0009 (9)\n+4690 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4690: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+469B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+469D   Length              0005 (5)\n+469F   Flags               01 (1) 'Modification'\n+46A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+46A4 LOCAL HEADER #16      04034B50 (67324752)\n+46A8 Extract Zip Spec      14 (20) '2.0'\n+46A9 Extract OS            00 (0) 'MS-DOS'\n+46AA General Purpose Flag  0000 (0)\n+46AC Compression Method    0000 (0) 'Stored'\n+46AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46B2 CRC                   00000000 (0)\n+46B6 Compressed Size       00000000 (0)\n+46BA Uncompressed Size     00000000 (0)\n+46BE Filename Length       0011 (17)\n+46C0 Extra Length          0009 (9)\n+46C2 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46C2: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46D5   Length              0005 (5)\n+46D7   Flags               01 (1) 'Modification'\n+46D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+46DC LOCAL HEADER #17      04034B50 (67324752)\n+46E0 Extract Zip Spec      14 (20) '2.0'\n+46E1 Extract OS            00 (0) 'MS-DOS'\n+46E2 General Purpose Flag  0000 (0)\n+46E4 Compression Method    0000 (0) 'Stored'\n+46E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46EA CRC                   00000000 (0)\n+46EE Compressed Size       00000000 (0)\n+46F2 Uncompressed Size     00000000 (0)\n+46F6 Filename Length       001A (26)\n+46F8 Extra Length          0009 (9)\n+46FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4714 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4716   Length              0005 (5)\n+4718   Flags               01 (1) 'Modification'\n+4719   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+471D LOCAL HEADER #18      04034B50 (67324752)\n+4721 Extract Zip Spec      14 (20) '2.0'\n+4722 Extract OS            00 (0) 'MS-DOS'\n+4723 General Purpose Flag  0000 (0)\n+4725 Compression Method    0000 (0) 'Stored'\n+4727 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+472B CRC                   00000000 (0)\n+472F Compressed Size       00000000 (0)\n+4733 Uncompressed Size     00000000 (0)\n+4737 Filename Length       0024 (36)\n+4739 Extra Length          0009 (9)\n+473B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x473B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+475F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4761   Length              0005 (5)\n+4763   Flags               01 (1) 'Modification'\n+4764   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4768 LOCAL HEADER #19      04034B50 (67324752)\n+476C Extract Zip Spec      14 (20) '2.0'\n+476D Extract OS            00 (0) 'MS-DOS'\n+476E General Purpose Flag  0000 (0)\n+4770 Compression Method    0000 (0) 'Stored'\n+4772 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4776 CRC                   00000000 (0)\n+477A Compressed Size       00000000 (0)\n+477E Uncompressed Size     00000000 (0)\n+4782 Filename Length       0029 (41)\n+4784 Extra Length          0009 (9)\n+4786 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4786: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47B1   Length              0005 (5)\n+47B3   Flags               01 (1) 'Modification'\n+47B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+47B8 LOCAL HEADER #20      04034B50 (67324752)\n+47BC Extract Zip Spec      14 (20) '2.0'\n+47BD Extract OS            00 (0) 'MS-DOS'\n+47BE General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-47FE Compression Method    0000 (0) 'Stored'\n-4800 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4804 CRC                   00000000 (0)\n-4808 Compressed Size       00000000 (0)\n-480C Uncompressed Size     00000000 (0)\n-4810 Filename Length       0039 (57)\n-4812 Extra Length          0009 (9)\n-4814 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4814: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-484D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-484F   Length              0005 (5)\n-4851   Flags               01 (1) 'Modification'\n-4852   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4856 PAYLOAD\n-\n-5F4A DATA DESCRIPTOR       08074B50 (134695760)\n-5F4E CRC                   3D7F2712 (1031743250)\n-5F52 Compressed Size       000016F4 (5876)\n-5F56 Uncompressed Size     000016F4 (5876)\n-\n-5F5A LOCAL HEADER #21      04034B50 (67324752)\n-5F5E Extract Zip Spec      14 (20) '2.0'\n-5F5F Extract OS            00 (0) 'MS-DOS'\n-5F60 General Purpose Flag  0008 (8)\n+47C0 Compression Method    0000 (0) 'Stored'\n+47C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+47C6 CRC                   00000000 (0)\n+47CA Compressed Size       00000000 (0)\n+47CE Uncompressed Size     00000000 (0)\n+47D2 Filename Length       0039 (57)\n+47D4 Extra Length          0009 (9)\n+47D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+480F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4811   Length              0005 (5)\n+4813   Flags               01 (1) 'Modification'\n+4814   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4818 PAYLOAD\n+\n+5FCB DATA DESCRIPTOR       08074B50 (134695760)\n+5FCF CRC                   0EB2B1F5 (246591989)\n+5FD3 Compressed Size       000017B3 (6067)\n+5FD7 Uncompressed Size     000017B3 (6067)\n+\n+5FDB LOCAL HEADER #21      04034B50 (67324752)\n+5FDF Extract Zip Spec      14 (20) '2.0'\n+5FE0 Extract OS            00 (0) 'MS-DOS'\n+5FE1 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-5F62 Compression Method    0000 (0) 'Stored'\n-5F64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F68 CRC                   00000000 (0)\n-5F6C Compressed Size       00000000 (0)\n-5F70 Uncompressed Size     00000000 (0)\n-5F74 Filename Length       0038 (56)\n-5F76 Extra Length          0009 (9)\n-5F78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5FB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5FB2   Length              0005 (5)\n-5FB4   Flags               01 (1) 'Modification'\n-5FB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5FB9 PAYLOAD\n-\n-7CA3 DATA DESCRIPTOR       08074B50 (134695760)\n-7CA7 CRC                   1A88D275 (445174389)\n-7CAB Compressed Size       00001CEA (7402)\n-7CAF Uncompressed Size     00001CEA (7402)\n-\n-7CB3 LOCAL HEADER #22      04034B50 (67324752)\n-7CB7 Extract Zip Spec      14 (20) '2.0'\n-7CB8 Extract OS            00 (0) 'MS-DOS'\n-7CB9 General Purpose Flag  0008 (8)\n+5FE3 Compression Method    0000 (0) 'Stored'\n+5FE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FE9 CRC                   00000000 (0)\n+5FED Compressed Size       00000000 (0)\n+5FF1 Uncompressed Size     00000000 (0)\n+5FF5 Filename Length       0038 (56)\n+5FF7 Extra Length          0009 (9)\n+5FF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6031 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6033   Length              0005 (5)\n+6035   Flags               01 (1) 'Modification'\n+6036   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+603A PAYLOAD\n+\n+7DD2 DATA DESCRIPTOR       08074B50 (134695760)\n+7DD6 CRC                   B6BACA35 (3065694773)\n+7DDA Compressed Size       00001D98 (7576)\n+7DDE Uncompressed Size     00001D98 (7576)\n+\n+7DE2 LOCAL HEADER #22      04034B50 (67324752)\n+7DE6 Extract Zip Spec      14 (20) '2.0'\n+7DE7 Extract OS            00 (0) 'MS-DOS'\n+7DE8 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-7CBB Compression Method    0000 (0) 'Stored'\n-7CBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7CC1 CRC                   00000000 (0)\n-7CC5 Compressed Size       00000000 (0)\n-7CC9 Uncompressed Size     00000000 (0)\n-7CCD Filename Length       003E (62)\n-7CCF Extra Length          0009 (9)\n-7CD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7CD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7D0F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7D11   Length              0005 (5)\n-7D13   Flags               01 (1) 'Modification'\n-7D14   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-7D18 PAYLOAD\n-\n-94EF DATA DESCRIPTOR       08074B50 (134695760)\n-94F3 CRC                   72A94157 (1923694935)\n-94F7 Compressed Size       000017D7 (6103)\n-94FB Uncompressed Size     000017D7 (6103)\n-\n-94FF LOCAL HEADER #23      04034B50 (67324752)\n-9503 Extract Zip Spec      14 (20) '2.0'\n-9504 Extract OS            00 (0) 'MS-DOS'\n-9505 General Purpose Flag  0008 (8)\n+7DEA Compression Method    0000 (0) 'Stored'\n+7DEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7DF0 CRC                   00000000 (0)\n+7DF4 Compressed Size       00000000 (0)\n+7DF8 Uncompressed Size     00000000 (0)\n+7DFC Filename Length       003E (62)\n+7DFE Extra Length          0009 (9)\n+7E00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7E00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7E3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7E40   Length              0005 (5)\n+7E42   Flags               01 (1) 'Modification'\n+7E43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+7E47 PAYLOAD\n+\n+96C5 DATA DESCRIPTOR       08074B50 (134695760)\n+96C9 CRC                   E154BEF4 (3780427508)\n+96CD Compressed Size       0000187E (6270)\n+96D1 Uncompressed Size     0000187E (6270)\n+\n+96D5 LOCAL HEADER #23      04034B50 (67324752)\n+96D9 Extract Zip Spec      14 (20) '2.0'\n+96DA Extract OS            00 (0) 'MS-DOS'\n+96DB General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-9507 Compression Method    0000 (0) 'Stored'\n-9509 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-950D CRC                   00000000 (0)\n-9511 Compressed Size       00000000 (0)\n-9515 Uncompressed Size     00000000 (0)\n-9519 Filename Length       0039 (57)\n-951B Extra Length          0009 (9)\n-951D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x951D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9556 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9558   Length              0005 (5)\n-955A   Flags               01 (1) 'Modification'\n-955B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-955F PAYLOAD\n-\n-A216 DATA DESCRIPTOR       08074B50 (134695760)\n-A21A CRC                   B2448F97 (2990837655)\n-A21E Compressed Size       00000CB7 (3255)\n-A222 Uncompressed Size     00000CB7 (3255)\n-\n-A226 LOCAL HEADER #24      04034B50 (67324752)\n-A22A Extract Zip Spec      14 (20) '2.0'\n-A22B Extract OS            00 (0) 'MS-DOS'\n-A22C General Purpose Flag  0008 (8)\n+96DD Compression Method    0000 (0) 'Stored'\n+96DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+96E3 CRC                   00000000 (0)\n+96E7 Compressed Size       00000000 (0)\n+96EB Uncompressed Size     00000000 (0)\n+96EF Filename Length       0039 (57)\n+96F1 Extra Length          0009 (9)\n+96F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x96F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+972C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+972E   Length              0005 (5)\n+9730   Flags               01 (1) 'Modification'\n+9731   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+9735 PAYLOAD\n+\n+A3EC DATA DESCRIPTOR       08074B50 (134695760)\n+A3F0 CRC                   B2448F97 (2990837655)\n+A3F4 Compressed Size       00000CB7 (3255)\n+A3F8 Uncompressed Size     00000CB7 (3255)\n+\n+A3FC LOCAL HEADER #24      04034B50 (67324752)\n+A400 Extract Zip Spec      14 (20) '2.0'\n+A401 Extract OS            00 (0) 'MS-DOS'\n+A402 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-A22E Compression Method    0000 (0) 'Stored'\n-A230 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A234 CRC                   00000000 (0)\n-A238 Compressed Size       00000000 (0)\n-A23C Uncompressed Size     00000000 (0)\n-A240 Filename Length       0038 (56)\n-A242 Extra Length          0009 (9)\n-A244 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA244: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A27C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A27E   Length              0005 (5)\n-A280   Flags               01 (1) 'Modification'\n-A281   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-A285 PAYLOAD\n-\n-B302 DATA DESCRIPTOR       08074B50 (134695760)\n-B306 CRC                   3C17A7B5 (1008183221)\n-B30A Compressed Size       0000107D (4221)\n-B30E Uncompressed Size     0000107D (4221)\n-\n-B312 LOCAL HEADER #25      04034B50 (67324752)\n-B316 Extract Zip Spec      14 (20) '2.0'\n-B317 Extract OS            00 (0) 'MS-DOS'\n-B318 General Purpose Flag  0008 (8)\n+A404 Compression Method    0000 (0) 'Stored'\n+A406 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A40A CRC                   00000000 (0)\n+A40E Compressed Size       00000000 (0)\n+A412 Uncompressed Size     00000000 (0)\n+A416 Filename Length       0038 (56)\n+A418 Extra Length          0009 (9)\n+A41A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA41A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A452 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A454   Length              0005 (5)\n+A456   Flags               01 (1) 'Modification'\n+A457   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+A45B PAYLOAD\n+\n+B548 DATA DESCRIPTOR       08074B50 (134695760)\n+B54C CRC                   A33A370C (2738501388)\n+B550 Compressed Size       000010ED (4333)\n+B554 Uncompressed Size     000010ED (4333)\n+\n+B558 LOCAL HEADER #25      04034B50 (67324752)\n+B55C Extract Zip Spec      14 (20) '2.0'\n+B55D Extract OS            00 (0) 'MS-DOS'\n+B55E General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-B31A Compression Method    0000 (0) 'Stored'\n-B31C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-B320 CRC                   00000000 (0)\n-B324 Compressed Size       00000000 (0)\n-B328 Uncompressed Size     00000000 (0)\n-B32C Filename Length       003D (61)\n-B32E Extra Length          0009 (9)\n-B330 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xB330: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-B36D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-B36F   Length              0005 (5)\n-B371   Flags               01 (1) 'Modification'\n-B372   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-B376 PAYLOAD\n-\n-B9A2 DATA DESCRIPTOR       08074B50 (134695760)\n-B9A6 CRC                   242C94A2 (606901410)\n-B9AA Compressed Size       0000062C (1580)\n-B9AE Uncompressed Size     0000062C (1580)\n-\n-B9B2 CENTRAL HEADER #1     02014B50 (33639248)\n-B9B6 Created Zip Spec      14 (20) '2.0'\n-B9B7 Created OS            00 (0) 'MS-DOS'\n-B9B8 Extract Zip Spec      14 (20) '2.0'\n-B9B9 Extract OS            00 (0) 'MS-DOS'\n-B9BA General Purpose Flag  0000 (0)\n-B9BC Compression Method    0000 (0) 'Stored'\n-B9BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-B9C2 CRC                   00000000 (0)\n-B9C6 Compressed Size       00000000 (0)\n-B9CA Uncompressed Size     00000000 (0)\n-B9CE Filename Length       0009 (9)\n-B9D0 Extra Length          0009 (9)\n-B9D2 Comment Length        0000 (0)\n-B9D4 Disk Start            0000 (0)\n-B9D6 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-B9D8 Ext File Attributes   00000000 (0)\n-B9DC Local Header Offset   00000000 (0)\n-B9E0 Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0xB9E0: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-B9E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-B9EB   Length              0005 (5)\n-B9ED   Flags               01 (1) 'Modification'\n-B9EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-B9F2 CENTRAL HEADER #2     02014B50 (33639248)\n-B9F6 Created Zip Spec      14 (20) '2.0'\n-B9F7 Created OS            00 (0) 'MS-DOS'\n-B9F8 Extract Zip Spec      14 (20) '2.0'\n-B9F9 Extract OS            00 (0) 'MS-DOS'\n-B9FA General Purpose Flag  0008 (8)\n+B560 Compression Method    0000 (0) 'Stored'\n+B562 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+B566 CRC                   00000000 (0)\n+B56A Compressed Size       00000000 (0)\n+B56E Uncompressed Size     00000000 (0)\n+B572 Filename Length       003D (61)\n+B574 Extra Length          0009 (9)\n+B576 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xB576: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+B5B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+B5B5   Length              0005 (5)\n+B5B7   Flags               01 (1) 'Modification'\n+B5B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+B5BC PAYLOAD\n+\n+BBE8 DATA DESCRIPTOR       08074B50 (134695760)\n+BBEC CRC                   242C94A2 (606901410)\n+BBF0 Compressed Size       0000062C (1580)\n+BBF4 Uncompressed Size     0000062C (1580)\n+\n+BBF8 CENTRAL HEADER #1     02014B50 (33639248)\n+BBFC Created Zip Spec      14 (20) '2.0'\n+BBFD Created OS            00 (0) 'MS-DOS'\n+BBFE Extract Zip Spec      14 (20) '2.0'\n+BBFF Extract OS            00 (0) 'MS-DOS'\n+BC00 General Purpose Flag  0000 (0)\n+BC02 Compression Method    0000 (0) 'Stored'\n+BC04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BC08 CRC                   00000000 (0)\n+BC0C Compressed Size       00000000 (0)\n+BC10 Uncompressed Size     00000000 (0)\n+BC14 Filename Length       0009 (9)\n+BC16 Extra Length          0009 (9)\n+BC18 Comment Length        0000 (0)\n+BC1A Disk Start            0000 (0)\n+BC1C Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BC1E Ext File Attributes   00000000 (0)\n+BC22 Local Header Offset   00000000 (0)\n+BC26 Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0xBC26: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+BC2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BC31   Length              0005 (5)\n+BC33   Flags               01 (1) 'Modification'\n+BC34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BC38 CENTRAL HEADER #2     02014B50 (33639248)\n+BC3C Created Zip Spec      14 (20) '2.0'\n+BC3D Created OS            00 (0) 'MS-DOS'\n+BC3E Extract Zip Spec      14 (20) '2.0'\n+BC3F Extract OS            00 (0) 'MS-DOS'\n+BC40 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-B9FC Compression Method    0000 (0) 'Stored'\n-B9FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BA02 CRC                   16F01C8D (384834701)\n-BA06 Compressed Size       00000B94 (2964)\n-BA0A Uncompressed Size     00000B94 (2964)\n-BA0E Filename Length       0015 (21)\n-BA10 Extra Length          0009 (9)\n-BA12 Comment Length        0000 (0)\n-BA14 Disk Start            0000 (0)\n-BA16 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BA18 Ext File Attributes   00000000 (0)\n-BA1C Local Header Offset   00000030 (48)\n-BA20 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBA20: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BA35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BA37   Length              0005 (5)\n-BA39   Flags               01 (1) 'Modification'\n-BA3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BA3E CENTRAL HEADER #3     02014B50 (33639248)\n-BA42 Created Zip Spec      14 (20) '2.0'\n-BA43 Created OS            00 (0) 'MS-DOS'\n-BA44 Extract Zip Spec      14 (20) '2.0'\n-BA45 Extract OS            00 (0) 'MS-DOS'\n-BA46 General Purpose Flag  0008 (8)\n+BC42 Compression Method    0000 (0) 'Stored'\n+BC44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BC48 CRC                   16F01C8D (384834701)\n+BC4C Compressed Size       00000B94 (2964)\n+BC50 Uncompressed Size     00000B94 (2964)\n+BC54 Filename Length       0015 (21)\n+BC56 Extra Length          0009 (9)\n+BC58 Comment Length        0000 (0)\n+BC5A Disk Start            0000 (0)\n+BC5C Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BC5E Ext File Attributes   00000000 (0)\n+BC62 Local Header Offset   00000030 (48)\n+BC66 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBC66: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BC7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BC7D   Length              0005 (5)\n+BC7F   Flags               01 (1) 'Modification'\n+BC80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BC84 CENTRAL HEADER #3     02014B50 (33639248)\n+BC88 Created Zip Spec      14 (20) '2.0'\n+BC89 Created OS            00 (0) 'MS-DOS'\n+BC8A Extract Zip Spec      14 (20) '2.0'\n+BC8B Extract OS            00 (0) 'MS-DOS'\n+BC8C General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-BA48 Compression Method    0000 (0) 'Stored'\n-BA4A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BA4E CRC                   86E2B4B4 (2263004340)\n-BA52 Compressed Size       00002C5E (11358)\n-BA56 Uncompressed Size     00002C5E (11358)\n-BA5A Filename Length       0010 (16)\n-BA5C Extra Length          0009 (9)\n-BA5E Comment Length        0000 (0)\n-BA60 Disk Start            0000 (0)\n-BA62 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BA64 Ext File Attributes   00000000 (0)\n-BA68 Local Header Offset   00000C10 (3088)\n-BA6C Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBA6C: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BA7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BA7E   Length              0005 (5)\n-BA80   Flags               01 (1) 'Modification'\n-BA81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BA85 CENTRAL HEADER #4     02014B50 (33639248)\n-BA89 Created Zip Spec      14 (20) '2.0'\n-BA8A Created OS            00 (0) 'MS-DOS'\n-BA8B Extract Zip Spec      14 (20) '2.0'\n-BA8C Extract OS            00 (0) 'MS-DOS'\n-BA8D General Purpose Flag  0008 (8)\n+BC8E Compression Method    0000 (0) 'Stored'\n+BC90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BC94 CRC                   86E2B4B4 (2263004340)\n+BC98 Compressed Size       00002C5E (11358)\n+BC9C Uncompressed Size     00002C5E (11358)\n+BCA0 Filename Length       0010 (16)\n+BCA2 Extra Length          0009 (9)\n+BCA4 Comment Length        0000 (0)\n+BCA6 Disk Start            0000 (0)\n+BCA8 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BCAA Ext File Attributes   00000000 (0)\n+BCAE Local Header Offset   00000C10 (3088)\n+BCB2 Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBCB2: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BCC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BCC4   Length              0005 (5)\n+BCC6   Flags               01 (1) 'Modification'\n+BCC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BCCB CENTRAL HEADER #4     02014B50 (33639248)\n+BCCF Created Zip Spec      14 (20) '2.0'\n+BCD0 Created OS            00 (0) 'MS-DOS'\n+BCD1 Extract Zip Spec      14 (20) '2.0'\n+BCD2 Extract OS            00 (0) 'MS-DOS'\n+BCD3 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-BA8F Compression Method    0000 (0) 'Stored'\n-BA91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BA95 CRC                   EE027FB2 (3993141170)\n-BA99 Compressed Size       00000019 (25)\n-BA9D Uncompressed Size     00000019 (25)\n-BAA1 Filename Length       0014 (20)\n-BAA3 Extra Length          0009 (9)\n-BAA5 Comment Length        0000 (0)\n-BAA7 Disk Start            0000 (0)\n-BAA9 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BAAB Ext File Attributes   00000000 (0)\n-BAAF Local Header Offset   000038B5 (14517)\n-BAB3 Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBAB3: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BAC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BAC9   Length              0005 (5)\n-BACB   Flags               01 (1) 'Modification'\n-BACC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BAD0 CENTRAL HEADER #5     02014B50 (33639248)\n-BAD4 Created Zip Spec      14 (20) '2.0'\n-BAD5 Created OS            00 (0) 'MS-DOS'\n-BAD6 Extract Zip Spec      14 (20) '2.0'\n-BAD7 Extract OS            00 (0) 'MS-DOS'\n-BAD8 General Purpose Flag  0008 (8)\n+BCD5 Compression Method    0000 (0) 'Stored'\n+BCD7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BCDB CRC                   EE027FB2 (3993141170)\n+BCDF Compressed Size       00000019 (25)\n+BCE3 Uncompressed Size     00000019 (25)\n+BCE7 Filename Length       0014 (20)\n+BCE9 Extra Length          0009 (9)\n+BCEB Comment Length        0000 (0)\n+BCED Disk Start            0000 (0)\n+BCEF Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BCF1 Ext File Attributes   00000000 (0)\n+BCF5 Local Header Offset   000038B5 (14517)\n+BCF9 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBCF9: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BD0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BD0F   Length              0005 (5)\n+BD11   Flags               01 (1) 'Modification'\n+BD12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BD16 CENTRAL HEADER #5     02014B50 (33639248)\n+BD1A Created Zip Spec      14 (20) '2.0'\n+BD1B Created OS            00 (0) 'MS-DOS'\n+BD1C Extract Zip Spec      14 (20) '2.0'\n+BD1D Extract OS            00 (0) 'MS-DOS'\n+BD1E General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-BADA Compression Method    0000 (0) 'Stored'\n-BADC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BAE0 CRC                   887DFD12 (2289958162)\n-BAE4 Compressed Size       000000B0 (176)\n-BAE8 Uncompressed Size     000000B0 (176)\n-BAEC Filename Length       000F (15)\n-BAEE Extra Length          0009 (9)\n-BAF0 Comment Length        0000 (0)\n-BAF2 Disk Start            0000 (0)\n-BAF4 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BAF6 Ext File Attributes   00000000 (0)\n-BAFA Local Header Offset   00003919 (14617)\n-BAFE Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBAFE: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BB0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BB0F   Length              0005 (5)\n-BB11   Flags               01 (1) 'Modification'\n-BB12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BB16 CENTRAL HEADER #6     02014B50 (33639248)\n-BB1A Created Zip Spec      14 (20) '2.0'\n-BB1B Created OS            00 (0) 'MS-DOS'\n-BB1C Extract Zip Spec      14 (20) '2.0'\n-BB1D Extract OS            00 (0) 'MS-DOS'\n-BB1E General Purpose Flag  0000 (0)\n-BB20 Compression Method    0000 (0) 'Stored'\n-BB22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BB26 CRC                   00000000 (0)\n-BB2A Compressed Size       00000000 (0)\n-BB2E Uncompressed Size     00000000 (0)\n-BB32 Filename Length       000F (15)\n-BB34 Extra Length          0009 (9)\n-BB36 Comment Length        0000 (0)\n-BB38 Disk Start            0000 (0)\n-BB3A Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BB3C Ext File Attributes   00000000 (0)\n-BB40 Local Header Offset   00003A0F (14863)\n-BB44 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBB44: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BB53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BB55   Length              0005 (5)\n-BB57   Flags               01 (1) 'Modification'\n-BB58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BB5C CENTRAL HEADER #7     02014B50 (33639248)\n-BB60 Created Zip Spec      14 (20) '2.0'\n-BB61 Created OS            00 (0) 'MS-DOS'\n-BB62 Extract Zip Spec      14 (20) '2.0'\n-BB63 Extract OS            00 (0) 'MS-DOS'\n-BB64 General Purpose Flag  0000 (0)\n-BB66 Compression Method    0000 (0) 'Stored'\n-BB68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BB6C CRC                   00000000 (0)\n-BB70 Compressed Size       00000000 (0)\n-BB74 Uncompressed Size     00000000 (0)\n-BB78 Filename Length       0018 (24)\n-BB7A Extra Length          0009 (9)\n-BB7C Comment Length        0000 (0)\n-BB7E Disk Start            0000 (0)\n-BB80 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BB82 Ext File Attributes   00000000 (0)\n-BB86 Local Header Offset   00003A45 (14917)\n-BB8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBB8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BBA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BBA4   Length              0005 (5)\n-BBA6   Flags               01 (1) 'Modification'\n-BBA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BBAB CENTRAL HEADER #8     02014B50 (33639248)\n-BBAF Created Zip Spec      14 (20) '2.0'\n-BBB0 Created OS            00 (0) 'MS-DOS'\n-BBB1 Extract Zip Spec      14 (20) '2.0'\n-BBB2 Extract OS            00 (0) 'MS-DOS'\n-BBB3 General Purpose Flag  0008 (8)\n+BD20 Compression Method    0000 (0) 'Stored'\n+BD22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BD26 CRC                   887DFD12 (2289958162)\n+BD2A Compressed Size       000000B0 (176)\n+BD2E Uncompressed Size     000000B0 (176)\n+BD32 Filename Length       000F (15)\n+BD34 Extra Length          0009 (9)\n+BD36 Comment Length        0000 (0)\n+BD38 Disk Start            0000 (0)\n+BD3A Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BD3C Ext File Attributes   00000000 (0)\n+BD40 Local Header Offset   00003919 (14617)\n+BD44 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBD44: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BD53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BD55   Length              0005 (5)\n+BD57   Flags               01 (1) 'Modification'\n+BD58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BD5C CENTRAL HEADER #6     02014B50 (33639248)\n+BD60 Created Zip Spec      14 (20) '2.0'\n+BD61 Created OS            00 (0) 'MS-DOS'\n+BD62 Extract Zip Spec      14 (20) '2.0'\n+BD63 Extract OS            00 (0) 'MS-DOS'\n+BD64 General Purpose Flag  0000 (0)\n+BD66 Compression Method    0000 (0) 'Stored'\n+BD68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BD6C CRC                   00000000 (0)\n+BD70 Compressed Size       00000000 (0)\n+BD74 Uncompressed Size     00000000 (0)\n+BD78 Filename Length       000F (15)\n+BD7A Extra Length          0009 (9)\n+BD7C Comment Length        0000 (0)\n+BD7E Disk Start            0000 (0)\n+BD80 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BD82 Ext File Attributes   00000000 (0)\n+BD86 Local Header Offset   00003A0F (14863)\n+BD8A Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBD8A: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BD99 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BD9B   Length              0005 (5)\n+BD9D   Flags               01 (1) 'Modification'\n+BD9E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BDA2 CENTRAL HEADER #7     02014B50 (33639248)\n+BDA6 Created Zip Spec      14 (20) '2.0'\n+BDA7 Created OS            00 (0) 'MS-DOS'\n+BDA8 Extract Zip Spec      14 (20) '2.0'\n+BDA9 Extract OS            00 (0) 'MS-DOS'\n+BDAA General Purpose Flag  0000 (0)\n+BDAC Compression Method    0000 (0) 'Stored'\n+BDAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BDB2 CRC                   00000000 (0)\n+BDB6 Compressed Size       00000000 (0)\n+BDBA Uncompressed Size     00000000 (0)\n+BDBE Filename Length       0018 (24)\n+BDC0 Extra Length          0009 (9)\n+BDC2 Comment Length        0000 (0)\n+BDC4 Disk Start            0000 (0)\n+BDC6 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BDC8 Ext File Attributes   00000000 (0)\n+BDCC Local Header Offset   00003A45 (14917)\n+BDD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBDD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BDE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BDEA   Length              0005 (5)\n+BDEC   Flags               01 (1) 'Modification'\n+BDED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BDF1 CENTRAL HEADER #8     02014B50 (33639248)\n+BDF5 Created Zip Spec      14 (20) '2.0'\n+BDF6 Created OS            00 (0) 'MS-DOS'\n+BDF7 Extract Zip Spec      14 (20) '2.0'\n+BDF8 Extract OS            00 (0) 'MS-DOS'\n+BDF9 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-BBB5 Compression Method    0000 (0) 'Stored'\n-BBB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BBBB CRC                   D2880805 (3532130309)\n-BBBF Compressed Size       0000003D (61)\n-BBC3 Uncompressed Size     0000003D (61)\n-BBC7 Filename Length       003D (61)\n-BBC9 Extra Length          0009 (9)\n-BBCB Comment Length        0000 (0)\n-BBCD Disk Start            0000 (0)\n-BBCF Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BBD1 Ext File Attributes   00000000 (0)\n-BBD5 Local Header Offset   00003A84 (14980)\n-BBD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBBD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BC16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BC18   Length              0005 (5)\n-BC1A   Flags               01 (1) 'Modification'\n-BC1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BC1F CENTRAL HEADER #9     02014B50 (33639248)\n-BC23 Created Zip Spec      14 (20) '2.0'\n-BC24 Created OS            00 (0) 'MS-DOS'\n-BC25 Extract Zip Spec      14 (20) '2.0'\n-BC26 Extract OS            00 (0) 'MS-DOS'\n-BC27 General Purpose Flag  0000 (0)\n-BC29 Compression Method    0000 (0) 'Stored'\n-BC2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BC2F CRC                   00000000 (0)\n-BC33 Compressed Size       00000000 (0)\n-BC37 Uncompressed Size     00000000 (0)\n-BC3B Filename Length       000F (15)\n-BC3D Extra Length          0009 (9)\n-BC3F Comment Length        0000 (0)\n-BC41 Disk Start            0000 (0)\n-BC43 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BC45 Ext File Attributes   00000000 (0)\n-BC49 Local Header Offset   00003B35 (15157)\n-BC4D Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBC4D: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BC5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BC5E   Length              0005 (5)\n-BC60   Flags               01 (1) 'Modification'\n-BC61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BC65 CENTRAL HEADER #10    02014B50 (33639248)\n-BC69 Created Zip Spec      14 (20) '2.0'\n-BC6A Created OS            00 (0) 'MS-DOS'\n-BC6B Extract Zip Spec      14 (20) '2.0'\n-BC6C Extract OS            00 (0) 'MS-DOS'\n-BC6D General Purpose Flag  0000 (0)\n-BC6F Compression Method    0000 (0) 'Stored'\n-BC71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BC75 CRC                   00000000 (0)\n-BC79 Compressed Size       00000000 (0)\n-BC7D Uncompressed Size     00000000 (0)\n-BC81 Filename Length       0020 (32)\n-BC83 Extra Length          0009 (9)\n-BC85 Comment Length        0000 (0)\n-BC87 Disk Start            0000 (0)\n-BC89 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BC8B Ext File Attributes   00000000 (0)\n-BC8F Local Header Offset   00003B6B (15211)\n-BC93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBC93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BCB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BCB5   Length              0005 (5)\n-BCB7   Flags               01 (1) 'Modification'\n-BCB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BCBC CENTRAL HEADER #11    02014B50 (33639248)\n-BCC0 Created Zip Spec      14 (20) '2.0'\n-BCC1 Created OS            00 (0) 'MS-DOS'\n-BCC2 Extract Zip Spec      14 (20) '2.0'\n-BCC3 Extract OS            00 (0) 'MS-DOS'\n-BCC4 General Purpose Flag  0000 (0)\n-BCC6 Compression Method    0000 (0) 'Stored'\n-BCC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BCCC CRC                   00000000 (0)\n-BCD0 Compressed Size       00000000 (0)\n-BCD4 Uncompressed Size     00000000 (0)\n-BCD8 Filename Length       0034 (52)\n-BCDA Extra Length          0009 (9)\n-BCDC Comment Length        0000 (0)\n-BCDE Disk Start            0000 (0)\n-BCE0 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BCE2 Ext File Attributes   00000000 (0)\n-BCE6 Local Header Offset   00003BB2 (15282)\n-BCEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBCEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BD1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BD20   Length              0005 (5)\n-BD22   Flags               01 (1) 'Modification'\n-BD23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BD27 CENTRAL HEADER #12    02014B50 (33639248)\n-BD2B Created Zip Spec      14 (20) '2.0'\n-BD2C Created OS            00 (0) 'MS-DOS'\n-BD2D Extract Zip Spec      14 (20) '2.0'\n-BD2E Extract OS            00 (0) 'MS-DOS'\n-BD2F General Purpose Flag  0008 (8)\n+BDFB Compression Method    0000 (0) 'Stored'\n+BDFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BE01 CRC                   D2880805 (3532130309)\n+BE05 Compressed Size       0000003D (61)\n+BE09 Uncompressed Size     0000003D (61)\n+BE0D Filename Length       003D (61)\n+BE0F Extra Length          0009 (9)\n+BE11 Comment Length        0000 (0)\n+BE13 Disk Start            0000 (0)\n+BE15 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BE17 Ext File Attributes   00000000 (0)\n+BE1B Local Header Offset   00003A84 (14980)\n+BE1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBE1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BE5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BE5E   Length              0005 (5)\n+BE60   Flags               01 (1) 'Modification'\n+BE61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BE65 CENTRAL HEADER #9     02014B50 (33639248)\n+BE69 Created Zip Spec      14 (20) '2.0'\n+BE6A Created OS            00 (0) 'MS-DOS'\n+BE6B Extract Zip Spec      14 (20) '2.0'\n+BE6C Extract OS            00 (0) 'MS-DOS'\n+BE6D General Purpose Flag  0000 (0)\n+BE6F Compression Method    0000 (0) 'Stored'\n+BE71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BE75 CRC                   00000000 (0)\n+BE79 Compressed Size       00000000 (0)\n+BE7D Uncompressed Size     00000000 (0)\n+BE81 Filename Length       000F (15)\n+BE83 Extra Length          0009 (9)\n+BE85 Comment Length        0000 (0)\n+BE87 Disk Start            0000 (0)\n+BE89 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BE8B Ext File Attributes   00000000 (0)\n+BE8F Local Header Offset   00003B35 (15157)\n+BE93 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBE93: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BEA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BEA4   Length              0005 (5)\n+BEA6   Flags               01 (1) 'Modification'\n+BEA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BEAB CENTRAL HEADER #10    02014B50 (33639248)\n+BEAF Created Zip Spec      14 (20) '2.0'\n+BEB0 Created OS            00 (0) 'MS-DOS'\n+BEB1 Extract Zip Spec      14 (20) '2.0'\n+BEB2 Extract OS            00 (0) 'MS-DOS'\n+BEB3 General Purpose Flag  0000 (0)\n+BEB5 Compression Method    0000 (0) 'Stored'\n+BEB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BEBB CRC                   00000000 (0)\n+BEBF Compressed Size       00000000 (0)\n+BEC3 Uncompressed Size     00000000 (0)\n+BEC7 Filename Length       0020 (32)\n+BEC9 Extra Length          0009 (9)\n+BECB Comment Length        0000 (0)\n+BECD Disk Start            0000 (0)\n+BECF Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BED1 Ext File Attributes   00000000 (0)\n+BED5 Local Header Offset   00003B6B (15211)\n+BED9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBED9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BEF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BEFB   Length              0005 (5)\n+BEFD   Flags               01 (1) 'Modification'\n+BEFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BF02 CENTRAL HEADER #11    02014B50 (33639248)\n+BF06 Created Zip Spec      14 (20) '2.0'\n+BF07 Created OS            00 (0) 'MS-DOS'\n+BF08 Extract Zip Spec      14 (20) '2.0'\n+BF09 Extract OS            00 (0) 'MS-DOS'\n+BF0A General Purpose Flag  0000 (0)\n+BF0C Compression Method    0000 (0) 'Stored'\n+BF0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BF12 CRC                   00000000 (0)\n+BF16 Compressed Size       00000000 (0)\n+BF1A Uncompressed Size     00000000 (0)\n+BF1E Filename Length       0034 (52)\n+BF20 Extra Length          0009 (9)\n+BF22 Comment Length        0000 (0)\n+BF24 Disk Start            0000 (0)\n+BF26 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BF28 Ext File Attributes   00000000 (0)\n+BF2C Local Header Offset   00003BB2 (15282)\n+BF30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBF30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BF64 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BF66   Length              0005 (5)\n+BF68   Flags               01 (1) 'Modification'\n+BF69   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BF6D CENTRAL HEADER #12    02014B50 (33639248)\n+BF71 Created Zip Spec      14 (20) '2.0'\n+BF72 Created OS            00 (0) 'MS-DOS'\n+BF73 Extract Zip Spec      14 (20) '2.0'\n+BF74 Extract OS            00 (0) 'MS-DOS'\n+BF75 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-BD31 Compression Method    0000 (0) 'Stored'\n-BD33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BD37 CRC                   00000000 (0)\n-BD3B Compressed Size       00000000 (0)\n-BD3F Uncompressed Size     00000000 (0)\n-BD43 Filename Length       0042 (66)\n-BD45 Extra Length          0009 (9)\n-BD47 Comment Length        0000 (0)\n-BD49 Disk Start            0000 (0)\n-BD4B Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BD4D Ext File Attributes   00000000 (0)\n-BD51 Local Header Offset   00003C0D (15373)\n-BD55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBD55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BD97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BD99   Length              0005 (5)\n-BD9B   Flags               01 (1) 'Modification'\n-BD9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BDA0 CENTRAL HEADER #13    02014B50 (33639248)\n-BDA4 Created Zip Spec      14 (20) '2.0'\n-BDA5 Created OS            00 (0) 'MS-DOS'\n-BDA6 Extract Zip Spec      14 (20) '2.0'\n-BDA7 Extract OS            00 (0) 'MS-DOS'\n-BDA8 General Purpose Flag  0008 (8)\n+BF77 Compression Method    0000 (0) 'Stored'\n+BF79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BF7D CRC                   00000000 (0)\n+BF81 Compressed Size       00000000 (0)\n+BF85 Uncompressed Size     00000000 (0)\n+BF89 Filename Length       0042 (66)\n+BF8B Extra Length          0009 (9)\n+BF8D Comment Length        0000 (0)\n+BF8F Disk Start            0000 (0)\n+BF91 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+BF93 Ext File Attributes   00000000 (0)\n+BF97 Local Header Offset   00003C0D (15373)\n+BF9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBF9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+BFDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+BFDF   Length              0005 (5)\n+BFE1   Flags               01 (1) 'Modification'\n+BFE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+BFE6 CENTRAL HEADER #13    02014B50 (33639248)\n+BFEA Created Zip Spec      14 (20) '2.0'\n+BFEB Created OS            00 (0) 'MS-DOS'\n+BFEC Extract Zip Spec      14 (20) '2.0'\n+BFED Extract OS            00 (0) 'MS-DOS'\n+BFEE General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-BDAA Compression Method    0000 (0) 'Stored'\n-BDAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BDB0 CRC                   00C3B148 (12824904)\n-BDB4 Compressed Size       0000098D (2445)\n-BDB8 Uncompressed Size     0000098D (2445)\n-BDBC Filename Length       003B (59)\n-BDBE Extra Length          0009 (9)\n-BDC0 Comment Length        0000 (0)\n-BDC2 Disk Start            0000 (0)\n-BDC4 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BDC6 Ext File Attributes   00000000 (0)\n-BDCA Local Header Offset   00003C86 (15494)\n-BDCE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBDCE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BE09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BE0B   Length              0005 (5)\n-BE0D   Flags               01 (1) 'Modification'\n-BE0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BE12 CENTRAL HEADER #14    02014B50 (33639248)\n-BE16 Created Zip Spec      14 (20) '2.0'\n-BE17 Created OS            00 (0) 'MS-DOS'\n-BE18 Extract Zip Spec      14 (20) '2.0'\n-BE19 Extract OS            00 (0) 'MS-DOS'\n-BE1A General Purpose Flag  0000 (0)\n-BE1C Compression Method    0000 (0) 'Stored'\n-BE1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BE22 CRC                   00000000 (0)\n-BE26 Compressed Size       00000000 (0)\n-BE2A Uncompressed Size     00000000 (0)\n-BE2E Filename Length       0004 (4)\n-BE30 Extra Length          0009 (9)\n-BE32 Comment Length        0000 (0)\n-BE34 Disk Start            0000 (0)\n-BE36 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BE38 Ext File Attributes   00000000 (0)\n-BE3C Local Header Offset   00004685 (18053)\n-BE40 Filename              'XXXX'\n-#\n-# WARNING: Offset 0xBE40: Filename 'XXXX'\n-#          Zero length filename\n-#\n-BE44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BE46   Length              0005 (5)\n-BE48   Flags               01 (1) 'Modification'\n-BE49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BE4D CENTRAL HEADER #15    02014B50 (33639248)\n-BE51 Created Zip Spec      14 (20) '2.0'\n-BE52 Created OS            00 (0) 'MS-DOS'\n-BE53 Extract Zip Spec      14 (20) '2.0'\n-BE54 Extract OS            00 (0) 'MS-DOS'\n-BE55 General Purpose Flag  0000 (0)\n-BE57 Compression Method    0000 (0) 'Stored'\n-BE59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BE5D CRC                   00000000 (0)\n-BE61 Compressed Size       00000000 (0)\n-BE65 Uncompressed Size     00000000 (0)\n-BE69 Filename Length       000B (11)\n-BE6B Extra Length          0009 (9)\n-BE6D Comment Length        0000 (0)\n-BE6F Disk Start            0000 (0)\n-BE71 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BE73 Ext File Attributes   00000000 (0)\n-BE77 Local Header Offset   000046B0 (18096)\n-BE7B Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBE7B: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BE86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BE88   Length              0005 (5)\n-BE8A   Flags               01 (1) 'Modification'\n-BE8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BE8F CENTRAL HEADER #16    02014B50 (33639248)\n-BE93 Created Zip Spec      14 (20) '2.0'\n-BE94 Created OS            00 (0) 'MS-DOS'\n-BE95 Extract Zip Spec      14 (20) '2.0'\n-BE96 Extract OS            00 (0) 'MS-DOS'\n-BE97 General Purpose Flag  0000 (0)\n-BE99 Compression Method    0000 (0) 'Stored'\n-BE9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BE9F CRC                   00000000 (0)\n-BEA3 Compressed Size       00000000 (0)\n-BEA7 Uncompressed Size     00000000 (0)\n-BEAB Filename Length       0011 (17)\n-BEAD Extra Length          0009 (9)\n-BEAF Comment Length        0000 (0)\n-BEB1 Disk Start            0000 (0)\n-BEB3 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BEB5 Ext File Attributes   00000000 (0)\n-BEB9 Local Header Offset   000046E2 (18146)\n-BEBD Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBEBD: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BECE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BED0   Length              0005 (5)\n-BED2   Flags               01 (1) 'Modification'\n-BED3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BED7 CENTRAL HEADER #17    02014B50 (33639248)\n-BEDB Created Zip Spec      14 (20) '2.0'\n-BEDC Created OS            00 (0) 'MS-DOS'\n-BEDD Extract Zip Spec      14 (20) '2.0'\n-BEDE Extract OS            00 (0) 'MS-DOS'\n-BEDF General Purpose Flag  0000 (0)\n-BEE1 Compression Method    0000 (0) 'Stored'\n-BEE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BEE7 CRC                   00000000 (0)\n-BEEB Compressed Size       00000000 (0)\n-BEEF Uncompressed Size     00000000 (0)\n-BEF3 Filename Length       001A (26)\n-BEF5 Extra Length          0009 (9)\n-BEF7 Comment Length        0000 (0)\n-BEF9 Disk Start            0000 (0)\n-BEFB Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BEFD Ext File Attributes   00000000 (0)\n-BF01 Local Header Offset   0000471A (18202)\n-BF05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBF05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BF1F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BF21   Length              0005 (5)\n-BF23   Flags               01 (1) 'Modification'\n-BF24   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BF28 CENTRAL HEADER #18    02014B50 (33639248)\n-BF2C Created Zip Spec      14 (20) '2.0'\n-BF2D Created OS            00 (0) 'MS-DOS'\n-BF2E Extract Zip Spec      14 (20) '2.0'\n-BF2F Extract OS            00 (0) 'MS-DOS'\n-BF30 General Purpose Flag  0000 (0)\n-BF32 Compression Method    0000 (0) 'Stored'\n-BF34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BF38 CRC                   00000000 (0)\n-BF3C Compressed Size       00000000 (0)\n-BF40 Uncompressed Size     00000000 (0)\n-BF44 Filename Length       0024 (36)\n-BF46 Extra Length          0009 (9)\n-BF48 Comment Length        0000 (0)\n-BF4A Disk Start            0000 (0)\n-BF4C Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BF4E Ext File Attributes   00000000 (0)\n-BF52 Local Header Offset   0000475B (18267)\n-BF56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBF56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BF7A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BF7C   Length              0005 (5)\n-BF7E   Flags               01 (1) 'Modification'\n-BF7F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BF83 CENTRAL HEADER #19    02014B50 (33639248)\n-BF87 Created Zip Spec      14 (20) '2.0'\n-BF88 Created OS            00 (0) 'MS-DOS'\n-BF89 Extract Zip Spec      14 (20) '2.0'\n-BF8A Extract OS            00 (0) 'MS-DOS'\n-BF8B General Purpose Flag  0000 (0)\n-BF8D Compression Method    0000 (0) 'Stored'\n-BF8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BF93 CRC                   00000000 (0)\n-BF97 Compressed Size       00000000 (0)\n-BF9B Uncompressed Size     00000000 (0)\n-BF9F Filename Length       0029 (41)\n-BFA1 Extra Length          0009 (9)\n-BFA3 Comment Length        0000 (0)\n-BFA5 Disk Start            0000 (0)\n-BFA7 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-BFA9 Ext File Attributes   00000000 (0)\n-BFAD Local Header Offset   000047A6 (18342)\n-BFB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBFB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-BFDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-BFDC   Length              0005 (5)\n-BFDE   Flags               01 (1) 'Modification'\n-BFDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-BFE3 CENTRAL HEADER #20    02014B50 (33639248)\n-BFE7 Created Zip Spec      14 (20) '2.0'\n-BFE8 Created OS            00 (0) 'MS-DOS'\n-BFE9 Extract Zip Spec      14 (20) '2.0'\n-BFEA Extract OS            00 (0) 'MS-DOS'\n-BFEB General Purpose Flag  0008 (8)\n+BFF0 Compression Method    0000 (0) 'Stored'\n+BFF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+BFF6 CRC                   5512F588 (1427305864)\n+BFFA Compressed Size       0000094F (2383)\n+BFFE Uncompressed Size     0000094F (2383)\n+C002 Filename Length       003B (59)\n+C004 Extra Length          0009 (9)\n+C006 Comment Length        0000 (0)\n+C008 Disk Start            0000 (0)\n+C00A Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C00C Ext File Attributes   00000000 (0)\n+C010 Local Header Offset   00003C86 (15494)\n+C014 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC014: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C04F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C051   Length              0005 (5)\n+C053   Flags               01 (1) 'Modification'\n+C054   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C058 CENTRAL HEADER #14    02014B50 (33639248)\n+C05C Created Zip Spec      14 (20) '2.0'\n+C05D Created OS            00 (0) 'MS-DOS'\n+C05E Extract Zip Spec      14 (20) '2.0'\n+C05F Extract OS            00 (0) 'MS-DOS'\n+C060 General Purpose Flag  0000 (0)\n+C062 Compression Method    0000 (0) 'Stored'\n+C064 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C068 CRC                   00000000 (0)\n+C06C Compressed Size       00000000 (0)\n+C070 Uncompressed Size     00000000 (0)\n+C074 Filename Length       0004 (4)\n+C076 Extra Length          0009 (9)\n+C078 Comment Length        0000 (0)\n+C07A Disk Start            0000 (0)\n+C07C Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C07E Ext File Attributes   00000000 (0)\n+C082 Local Header Offset   00004647 (17991)\n+C086 Filename              'XXXX'\n+#\n+# WARNING: Offset 0xC086: Filename 'XXXX'\n+#          Zero length filename\n+#\n+C08A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C08C   Length              0005 (5)\n+C08E   Flags               01 (1) 'Modification'\n+C08F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C093 CENTRAL HEADER #15    02014B50 (33639248)\n+C097 Created Zip Spec      14 (20) '2.0'\n+C098 Created OS            00 (0) 'MS-DOS'\n+C099 Extract Zip Spec      14 (20) '2.0'\n+C09A Extract OS            00 (0) 'MS-DOS'\n+C09B General Purpose Flag  0000 (0)\n+C09D Compression Method    0000 (0) 'Stored'\n+C09F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C0A3 CRC                   00000000 (0)\n+C0A7 Compressed Size       00000000 (0)\n+C0AB Uncompressed Size     00000000 (0)\n+C0AF Filename Length       000B (11)\n+C0B1 Extra Length          0009 (9)\n+C0B3 Comment Length        0000 (0)\n+C0B5 Disk Start            0000 (0)\n+C0B7 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C0B9 Ext File Attributes   00000000 (0)\n+C0BD Local Header Offset   00004672 (18034)\n+C0C1 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC0C1: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C0CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C0CE   Length              0005 (5)\n+C0D0   Flags               01 (1) 'Modification'\n+C0D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C0D5 CENTRAL HEADER #16    02014B50 (33639248)\n+C0D9 Created Zip Spec      14 (20) '2.0'\n+C0DA Created OS            00 (0) 'MS-DOS'\n+C0DB Extract Zip Spec      14 (20) '2.0'\n+C0DC Extract OS            00 (0) 'MS-DOS'\n+C0DD General Purpose Flag  0000 (0)\n+C0DF Compression Method    0000 (0) 'Stored'\n+C0E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C0E5 CRC                   00000000 (0)\n+C0E9 Compressed Size       00000000 (0)\n+C0ED Uncompressed Size     00000000 (0)\n+C0F1 Filename Length       0011 (17)\n+C0F3 Extra Length          0009 (9)\n+C0F5 Comment Length        0000 (0)\n+C0F7 Disk Start            0000 (0)\n+C0F9 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C0FB Ext File Attributes   00000000 (0)\n+C0FF Local Header Offset   000046A4 (18084)\n+C103 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC103: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C114 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C116   Length              0005 (5)\n+C118   Flags               01 (1) 'Modification'\n+C119   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C11D CENTRAL HEADER #17    02014B50 (33639248)\n+C121 Created Zip Spec      14 (20) '2.0'\n+C122 Created OS            00 (0) 'MS-DOS'\n+C123 Extract Zip Spec      14 (20) '2.0'\n+C124 Extract OS            00 (0) 'MS-DOS'\n+C125 General Purpose Flag  0000 (0)\n+C127 Compression Method    0000 (0) 'Stored'\n+C129 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C12D CRC                   00000000 (0)\n+C131 Compressed Size       00000000 (0)\n+C135 Uncompressed Size     00000000 (0)\n+C139 Filename Length       001A (26)\n+C13B Extra Length          0009 (9)\n+C13D Comment Length        0000 (0)\n+C13F Disk Start            0000 (0)\n+C141 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C143 Ext File Attributes   00000000 (0)\n+C147 Local Header Offset   000046DC (18140)\n+C14B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC14B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C165 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C167   Length              0005 (5)\n+C169   Flags               01 (1) 'Modification'\n+C16A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C16E CENTRAL HEADER #18    02014B50 (33639248)\n+C172 Created Zip Spec      14 (20) '2.0'\n+C173 Created OS            00 (0) 'MS-DOS'\n+C174 Extract Zip Spec      14 (20) '2.0'\n+C175 Extract OS            00 (0) 'MS-DOS'\n+C176 General Purpose Flag  0000 (0)\n+C178 Compression Method    0000 (0) 'Stored'\n+C17A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C17E CRC                   00000000 (0)\n+C182 Compressed Size       00000000 (0)\n+C186 Uncompressed Size     00000000 (0)\n+C18A Filename Length       0024 (36)\n+C18C Extra Length          0009 (9)\n+C18E Comment Length        0000 (0)\n+C190 Disk Start            0000 (0)\n+C192 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C194 Ext File Attributes   00000000 (0)\n+C198 Local Header Offset   0000471D (18205)\n+C19C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC19C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C1C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C1C2   Length              0005 (5)\n+C1C4   Flags               01 (1) 'Modification'\n+C1C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C1C9 CENTRAL HEADER #19    02014B50 (33639248)\n+C1CD Created Zip Spec      14 (20) '2.0'\n+C1CE Created OS            00 (0) 'MS-DOS'\n+C1CF Extract Zip Spec      14 (20) '2.0'\n+C1D0 Extract OS            00 (0) 'MS-DOS'\n+C1D1 General Purpose Flag  0000 (0)\n+C1D3 Compression Method    0000 (0) 'Stored'\n+C1D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C1D9 CRC                   00000000 (0)\n+C1DD Compressed Size       00000000 (0)\n+C1E1 Uncompressed Size     00000000 (0)\n+C1E5 Filename Length       0029 (41)\n+C1E7 Extra Length          0009 (9)\n+C1E9 Comment Length        0000 (0)\n+C1EB Disk Start            0000 (0)\n+C1ED Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C1EF Ext File Attributes   00000000 (0)\n+C1F3 Local Header Offset   00004768 (18280)\n+C1F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC1F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C220 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C222   Length              0005 (5)\n+C224   Flags               01 (1) 'Modification'\n+C225   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C229 CENTRAL HEADER #20    02014B50 (33639248)\n+C22D Created Zip Spec      14 (20) '2.0'\n+C22E Created OS            00 (0) 'MS-DOS'\n+C22F Extract Zip Spec      14 (20) '2.0'\n+C230 Extract OS            00 (0) 'MS-DOS'\n+C231 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-BFED Compression Method    0000 (0) 'Stored'\n-BFEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-BFF3 CRC                   3D7F2712 (1031743250)\n-BFF7 Compressed Size       000016F4 (5876)\n-BFFB Uncompressed Size     000016F4 (5876)\n-BFFF Filename Length       0039 (57)\n-C001 Extra Length          0009 (9)\n-C003 Comment Length        0000 (0)\n-C005 Disk Start            0000 (0)\n-C007 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-C009 Ext File Attributes   00000000 (0)\n-C00D Local Header Offset   000047F6 (18422)\n-C011 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xC011: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-C04A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-C04C   Length              0005 (5)\n-C04E   Flags               01 (1) 'Modification'\n-C04F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-C053 CENTRAL HEADER #21    02014B50 (33639248)\n-C057 Created Zip Spec      14 (20) '2.0'\n-C058 Created OS            00 (0) 'MS-DOS'\n-C059 Extract Zip Spec      14 (20) '2.0'\n-C05A Extract OS            00 (0) 'MS-DOS'\n-C05B General Purpose Flag  0008 (8)\n+C233 Compression Method    0000 (0) 'Stored'\n+C235 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C239 CRC                   0EB2B1F5 (246591989)\n+C23D Compressed Size       000017B3 (6067)\n+C241 Uncompressed Size     000017B3 (6067)\n+C245 Filename Length       0039 (57)\n+C247 Extra Length          0009 (9)\n+C249 Comment Length        0000 (0)\n+C24B Disk Start            0000 (0)\n+C24D Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C24F Ext File Attributes   00000000 (0)\n+C253 Local Header Offset   000047B8 (18360)\n+C257 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC257: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C290 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C292   Length              0005 (5)\n+C294   Flags               01 (1) 'Modification'\n+C295   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C299 CENTRAL HEADER #21    02014B50 (33639248)\n+C29D Created Zip Spec      14 (20) '2.0'\n+C29E Created OS            00 (0) 'MS-DOS'\n+C29F Extract Zip Spec      14 (20) '2.0'\n+C2A0 Extract OS            00 (0) 'MS-DOS'\n+C2A1 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-C05D Compression Method    0000 (0) 'Stored'\n-C05F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-C063 CRC                   1A88D275 (445174389)\n-C067 Compressed Size       00001CEA (7402)\n-C06B Uncompressed Size     00001CEA (7402)\n-C06F Filename Length       0038 (56)\n-C071 Extra Length          0009 (9)\n-C073 Comment Length        0000 (0)\n-C075 Disk Start            0000 (0)\n-C077 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-C079 Ext File Attributes   00000000 (0)\n-C07D Local Header Offset   00005F5A (24410)\n-C081 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xC081: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-C0B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-C0BB   Length              0005 (5)\n-C0BD   Flags               01 (1) 'Modification'\n-C0BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-C0C2 CENTRAL HEADER #22    02014B50 (33639248)\n-C0C6 Created Zip Spec      14 (20) '2.0'\n-C0C7 Created OS            00 (0) 'MS-DOS'\n-C0C8 Extract Zip Spec      14 (20) '2.0'\n-C0C9 Extract OS            00 (0) 'MS-DOS'\n-C0CA General Purpose Flag  0008 (8)\n+C2A3 Compression Method    0000 (0) 'Stored'\n+C2A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C2A9 CRC                   B6BACA35 (3065694773)\n+C2AD Compressed Size       00001D98 (7576)\n+C2B1 Uncompressed Size     00001D98 (7576)\n+C2B5 Filename Length       0038 (56)\n+C2B7 Extra Length          0009 (9)\n+C2B9 Comment Length        0000 (0)\n+C2BB Disk Start            0000 (0)\n+C2BD Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C2BF Ext File Attributes   00000000 (0)\n+C2C3 Local Header Offset   00005FDB (24539)\n+C2C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC2C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C2FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C301   Length              0005 (5)\n+C303   Flags               01 (1) 'Modification'\n+C304   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C308 CENTRAL HEADER #22    02014B50 (33639248)\n+C30C Created Zip Spec      14 (20) '2.0'\n+C30D Created OS            00 (0) 'MS-DOS'\n+C30E Extract Zip Spec      14 (20) '2.0'\n+C30F Extract OS            00 (0) 'MS-DOS'\n+C310 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-C0CC Compression Method    0000 (0) 'Stored'\n-C0CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-C0D2 CRC                   72A94157 (1923694935)\n-C0D6 Compressed Size       000017D7 (6103)\n-C0DA Uncompressed Size     000017D7 (6103)\n-C0DE Filename Length       003E (62)\n-C0E0 Extra Length          0009 (9)\n-C0E2 Comment Length        0000 (0)\n-C0E4 Disk Start            0000 (0)\n-C0E6 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-C0E8 Ext File Attributes   00000000 (0)\n-C0EC Local Header Offset   00007CB3 (31923)\n-C0F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xC0F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-C12E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-C130   Length              0005 (5)\n-C132   Flags               01 (1) 'Modification'\n-C133   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-C137 CENTRAL HEADER #23    02014B50 (33639248)\n-C13B Created Zip Spec      14 (20) '2.0'\n-C13C Created OS            00 (0) 'MS-DOS'\n-C13D Extract Zip Spec      14 (20) '2.0'\n-C13E Extract OS            00 (0) 'MS-DOS'\n-C13F General Purpose Flag  0008 (8)\n+C312 Compression Method    0000 (0) 'Stored'\n+C314 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C318 CRC                   E154BEF4 (3780427508)\n+C31C Compressed Size       0000187E (6270)\n+C320 Uncompressed Size     0000187E (6270)\n+C324 Filename Length       003E (62)\n+C326 Extra Length          0009 (9)\n+C328 Comment Length        0000 (0)\n+C32A Disk Start            0000 (0)\n+C32C Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C32E Ext File Attributes   00000000 (0)\n+C332 Local Header Offset   00007DE2 (32226)\n+C336 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC336: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C374 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C376   Length              0005 (5)\n+C378   Flags               01 (1) 'Modification'\n+C379   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C37D CENTRAL HEADER #23    02014B50 (33639248)\n+C381 Created Zip Spec      14 (20) '2.0'\n+C382 Created OS            00 (0) 'MS-DOS'\n+C383 Extract Zip Spec      14 (20) '2.0'\n+C384 Extract OS            00 (0) 'MS-DOS'\n+C385 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-C141 Compression Method    0000 (0) 'Stored'\n-C143 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-C147 CRC                   B2448F97 (2990837655)\n-C14B Compressed Size       00000CB7 (3255)\n-C14F Uncompressed Size     00000CB7 (3255)\n-C153 Filename Length       0039 (57)\n-C155 Extra Length          0009 (9)\n-C157 Comment Length        0000 (0)\n-C159 Disk Start            0000 (0)\n-C15B Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-C15D Ext File Attributes   00000000 (0)\n-C161 Local Header Offset   000094FF (38143)\n-C165 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xC165: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-C19E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-C1A0   Length              0005 (5)\n-C1A2   Flags               01 (1) 'Modification'\n-C1A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-C1A7 CENTRAL HEADER #24    02014B50 (33639248)\n-C1AB Created Zip Spec      14 (20) '2.0'\n-C1AC Created OS            00 (0) 'MS-DOS'\n-C1AD Extract Zip Spec      14 (20) '2.0'\n-C1AE Extract OS            00 (0) 'MS-DOS'\n-C1AF General Purpose Flag  0008 (8)\n+C387 Compression Method    0000 (0) 'Stored'\n+C389 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C38D CRC                   B2448F97 (2990837655)\n+C391 Compressed Size       00000CB7 (3255)\n+C395 Uncompressed Size     00000CB7 (3255)\n+C399 Filename Length       0039 (57)\n+C39B Extra Length          0009 (9)\n+C39D Comment Length        0000 (0)\n+C39F Disk Start            0000 (0)\n+C3A1 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C3A3 Ext File Attributes   00000000 (0)\n+C3A7 Local Header Offset   000096D5 (38613)\n+C3AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC3AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C3E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C3E6   Length              0005 (5)\n+C3E8   Flags               01 (1) 'Modification'\n+C3E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C3ED CENTRAL HEADER #24    02014B50 (33639248)\n+C3F1 Created Zip Spec      14 (20) '2.0'\n+C3F2 Created OS            00 (0) 'MS-DOS'\n+C3F3 Extract Zip Spec      14 (20) '2.0'\n+C3F4 Extract OS            00 (0) 'MS-DOS'\n+C3F5 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-C1B1 Compression Method    0000 (0) 'Stored'\n-C1B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-C1B7 CRC                   3C17A7B5 (1008183221)\n-C1BB Compressed Size       0000107D (4221)\n-C1BF Uncompressed Size     0000107D (4221)\n-C1C3 Filename Length       0038 (56)\n-C1C5 Extra Length          0009 (9)\n-C1C7 Comment Length        0000 (0)\n-C1C9 Disk Start            0000 (0)\n-C1CB Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-C1CD Ext File Attributes   00000000 (0)\n-C1D1 Local Header Offset   0000A226 (41510)\n-C1D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xC1D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-C20D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-C20F   Length              0005 (5)\n-C211   Flags               01 (1) 'Modification'\n-C212   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-C216 CENTRAL HEADER #25    02014B50 (33639248)\n-C21A Created Zip Spec      14 (20) '2.0'\n-C21B Created OS            00 (0) 'MS-DOS'\n-C21C Extract Zip Spec      14 (20) '2.0'\n-C21D Extract OS            00 (0) 'MS-DOS'\n-C21E General Purpose Flag  0008 (8)\n+C3F7 Compression Method    0000 (0) 'Stored'\n+C3F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C3FD CRC                   A33A370C (2738501388)\n+C401 Compressed Size       000010ED (4333)\n+C405 Uncompressed Size     000010ED (4333)\n+C409 Filename Length       0038 (56)\n+C40B Extra Length          0009 (9)\n+C40D Comment Length        0000 (0)\n+C40F Disk Start            0000 (0)\n+C411 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C413 Ext File Attributes   00000000 (0)\n+C417 Local Header Offset   0000A3FC (41980)\n+C41B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC41B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C453 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C455   Length              0005 (5)\n+C457   Flags               01 (1) 'Modification'\n+C458   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C45C CENTRAL HEADER #25    02014B50 (33639248)\n+C460 Created Zip Spec      14 (20) '2.0'\n+C461 Created OS            00 (0) 'MS-DOS'\n+C462 Extract Zip Spec      14 (20) '2.0'\n+C463 Extract OS            00 (0) 'MS-DOS'\n+C464 General Purpose Flag  0008 (8)\n      [Bit  3]              1 'Streamed'\n-C220 Compression Method    0000 (0) 'Stored'\n-C222 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-C226 CRC                   242C94A2 (606901410)\n-C22A Compressed Size       0000062C (1580)\n-C22E Uncompressed Size     0000062C (1580)\n-C232 Filename Length       003D (61)\n-C234 Extra Length          0009 (9)\n-C236 Comment Length        0000 (0)\n-C238 Disk Start            0000 (0)\n-C23A Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-C23C Ext File Attributes   00000000 (0)\n-C240 Local Header Offset   0000B312 (45842)\n-C244 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xC244: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-C281 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-C283   Length              0005 (5)\n-C285   Flags               01 (1) 'Modification'\n-C286   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-C28A END CENTRAL HEADER    06054B50 (101010256)\n-C28E Number of this disk   0000 (0)\n-C290 Central Dir Disk no   0000 (0)\n-C292 Entries in this disk  0019 (25)\n-C294 Total Entries         0019 (25)\n-C296 Size of Central Dir   000008D8 (2264)\n-C29A Offset to Central Dir 0000B9B2 (47538)\n-C29E Comment Length        0000 (0)\n+C466 Compression Method    0000 (0) 'Stored'\n+C468 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+C46C CRC                   242C94A2 (606901410)\n+C470 Compressed Size       0000062C (1580)\n+C474 Uncompressed Size     0000062C (1580)\n+C478 Filename Length       003D (61)\n+C47A Extra Length          0009 (9)\n+C47C Comment Length        0000 (0)\n+C47E Disk Start            0000 (0)\n+C480 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+C482 Ext File Attributes   00000000 (0)\n+C486 Local Header Offset   0000B558 (46424)\n+C48A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC48A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+C4C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+C4C9   Length              0005 (5)\n+C4CB   Flags               01 (1) 'Modification'\n+C4CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+C4D0 END CENTRAL HEADER    06054B50 (101010256)\n+C4D4 Number of this disk   0000 (0)\n+C4D6 Central Dir Disk no   0000 (0)\n+C4D8 Entries in this disk  0019 (25)\n+C4DA Total Entries         0019 (25)\n+C4DC Size of Central Dir   000008D8 (2264)\n+C4E0 Offset to Central Dir 0000BBF8 (48120)\n+C4E4 Comment Length        0000 (0)\n #\n # Warning Count: 50\n #\n # Done\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/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,153 +1,149 @@\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 2d72 656d 6f74 696e 673c 2f61 7274  bo-remoting</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 656d 6f74 696e 672d 6d69 6e61 3c2f  -remoting-mina</\n-00000520: 6172 7469 6661 6374 4964 3e0d 0a20 203c  artifactId>..  <\n-00000530: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-00000540: 7665 7273 696f 6e3e 0d0a 2020 3c6e 616d  version>..  <nam\n-00000550: 653e 247b 7072 6f6a 6563 742e 6172 7469  e>${project.arti\n-00000560: 6661 6374 4964 7d3c 2f6e 616d 653e 0d0a  factId}</name>..\n-00000570: 2020 3c64 6573 6372 6970 7469 6f6e 3e54    <description>T\n-00000580: 6865 206d 696e 6120 7265 6d6f 7469 6e67  he mina remoting\n-00000590: 206d 6f64 756c 6520 6f66 2064 7562 626f   module of dubbo\n-000005a0: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n-000005b0: 7074 696f 6e3e 0d0a 2020 3c6c 6963 656e  ption>..  <licen\n-000005c0: 7365 733e 0d0a 2020 2020 3c6c 6963 656e  ses>..    <licen\n-000005d0: 7365 3e0d 0a20 2020 2020 203c 6e61 6d65  se>..      <name\n-000005e0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n-000005f0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n-00000600: 6d65 3e0d 0a20 2020 2020 203c 7572 6c3e  me>..      <url>\n-00000610: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n-00000620: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n-00000630: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n-00000640: 0d0a 2020 2020 2020 3c64 6973 7472 6962  ..      <distrib\n-00000650: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n-00000660: 7269 6275 7469 6f6e 3e0d 0a20 2020 203c  ribution>..    <\n-00000670: 2f6c 6963 656e 7365 3e0d 0a20 203c 2f6c  /license>..  </l\n-00000680: 6963 656e 7365 733e 0d0a 2020 3c70 726f  icenses>..  <pro\n-00000690: 7065 7274 6965 733e 0d0a 2020 2020 3c73  perties>..    <s\n-000006a0: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-000006b0: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n-000006c0: 656e 5f64 6570 6c6f 793e 0d0a 2020 3c2f  en_deploy>..  </\n-000006d0: 7072 6f70 6572 7469 6573 3e0d 0a20 203c  properties>..  <\n-000006e0: 6465 7065 6e64 656e 6369 6573 3e0d 0a20  dependencies>.. \n-000006f0: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000700: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000710: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000720: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000730: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000740: 6262 6f2d 7265 6d6f 7469 6e67 2d61 7069  bbo-remoting-api\n-00000750: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000760: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000770: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000780: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000790: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-000007a0: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000007b0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000007c0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000007d0: 652e 6d69 6e61 3c2f 6772 6f75 7049 643e  e.mina</groupId>\n-000007e0: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-000007f0: 7449 643e 6d69 6e61 2d63 6f72 653c 2f61  tId>mina-core</a\n-00000800: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000810: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000820: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000830: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000840: 6f72 672e 736c 6634 6a3c 2f67 726f 7570  org.slf4j</group\n-00000850: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000860: 6661 6374 4964 3e73 6c66 346a 2d61 7069  factId>slf4j-api\n-00000870: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000880: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-00000890: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-000008a0: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-000008b0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-000008c0: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-000008d0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-000008e0: 3e64 7562 626f 2d73 6572 6961 6c69 7a61  >dubbo-serializa\n-000008f0: 7469 6f6e 2d68 6573 7369 616e 323c 2f61  tion-hessian2</a\n-00000900: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000910: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-00000920: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n-00000930: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0d0a  ion}</version>..\n-00000940: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n-00000950: 743c 2f73 636f 7065 3e0d 0a20 2020 203c  t</scope>..    <\n-00000960: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000970: 3c2f 6465 7065 6e64 656e 6369 6573 3e0d  </dependencies>.\n-00000980: 0a3c 2f70 726f 6a65 6374 3e0d 0a         .</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 2d72 656d  factId>dubbo-rem\n+00000480: 6f74 696e 673c 2f61 7274 6966 6163 7449  oting</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000500: 6d69 6e61 3c2f 6172 7469 6661 6374 4964  mina</artifactId\n+00000510: 3e0a 2020 3c76 6572 7369 6f6e 3e32 2e37  >.  <version>2.7\n+00000520: 2e31 303c 2f76 6572 7369 6f6e 3e0a 2020  .10</version>.  \n+00000530: 3c6e 616d 653e 247b 7072 6f6a 6563 742e  <name>${project.\n+00000540: 6172 7469 6661 6374 4964 7d3c 2f6e 616d  artifactId}</nam\n+00000550: 653e 0a20 203c 6465 7363 7269 7074 696f  e>.  <descriptio\n+00000560: 6e3e 5468 6520 6d69 6e61 2072 656d 6f74  n>The mina remot\n+00000570: 696e 6720 6d6f 6475 6c65 206f 6620 6475  ing module of du\n+00000580: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n+00000590: 6372 6970 7469 6f6e 3e0a 2020 3c6c 6963  cription>.  <lic\n+000005a0: 656e 7365 733e 0a20 2020 203c 6c69 6365  enses>.    <lice\n+000005b0: 6e73 653e 0a20 2020 2020 203c 6e61 6d65  nse>.      <name\n+000005c0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n+000005d0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n+000005e0: 6d65 3e0a 2020 2020 2020 3c75 726c 3e68  me>.      <url>h\n+000005f0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+00000600: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+00000610: 4345 4e53 452d 322e 303c 2f75 726c 3e0a  CENSE-2.0</url>.\n+00000620: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n+00000630: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n+00000640: 6275 7469 6f6e 3e0a 2020 2020 3c2f 6c69  bution>.    </li\n+00000650: 6365 6e73 653e 0a20 203c 2f6c 6963 656e  cense>.  </licen\n+00000660: 7365 733e 0a20 203c 7072 6f70 6572 7469  ses>.  <properti\n+00000670: 6573 3e0a 2020 2020 3c73 6b69 705f 6d61  es>.    <skip_ma\n+00000680: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n+00000690: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n+000006a0: 6c6f 793e 0a20 203c 2f70 726f 7065 7274  loy>.  </propert\n+000006b0: 6965 733e 0a20 203c 6465 7065 6e64 656e  ies>.  <dependen\n+000006c0: 6369 6573 3e0a 2020 2020 3c64 6570 656e  cies>.    <depen\n+000006d0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000006e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000006f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000700: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000710: 4964 3e64 7562 626f 2d72 656d 6f74 696e  Id>dubbo-remotin\n+00000720: 672d 6170 693c 2f61 7274 6966 6163 7449  g-api</artifactI\n+00000730: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000740: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000750: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000760: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+00000770: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000780: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000790: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000007a0: 6865 2e6d 696e 613c 2f67 726f 7570 4964  he.mina</groupId\n+000007b0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+000007c0: 7449 643e 6d69 6e61 2d63 6f72 653c 2f61  tId>mina-core</a\n+000007d0: 7274 6966 6163 7449 643e 0a20 2020 203c  rtifactId>.    <\n+000007e0: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+000007f0: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000800: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000810: 2e73 6c66 346a 3c2f 6772 6f75 7049 643e  .slf4j</groupId>\n+00000820: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000830: 4964 3e73 6c66 346a 2d61 7069 3c2f 6172  Id>slf4j-api</ar\n+00000840: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+00000850: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000860: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000870: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000880: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000890: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000008a0: 7469 6661 6374 4964 3e64 7562 626f 2d73  tifactId>dubbo-s\n+000008b0: 6572 6961 6c69 7a61 7469 6f6e 2d68 6573  erialization-hes\n+000008c0: 7369 616e 323c 2f61 7274 6966 6163 7449  sian2</artifactI\n+000008d0: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+000008e0: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+000008f0: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000900: 7369 6f6e 3e0a 2020 2020 2020 3c73 636f  sion>.      <sco\n+00000910: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+00000920: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000930: 3e0a 2020 3c2f 6465 7065 6e64 656e 6369  >.  </dependenci\n+00000940: 6573 3e0a 3c2f 7072 6f6a 6563 743e 0a    es>.</project>.\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaChannel.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaChannel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,191 +1,191 @@\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.remoting.transport.mina;\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.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractChannel;\n-\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.common.WriteFuture;\n-\n-import java.net.InetSocketAddress;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * MinaChannel\n- */\n-final class MinaChannel extends AbstractChannel {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MinaChannel.class);\n-\n-    private static final String CHANNEL_KEY = MinaChannel.class.getName() + \".CHANNEL\";\n-\n-    private final IoSession session;\n-\n-    private MinaChannel(IoSession session, URL url, ChannelHandler handler) {\n-        super(url, handler);\n-        if (session == null) {\n-            throw new IllegalArgumentException(\"mina session == null\");\n-        }\n-        this.session = session;\n-    }\n-\n-    static MinaChannel getOrAddChannel(IoSession session, URL url, ChannelHandler handler) {\n-        if (session == null) {\n-            return null;\n-        }\n-        MinaChannel ret = (MinaChannel) session.getAttribute(CHANNEL_KEY);\n-        if (ret == null) {\n-            ret = new MinaChannel(session, url, handler);\n-            if (session.isConnected()) {\n-                MinaChannel old = (MinaChannel) session.setAttribute(CHANNEL_KEY, ret);\n-                if (old != null) {\n-                    session.setAttribute(CHANNEL_KEY, old);\n-                    ret = old;\n-                }\n-            }\n-        }\n-        return ret;\n-    }\n-\n-    static void removeChannelIfDisconnected(IoSession session) {\n-        if (session != null && !session.isConnected()) {\n-            session.removeAttribute(CHANNEL_KEY);\n-        }\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        return (InetSocketAddress) session.getLocalAddress();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getRemoteAddress() {\n-        return (InetSocketAddress) session.getRemoteAddress();\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        return session.isConnected();\n-    }\n-\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        super.send(message, sent);\n-\n-        boolean success = true;\n-        int timeout = 0;\n-        try {\n-            WriteFuture future = session.write(message);\n-            if (sent) {\n-                timeout = getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-                success = future.join(timeout);\n-            }\n-        } catch (Throwable e) {\n-            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress() + \", cause: \" + e.getMessage(), e);\n-        }\n-\n-        if (!success) {\n-            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress()\n-                    + \"in timeout(\" + timeout + \"ms) limit\");\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        try {\n-            super.close();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            removeChannelIfDisconnected(session);\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"CLose mina channel \" + session);\n-            }\n-            session.close();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public boolean hasAttribute(String key) {\n-        return session.containsAttribute(key);\n-    }\n-\n-    @Override\n-    public Object getAttribute(String key) {\n-        return session.getAttribute(key);\n-    }\n-\n-    @Override\n-    public void setAttribute(String key, Object value) {\n-        session.setAttribute(key, value);\n-    }\n-\n-    @Override\n-    public void removeAttribute(String key) {\n-        session.removeAttribute(key);\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        final int prime = 31;\n-        int result = 1;\n-        result = prime * result + ((session == null) ? 0 : session.hashCode());\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean equals(Object obj) {\n-        if (this == obj) {\n-            return true;\n-        }\n-        if (obj == null) {\n-            return false;\n-        }\n-        if (getClass() != obj.getClass()) {\n-            return false;\n-        }\n-        MinaChannel other = (MinaChannel) obj;\n-        if (session == null) {\n-            if (other.session != null) {\n-                return false;\n-            }\n-        } else if (!session.equals(other.session)) {\n-            return false;\n-        }\n-        return true;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"MinaChannel [session=\" + session + \"]\";\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.remoting.transport.mina;\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.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractChannel;\r\n+\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.common.WriteFuture;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * MinaChannel\r\n+ */\r\n+final class MinaChannel extends AbstractChannel {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MinaChannel.class);\r\n+\r\n+    private static final String CHANNEL_KEY = MinaChannel.class.getName() + \".CHANNEL\";\r\n+\r\n+    private final IoSession session;\r\n+\r\n+    private MinaChannel(IoSession session, URL url, ChannelHandler handler) {\r\n+        super(url, handler);\r\n+        if (session == null) {\r\n+            throw new IllegalArgumentException(\"mina session == null\");\r\n+        }\r\n+        this.session = session;\r\n+    }\r\n+\r\n+    static MinaChannel getOrAddChannel(IoSession session, URL url, ChannelHandler handler) {\r\n+        if (session == null) {\r\n+            return null;\r\n+        }\r\n+        MinaChannel ret = (MinaChannel) session.getAttribute(CHANNEL_KEY);\r\n+        if (ret == null) {\r\n+            ret = new MinaChannel(session, url, handler);\r\n+            if (session.isConnected()) {\r\n+                MinaChannel old = (MinaChannel) session.setAttribute(CHANNEL_KEY, ret);\r\n+                if (old != null) {\r\n+                    session.setAttribute(CHANNEL_KEY, old);\r\n+                    ret = old;\r\n+                }\r\n+            }\r\n+        }\r\n+        return ret;\r\n+    }\r\n+\r\n+    static void removeChannelIfDisconnected(IoSession session) {\r\n+        if (session != null && !session.isConnected()) {\r\n+            session.removeAttribute(CHANNEL_KEY);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return (InetSocketAddress) session.getLocalAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        return (InetSocketAddress) session.getRemoteAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        return session.isConnected();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        super.send(message, sent);\r\n+\r\n+        boolean success = true;\r\n+        int timeout = 0;\r\n+        try {\r\n+            WriteFuture future = session.write(message);\r\n+            if (sent) {\r\n+                timeout = getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+                success = future.join(timeout);\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+\r\n+        if (!success) {\r\n+            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress()\r\n+                    + \"in timeout(\" + timeout + \"ms) limit\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        try {\r\n+            super.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            removeChannelIfDisconnected(session);\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"CLose mina channel \" + session);\r\n+            }\r\n+            session.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasAttribute(String key) {\r\n+        return session.containsAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getAttribute(String key) {\r\n+        return session.getAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttribute(String key, Object value) {\r\n+        session.setAttribute(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeAttribute(String key) {\r\n+        session.removeAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        final int prime = 31;\r\n+        int result = 1;\r\n+        result = prime * result + ((session == null) ? 0 : session.hashCode());\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object obj) {\r\n+        if (this == obj) {\r\n+            return true;\r\n+        }\r\n+        if (obj == null) {\r\n+            return false;\r\n+        }\r\n+        if (getClass() != obj.getClass()) {\r\n+            return false;\r\n+        }\r\n+        MinaChannel other = (MinaChannel) obj;\r\n+        if (session == null) {\r\n+            if (other.session != null) {\r\n+                return false;\r\n+            }\r\n+        } else if (!session.equals(other.session)) {\r\n+            return false;\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"MinaChannel [session=\" + session + \"]\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaClient.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,174 +1,174 @@\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.remoting.transport.mina;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractClient;\n-\n-import org.apache.mina.common.ConnectFuture;\n-import org.apache.mina.common.IoFuture;\n-import org.apache.mina.common.IoFutureListener;\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.common.ThreadModel;\n-import org.apache.mina.filter.codec.ProtocolCodecFilter;\n-import org.apache.mina.transport.socket.nio.SocketConnector;\n-import org.apache.mina.transport.socket.nio.SocketConnectorConfig;\n-\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.CountDownLatch;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.atomic.AtomicReference;\n-\n-/**\n- * Mina client.\n- */\n-public class MinaClient extends AbstractClient {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MinaClient.class);\n-\n-    private static final Map<String, SocketConnector> CONNECTORS = new ConcurrentHashMap<String, SocketConnector>();\n-\n-    private String connectorKey;\n-\n-    private SocketConnector connector;\n-\n-    private volatile IoSession session; // volatile, please copy reference to use\n-\n-    public MinaClient(final URL url, final ChannelHandler handler) throws RemotingException {\n-        super(url, wrapChannelHandler(url, handler));\n-    }\n-\n-    @Override\n-    protected void doOpen() throws Throwable {\n-        connectorKey = getUrl().toFullString();\n-        SocketConnector c = CONNECTORS.get(connectorKey);\n-        if (c != null) {\n-            connector = c;\n-        } else {\n-            // set thread pool.\n-            connector = new SocketConnector(Constants.DEFAULT_IO_THREADS,\n-                    Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaClientWorker\", true)));\n-            // config\n-            SocketConnectorConfig cfg = (SocketConnectorConfig) connector.getDefaultConfig();\n-            cfg.setThreadModel(ThreadModel.MANUAL);\n-            cfg.getSessionConfig().setTcpNoDelay(true);\n-            cfg.getSessionConfig().setKeepAlive(true);\n-            int timeout = getConnectTimeout();\n-            cfg.setConnectTimeout(timeout < 1000 ? 1 : timeout / 1000);\n-            // set codec.\n-            connector.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\n-            CONNECTORS.put(connectorKey, connector);\n-        }\n-    }\n-\n-    @Override\n-    protected void doConnect() throws Throwable {\n-        ConnectFuture future = connector.connect(getConnectAddress(), new MinaHandler(getUrl(), this));\n-        long start = System.currentTimeMillis();\n-        final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();\n-        final CountDownLatch finish = new CountDownLatch(1); // resolve future.awaitUninterruptibly() dead lock\n-        future.addListener(new IoFutureListener() {\n-            @Override\n-            public void operationComplete(IoFuture future) {\n-                try {\n-                    if (future.isReady()) {\n-                        IoSession newSession = future.getSession();\n-                        try {\n-                            // Close old channel\n-                            IoSession oldSession = MinaClient.this.session; // copy reference\n-                            if (oldSession != null) {\n-                                try {\n-                                    if (logger.isInfoEnabled()) {\n-                                        logger.info(\"Close old mina channel \" + oldSession + \" on create new mina channel \" + newSession);\n-                                    }\n-                                    oldSession.close();\n-                                } finally {\n-                                    MinaChannel.removeChannelIfDisconnected(oldSession);\n-                                }\n-                            }\n-                        } finally {\n-                            if (MinaClient.this.isClosed()) {\n-                                try {\n-                                    if (logger.isInfoEnabled()) {\n-                                        logger.info(\"Close new mina channel \" + newSession + \", because the client closed.\");\n-                                    }\n-                                    newSession.close();\n-                                } finally {\n-                                    MinaClient.this.session = null;\n-                                    MinaChannel.removeChannelIfDisconnected(newSession);\n-                                }\n-                            } else {\n-                                MinaClient.this.session = newSession;\n-                            }\n-                        }\n-                    }\n-                } catch (Exception e) {\n-                    exception.set(e);\n-                } finally {\n-                    finish.countDown();\n-                }\n-            }\n-        });\n-        try {\n-            finish.await(getConnectTimeout(), TimeUnit.MILLISECONDS);\n-        } catch (InterruptedException e) {\n-            throw new RemotingException(this, \"client(url: \" + getUrl() + \") failed to connect to server \" + getRemoteAddress() + \" client-side timeout \"\n-                    + getConnectTimeout() + \"ms (elapsed: \" + (System.currentTimeMillis() - start)\n-                    + \"ms) from netty client \" + NetUtils.getLocalHost() + \" using dubbo version \"\n-                    + Version.getVersion() + \", cause: \" + e.getMessage(), e);\n-        }\n-        Throwable e = exception.get();\n-        if (e != null) {\n-            throw e;\n-        }\n-    }\n-\n-    @Override\n-    protected void doDisConnect() throws Throwable {\n-        try {\n-            MinaChannel.removeChannelIfDisconnected(session);\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage());\n-        }\n-    }\n-\n-    @Override\n-    protected void doClose() throws Throwable {\n-        //release mina resources.\n-    }\n-\n-    @Override\n-    protected Channel getChannel() {\n-        IoSession s = session;\n-        if (s == null || !s.isConnected()) {\n-            return null;\n-        }\n-        return MinaChannel.getOrAddChannel(s, getUrl(), this);\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.remoting.transport.mina;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\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.NamedThreadFactory;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractClient;\r\n+\r\n+import org.apache.mina.common.ConnectFuture;\r\n+import org.apache.mina.common.IoFuture;\r\n+import org.apache.mina.common.IoFutureListener;\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.common.ThreadModel;\r\n+import org.apache.mina.filter.codec.ProtocolCodecFilter;\r\n+import org.apache.mina.transport.socket.nio.SocketConnector;\r\n+import org.apache.mina.transport.socket.nio.SocketConnectorConfig;\r\n+\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.CountDownLatch;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.atomic.AtomicReference;\r\n+\r\n+/**\r\n+ * Mina client.\r\n+ */\r\n+public class MinaClient extends AbstractClient {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MinaClient.class);\r\n+\r\n+    private static final Map<String, SocketConnector> CONNECTORS = new ConcurrentHashMap<String, SocketConnector>();\r\n+\r\n+    private String connectorKey;\r\n+\r\n+    private SocketConnector connector;\r\n+\r\n+    private volatile IoSession session; // volatile, please copy reference to use\r\n+\r\n+    public MinaClient(final URL url, final ChannelHandler handler) throws RemotingException {\r\n+        super(url, wrapChannelHandler(url, handler));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doOpen() throws Throwable {\r\n+        connectorKey = getUrl().toFullString();\r\n+        SocketConnector c = CONNECTORS.get(connectorKey);\r\n+        if (c != null) {\r\n+            connector = c;\r\n+        } else {\r\n+            // set thread pool.\r\n+            connector = new SocketConnector(Constants.DEFAULT_IO_THREADS,\r\n+                    Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaClientWorker\", true)));\r\n+            // config\r\n+            SocketConnectorConfig cfg = (SocketConnectorConfig) connector.getDefaultConfig();\r\n+            cfg.setThreadModel(ThreadModel.MANUAL);\r\n+            cfg.getSessionConfig().setTcpNoDelay(true);\r\n+            cfg.getSessionConfig().setKeepAlive(true);\r\n+            int timeout = getConnectTimeout();\r\n+            cfg.setConnectTimeout(timeout < 1000 ? 1 : timeout / 1000);\r\n+            // set codec.\r\n+            connector.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\r\n+            CONNECTORS.put(connectorKey, connector);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doConnect() throws Throwable {\r\n+        ConnectFuture future = connector.connect(getConnectAddress(), new MinaHandler(getUrl(), this));\r\n+        long start = System.currentTimeMillis();\r\n+        final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();\r\n+        final CountDownLatch finish = new CountDownLatch(1); // resolve future.awaitUninterruptibly() dead lock\r\n+        future.addListener(new IoFutureListener() {\r\n+            @Override\r\n+            public void operationComplete(IoFuture future) {\r\n+                try {\r\n+                    if (future.isReady()) {\r\n+                        IoSession newSession = future.getSession();\r\n+                        try {\r\n+                            // Close old channel\r\n+                            IoSession oldSession = MinaClient.this.session; // copy reference\r\n+                            if (oldSession != null) {\r\n+                                try {\r\n+                                    if (logger.isInfoEnabled()) {\r\n+                                        logger.info(\"Close old mina channel \" + oldSession + \" on create new mina channel \" + newSession);\r\n+                                    }\r\n+                                    oldSession.close();\r\n+                                } finally {\r\n+                                    MinaChannel.removeChannelIfDisconnected(oldSession);\r\n+                                }\r\n+                            }\r\n+                        } finally {\r\n+                            if (MinaClient.this.isClosed()) {\r\n+                                try {\r\n+                                    if (logger.isInfoEnabled()) {\r\n+                                        logger.info(\"Close new mina channel \" + newSession + \", because the client closed.\");\r\n+                                    }\r\n+                                    newSession.close();\r\n+                                } finally {\r\n+                                    MinaClient.this.session = null;\r\n+                                    MinaChannel.removeChannelIfDisconnected(newSession);\r\n+                                }\r\n+                            } else {\r\n+                                MinaClient.this.session = newSession;\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    exception.set(e);\r\n+                } finally {\r\n+                    finish.countDown();\r\n+                }\r\n+            }\r\n+        });\r\n+        try {\r\n+            finish.await(getConnectTimeout(), TimeUnit.MILLISECONDS);\r\n+        } catch (InterruptedException e) {\r\n+            throw new RemotingException(this, \"client(url: \" + getUrl() + \") failed to connect to server \" + getRemoteAddress() + \" client-side timeout \"\r\n+                    + getConnectTimeout() + \"ms (elapsed: \" + (System.currentTimeMillis() - start)\r\n+                    + \"ms) from netty client \" + NetUtils.getLocalHost() + \" using dubbo version \"\r\n+                    + Version.getVersion() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+        Throwable e = exception.get();\r\n+        if (e != null) {\r\n+            throw e;\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doDisConnect() throws Throwable {\r\n+        try {\r\n+            MinaChannel.removeChannelIfDisconnected(session);\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Throwable {\r\n+        //release mina resources.\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Channel getChannel() {\r\n+        IoSession s = session;\r\n+        if (s == null || !s.isConnected()) {\r\n+            return null;\r\n+        }\r\n+        return MinaChannel.getOrAddChannel(s, getUrl(), this);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,167 +1,167 @@\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.remoting.transport.mina;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffer;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffers;\n-import org.apache.dubbo.remoting.buffer.DynamicChannelBuffer;\n-\n-import org.apache.mina.common.ByteBuffer;\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.filter.codec.ProtocolCodecFactory;\n-import org.apache.mina.filter.codec.ProtocolDecoder;\n-import org.apache.mina.filter.codec.ProtocolDecoderOutput;\n-import org.apache.mina.filter.codec.ProtocolEncoder;\n-import org.apache.mina.filter.codec.ProtocolEncoderOutput;\n-\n-import static org.apache.dubbo.remoting.Constants.BUFFER_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_BUFFER_SIZE;\n-import static org.apache.dubbo.remoting.Constants.MAX_BUFFER_SIZE;\n-import static org.apache.dubbo.remoting.Constants.MIN_BUFFER_SIZE;\n-\n-/**\n- * MinaCodecAdapter.\n- */\n-final class MinaCodecAdapter implements ProtocolCodecFactory {\n-\n-    private final ProtocolEncoder encoder = new InternalEncoder();\n-\n-    private final ProtocolDecoder decoder = new InternalDecoder();\n-\n-    private final Codec2 codec;\n-\n-    private final URL url;\n-\n-    private final ChannelHandler handler;\n-\n-    private final int bufferSize;\n-\n-    public MinaCodecAdapter(Codec2 codec, URL url, ChannelHandler handler) {\n-        this.codec = codec;\n-        this.url = url;\n-        this.handler = handler;\n-        int b = url.getPositiveParameter(BUFFER_KEY, DEFAULT_BUFFER_SIZE);\n-        this.bufferSize = b >= MIN_BUFFER_SIZE && b <= MAX_BUFFER_SIZE ? b : DEFAULT_BUFFER_SIZE;\n-    }\n-\n-    @Override\n-    public ProtocolEncoder getEncoder() {\n-        return encoder;\n-    }\n-\n-    @Override\n-    public ProtocolDecoder getDecoder() {\n-        return decoder;\n-    }\n-\n-    private class InternalEncoder implements ProtocolEncoder {\n-\n-        @Override\n-        public void dispose(IoSession session) throws Exception {\n-        }\n-\n-        @Override\n-        public void encode(IoSession session, Object msg, ProtocolEncoderOutput out) throws Exception {\n-            ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(1024);\n-            MinaChannel channel = MinaChannel.getOrAddChannel(session, url, handler);\n-            try {\n-                codec.encode(channel, buffer, msg);\n-            } finally {\n-                MinaChannel.removeChannelIfDisconnected(session);\n-            }\n-            out.write(ByteBuffer.wrap(buffer.toByteBuffer()));\n-            out.flush();\n-        }\n-    }\n-\n-    private class InternalDecoder implements ProtocolDecoder {\n-\n-        private ChannelBuffer buffer = ChannelBuffers.EMPTY_BUFFER;\n-\n-        @Override\n-        public void decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) throws Exception {\n-            int readable = in.limit();\n-            if (readable <= 0) {\n-                return;\n-            }\n-\n-            ChannelBuffer frame;\n-\n-            if (buffer.readable()) {\n-                if (buffer instanceof DynamicChannelBuffer) {\n-                    buffer.writeBytes(in.buf());\n-                    frame = buffer;\n-                } else {\n-                    int size = buffer.readableBytes() + in.remaining();\n-                    frame = ChannelBuffers.dynamicBuffer(size > bufferSize ? size : bufferSize);\n-                    frame.writeBytes(buffer, buffer.readableBytes());\n-                    frame.writeBytes(in.buf());\n-                }\n-            } else {\n-                frame = ChannelBuffers.wrappedBuffer(in.buf());\n-            }\n-\n-            Channel channel = MinaChannel.getOrAddChannel(session, url, handler);\n-            Object msg;\n-            int savedReadIndex;\n-\n-            try {\n-                do {\n-                    savedReadIndex = frame.readerIndex();\n-                    try {\n-                        msg = codec.decode(channel, frame);\n-                    } catch (Exception e) {\n-                        buffer = ChannelBuffers.EMPTY_BUFFER;\n-                        throw e;\n-                    }\n-                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\n-                        frame.readerIndex(savedReadIndex);\n-                        break;\n-                    } else {\n-                        if (savedReadIndex == frame.readerIndex()) {\n-                            buffer = ChannelBuffers.EMPTY_BUFFER;\n-                            throw new Exception(\"Decode without read data.\");\n-                        }\n-                        if (msg != null) {\n-                            out.write(msg);\n-                        }\n-                    }\n-                } while (frame.readable());\n-            } finally {\n-                if (frame.readable()) {\n-                    frame.discardReadBytes();\n-                    buffer = frame;\n-                } else {\n-                    buffer = ChannelBuffers.EMPTY_BUFFER;\n-                }\n-                MinaChannel.removeChannelIfDisconnected(session);\n-            }\n-        }\n-\n-        @Override\n-        public void dispose(IoSession session) throws Exception {\n-        }\n-\n-        @Override\n-        public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception {\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.remoting.transport.mina;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffer;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffers;\r\n+import org.apache.dubbo.remoting.buffer.DynamicChannelBuffer;\r\n+\r\n+import org.apache.mina.common.ByteBuffer;\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.filter.codec.ProtocolCodecFactory;\r\n+import org.apache.mina.filter.codec.ProtocolDecoder;\r\n+import org.apache.mina.filter.codec.ProtocolDecoderOutput;\r\n+import org.apache.mina.filter.codec.ProtocolEncoder;\r\n+import org.apache.mina.filter.codec.ProtocolEncoderOutput;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.BUFFER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_BUFFER_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.MAX_BUFFER_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.MIN_BUFFER_SIZE;\r\n+\r\n+/**\r\n+ * MinaCodecAdapter.\r\n+ */\r\n+final class MinaCodecAdapter implements ProtocolCodecFactory {\r\n+\r\n+    private final ProtocolEncoder encoder = new InternalEncoder();\r\n+\r\n+    private final ProtocolDecoder decoder = new InternalDecoder();\r\n+\r\n+    private final Codec2 codec;\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final ChannelHandler handler;\r\n+\r\n+    private final int bufferSize;\r\n+\r\n+    public MinaCodecAdapter(Codec2 codec, URL url, ChannelHandler handler) {\r\n+        this.codec = codec;\r\n+        this.url = url;\r\n+        this.handler = handler;\r\n+        int b = url.getPositiveParameter(BUFFER_KEY, DEFAULT_BUFFER_SIZE);\r\n+        this.bufferSize = b >= MIN_BUFFER_SIZE && b <= MAX_BUFFER_SIZE ? b : DEFAULT_BUFFER_SIZE;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ProtocolEncoder getEncoder() {\r\n+        return encoder;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ProtocolDecoder getDecoder() {\r\n+        return decoder;\r\n+    }\r\n+\r\n+    private class InternalEncoder implements ProtocolEncoder {\r\n+\r\n+        @Override\r\n+        public void dispose(IoSession session) throws Exception {\r\n+        }\r\n+\r\n+        @Override\r\n+        public void encode(IoSession session, Object msg, ProtocolEncoderOutput out) throws Exception {\r\n+            ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(1024);\r\n+            MinaChannel channel = MinaChannel.getOrAddChannel(session, url, handler);\r\n+            try {\r\n+                codec.encode(channel, buffer, msg);\r\n+            } finally {\r\n+                MinaChannel.removeChannelIfDisconnected(session);\r\n+            }\r\n+            out.write(ByteBuffer.wrap(buffer.toByteBuffer()));\r\n+            out.flush();\r\n+        }\r\n+    }\r\n+\r\n+    private class InternalDecoder implements ProtocolDecoder {\r\n+\r\n+        private ChannelBuffer buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+\r\n+        @Override\r\n+        public void decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) throws Exception {\r\n+            int readable = in.limit();\r\n+            if (readable <= 0) {\r\n+                return;\r\n+            }\r\n+\r\n+            ChannelBuffer frame;\r\n+\r\n+            if (buffer.readable()) {\r\n+                if (buffer instanceof DynamicChannelBuffer) {\r\n+                    buffer.writeBytes(in.buf());\r\n+                    frame = buffer;\r\n+                } else {\r\n+                    int size = buffer.readableBytes() + in.remaining();\r\n+                    frame = ChannelBuffers.dynamicBuffer(size > bufferSize ? size : bufferSize);\r\n+                    frame.writeBytes(buffer, buffer.readableBytes());\r\n+                    frame.writeBytes(in.buf());\r\n+                }\r\n+            } else {\r\n+                frame = ChannelBuffers.wrappedBuffer(in.buf());\r\n+            }\r\n+\r\n+            Channel channel = MinaChannel.getOrAddChannel(session, url, handler);\r\n+            Object msg;\r\n+            int savedReadIndex;\r\n+\r\n+            try {\r\n+                do {\r\n+                    savedReadIndex = frame.readerIndex();\r\n+                    try {\r\n+                        msg = codec.decode(channel, frame);\r\n+                    } catch (Exception e) {\r\n+                        buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+                        throw e;\r\n+                    }\r\n+                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\r\n+                        frame.readerIndex(savedReadIndex);\r\n+                        break;\r\n+                    } else {\r\n+                        if (savedReadIndex == frame.readerIndex()) {\r\n+                            buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+                            throw new Exception(\"Decode without read data.\");\r\n+                        }\r\n+                        if (msg != null) {\r\n+                            out.write(msg);\r\n+                        }\r\n+                    }\r\n+                } while (frame.readable());\r\n+            } finally {\r\n+                if (frame.readable()) {\r\n+                    frame.discardReadBytes();\r\n+                    buffer = frame;\r\n+                } else {\r\n+                    buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+                }\r\n+                MinaChannel.removeChannelIfDisconnected(session);\r\n+            }\r\n+        }\r\n+\r\n+        @Override\r\n+        public void dispose(IoSession session) throws Exception {\r\n+        }\r\n+\r\n+        @Override\r\n+        public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception {\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaServer.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,112 +1,112 @@\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.remoting.transport.mina;\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.ExecutorUtil;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractServer;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\n-\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.common.ThreadModel;\n-import org.apache.mina.filter.codec.ProtocolCodecFilter;\n-import org.apache.mina.transport.socket.nio.SocketAcceptor;\n-import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Collection;\n-import java.util.HashSet;\n-import java.util.Set;\n-import java.util.concurrent.Executors;\n-\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\n-import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\n-\n-/**\n- * MinaServer\n- */\n-public class MinaServer extends AbstractServer {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MinaServer.class);\n-\n-    private SocketAcceptor acceptor;\n-\n-    public MinaServer(URL url, ChannelHandler handler) throws RemotingException {\n-        super(url, ChannelHandlers.wrap(handler, ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME)));\n-    }\n-\n-    @Override\n-    protected void doOpen() throws Throwable {\n-        // set thread pool.\n-        acceptor = new SocketAcceptor(getUrl().getPositiveParameter(IO_THREADS_KEY, DEFAULT_IO_THREADS),\n-                Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaServerWorker\",\n-                        true)));\n-        // config\n-        SocketAcceptorConfig cfg = acceptor.getDefaultConfig();\n-        cfg.setThreadModel(ThreadModel.MANUAL);\n-        // set codec.\n-        acceptor.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\n-\n-        acceptor.bind(getBindAddress(), new MinaHandler(getUrl(), this));\n-    }\n-\n-    @Override\n-    protected void doClose() throws Throwable {\n-        try {\n-            if (acceptor != null) {\n-                acceptor.unbind(getBindAddress());\n-            }\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public Collection<Channel> getChannels() {\n-        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\n-        Collection<Channel> channels = new HashSet<Channel>();\n-        for (IoSession session : sessions) {\n-            if (session.isConnected()) {\n-                channels.add(MinaChannel.getOrAddChannel(session, getUrl(), this));\n-            }\n-        }\n-        return channels;\n-    }\n-\n-    @Override\n-    public Channel getChannel(InetSocketAddress remoteAddress) {\n-        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\n-        for (IoSession session : sessions) {\n-            if (session.getRemoteAddress().equals(remoteAddress)) {\n-                return MinaChannel.getOrAddChannel(session, getUrl(), this);\n-            }\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public boolean isBound() {\n-        return acceptor.isManaged(getBindAddress());\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.remoting.transport.mina;\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.ExecutorUtil;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractServer;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\r\n+\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.common.ThreadModel;\r\n+import org.apache.mina.filter.codec.ProtocolCodecFilter;\r\n+import org.apache.mina.transport.socket.nio.SocketAcceptor;\r\n+import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Collection;\r\n+import java.util.HashSet;\r\n+import java.util.Set;\r\n+import java.util.concurrent.Executors;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\r\n+\r\n+/**\r\n+ * MinaServer\r\n+ */\r\n+public class MinaServer extends AbstractServer {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MinaServer.class);\r\n+\r\n+    private SocketAcceptor acceptor;\r\n+\r\n+    public MinaServer(URL url, ChannelHandler handler) throws RemotingException {\r\n+        super(url, ChannelHandlers.wrap(handler, ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME)));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doOpen() throws Throwable {\r\n+        // set thread pool.\r\n+        acceptor = new SocketAcceptor(getUrl().getPositiveParameter(IO_THREADS_KEY, DEFAULT_IO_THREADS),\r\n+                Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaServerWorker\",\r\n+                        true)));\r\n+        // config\r\n+        SocketAcceptorConfig cfg = acceptor.getDefaultConfig();\r\n+        cfg.setThreadModel(ThreadModel.MANUAL);\r\n+        // set codec.\r\n+        acceptor.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\r\n+\r\n+        acceptor.bind(getBindAddress(), new MinaHandler(getUrl(), this));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Throwable {\r\n+        try {\r\n+            if (acceptor != null) {\r\n+                acceptor.unbind(getBindAddress());\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Collection<Channel> getChannels() {\r\n+        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\r\n+        Collection<Channel> channels = new HashSet<Channel>();\r\n+        for (IoSession session : sessions) {\r\n+            if (session.isConnected()) {\r\n+                channels.add(MinaChannel.getOrAddChannel(session, getUrl(), this));\r\n+            }\r\n+        }\r\n+        return channels;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Channel getChannel(InetSocketAddress remoteAddress) {\r\n+        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\r\n+        for (IoSession session : sessions) {\r\n+            if (session.getRemoteAddress().equals(remoteAddress)) {\r\n+                return MinaChannel.getOrAddChannel(session, getUrl(), this);\r\n+            }\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isBound() {\r\n+        return acceptor.isManaged(getBindAddress());\r\n+    }\r\n+\r\n+}\r\n"}]}
