{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,35 +1,35 @@\n-Zip file size: 199033 bytes, number of entries: 33\n+Zip file size: 200220 bytes, number of entries: 33\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/\n -rw----     2.0 fat     3232 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      185 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      186 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.serialize.Serialization\n+-rw----     2.0 fat      187 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.serialize.Serialization\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-serialization-protobuf/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/pom.properties\n--rw----     2.0 fat     3855 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/pom.xml\n--rw----     2.0 fat     1140 bX stor 70-Jan-01 00:00 MapValue.proto\n--rw----     2.0 fat     2781 bX stor 70-Jan-01 00:00 ThrowablePB.proto\n+-rw----     2.0 fat     3751 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/pom.xml\n+-rw----     2.0 fat     1166 bX stor 70-Jan-01 00:00 MapValue.proto\n+-rw----     2.0 fat     2845 bX stor 70-Jan-01 00:00 ThrowablePB.proto\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/common/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/\n--rw----     2.0 fat     5367 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectInput.java\n--rw----     2.0 fat     5344 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java\n--rw----     2.0 fat     1918 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonSerialization.java\n--rw----     2.0 fat     4776 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectInput.java\n--rw----     2.0 fat     5377 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java\n--rw----     2.0 fat     2439 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufSerialization.java\n--rw----     2.0 fat     8140 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/ProtobufUtils.java\n--rw----     2.0 fat     2577 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/ProtobufWrappedException.java\n+-rw----     2.0 fat     5531 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectInput.java\n+-rw----     2.0 fat     5504 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java\n+-rw----     2.0 fat     1972 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonSerialization.java\n+-rw----     2.0 fat     4922 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectInput.java\n+-rw----     2.0 fat     5533 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java\n+-rw----     2.0 fat     2502 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufSerialization.java\n+-rw----     2.0 fat     8345 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/ProtobufUtils.java\n+-rw----     2.0 fat     2645 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/ProtobufWrappedException.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/wrapper/\n -rw----     2.0 fat    31696 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/wrapper/MapValue.java\n--rw----     2.0 fat   102165 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/wrapper/ThrowablePB.java\n-33 files, 192561 bytes uncompressed, 192561 bytes compressed:  0.0%\n+-rw----     2.0 fat   102349 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/wrapper/ThrowablePB.java\n+33 files, 193748 bytes uncompressed, 193748 bytes compressed:  0.0%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -193,1624 +193,1624 @@\n #          Zero length filename\n #\n 03BFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 03C00   Length              0005 (5)\n 03C02   Flags               01 (1) 'Modification'\n 03C03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n 03C07 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-03CC1 DATA DESCRIPTOR       08074B50 (134695760)\n-03CC5 CRC                   1AFBAFD1 (452702161)\n-03CC9 Compressed Size       000000BA (186)\n-03CCD Uncompressed Size     000000BA (186)\n-\n-03CD1 LOCAL HEADER #9       04034B50 (67324752)\n-03CD5 Extract Zip Spec      14 (20) '2.0'\n-03CD6 Extract OS            00 (0) 'MS-DOS'\n-03CD7 General Purpose Flag  0000 (0)\n-03CD9 Compression Method    0000 (0) 'Stored'\n-03CDB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03CDF CRC                   00000000 (0)\n-03CE3 Compressed Size       00000000 (0)\n-03CE7 Uncompressed Size     00000000 (0)\n-03CEB Filename Length       000F (15)\n-03CED Extra Length          0009 (9)\n-03CEF Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CEF: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03CFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03D00   Length              0005 (5)\n-03D02   Flags               01 (1) 'Modification'\n-03D03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-03D07 LOCAL HEADER #10      04034B50 (67324752)\n-03D0B Extract Zip Spec      14 (20) '2.0'\n-03D0C Extract OS            00 (0) 'MS-DOS'\n-03D0D General Purpose Flag  0000 (0)\n-03D0F Compression Method    0000 (0) 'Stored'\n-03D11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03D15 CRC                   00000000 (0)\n-03D19 Compressed Size       00000000 (0)\n-03D1D Uncompressed Size     00000000 (0)\n-03D21 Filename Length       0020 (32)\n-03D23 Extra Length          0009 (9)\n-03D25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03D45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03D47   Length              0005 (5)\n-03D49   Flags               01 (1) 'Modification'\n-03D4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-03D4E LOCAL HEADER #11      04034B50 (67324752)\n-03D52 Extract Zip Spec      14 (20) '2.0'\n-03D53 Extract OS            00 (0) 'MS-DOS'\n-03D54 General Purpose Flag  0000 (0)\n-03D56 Compression Method    0000 (0) 'Stored'\n-03D58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03D5C CRC                   00000000 (0)\n-03D60 Compressed Size       00000000 (0)\n-03D64 Uncompressed Size     00000000 (0)\n-03D68 Filename Length       003D (61)\n-03D6A Extra Length          0009 (9)\n-03D6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03DA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03DAB   Length              0005 (5)\n-03DAD   Flags               01 (1) 'Modification'\n-03DAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-03DB2 LOCAL HEADER #12      04034B50 (67324752)\n-03DB6 Extract Zip Spec      14 (20) '2.0'\n-03DB7 Extract OS            00 (0) 'MS-DOS'\n-03DB8 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-03DBA Compression Method    0000 (0) 'Stored'\n-03DBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03DC0 CRC                   00000000 (0)\n-03DC4 Compressed Size       00000000 (0)\n-03DC8 Uncompressed Size     00000000 (0)\n-03DCC Filename Length       004B (75)\n-03DCE Extra Length          0009 (9)\n-03DD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03E1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03E1D   Length              0005 (5)\n-03E1F   Flags               01 (1) 'Modification'\n-03E20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-03E24 DATA DESCRIPTOR       08074B50 (134695760)\n-03E28 CRC                   00000000 (0)\n-03E2C Compressed Size       00000000 (0)\n-03E30 Uncompressed Size     00000000 (0)\n-\n-03E34 LOCAL HEADER #13      04034B50 (67324752)\n-03E38 Extract Zip Spec      14 (20) '2.0'\n-03E39 Extract OS            00 (0) 'MS-DOS'\n-03E3A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-03E3C Compression Method    0000 (0) 'Stored'\n-03E3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03E42 CRC                   00000000 (0)\n-03E46 Compressed Size       00000000 (0)\n-03E4A Uncompressed Size     00000000 (0)\n-03E4E Filename Length       0044 (68)\n-03E50 Extra Length          0009 (9)\n-03E52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03E96 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03E98   Length              0005 (5)\n-03E9A   Flags               01 (1) 'Modification'\n-03E9B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03E9F PAYLOAD\n-\n-04DAE DATA DESCRIPTOR       08074B50 (134695760)\n-04DB2 CRC                   FA85A8D5 (4203063509)\n-04DB6 Compressed Size       00000F0F (3855)\n-04DBA Uncompressed Size     00000F0F (3855)\n-\n-04DBE LOCAL HEADER #14      04034B50 (67324752)\n-04DC2 Extract Zip Spec      14 (20) '2.0'\n-04DC3 Extract OS            00 (0) 'MS-DOS'\n-04DC4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-04DC6 Compression Method    0000 (0) 'Stored'\n-04DC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04DCC CRC                   00000000 (0)\n-04DD0 Compressed Size       00000000 (0)\n-04DD4 Uncompressed Size     00000000 (0)\n-04DD8 Filename Length       000E (14)\n-04DDA Extra Length          0009 (9)\n-04DDC Filename              'XXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4DDC: Filename 'XXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04DEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04DEC   Length              0005 (5)\n-04DEE   Flags               01 (1) 'Modification'\n-04DEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04DF3 PAYLOAD\n-\n-05267 DATA DESCRIPTOR       08074B50 (134695760)\n-0526B CRC                   B6BD94DA (3065877722)\n-0526F Compressed Size       00000474 (1140)\n-05273 Uncompressed Size     00000474 (1140)\n-\n-05277 LOCAL HEADER #15      04034B50 (67324752)\n-0527B Extract Zip Spec      14 (20) '2.0'\n-0527C Extract OS            00 (0) 'MS-DOS'\n-0527D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0527F Compression Method    0000 (0) 'Stored'\n-05281 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05285 CRC                   00000000 (0)\n-05289 Compressed Size       00000000 (0)\n-0528D Uncompressed Size     00000000 (0)\n-05291 Filename Length       0011 (17)\n-05293 Extra Length          0009 (9)\n-05295 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5295: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-052A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-052A8   Length              0005 (5)\n-052AA   Flags               01 (1) 'Modification'\n-052AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-052AF PAYLOAD\n-\n-05D8C DATA DESCRIPTOR       08074B50 (134695760)\n-05D90 CRC                   0A4703DB (172426203)\n-05D94 Compressed Size       00000ADD (2781)\n-05D98 Uncompressed Size     00000ADD (2781)\n-\n-05D9C LOCAL HEADER #16      04034B50 (67324752)\n-05DA0 Extract Zip Spec      14 (20) '2.0'\n-05DA1 Extract OS            00 (0) 'MS-DOS'\n-05DA2 General Purpose Flag  0000 (0)\n-05DA4 Compression Method    0000 (0) 'Stored'\n-05DA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05DAA CRC                   00000000 (0)\n-05DAE Compressed Size       00000000 (0)\n-05DB2 Uncompressed Size     00000000 (0)\n-05DB6 Filename Length       0004 (4)\n-05DB8 Extra Length          0009 (9)\n-05DBA Filename              'XXXX'\n-#\n-# WARNING: Offset 0x5DBA: Filename 'XXXX'\n-#          Zero length filename\n-#\n-05DBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05DC0   Length              0005 (5)\n-05DC2   Flags               01 (1) 'Modification'\n-05DC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05DC7 LOCAL HEADER #17      04034B50 (67324752)\n-05DCB Extract Zip Spec      14 (20) '2.0'\n-05DCC Extract OS            00 (0) 'MS-DOS'\n-05DCD General Purpose Flag  0000 (0)\n-05DCF Compression Method    0000 (0) 'Stored'\n-05DD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05DD5 CRC                   00000000 (0)\n-05DD9 Compressed Size       00000000 (0)\n-05DDD Uncompressed Size     00000000 (0)\n-05DE1 Filename Length       000B (11)\n-05DE3 Extra Length          0009 (9)\n-05DE5 Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DE5: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05DF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05DF2   Length              0005 (5)\n-05DF4   Flags               01 (1) 'Modification'\n-05DF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05DF9 LOCAL HEADER #18      04034B50 (67324752)\n-05DFD Extract Zip Spec      14 (20) '2.0'\n-05DFE Extract OS            00 (0) 'MS-DOS'\n-05DFF General Purpose Flag  0000 (0)\n-05E01 Compression Method    0000 (0) 'Stored'\n-05E03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05E07 CRC                   00000000 (0)\n-05E0B Compressed Size       00000000 (0)\n-05E0F Uncompressed Size     00000000 (0)\n-05E13 Filename Length       0011 (17)\n-05E15 Extra Length          0009 (9)\n-05E17 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E17: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05E28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05E2A   Length              0005 (5)\n-05E2C   Flags               01 (1) 'Modification'\n-05E2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05E31 LOCAL HEADER #19      04034B50 (67324752)\n-05E35 Extract Zip Spec      14 (20) '2.0'\n-05E36 Extract OS            00 (0) 'MS-DOS'\n-05E37 General Purpose Flag  0000 (0)\n-05E39 Compression Method    0000 (0) 'Stored'\n-05E3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05E3F CRC                   00000000 (0)\n-05E43 Compressed Size       00000000 (0)\n-05E47 Uncompressed Size     00000000 (0)\n-05E4B Filename Length       0018 (24)\n-05E4D Extra Length          0009 (9)\n-05E4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05E67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05E69   Length              0005 (5)\n-05E6B   Flags               01 (1) 'Modification'\n-05E6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05E70 LOCAL HEADER #20      04034B50 (67324752)\n-05E74 Extract Zip Spec      14 (20) '2.0'\n-05E75 Extract OS            00 (0) 'MS-DOS'\n-05E76 General Purpose Flag  0000 (0)\n-05E78 Compression Method    0000 (0) 'Stored'\n-05E7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05E7E CRC                   00000000 (0)\n-05E82 Compressed Size       00000000 (0)\n-05E86 Uncompressed Size     00000000 (0)\n-05E8A Filename Length       0022 (34)\n-05E8C Extra Length          0009 (9)\n-05E8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05EB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05EB2   Length              0005 (5)\n-05EB4   Flags               01 (1) 'Modification'\n-05EB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05EB9 LOCAL HEADER #21      04034B50 (67324752)\n-05EBD Extract Zip Spec      14 (20) '2.0'\n-05EBE Extract OS            00 (0) 'MS-DOS'\n-05EBF General Purpose Flag  0000 (0)\n-05EC1 Compression Method    0000 (0) 'Stored'\n-05EC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05EC7 CRC                   00000000 (0)\n-05ECB Compressed Size       00000000 (0)\n-05ECF Uncompressed Size     00000000 (0)\n-05ED3 Filename Length       002B (43)\n-05ED5 Extra Length          0009 (9)\n-05ED7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5ED7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05F02 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05F04   Length              0005 (5)\n-05F06   Flags               01 (1) 'Modification'\n-05F07   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05F0B LOCAL HEADER #22      04034B50 (67324752)\n-05F0F Extract Zip Spec      14 (20) '2.0'\n-05F10 Extract OS            00 (0) 'MS-DOS'\n-05F11 General Purpose Flag  0000 (0)\n-05F13 Compression Method    0000 (0) 'Stored'\n-05F15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05F19 CRC                   00000000 (0)\n-05F1D Compressed Size       00000000 (0)\n-05F21 Uncompressed Size     00000000 (0)\n-05F25 Filename Length       0033 (51)\n-05F27 Extra Length          0009 (9)\n-05F29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05F5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05F5E   Length              0005 (5)\n-05F60   Flags               01 (1) 'Modification'\n-05F61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05F65 LOCAL HEADER #23      04034B50 (67324752)\n-05F69 Extract Zip Spec      14 (20) '2.0'\n-05F6A Extract OS            00 (0) 'MS-DOS'\n-05F6B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-05F6D Compression Method    0000 (0) 'Stored'\n-05F6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05F73 CRC                   00000000 (0)\n-05F77 Compressed Size       00000000 (0)\n-05F7B Uncompressed Size     00000000 (0)\n-05F7F Filename Length       0056 (86)\n-05F81 Extra Length          0009 (9)\n-05F83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05FD9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05FDB   Length              0005 (5)\n-05FDD   Flags               01 (1) 'Modification'\n-05FDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05FE2 PAYLOAD\n-\n-074D9 DATA DESCRIPTOR       08074B50 (134695760)\n-074DD CRC                   F393F7AB (4086560683)\n-074E1 Compressed Size       000014F7 (5367)\n-074E5 Uncompressed Size     000014F7 (5367)\n-\n-074E9 LOCAL HEADER #24      04034B50 (67324752)\n-074ED Extract Zip Spec      14 (20) '2.0'\n-074EE Extract OS            00 (0) 'MS-DOS'\n-074EF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-074F1 Compression Method    0000 (0) 'Stored'\n-074F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-074F7 CRC                   00000000 (0)\n-074FB Compressed Size       00000000 (0)\n-074FF Uncompressed Size     00000000 (0)\n-07503 Filename Length       0057 (87)\n-07505 Extra Length          0009 (9)\n-07507 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7507: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0755E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07560   Length              0005 (5)\n-07562   Flags               01 (1) 'Modification'\n-07563   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-07567 PAYLOAD\n-\n-08A47 DATA DESCRIPTOR       08074B50 (134695760)\n-08A4B CRC                   836D6DDB (2204986843)\n-08A4F Compressed Size       000014E0 (5344)\n-08A53 Uncompressed Size     000014E0 (5344)\n-\n-08A57 LOCAL HEADER #25      04034B50 (67324752)\n-08A5B Extract Zip Spec      14 (20) '2.0'\n-08A5C Extract OS            00 (0) 'MS-DOS'\n-08A5D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-08A5F Compression Method    0000 (0) 'Stored'\n-08A61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-08A65 CRC                   00000000 (0)\n-08A69 Compressed Size       00000000 (0)\n-08A6D Uncompressed Size     00000000 (0)\n-08A71 Filename Length       0058 (88)\n-08A73 Extra Length          0009 (9)\n-08A75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8A75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08ACD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08ACF   Length              0005 (5)\n-08AD1   Flags               01 (1) 'Modification'\n-08AD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-08AD6 PAYLOAD\n-\n-09254 DATA DESCRIPTOR       08074B50 (134695760)\n-09258 CRC                   B1C72E69 (2982620777)\n-0925C Compressed Size       0000077E (1918)\n-09260 Uncompressed Size     0000077E (1918)\n-\n-09264 LOCAL HEADER #26      04034B50 (67324752)\n-09268 Extract Zip Spec      14 (20) '2.0'\n-09269 Extract OS            00 (0) 'MS-DOS'\n-0926A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0926C Compression Method    0000 (0) 'Stored'\n-0926E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09272 CRC                   00000000 (0)\n-09276 Compressed Size       00000000 (0)\n-0927A Uncompressed Size     00000000 (0)\n-0927E Filename Length       0052 (82)\n-09280 Extra Length          0009 (9)\n-09282 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9282: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-092D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-092D6   Length              0005 (5)\n-092D8   Flags               01 (1) 'Modification'\n-092D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-092DD PAYLOAD\n-\n-0A585 DATA DESCRIPTOR       08074B50 (134695760)\n-0A589 CRC                   78006A1A (2013293082)\n-0A58D Compressed Size       000012A8 (4776)\n-0A591 Uncompressed Size     000012A8 (4776)\n-\n-0A595 LOCAL HEADER #27      04034B50 (67324752)\n-0A599 Extract Zip Spec      14 (20) '2.0'\n-0A59A Extract OS            00 (0) 'MS-DOS'\n-0A59B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0A59D Compression Method    0000 (0) 'Stored'\n-0A59F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A5A3 CRC                   00000000 (0)\n-0A5A7 Compressed Size       00000000 (0)\n-0A5AB Uncompressed Size     00000000 (0)\n-0A5AF Filename Length       0053 (83)\n-0A5B1 Extra Length          0009 (9)\n-0A5B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA5B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A606 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A608   Length              0005 (5)\n-0A60A   Flags               01 (1) 'Modification'\n-0A60B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A60F PAYLOAD\n-\n-0BB10 DATA DESCRIPTOR       08074B50 (134695760)\n-0BB14 CRC                   E8DE57DA (3906885594)\n-0BB18 Compressed Size       00001501 (5377)\n-0BB1C Uncompressed Size     00001501 (5377)\n-\n-0BB20 LOCAL HEADER #28      04034B50 (67324752)\n-0BB24 Extract Zip Spec      14 (20) '2.0'\n-0BB25 Extract OS            00 (0) 'MS-DOS'\n-0BB26 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0BB28 Compression Method    0000 (0) 'Stored'\n-0BB2A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0BB2E CRC                   00000000 (0)\n-0BB32 Compressed Size       00000000 (0)\n-0BB36 Uncompressed Size     00000000 (0)\n-0BB3A Filename Length       0054 (84)\n-0BB3C Extra Length          0009 (9)\n-0BB3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xBB3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0BB92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0BB94   Length              0005 (5)\n-0BB96   Flags               01 (1) 'Modification'\n-0BB97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0BB9B PAYLOAD\n-\n-0C522 DATA DESCRIPTOR       08074B50 (134695760)\n-0C526 CRC                   DB97F7FB (3684169723)\n-0C52A Compressed Size       00000987 (2439)\n-0C52E Uncompressed Size     00000987 (2439)\n-\n-0C532 LOCAL HEADER #29      04034B50 (67324752)\n-0C536 Extract Zip Spec      14 (20) '2.0'\n-0C537 Extract OS            00 (0) 'MS-DOS'\n-0C538 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0C53A Compression Method    0000 (0) 'Stored'\n-0C53C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0C540 CRC                   00000000 (0)\n-0C544 Compressed Size       00000000 (0)\n-0C548 Uncompressed Size     00000000 (0)\n-0C54C Filename Length       0045 (69)\n-0C54E Extra Length          0009 (9)\n-0C550 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xC550: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0C595 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0C597   Length              0005 (5)\n-0C599   Flags               01 (1) 'Modification'\n-0C59A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0C59E PAYLOAD\n-\n-0E56A DATA DESCRIPTOR       08074B50 (134695760)\n-0E56E CRC                   FACFCF03 (4207922947)\n-0E572 Compressed Size       00001FCC (8140)\n-0E576 Uncompressed Size     00001FCC (8140)\n-\n-0E57A LOCAL HEADER #30      04034B50 (67324752)\n-0E57E Extract Zip Spec      14 (20) '2.0'\n-0E57F Extract OS            00 (0) 'MS-DOS'\n-0E580 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0E582 Compression Method    0000 (0) 'Stored'\n-0E584 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0E588 CRC                   00000000 (0)\n-0E58C Compressed Size       00000000 (0)\n-0E590 Uncompressed Size     00000000 (0)\n-0E594 Filename Length       0050 (80)\n-0E596 Extra Length          0009 (9)\n-0E598 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xE598: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0E5E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0E5EA   Length              0005 (5)\n-0E5EC   Flags               01 (1) 'Modification'\n-0E5ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0E5F1 PAYLOAD\n-\n-0F002 DATA DESCRIPTOR       08074B50 (134695760)\n-0F006 CRC                   8EB7D7DD (2394413021)\n-0F00A Compressed Size       00000A11 (2577)\n-0F00E Uncompressed Size     00000A11 (2577)\n-\n-0F012 LOCAL HEADER #31      04034B50 (67324752)\n-0F016 Extract Zip Spec      14 (20) '2.0'\n-0F017 Extract OS            00 (0) 'MS-DOS'\n-0F018 General Purpose Flag  0000 (0)\n-0F01A Compression Method    0000 (0) 'Stored'\n-0F01C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0F020 CRC                   00000000 (0)\n-0F024 Compressed Size       00000000 (0)\n-0F028 Uncompressed Size     00000000 (0)\n-0F02C Filename Length       003B (59)\n-0F02E Extra Length          0009 (9)\n-0F030 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xF030: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0F06B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0F06D   Length              0005 (5)\n-0F06F   Flags               01 (1) 'Modification'\n-0F070   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0F074 LOCAL HEADER #32      04034B50 (67324752)\n-0F078 Extract Zip Spec      14 (20) '2.0'\n-0F079 Extract OS            00 (0) 'MS-DOS'\n-0F07A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0F07C Compression Method    0000 (0) 'Stored'\n-0F07E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0F082 CRC                   00000000 (0)\n-0F086 Compressed Size       00000000 (0)\n-0F08A Uncompressed Size     00000000 (0)\n-0F08E Filename Length       0048 (72)\n-0F090 Extra Length          0009 (9)\n-0F092 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xF092: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0F0DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0F0DC   Length              0005 (5)\n-0F0DE   Flags               01 (1) 'Modification'\n-0F0DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0F0E3 PAYLOAD\n-\n-16CB3 DATA DESCRIPTOR       08074B50 (134695760)\n-16CB7 CRC                   3E2D4260 (1043153504)\n-16CBB Compressed Size       00007BD0 (31696)\n-16CBF Uncompressed Size     00007BD0 (31696)\n-\n-16CC3 LOCAL HEADER #33      04034B50 (67324752)\n-16CC7 Extract Zip Spec      14 (20) '2.0'\n-16CC8 Extract OS            00 (0) 'MS-DOS'\n-16CC9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-16CCB Compression Method    0000 (0) 'Stored'\n-16CCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16CD1 CRC                   00000000 (0)\n-16CD5 Compressed Size       00000000 (0)\n-16CD9 Uncompressed Size     00000000 (0)\n-16CDD Filename Length       004B (75)\n-16CDF Extra Length          0009 (9)\n-16CE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16CE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16D2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16D2E   Length              0005 (5)\n-16D30   Flags               01 (1) 'Modification'\n-16D31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16D35 PAYLOAD\n-\n-2FC4A DATA DESCRIPTOR       08074B50 (134695760)\n-2FC4E CRC                   218FA1FC (563061244)\n-2FC52 Compressed Size       00018F15 (102165)\n-2FC56 Uncompressed Size     00018F15 (102165)\n-\n-2FC5A CENTRAL HEADER #1     02014B50 (33639248)\n-2FC5E Created Zip Spec      14 (20) '2.0'\n-2FC5F Created OS            00 (0) 'MS-DOS'\n-2FC60 Extract Zip Spec      14 (20) '2.0'\n-2FC61 Extract OS            00 (0) 'MS-DOS'\n-2FC62 General Purpose Flag  0000 (0)\n-2FC64 Compression Method    0000 (0) 'Stored'\n-2FC66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FC6A CRC                   00000000 (0)\n-2FC6E Compressed Size       00000000 (0)\n-2FC72 Uncompressed Size     00000000 (0)\n-2FC76 Filename Length       0009 (9)\n-2FC78 Extra Length          0009 (9)\n-2FC7A Comment Length        0000 (0)\n-2FC7C Disk Start            0000 (0)\n-2FC7E Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FC80 Ext File Attributes   00000000 (0)\n-2FC84 Local Header Offset   00000000 (0)\n-2FC88 Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FC88: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-2FC91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FC93   Length              0005 (5)\n-2FC95   Flags               01 (1) 'Modification'\n-2FC96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FC9A CENTRAL HEADER #2     02014B50 (33639248)\n-2FC9E Created Zip Spec      14 (20) '2.0'\n-2FC9F Created OS            00 (0) 'MS-DOS'\n-2FCA0 Extract Zip Spec      14 (20) '2.0'\n-2FCA1 Extract OS            00 (0) 'MS-DOS'\n-2FCA2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2FCA4 Compression Method    0000 (0) 'Stored'\n-2FCA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FCAA CRC                   8BFD2146 (2348622150)\n-2FCAE Compressed Size       00000CA0 (3232)\n-2FCB2 Uncompressed Size     00000CA0 (3232)\n-2FCB6 Filename Length       0015 (21)\n-2FCB8 Extra Length          0009 (9)\n-2FCBA Comment Length        0000 (0)\n-2FCBC Disk Start            0000 (0)\n-2FCBE Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FCC0 Ext File Attributes   00000000 (0)\n-2FCC4 Local Header Offset   00000030 (48)\n-2FCC8 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FCC8: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FCDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FCDF   Length              0005 (5)\n-2FCE1   Flags               01 (1) 'Modification'\n-2FCE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FCE6 CENTRAL HEADER #3     02014B50 (33639248)\n-2FCEA Created Zip Spec      14 (20) '2.0'\n-2FCEB Created OS            00 (0) 'MS-DOS'\n-2FCEC Extract Zip Spec      14 (20) '2.0'\n-2FCED Extract OS            00 (0) 'MS-DOS'\n-2FCEE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2FCF0 Compression Method    0000 (0) 'Stored'\n-2FCF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FCF6 CRC                   86E2B4B4 (2263004340)\n-2FCFA Compressed Size       00002C5E (11358)\n-2FCFE Uncompressed Size     00002C5E (11358)\n-2FD02 Filename Length       0010 (16)\n-2FD04 Extra Length          0009 (9)\n-2FD06 Comment Length        0000 (0)\n-2FD08 Disk Start            0000 (0)\n-2FD0A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FD0C Ext File Attributes   00000000 (0)\n-2FD10 Local Header Offset   00000D1C (3356)\n-2FD14 Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FD14: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FD24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FD26   Length              0005 (5)\n-2FD28   Flags               01 (1) 'Modification'\n-2FD29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FD2D CENTRAL HEADER #4     02014B50 (33639248)\n-2FD31 Created Zip Spec      14 (20) '2.0'\n-2FD32 Created OS            00 (0) 'MS-DOS'\n-2FD33 Extract Zip Spec      14 (20) '2.0'\n-2FD34 Extract OS            00 (0) 'MS-DOS'\n-2FD35 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2FD37 Compression Method    0000 (0) 'Stored'\n-2FD39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FD3D CRC                   EE027FB2 (3993141170)\n-2FD41 Compressed Size       00000019 (25)\n-2FD45 Uncompressed Size     00000019 (25)\n-2FD49 Filename Length       0014 (20)\n-2FD4B Extra Length          0009 (9)\n-2FD4D Comment Length        0000 (0)\n-2FD4F Disk Start            0000 (0)\n-2FD51 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FD53 Ext File Attributes   00000000 (0)\n-2FD57 Local Header Offset   000039C1 (14785)\n-2FD5B Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FD5B: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FD6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FD71   Length              0005 (5)\n-2FD73   Flags               01 (1) 'Modification'\n-2FD74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FD78 CENTRAL HEADER #5     02014B50 (33639248)\n-2FD7C Created Zip Spec      14 (20) '2.0'\n-2FD7D Created OS            00 (0) 'MS-DOS'\n-2FD7E Extract Zip Spec      14 (20) '2.0'\n-2FD7F Extract OS            00 (0) 'MS-DOS'\n-2FD80 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2FD82 Compression Method    0000 (0) 'Stored'\n-2FD84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FD88 CRC                   D74DA525 (3612189989)\n-2FD8C Compressed Size       000000B9 (185)\n-2FD90 Uncompressed Size     000000B9 (185)\n-2FD94 Filename Length       000F (15)\n-2FD96 Extra Length          0009 (9)\n-2FD98 Comment Length        0000 (0)\n-2FD9A Disk Start            0000 (0)\n-2FD9C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FD9E Ext File Attributes   00000000 (0)\n-2FDA2 Local Header Offset   00003A25 (14885)\n-2FDA6 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FDA6: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FDB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FDB7   Length              0005 (5)\n-2FDB9   Flags               01 (1) 'Modification'\n-2FDBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FDBE CENTRAL HEADER #6     02014B50 (33639248)\n-2FDC2 Created Zip Spec      14 (20) '2.0'\n-2FDC3 Created OS            00 (0) 'MS-DOS'\n-2FDC4 Extract Zip Spec      14 (20) '2.0'\n-2FDC5 Extract OS            00 (0) 'MS-DOS'\n-2FDC6 General Purpose Flag  0000 (0)\n-2FDC8 Compression Method    0000 (0) 'Stored'\n-2FDCA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FDCE CRC                   00000000 (0)\n-2FDD2 Compressed Size       00000000 (0)\n-2FDD6 Uncompressed Size     00000000 (0)\n-2FDDA Filename Length       000F (15)\n-2FDDC Extra Length          0009 (9)\n-2FDDE Comment Length        0000 (0)\n-2FDE0 Disk Start            0000 (0)\n-2FDE2 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FDE4 Ext File Attributes   00000000 (0)\n-2FDE8 Local Header Offset   00003B24 (15140)\n-2FDEC Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FDEC: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FDFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FDFD   Length              0005 (5)\n-2FDFF   Flags               01 (1) 'Modification'\n-2FE00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FE04 CENTRAL HEADER #7     02014B50 (33639248)\n-2FE08 Created Zip Spec      14 (20) '2.0'\n-2FE09 Created OS            00 (0) 'MS-DOS'\n-2FE0A Extract Zip Spec      14 (20) '2.0'\n-2FE0B Extract OS            00 (0) 'MS-DOS'\n-2FE0C General Purpose Flag  0000 (0)\n-2FE0E Compression Method    0000 (0) 'Stored'\n-2FE10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FE14 CRC                   00000000 (0)\n-2FE18 Compressed Size       00000000 (0)\n-2FE1C Uncompressed Size     00000000 (0)\n-2FE20 Filename Length       0018 (24)\n-2FE22 Extra Length          0009 (9)\n-2FE24 Comment Length        0000 (0)\n-2FE26 Disk Start            0000 (0)\n-2FE28 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FE2A Ext File Attributes   00000000 (0)\n-2FE2E Local Header Offset   00003B5A (15194)\n-2FE32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FE32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FE4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FE4C   Length              0005 (5)\n-2FE4E   Flags               01 (1) 'Modification'\n-2FE4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FE53 CENTRAL HEADER #8     02014B50 (33639248)\n-2FE57 Created Zip Spec      14 (20) '2.0'\n-2FE58 Created OS            00 (0) 'MS-DOS'\n-2FE59 Extract Zip Spec      14 (20) '2.0'\n-2FE5A Extract OS            00 (0) 'MS-DOS'\n-2FE5B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2FE5D Compression Method    0000 (0) 'Stored'\n-2FE5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FE63 CRC                   1AFBAFD1 (452702161)\n-2FE67 Compressed Size       000000BA (186)\n-2FE6B Uncompressed Size     000000BA (186)\n-2FE6F Filename Length       0047 (71)\n-2FE71 Extra Length          0009 (9)\n-2FE73 Comment Length        0000 (0)\n-2FE75 Disk Start            0000 (0)\n-2FE77 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FE79 Ext File Attributes   00000000 (0)\n-2FE7D Local Header Offset   00003B99 (15257)\n-2FE81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FE81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FEC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FECA   Length              0005 (5)\n-2FECC   Flags               01 (1) 'Modification'\n-2FECD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FED1 CENTRAL HEADER #9     02014B50 (33639248)\n-2FED5 Created Zip Spec      14 (20) '2.0'\n-2FED6 Created OS            00 (0) 'MS-DOS'\n-2FED7 Extract Zip Spec      14 (20) '2.0'\n-2FED8 Extract OS            00 (0) 'MS-DOS'\n-2FED9 General Purpose Flag  0000 (0)\n-2FEDB Compression Method    0000 (0) 'Stored'\n-2FEDD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FEE1 CRC                   00000000 (0)\n-2FEE5 Compressed Size       00000000 (0)\n-2FEE9 Uncompressed Size     00000000 (0)\n-2FEED Filename Length       000F (15)\n-2FEEF Extra Length          0009 (9)\n-2FEF1 Comment Length        0000 (0)\n-2FEF3 Disk Start            0000 (0)\n-2FEF5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FEF7 Ext File Attributes   00000000 (0)\n-2FEFB Local Header Offset   00003CD1 (15569)\n-2FEFF Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FEFF: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FF0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FF10   Length              0005 (5)\n-2FF12   Flags               01 (1) 'Modification'\n-2FF13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FF17 CENTRAL HEADER #10    02014B50 (33639248)\n-2FF1B Created Zip Spec      14 (20) '2.0'\n-2FF1C Created OS            00 (0) 'MS-DOS'\n-2FF1D Extract Zip Spec      14 (20) '2.0'\n-2FF1E Extract OS            00 (0) 'MS-DOS'\n-2FF1F General Purpose Flag  0000 (0)\n-2FF21 Compression Method    0000 (0) 'Stored'\n-2FF23 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FF27 CRC                   00000000 (0)\n-2FF2B Compressed Size       00000000 (0)\n-2FF2F Uncompressed Size     00000000 (0)\n-2FF33 Filename Length       0020 (32)\n-2FF35 Extra Length          0009 (9)\n-2FF37 Comment Length        0000 (0)\n-2FF39 Disk Start            0000 (0)\n-2FF3B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FF3D Ext File Attributes   00000000 (0)\n-2FF41 Local Header Offset   00003D07 (15623)\n-2FF45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FF45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FF65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FF67   Length              0005 (5)\n-2FF69   Flags               01 (1) 'Modification'\n-2FF6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FF6E CENTRAL HEADER #11    02014B50 (33639248)\n-2FF72 Created Zip Spec      14 (20) '2.0'\n-2FF73 Created OS            00 (0) 'MS-DOS'\n-2FF74 Extract Zip Spec      14 (20) '2.0'\n-2FF75 Extract OS            00 (0) 'MS-DOS'\n-2FF76 General Purpose Flag  0000 (0)\n-2FF78 Compression Method    0000 (0) 'Stored'\n-2FF7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FF7E CRC                   00000000 (0)\n-2FF82 Compressed Size       00000000 (0)\n-2FF86 Uncompressed Size     00000000 (0)\n-2FF8A Filename Length       003D (61)\n-2FF8C Extra Length          0009 (9)\n-2FF8E Comment Length        0000 (0)\n-2FF90 Disk Start            0000 (0)\n-2FF92 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2FF94 Ext File Attributes   00000000 (0)\n-2FF98 Local Header Offset   00003D4E (15694)\n-2FF9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FF9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FFD9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FFDB   Length              0005 (5)\n-2FFDD   Flags               01 (1) 'Modification'\n-2FFDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2FFE2 CENTRAL HEADER #12    02014B50 (33639248)\n-2FFE6 Created Zip Spec      14 (20) '2.0'\n-2FFE7 Created OS            00 (0) 'MS-DOS'\n-2FFE8 Extract Zip Spec      14 (20) '2.0'\n-2FFE9 Extract OS            00 (0) 'MS-DOS'\n-2FFEA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2FFEC Compression Method    0000 (0) 'Stored'\n-2FFEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FFF2 CRC                   00000000 (0)\n-2FFF6 Compressed Size       00000000 (0)\n-2FFFA Uncompressed Size     00000000 (0)\n-2FFFE Filename Length       004B (75)\n-30000 Extra Length          0009 (9)\n-30002 Comment Length        0000 (0)\n-30004 Disk Start            0000 (0)\n-30006 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30008 Ext File Attributes   00000000 (0)\n-3000C Local Header Offset   00003DB2 (15794)\n-30010 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30010: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3005B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3005D   Length              0005 (5)\n-3005F   Flags               01 (1) 'Modification'\n-30060   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-30064 CENTRAL HEADER #13    02014B50 (33639248)\n-30068 Created Zip Spec      14 (20) '2.0'\n-30069 Created OS            00 (0) 'MS-DOS'\n-3006A Extract Zip Spec      14 (20) '2.0'\n-3006B Extract OS            00 (0) 'MS-DOS'\n-3006C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3006E Compression Method    0000 (0) 'Stored'\n-30070 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30074 CRC                   FA85A8D5 (4203063509)\n-30078 Compressed Size       00000F0F (3855)\n-3007C Uncompressed Size     00000F0F (3855)\n-30080 Filename Length       0044 (68)\n-30082 Extra Length          0009 (9)\n-30084 Comment Length        0000 (0)\n-30086 Disk Start            0000 (0)\n-30088 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-3008A Ext File Attributes   00000000 (0)\n-3008E Local Header Offset   00003E34 (15924)\n-30092 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30092: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-300D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-300D8   Length              0005 (5)\n-300DA   Flags               01 (1) 'Modification'\n-300DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-300DF CENTRAL HEADER #14    02014B50 (33639248)\n-300E3 Created Zip Spec      14 (20) '2.0'\n-300E4 Created OS            00 (0) 'MS-DOS'\n-300E5 Extract Zip Spec      14 (20) '2.0'\n-300E6 Extract OS            00 (0) 'MS-DOS'\n-300E7 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-300E9 Compression Method    0000 (0) 'Stored'\n-300EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-300EF CRC                   B6BD94DA (3065877722)\n-300F3 Compressed Size       00000474 (1140)\n-300F7 Uncompressed Size     00000474 (1140)\n-300FB Filename Length       000E (14)\n-300FD Extra Length          0009 (9)\n-300FF Comment Length        0000 (0)\n-30101 Disk Start            0000 (0)\n-30103 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30105 Ext File Attributes   00000000 (0)\n-30109 Local Header Offset   00004DBE (19902)\n-3010D Filename              'XXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3010D: Filename 'XXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3011B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3011D   Length              0005 (5)\n-3011F   Flags               01 (1) 'Modification'\n-30120   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-30124 CENTRAL HEADER #15    02014B50 (33639248)\n-30128 Created Zip Spec      14 (20) '2.0'\n-30129 Created OS            00 (0) 'MS-DOS'\n-3012A Extract Zip Spec      14 (20) '2.0'\n-3012B Extract OS            00 (0) 'MS-DOS'\n-3012C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3012E Compression Method    0000 (0) 'Stored'\n-30130 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30134 CRC                   0A4703DB (172426203)\n-30138 Compressed Size       00000ADD (2781)\n-3013C Uncompressed Size     00000ADD (2781)\n-30140 Filename Length       0011 (17)\n-30142 Extra Length          0009 (9)\n-30144 Comment Length        0000 (0)\n-30146 Disk Start            0000 (0)\n-30148 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-3014A Ext File Attributes   00000000 (0)\n-3014E Local Header Offset   00005277 (21111)\n-30152 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30152: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30163 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30165   Length              0005 (5)\n-30167   Flags               01 (1) 'Modification'\n-30168   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3016C CENTRAL HEADER #16    02014B50 (33639248)\n-30170 Created Zip Spec      14 (20) '2.0'\n-30171 Created OS            00 (0) 'MS-DOS'\n-30172 Extract Zip Spec      14 (20) '2.0'\n-30173 Extract OS            00 (0) 'MS-DOS'\n-30174 General Purpose Flag  0000 (0)\n-30176 Compression Method    0000 (0) 'Stored'\n-30178 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3017C CRC                   00000000 (0)\n-30180 Compressed Size       00000000 (0)\n-30184 Uncompressed Size     00000000 (0)\n-30188 Filename Length       0004 (4)\n-3018A Extra Length          0009 (9)\n-3018C Comment Length        0000 (0)\n-3018E Disk Start            0000 (0)\n-30190 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30192 Ext File Attributes   00000000 (0)\n-30196 Local Header Offset   00005D9C (23964)\n-3019A Filename              'XXXX'\n-#\n-# WARNING: Offset 0x3019A: Filename 'XXXX'\n-#          Zero length filename\n-#\n-3019E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-301A0   Length              0005 (5)\n-301A2   Flags               01 (1) 'Modification'\n-301A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-301A7 CENTRAL HEADER #17    02014B50 (33639248)\n-301AB Created Zip Spec      14 (20) '2.0'\n-301AC Created OS            00 (0) 'MS-DOS'\n-301AD Extract Zip Spec      14 (20) '2.0'\n-301AE Extract OS            00 (0) 'MS-DOS'\n-301AF General Purpose Flag  0000 (0)\n-301B1 Compression Method    0000 (0) 'Stored'\n-301B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-301B7 CRC                   00000000 (0)\n-301BB Compressed Size       00000000 (0)\n-301BF Uncompressed Size     00000000 (0)\n-301C3 Filename Length       000B (11)\n-301C5 Extra Length          0009 (9)\n-301C7 Comment Length        0000 (0)\n-301C9 Disk Start            0000 (0)\n-301CB Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-301CD Ext File Attributes   00000000 (0)\n-301D1 Local Header Offset   00005DC7 (24007)\n-301D5 Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x301D5: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-301E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-301E2   Length              0005 (5)\n-301E4   Flags               01 (1) 'Modification'\n-301E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-301E9 CENTRAL HEADER #18    02014B50 (33639248)\n-301ED Created Zip Spec      14 (20) '2.0'\n-301EE Created OS            00 (0) 'MS-DOS'\n-301EF Extract Zip Spec      14 (20) '2.0'\n-301F0 Extract OS            00 (0) 'MS-DOS'\n-301F1 General Purpose Flag  0000 (0)\n-301F3 Compression Method    0000 (0) 'Stored'\n-301F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-301F9 CRC                   00000000 (0)\n-301FD Compressed Size       00000000 (0)\n-30201 Uncompressed Size     00000000 (0)\n-30205 Filename Length       0011 (17)\n-30207 Extra Length          0009 (9)\n-30209 Comment Length        0000 (0)\n-3020B Disk Start            0000 (0)\n-3020D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-3020F Ext File Attributes   00000000 (0)\n-30213 Local Header Offset   00005DF9 (24057)\n-30217 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30217: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30228 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3022A   Length              0005 (5)\n-3022C   Flags               01 (1) 'Modification'\n-3022D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-30231 CENTRAL HEADER #19    02014B50 (33639248)\n-30235 Created Zip Spec      14 (20) '2.0'\n-30236 Created OS            00 (0) 'MS-DOS'\n-30237 Extract Zip Spec      14 (20) '2.0'\n-30238 Extract OS            00 (0) 'MS-DOS'\n-30239 General Purpose Flag  0000 (0)\n-3023B Compression Method    0000 (0) 'Stored'\n-3023D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30241 CRC                   00000000 (0)\n-30245 Compressed Size       00000000 (0)\n-30249 Uncompressed Size     00000000 (0)\n-3024D Filename Length       0018 (24)\n-3024F Extra Length          0009 (9)\n-30251 Comment Length        0000 (0)\n-30253 Disk Start            0000 (0)\n-30255 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30257 Ext File Attributes   00000000 (0)\n-3025B Local Header Offset   00005E31 (24113)\n-3025F Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3025F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30277 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30279   Length              0005 (5)\n-3027B   Flags               01 (1) 'Modification'\n-3027C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-30280 CENTRAL HEADER #20    02014B50 (33639248)\n-30284 Created Zip Spec      14 (20) '2.0'\n-30285 Created OS            00 (0) 'MS-DOS'\n-30286 Extract Zip Spec      14 (20) '2.0'\n-30287 Extract OS            00 (0) 'MS-DOS'\n-30288 General Purpose Flag  0000 (0)\n-3028A Compression Method    0000 (0) 'Stored'\n-3028C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30290 CRC                   00000000 (0)\n-30294 Compressed Size       00000000 (0)\n-30298 Uncompressed Size     00000000 (0)\n-3029C Filename Length       0022 (34)\n-3029E Extra Length          0009 (9)\n-302A0 Comment Length        0000 (0)\n-302A2 Disk Start            0000 (0)\n-302A4 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-302A6 Ext File Attributes   00000000 (0)\n-302AA Local Header Offset   00005E70 (24176)\n-302AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x302AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-302D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-302D2   Length              0005 (5)\n-302D4   Flags               01 (1) 'Modification'\n-302D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-302D9 CENTRAL HEADER #21    02014B50 (33639248)\n-302DD Created Zip Spec      14 (20) '2.0'\n-302DE Created OS            00 (0) 'MS-DOS'\n-302DF Extract Zip Spec      14 (20) '2.0'\n-302E0 Extract OS            00 (0) 'MS-DOS'\n-302E1 General Purpose Flag  0000 (0)\n-302E3 Compression Method    0000 (0) 'Stored'\n-302E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-302E9 CRC                   00000000 (0)\n-302ED Compressed Size       00000000 (0)\n-302F1 Uncompressed Size     00000000 (0)\n-302F5 Filename Length       002B (43)\n-302F7 Extra Length          0009 (9)\n-302F9 Comment Length        0000 (0)\n-302FB Disk Start            0000 (0)\n-302FD Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-302FF Ext File Attributes   00000000 (0)\n-30303 Local Header Offset   00005EB9 (24249)\n-30307 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30307: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30332 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30334   Length              0005 (5)\n-30336   Flags               01 (1) 'Modification'\n-30337   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3033B CENTRAL HEADER #22    02014B50 (33639248)\n-3033F Created Zip Spec      14 (20) '2.0'\n-30340 Created OS            00 (0) 'MS-DOS'\n-30341 Extract Zip Spec      14 (20) '2.0'\n-30342 Extract OS            00 (0) 'MS-DOS'\n-30343 General Purpose Flag  0000 (0)\n-30345 Compression Method    0000 (0) 'Stored'\n-30347 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3034B CRC                   00000000 (0)\n-3034F Compressed Size       00000000 (0)\n-30353 Uncompressed Size     00000000 (0)\n-30357 Filename Length       0033 (51)\n-30359 Extra Length          0009 (9)\n-3035B Comment Length        0000 (0)\n-3035D Disk Start            0000 (0)\n-3035F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30361 Ext File Attributes   00000000 (0)\n-30365 Local Header Offset   00005F0B (24331)\n-30369 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30369: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3039C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3039E   Length              0005 (5)\n-303A0   Flags               01 (1) 'Modification'\n-303A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-303A5 CENTRAL HEADER #23    02014B50 (33639248)\n-303A9 Created Zip Spec      14 (20) '2.0'\n-303AA Created OS            00 (0) 'MS-DOS'\n-303AB Extract Zip Spec      14 (20) '2.0'\n-303AC Extract OS            00 (0) 'MS-DOS'\n-303AD General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-303AF Compression Method    0000 (0) 'Stored'\n-303B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-303B5 CRC                   F393F7AB (4086560683)\n-303B9 Compressed Size       000014F7 (5367)\n-303BD Uncompressed Size     000014F7 (5367)\n-303C1 Filename Length       0056 (86)\n-303C3 Extra Length          0009 (9)\n-303C5 Comment Length        0000 (0)\n-303C7 Disk Start            0000 (0)\n-303C9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-303CB Ext File Attributes   00000000 (0)\n-303CF Local Header Offset   00005F65 (24421)\n-303D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x303D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30429 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3042B   Length              0005 (5)\n-3042D   Flags               01 (1) 'Modification'\n-3042E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-30432 CENTRAL HEADER #24    02014B50 (33639248)\n-30436 Created Zip Spec      14 (20) '2.0'\n-30437 Created OS            00 (0) 'MS-DOS'\n-30438 Extract Zip Spec      14 (20) '2.0'\n-30439 Extract OS            00 (0) 'MS-DOS'\n-3043A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3043C Compression Method    0000 (0) 'Stored'\n-3043E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30442 CRC                   836D6DDB (2204986843)\n-30446 Compressed Size       000014E0 (5344)\n-3044A Uncompressed Size     000014E0 (5344)\n-3044E Filename Length       0057 (87)\n-30450 Extra Length          0009 (9)\n-30452 Comment Length        0000 (0)\n-30454 Disk Start            0000 (0)\n-30456 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30458 Ext File Attributes   00000000 (0)\n-3045C Local Header Offset   000074E9 (29929)\n-30460 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30460: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-304B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-304B9   Length              0005 (5)\n-304BB   Flags               01 (1) 'Modification'\n-304BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-304C0 CENTRAL HEADER #25    02014B50 (33639248)\n-304C4 Created Zip Spec      14 (20) '2.0'\n-304C5 Created OS            00 (0) 'MS-DOS'\n-304C6 Extract Zip Spec      14 (20) '2.0'\n-304C7 Extract OS            00 (0) 'MS-DOS'\n-304C8 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-304CA Compression Method    0000 (0) 'Stored'\n-304CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-304D0 CRC                   B1C72E69 (2982620777)\n-304D4 Compressed Size       0000077E (1918)\n-304D8 Uncompressed Size     0000077E (1918)\n-304DC Filename Length       0058 (88)\n-304DE Extra Length          0009 (9)\n-304E0 Comment Length        0000 (0)\n-304E2 Disk Start            0000 (0)\n-304E4 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-304E6 Ext File Attributes   00000000 (0)\n-304EA Local Header Offset   00008A57 (35415)\n-304EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x304EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30546 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30548   Length              0005 (5)\n-3054A   Flags               01 (1) 'Modification'\n-3054B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3054F CENTRAL HEADER #26    02014B50 (33639248)\n-30553 Created Zip Spec      14 (20) '2.0'\n-30554 Created OS            00 (0) 'MS-DOS'\n-30555 Extract Zip Spec      14 (20) '2.0'\n-30556 Extract OS            00 (0) 'MS-DOS'\n-30557 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-30559 Compression Method    0000 (0) 'Stored'\n-3055B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3055F CRC                   78006A1A (2013293082)\n-30563 Compressed Size       000012A8 (4776)\n-30567 Uncompressed Size     000012A8 (4776)\n-3056B Filename Length       0052 (82)\n-3056D Extra Length          0009 (9)\n-3056F Comment Length        0000 (0)\n-30571 Disk Start            0000 (0)\n-30573 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30575 Ext File Attributes   00000000 (0)\n-30579 Local Header Offset   00009264 (37476)\n-3057D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3057D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-305CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-305D1   Length              0005 (5)\n-305D3   Flags               01 (1) 'Modification'\n-305D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-305D8 CENTRAL HEADER #27    02014B50 (33639248)\n-305DC Created Zip Spec      14 (20) '2.0'\n-305DD Created OS            00 (0) 'MS-DOS'\n-305DE Extract Zip Spec      14 (20) '2.0'\n-305DF Extract OS            00 (0) 'MS-DOS'\n-305E0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-305E2 Compression Method    0000 (0) 'Stored'\n-305E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-305E8 CRC                   E8DE57DA (3906885594)\n-305EC Compressed Size       00001501 (5377)\n-305F0 Uncompressed Size     00001501 (5377)\n-305F4 Filename Length       0053 (83)\n-305F6 Extra Length          0009 (9)\n-305F8 Comment Length        0000 (0)\n-305FA Disk Start            0000 (0)\n-305FC Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-305FE Ext File Attributes   00000000 (0)\n-30602 Local Header Offset   0000A595 (42389)\n-30606 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30606: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30659 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3065B   Length              0005 (5)\n-3065D   Flags               01 (1) 'Modification'\n-3065E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-30662 CENTRAL HEADER #28    02014B50 (33639248)\n-30666 Created Zip Spec      14 (20) '2.0'\n-30667 Created OS            00 (0) 'MS-DOS'\n-30668 Extract Zip Spec      14 (20) '2.0'\n-30669 Extract OS            00 (0) 'MS-DOS'\n-3066A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3066C Compression Method    0000 (0) 'Stored'\n-3066E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30672 CRC                   DB97F7FB (3684169723)\n-30676 Compressed Size       00000987 (2439)\n-3067A Uncompressed Size     00000987 (2439)\n-3067E Filename Length       0054 (84)\n-30680 Extra Length          0009 (9)\n-30682 Comment Length        0000 (0)\n-30684 Disk Start            0000 (0)\n-30686 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30688 Ext File Attributes   00000000 (0)\n-3068C Local Header Offset   0000BB20 (47904)\n-30690 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30690: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-306E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-306E6   Length              0005 (5)\n-306E8   Flags               01 (1) 'Modification'\n-306E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-306ED CENTRAL HEADER #29    02014B50 (33639248)\n-306F1 Created Zip Spec      14 (20) '2.0'\n-306F2 Created OS            00 (0) 'MS-DOS'\n-306F3 Extract Zip Spec      14 (20) '2.0'\n-306F4 Extract OS            00 (0) 'MS-DOS'\n-306F5 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-306F7 Compression Method    0000 (0) 'Stored'\n-306F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-306FD CRC                   FACFCF03 (4207922947)\n-30701 Compressed Size       00001FCC (8140)\n-30705 Uncompressed Size     00001FCC (8140)\n-30709 Filename Length       0045 (69)\n-3070B Extra Length          0009 (9)\n-3070D Comment Length        0000 (0)\n-3070F Disk Start            0000 (0)\n-30711 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30713 Ext File Attributes   00000000 (0)\n-30717 Local Header Offset   0000C532 (50482)\n-3071B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3071B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30760 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30762   Length              0005 (5)\n-30764   Flags               01 (1) 'Modification'\n-30765   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-30769 CENTRAL HEADER #30    02014B50 (33639248)\n-3076D Created Zip Spec      14 (20) '2.0'\n-3076E Created OS            00 (0) 'MS-DOS'\n-3076F Extract Zip Spec      14 (20) '2.0'\n-30770 Extract OS            00 (0) 'MS-DOS'\n-30771 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-30773 Compression Method    0000 (0) 'Stored'\n-30775 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30779 CRC                   8EB7D7DD (2394413021)\n-3077D Compressed Size       00000A11 (2577)\n-30781 Uncompressed Size     00000A11 (2577)\n-30785 Filename Length       0050 (80)\n-30787 Extra Length          0009 (9)\n-30789 Comment Length        0000 (0)\n-3078B Disk Start            0000 (0)\n-3078D Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-3078F Ext File Attributes   00000000 (0)\n-30793 Local Header Offset   0000E57A (58746)\n-30797 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30797: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-307E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-307E9   Length              0005 (5)\n-307EB   Flags               01 (1) 'Modification'\n-307EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-307F0 CENTRAL HEADER #31    02014B50 (33639248)\n-307F4 Created Zip Spec      14 (20) '2.0'\n-307F5 Created OS            00 (0) 'MS-DOS'\n-307F6 Extract Zip Spec      14 (20) '2.0'\n-307F7 Extract OS            00 (0) 'MS-DOS'\n-307F8 General Purpose Flag  0000 (0)\n-307FA Compression Method    0000 (0) 'Stored'\n-307FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30800 CRC                   00000000 (0)\n-30804 Compressed Size       00000000 (0)\n-30808 Uncompressed Size     00000000 (0)\n-3080C Filename Length       003B (59)\n-3080E Extra Length          0009 (9)\n-30810 Comment Length        0000 (0)\n-30812 Disk Start            0000 (0)\n-30814 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30816 Ext File Attributes   00000000 (0)\n-3081A Local Header Offset   0000F012 (61458)\n-3081E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3081E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30859 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3085B   Length              0005 (5)\n-3085D   Flags               01 (1) 'Modification'\n-3085E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-30862 CENTRAL HEADER #32    02014B50 (33639248)\n-30866 Created Zip Spec      14 (20) '2.0'\n-30867 Created OS            00 (0) 'MS-DOS'\n-30868 Extract Zip Spec      14 (20) '2.0'\n-30869 Extract OS            00 (0) 'MS-DOS'\n-3086A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-3086C Compression Method    0000 (0) 'Stored'\n-3086E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30872 CRC                   3E2D4260 (1043153504)\n-30876 Compressed Size       00007BD0 (31696)\n-3087A Uncompressed Size     00007BD0 (31696)\n-3087E Filename Length       0048 (72)\n-30880 Extra Length          0009 (9)\n-30882 Comment Length        0000 (0)\n-30884 Disk Start            0000 (0)\n-30886 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30888 Ext File Attributes   00000000 (0)\n-3088C Local Header Offset   0000F074 (61556)\n-30890 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30890: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-308D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-308DA   Length              0005 (5)\n-308DC   Flags               01 (1) 'Modification'\n-308DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-308E1 CENTRAL HEADER #33    02014B50 (33639248)\n-308E5 Created Zip Spec      14 (20) '2.0'\n-308E6 Created OS            00 (0) 'MS-DOS'\n-308E7 Extract Zip Spec      14 (20) '2.0'\n-308E8 Extract OS            00 (0) 'MS-DOS'\n-308E9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-308EB Compression Method    0000 (0) 'Stored'\n-308ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-308F1 CRC                   218FA1FC (563061244)\n-308F5 Compressed Size       00018F15 (102165)\n-308F9 Uncompressed Size     00018F15 (102165)\n-308FD Filename Length       004B (75)\n-308FF Extra Length          0009 (9)\n-30901 Comment Length        0000 (0)\n-30903 Disk Start            0000 (0)\n-30905 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-30907 Ext File Attributes   00000000 (0)\n-3090B Local Header Offset   00016CC3 (93379)\n-3090F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+03CC2 DATA DESCRIPTOR       08074B50 (134695760)\n+03CC6 CRC                   A9EE6CDC (2850974940)\n+03CCA Compressed Size       000000BB (187)\n+03CCE Uncompressed Size     000000BB (187)\n+\n+03CD2 LOCAL HEADER #9       04034B50 (67324752)\n+03CD6 Extract Zip Spec      14 (20) '2.0'\n+03CD7 Extract OS            00 (0) 'MS-DOS'\n+03CD8 General Purpose Flag  0000 (0)\n+03CDA Compression Method    0000 (0) 'Stored'\n+03CDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03CE0 CRC                   00000000 (0)\n+03CE4 Compressed Size       00000000 (0)\n+03CE8 Uncompressed Size     00000000 (0)\n+03CEC Filename Length       000F (15)\n+03CEE Extra Length          0009 (9)\n+03CF0 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3CF0: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03CFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03D01   Length              0005 (5)\n+03D03   Flags               01 (1) 'Modification'\n+03D04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+03D08 LOCAL HEADER #10      04034B50 (67324752)\n+03D0C Extract Zip Spec      14 (20) '2.0'\n+03D0D Extract OS            00 (0) 'MS-DOS'\n+03D0E General Purpose Flag  0000 (0)\n+03D10 Compression Method    0000 (0) 'Stored'\n+03D12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03D16 CRC                   00000000 (0)\n+03D1A Compressed Size       00000000 (0)\n+03D1E Uncompressed Size     00000000 (0)\n+03D22 Filename Length       0020 (32)\n+03D24 Extra Length          0009 (9)\n+03D26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03D46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03D48   Length              0005 (5)\n+03D4A   Flags               01 (1) 'Modification'\n+03D4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+03D4F LOCAL HEADER #11      04034B50 (67324752)\n+03D53 Extract Zip Spec      14 (20) '2.0'\n+03D54 Extract OS            00 (0) 'MS-DOS'\n+03D55 General Purpose Flag  0000 (0)\n+03D57 Compression Method    0000 (0) 'Stored'\n+03D59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03D5D CRC                   00000000 (0)\n+03D61 Compressed Size       00000000 (0)\n+03D65 Uncompressed Size     00000000 (0)\n+03D69 Filename Length       003D (61)\n+03D6B Extra Length          0009 (9)\n+03D6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03DAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03DAC   Length              0005 (5)\n+03DAE   Flags               01 (1) 'Modification'\n+03DAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+03DB3 LOCAL HEADER #12      04034B50 (67324752)\n+03DB7 Extract Zip Spec      14 (20) '2.0'\n+03DB8 Extract OS            00 (0) 'MS-DOS'\n+03DB9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+03DBB Compression Method    0000 (0) 'Stored'\n+03DBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03DC1 CRC                   00000000 (0)\n+03DC5 Compressed Size       00000000 (0)\n+03DC9 Uncompressed Size     00000000 (0)\n+03DCD Filename Length       004B (75)\n+03DCF Extra Length          0009 (9)\n+03DD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03E1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03E1E   Length              0005 (5)\n+03E20   Flags               01 (1) 'Modification'\n+03E21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+03E25 DATA DESCRIPTOR       08074B50 (134695760)\n+03E29 CRC                   00000000 (0)\n+03E2D Compressed Size       00000000 (0)\n+03E31 Uncompressed Size     00000000 (0)\n+\n+03E35 LOCAL HEADER #13      04034B50 (67324752)\n+03E39 Extract Zip Spec      14 (20) '2.0'\n+03E3A Extract OS            00 (0) 'MS-DOS'\n+03E3B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+03E3D Compression Method    0000 (0) 'Stored'\n+03E3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03E43 CRC                   00000000 (0)\n+03E47 Compressed Size       00000000 (0)\n+03E4B Uncompressed Size     00000000 (0)\n+03E4F Filename Length       0044 (68)\n+03E51 Extra Length          0009 (9)\n+03E53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03E97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03E99   Length              0005 (5)\n+03E9B   Flags               01 (1) 'Modification'\n+03E9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03EA0 PAYLOAD\n+\n+04D47 DATA DESCRIPTOR       08074B50 (134695760)\n+04D4B CRC                   A4C37506 (2764272902)\n+04D4F Compressed Size       00000EA7 (3751)\n+04D53 Uncompressed Size     00000EA7 (3751)\n+\n+04D57 LOCAL HEADER #14      04034B50 (67324752)\n+04D5B Extract Zip Spec      14 (20) '2.0'\n+04D5C Extract OS            00 (0) 'MS-DOS'\n+04D5D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+04D5F Compression Method    0000 (0) 'Stored'\n+04D61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04D65 CRC                   00000000 (0)\n+04D69 Compressed Size       00000000 (0)\n+04D6D Uncompressed Size     00000000 (0)\n+04D71 Filename Length       000E (14)\n+04D73 Extra Length          0009 (9)\n+04D75 Filename              'XXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D75: Filename 'XXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04D83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04D85   Length              0005 (5)\n+04D87   Flags               01 (1) 'Modification'\n+04D88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04D8C PAYLOAD\n+\n+0521A DATA DESCRIPTOR       08074B50 (134695760)\n+0521E CRC                   812B2402 (2167088130)\n+05222 Compressed Size       0000048E (1166)\n+05226 Uncompressed Size     0000048E (1166)\n+\n+0522A LOCAL HEADER #15      04034B50 (67324752)\n+0522E Extract Zip Spec      14 (20) '2.0'\n+0522F Extract OS            00 (0) 'MS-DOS'\n+05230 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+05232 Compression Method    0000 (0) 'Stored'\n+05234 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05238 CRC                   00000000 (0)\n+0523C Compressed Size       00000000 (0)\n+05240 Uncompressed Size     00000000 (0)\n+05244 Filename Length       0011 (17)\n+05246 Extra Length          0009 (9)\n+05248 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5248: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05259 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0525B   Length              0005 (5)\n+0525D   Flags               01 (1) 'Modification'\n+0525E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05262 PAYLOAD\n+\n+05D7F DATA DESCRIPTOR       08074B50 (134695760)\n+05D83 CRC                   79E45B46 (2045008710)\n+05D87 Compressed Size       00000B1D (2845)\n+05D8B Uncompressed Size     00000B1D (2845)\n+\n+05D8F LOCAL HEADER #16      04034B50 (67324752)\n+05D93 Extract Zip Spec      14 (20) '2.0'\n+05D94 Extract OS            00 (0) 'MS-DOS'\n+05D95 General Purpose Flag  0000 (0)\n+05D97 Compression Method    0000 (0) 'Stored'\n+05D99 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05D9D CRC                   00000000 (0)\n+05DA1 Compressed Size       00000000 (0)\n+05DA5 Uncompressed Size     00000000 (0)\n+05DA9 Filename Length       0004 (4)\n+05DAB Extra Length          0009 (9)\n+05DAD Filename              'XXXX'\n+#\n+# WARNING: Offset 0x5DAD: Filename 'XXXX'\n+#          Zero length filename\n+#\n+05DB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05DB3   Length              0005 (5)\n+05DB5   Flags               01 (1) 'Modification'\n+05DB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05DBA LOCAL HEADER #17      04034B50 (67324752)\n+05DBE Extract Zip Spec      14 (20) '2.0'\n+05DBF Extract OS            00 (0) 'MS-DOS'\n+05DC0 General Purpose Flag  0000 (0)\n+05DC2 Compression Method    0000 (0) 'Stored'\n+05DC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05DC8 CRC                   00000000 (0)\n+05DCC Compressed Size       00000000 (0)\n+05DD0 Uncompressed Size     00000000 (0)\n+05DD4 Filename Length       000B (11)\n+05DD6 Extra Length          0009 (9)\n+05DD8 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5DD8: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05DE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05DE5   Length              0005 (5)\n+05DE7   Flags               01 (1) 'Modification'\n+05DE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05DEC LOCAL HEADER #18      04034B50 (67324752)\n+05DF0 Extract Zip Spec      14 (20) '2.0'\n+05DF1 Extract OS            00 (0) 'MS-DOS'\n+05DF2 General Purpose Flag  0000 (0)\n+05DF4 Compression Method    0000 (0) 'Stored'\n+05DF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05DFA CRC                   00000000 (0)\n+05DFE Compressed Size       00000000 (0)\n+05E02 Uncompressed Size     00000000 (0)\n+05E06 Filename Length       0011 (17)\n+05E08 Extra Length          0009 (9)\n+05E0A Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E0A: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05E1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05E1D   Length              0005 (5)\n+05E1F   Flags               01 (1) 'Modification'\n+05E20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05E24 LOCAL HEADER #19      04034B50 (67324752)\n+05E28 Extract Zip Spec      14 (20) '2.0'\n+05E29 Extract OS            00 (0) 'MS-DOS'\n+05E2A General Purpose Flag  0000 (0)\n+05E2C Compression Method    0000 (0) 'Stored'\n+05E2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05E32 CRC                   00000000 (0)\n+05E36 Compressed Size       00000000 (0)\n+05E3A Uncompressed Size     00000000 (0)\n+05E3E Filename Length       0018 (24)\n+05E40 Extra Length          0009 (9)\n+05E42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05E5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05E5C   Length              0005 (5)\n+05E5E   Flags               01 (1) 'Modification'\n+05E5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05E63 LOCAL HEADER #20      04034B50 (67324752)\n+05E67 Extract Zip Spec      14 (20) '2.0'\n+05E68 Extract OS            00 (0) 'MS-DOS'\n+05E69 General Purpose Flag  0000 (0)\n+05E6B Compression Method    0000 (0) 'Stored'\n+05E6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05E71 CRC                   00000000 (0)\n+05E75 Compressed Size       00000000 (0)\n+05E79 Uncompressed Size     00000000 (0)\n+05E7D Filename Length       0022 (34)\n+05E7F Extra Length          0009 (9)\n+05E81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05EA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05EA5   Length              0005 (5)\n+05EA7   Flags               01 (1) 'Modification'\n+05EA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05EAC LOCAL HEADER #21      04034B50 (67324752)\n+05EB0 Extract Zip Spec      14 (20) '2.0'\n+05EB1 Extract OS            00 (0) 'MS-DOS'\n+05EB2 General Purpose Flag  0000 (0)\n+05EB4 Compression Method    0000 (0) 'Stored'\n+05EB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05EBA CRC                   00000000 (0)\n+05EBE Compressed Size       00000000 (0)\n+05EC2 Uncompressed Size     00000000 (0)\n+05EC6 Filename Length       002B (43)\n+05EC8 Extra Length          0009 (9)\n+05ECA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5ECA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05EF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05EF7   Length              0005 (5)\n+05EF9   Flags               01 (1) 'Modification'\n+05EFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05EFE LOCAL HEADER #22      04034B50 (67324752)\n+05F02 Extract Zip Spec      14 (20) '2.0'\n+05F03 Extract OS            00 (0) 'MS-DOS'\n+05F04 General Purpose Flag  0000 (0)\n+05F06 Compression Method    0000 (0) 'Stored'\n+05F08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05F0C CRC                   00000000 (0)\n+05F10 Compressed Size       00000000 (0)\n+05F14 Uncompressed Size     00000000 (0)\n+05F18 Filename Length       0033 (51)\n+05F1A Extra Length          0009 (9)\n+05F1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05F4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05F51   Length              0005 (5)\n+05F53   Flags               01 (1) 'Modification'\n+05F54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05F58 LOCAL HEADER #23      04034B50 (67324752)\n+05F5C Extract Zip Spec      14 (20) '2.0'\n+05F5D Extract OS            00 (0) 'MS-DOS'\n+05F5E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+05F60 Compression Method    0000 (0) 'Stored'\n+05F62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05F66 CRC                   00000000 (0)\n+05F6A Compressed Size       00000000 (0)\n+05F6E Uncompressed Size     00000000 (0)\n+05F72 Filename Length       0056 (86)\n+05F74 Extra Length          0009 (9)\n+05F76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05FCC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05FCE   Length              0005 (5)\n+05FD0   Flags               01 (1) 'Modification'\n+05FD1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05FD5 PAYLOAD\n+\n+07570 DATA DESCRIPTOR       08074B50 (134695760)\n+07574 CRC                   770B2AC5 (1997220549)\n+07578 Compressed Size       0000159B (5531)\n+0757C Uncompressed Size     0000159B (5531)\n+\n+07580 LOCAL HEADER #24      04034B50 (67324752)\n+07584 Extract Zip Spec      14 (20) '2.0'\n+07585 Extract OS            00 (0) 'MS-DOS'\n+07586 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+07588 Compression Method    0000 (0) 'Stored'\n+0758A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0758E CRC                   00000000 (0)\n+07592 Compressed Size       00000000 (0)\n+07596 Uncompressed Size     00000000 (0)\n+0759A Filename Length       0057 (87)\n+0759C Extra Length          0009 (9)\n+0759E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x759E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+075F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+075F7   Length              0005 (5)\n+075F9   Flags               01 (1) 'Modification'\n+075FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+075FE PAYLOAD\n+\n+08B7E DATA DESCRIPTOR       08074B50 (134695760)\n+08B82 CRC                   680E4C03 (1745767427)\n+08B86 Compressed Size       00001580 (5504)\n+08B8A Uncompressed Size     00001580 (5504)\n+\n+08B8E LOCAL HEADER #25      04034B50 (67324752)\n+08B92 Extract Zip Spec      14 (20) '2.0'\n+08B93 Extract OS            00 (0) 'MS-DOS'\n+08B94 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+08B96 Compression Method    0000 (0) 'Stored'\n+08B98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08B9C CRC                   00000000 (0)\n+08BA0 Compressed Size       00000000 (0)\n+08BA4 Uncompressed Size     00000000 (0)\n+08BA8 Filename Length       0058 (88)\n+08BAA Extra Length          0009 (9)\n+08BAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8BAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+08C04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08C06   Length              0005 (5)\n+08C08   Flags               01 (1) 'Modification'\n+08C09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+08C0D PAYLOAD\n+\n+093C1 DATA DESCRIPTOR       08074B50 (134695760)\n+093C5 CRC                   CECB8E17 (3469446679)\n+093C9 Compressed Size       000007B4 (1972)\n+093CD Uncompressed Size     000007B4 (1972)\n+\n+093D1 LOCAL HEADER #26      04034B50 (67324752)\n+093D5 Extract Zip Spec      14 (20) '2.0'\n+093D6 Extract OS            00 (0) 'MS-DOS'\n+093D7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+093D9 Compression Method    0000 (0) 'Stored'\n+093DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+093DF CRC                   00000000 (0)\n+093E3 Compressed Size       00000000 (0)\n+093E7 Uncompressed Size     00000000 (0)\n+093EB Filename Length       0052 (82)\n+093ED Extra Length          0009 (9)\n+093EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x93EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+09441 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+09443   Length              0005 (5)\n+09445   Flags               01 (1) 'Modification'\n+09446   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0944A PAYLOAD\n+\n+0A784 DATA DESCRIPTOR       08074B50 (134695760)\n+0A788 CRC                   16AE2BE0 (380513248)\n+0A78C Compressed Size       0000133A (4922)\n+0A790 Uncompressed Size     0000133A (4922)\n+\n+0A794 LOCAL HEADER #27      04034B50 (67324752)\n+0A798 Extract Zip Spec      14 (20) '2.0'\n+0A799 Extract OS            00 (0) 'MS-DOS'\n+0A79A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0A79C Compression Method    0000 (0) 'Stored'\n+0A79E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A7A2 CRC                   00000000 (0)\n+0A7A6 Compressed Size       00000000 (0)\n+0A7AA Uncompressed Size     00000000 (0)\n+0A7AE Filename Length       0053 (83)\n+0A7B0 Extra Length          0009 (9)\n+0A7B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA7B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A805 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A807   Length              0005 (5)\n+0A809   Flags               01 (1) 'Modification'\n+0A80A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A80E PAYLOAD\n+\n+0BDAB DATA DESCRIPTOR       08074B50 (134695760)\n+0BDAF CRC                   71435F02 (1900240642)\n+0BDB3 Compressed Size       0000159D (5533)\n+0BDB7 Uncompressed Size     0000159D (5533)\n+\n+0BDBB LOCAL HEADER #28      04034B50 (67324752)\n+0BDBF Extract Zip Spec      14 (20) '2.0'\n+0BDC0 Extract OS            00 (0) 'MS-DOS'\n+0BDC1 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0BDC3 Compression Method    0000 (0) 'Stored'\n+0BDC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0BDC9 CRC                   00000000 (0)\n+0BDCD Compressed Size       00000000 (0)\n+0BDD1 Uncompressed Size     00000000 (0)\n+0BDD5 Filename Length       0054 (84)\n+0BDD7 Extra Length          0009 (9)\n+0BDD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xBDD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0BE2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0BE2F   Length              0005 (5)\n+0BE31   Flags               01 (1) 'Modification'\n+0BE32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0BE36 PAYLOAD\n+\n+0C7FC DATA DESCRIPTOR       08074B50 (134695760)\n+0C800 CRC                   A92A8781 (2838136705)\n+0C804 Compressed Size       000009C6 (2502)\n+0C808 Uncompressed Size     000009C6 (2502)\n+\n+0C80C LOCAL HEADER #29      04034B50 (67324752)\n+0C810 Extract Zip Spec      14 (20) '2.0'\n+0C811 Extract OS            00 (0) 'MS-DOS'\n+0C812 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0C814 Compression Method    0000 (0) 'Stored'\n+0C816 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0C81A CRC                   00000000 (0)\n+0C81E Compressed Size       00000000 (0)\n+0C822 Uncompressed Size     00000000 (0)\n+0C826 Filename Length       0045 (69)\n+0C828 Extra Length          0009 (9)\n+0C82A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC82A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0C86F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0C871   Length              0005 (5)\n+0C873   Flags               01 (1) 'Modification'\n+0C874   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0C878 PAYLOAD\n+\n+0E911 DATA DESCRIPTOR       08074B50 (134695760)\n+0E915 CRC                   7EEE431C (2129543964)\n+0E919 Compressed Size       00002099 (8345)\n+0E91D Uncompressed Size     00002099 (8345)\n+\n+0E921 LOCAL HEADER #30      04034B50 (67324752)\n+0E925 Extract Zip Spec      14 (20) '2.0'\n+0E926 Extract OS            00 (0) 'MS-DOS'\n+0E927 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0E929 Compression Method    0000 (0) 'Stored'\n+0E92B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0E92F CRC                   00000000 (0)\n+0E933 Compressed Size       00000000 (0)\n+0E937 Uncompressed Size     00000000 (0)\n+0E93B Filename Length       0050 (80)\n+0E93D Extra Length          0009 (9)\n+0E93F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xE93F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0E98F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0E991   Length              0005 (5)\n+0E993   Flags               01 (1) 'Modification'\n+0E994   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0E998 PAYLOAD\n+\n+0F3ED DATA DESCRIPTOR       08074B50 (134695760)\n+0F3F1 CRC                   E46DD072 (3832402034)\n+0F3F5 Compressed Size       00000A55 (2645)\n+0F3F9 Uncompressed Size     00000A55 (2645)\n+\n+0F3FD LOCAL HEADER #31      04034B50 (67324752)\n+0F401 Extract Zip Spec      14 (20) '2.0'\n+0F402 Extract OS            00 (0) 'MS-DOS'\n+0F403 General Purpose Flag  0000 (0)\n+0F405 Compression Method    0000 (0) 'Stored'\n+0F407 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0F40B CRC                   00000000 (0)\n+0F40F Compressed Size       00000000 (0)\n+0F413 Uncompressed Size     00000000 (0)\n+0F417 Filename Length       003B (59)\n+0F419 Extra Length          0009 (9)\n+0F41B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xF41B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0F456 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0F458   Length              0005 (5)\n+0F45A   Flags               01 (1) 'Modification'\n+0F45B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0F45F LOCAL HEADER #32      04034B50 (67324752)\n+0F463 Extract Zip Spec      14 (20) '2.0'\n+0F464 Extract OS            00 (0) 'MS-DOS'\n+0F465 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0F467 Compression Method    0000 (0) 'Stored'\n+0F469 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0F46D CRC                   00000000 (0)\n+0F471 Compressed Size       00000000 (0)\n+0F475 Uncompressed Size     00000000 (0)\n+0F479 Filename Length       0048 (72)\n+0F47B Extra Length          0009 (9)\n+0F47D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xF47D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0F4C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0F4C7   Length              0005 (5)\n+0F4C9   Flags               01 (1) 'Modification'\n+0F4CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0F4CE PAYLOAD\n+\n+1709E DATA DESCRIPTOR       08074B50 (134695760)\n+170A2 CRC                   3E2D4260 (1043153504)\n+170A6 Compressed Size       00007BD0 (31696)\n+170AA Uncompressed Size     00007BD0 (31696)\n+\n+170AE LOCAL HEADER #33      04034B50 (67324752)\n+170B2 Extract Zip Spec      14 (20) '2.0'\n+170B3 Extract OS            00 (0) 'MS-DOS'\n+170B4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+170B6 Compression Method    0000 (0) 'Stored'\n+170B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+170BC CRC                   00000000 (0)\n+170C0 Compressed Size       00000000 (0)\n+170C4 Uncompressed Size     00000000 (0)\n+170C8 Filename Length       004B (75)\n+170CA Extra Length          0009 (9)\n+170CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x170CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+17117 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+17119   Length              0005 (5)\n+1711B   Flags               01 (1) 'Modification'\n+1711C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+17120 PAYLOAD\n+\n+300ED DATA DESCRIPTOR       08074B50 (134695760)\n+300F1 CRC                   C5D2D6A4 (3318929060)\n+300F5 Compressed Size       00018FCD (102349)\n+300F9 Uncompressed Size     00018FCD (102349)\n+\n+300FD CENTRAL HEADER #1     02014B50 (33639248)\n+30101 Created Zip Spec      14 (20) '2.0'\n+30102 Created OS            00 (0) 'MS-DOS'\n+30103 Extract Zip Spec      14 (20) '2.0'\n+30104 Extract OS            00 (0) 'MS-DOS'\n+30105 General Purpose Flag  0000 (0)\n+30107 Compression Method    0000 (0) 'Stored'\n+30109 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3010D CRC                   00000000 (0)\n+30111 Compressed Size       00000000 (0)\n+30115 Uncompressed Size     00000000 (0)\n+30119 Filename Length       0009 (9)\n+3011B Extra Length          0009 (9)\n+3011D Comment Length        0000 (0)\n+3011F Disk Start            0000 (0)\n+30121 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30123 Ext File Attributes   00000000 (0)\n+30127 Local Header Offset   00000000 (0)\n+3012B Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x3012B: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+30134 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30136   Length              0005 (5)\n+30138   Flags               01 (1) 'Modification'\n+30139   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3013D CENTRAL HEADER #2     02014B50 (33639248)\n+30141 Created Zip Spec      14 (20) '2.0'\n+30142 Created OS            00 (0) 'MS-DOS'\n+30143 Extract Zip Spec      14 (20) '2.0'\n+30144 Extract OS            00 (0) 'MS-DOS'\n+30145 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30147 Compression Method    0000 (0) 'Stored'\n+30149 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3014D CRC                   8BFD2146 (2348622150)\n+30151 Compressed Size       00000CA0 (3232)\n+30155 Uncompressed Size     00000CA0 (3232)\n+30159 Filename Length       0015 (21)\n+3015B Extra Length          0009 (9)\n+3015D Comment Length        0000 (0)\n+3015F Disk Start            0000 (0)\n+30161 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30163 Ext File Attributes   00000000 (0)\n+30167 Local Header Offset   00000030 (48)\n+3016B Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3016B: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30180 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30182   Length              0005 (5)\n+30184   Flags               01 (1) 'Modification'\n+30185   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30189 CENTRAL HEADER #3     02014B50 (33639248)\n+3018D Created Zip Spec      14 (20) '2.0'\n+3018E Created OS            00 (0) 'MS-DOS'\n+3018F Extract Zip Spec      14 (20) '2.0'\n+30190 Extract OS            00 (0) 'MS-DOS'\n+30191 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30193 Compression Method    0000 (0) 'Stored'\n+30195 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30199 CRC                   86E2B4B4 (2263004340)\n+3019D Compressed Size       00002C5E (11358)\n+301A1 Uncompressed Size     00002C5E (11358)\n+301A5 Filename Length       0010 (16)\n+301A7 Extra Length          0009 (9)\n+301A9 Comment Length        0000 (0)\n+301AB Disk Start            0000 (0)\n+301AD Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+301AF Ext File Attributes   00000000 (0)\n+301B3 Local Header Offset   00000D1C (3356)\n+301B7 Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x301B7: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+301C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+301C9   Length              0005 (5)\n+301CB   Flags               01 (1) 'Modification'\n+301CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+301D0 CENTRAL HEADER #4     02014B50 (33639248)\n+301D4 Created Zip Spec      14 (20) '2.0'\n+301D5 Created OS            00 (0) 'MS-DOS'\n+301D6 Extract Zip Spec      14 (20) '2.0'\n+301D7 Extract OS            00 (0) 'MS-DOS'\n+301D8 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+301DA Compression Method    0000 (0) 'Stored'\n+301DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+301E0 CRC                   EE027FB2 (3993141170)\n+301E4 Compressed Size       00000019 (25)\n+301E8 Uncompressed Size     00000019 (25)\n+301EC Filename Length       0014 (20)\n+301EE Extra Length          0009 (9)\n+301F0 Comment Length        0000 (0)\n+301F2 Disk Start            0000 (0)\n+301F4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+301F6 Ext File Attributes   00000000 (0)\n+301FA Local Header Offset   000039C1 (14785)\n+301FE Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x301FE: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30212 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30214   Length              0005 (5)\n+30216   Flags               01 (1) 'Modification'\n+30217   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3021B CENTRAL HEADER #5     02014B50 (33639248)\n+3021F Created Zip Spec      14 (20) '2.0'\n+30220 Created OS            00 (0) 'MS-DOS'\n+30221 Extract Zip Spec      14 (20) '2.0'\n+30222 Extract OS            00 (0) 'MS-DOS'\n+30223 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30225 Compression Method    0000 (0) 'Stored'\n+30227 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3022B CRC                   D74DA525 (3612189989)\n+3022F Compressed Size       000000B9 (185)\n+30233 Uncompressed Size     000000B9 (185)\n+30237 Filename Length       000F (15)\n+30239 Extra Length          0009 (9)\n+3023B Comment Length        0000 (0)\n+3023D Disk Start            0000 (0)\n+3023F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30241 Ext File Attributes   00000000 (0)\n+30245 Local Header Offset   00003A25 (14885)\n+30249 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30249: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30258 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3025A   Length              0005 (5)\n+3025C   Flags               01 (1) 'Modification'\n+3025D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30261 CENTRAL HEADER #6     02014B50 (33639248)\n+30265 Created Zip Spec      14 (20) '2.0'\n+30266 Created OS            00 (0) 'MS-DOS'\n+30267 Extract Zip Spec      14 (20) '2.0'\n+30268 Extract OS            00 (0) 'MS-DOS'\n+30269 General Purpose Flag  0000 (0)\n+3026B Compression Method    0000 (0) 'Stored'\n+3026D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30271 CRC                   00000000 (0)\n+30275 Compressed Size       00000000 (0)\n+30279 Uncompressed Size     00000000 (0)\n+3027D Filename Length       000F (15)\n+3027F Extra Length          0009 (9)\n+30281 Comment Length        0000 (0)\n+30283 Disk Start            0000 (0)\n+30285 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30287 Ext File Attributes   00000000 (0)\n+3028B Local Header Offset   00003B24 (15140)\n+3028F Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3028F: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3029E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+302A0   Length              0005 (5)\n+302A2   Flags               01 (1) 'Modification'\n+302A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+302A7 CENTRAL HEADER #7     02014B50 (33639248)\n+302AB Created Zip Spec      14 (20) '2.0'\n+302AC Created OS            00 (0) 'MS-DOS'\n+302AD Extract Zip Spec      14 (20) '2.0'\n+302AE Extract OS            00 (0) 'MS-DOS'\n+302AF General Purpose Flag  0000 (0)\n+302B1 Compression Method    0000 (0) 'Stored'\n+302B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+302B7 CRC                   00000000 (0)\n+302BB Compressed Size       00000000 (0)\n+302BF Uncompressed Size     00000000 (0)\n+302C3 Filename Length       0018 (24)\n+302C5 Extra Length          0009 (9)\n+302C7 Comment Length        0000 (0)\n+302C9 Disk Start            0000 (0)\n+302CB Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+302CD Ext File Attributes   00000000 (0)\n+302D1 Local Header Offset   00003B5A (15194)\n+302D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x302D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+302ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+302EF   Length              0005 (5)\n+302F1   Flags               01 (1) 'Modification'\n+302F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+302F6 CENTRAL HEADER #8     02014B50 (33639248)\n+302FA Created Zip Spec      14 (20) '2.0'\n+302FB Created OS            00 (0) 'MS-DOS'\n+302FC Extract Zip Spec      14 (20) '2.0'\n+302FD Extract OS            00 (0) 'MS-DOS'\n+302FE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30300 Compression Method    0000 (0) 'Stored'\n+30302 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30306 CRC                   A9EE6CDC (2850974940)\n+3030A Compressed Size       000000BB (187)\n+3030E Uncompressed Size     000000BB (187)\n+30312 Filename Length       0047 (71)\n+30314 Extra Length          0009 (9)\n+30316 Comment Length        0000 (0)\n+30318 Disk Start            0000 (0)\n+3031A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+3031C Ext File Attributes   00000000 (0)\n+30320 Local Header Offset   00003B99 (15257)\n+30324 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30324: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3036B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3036D   Length              0005 (5)\n+3036F   Flags               01 (1) 'Modification'\n+30370   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30374 CENTRAL HEADER #9     02014B50 (33639248)\n+30378 Created Zip Spec      14 (20) '2.0'\n+30379 Created OS            00 (0) 'MS-DOS'\n+3037A Extract Zip Spec      14 (20) '2.0'\n+3037B Extract OS            00 (0) 'MS-DOS'\n+3037C General Purpose Flag  0000 (0)\n+3037E Compression Method    0000 (0) 'Stored'\n+30380 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30384 CRC                   00000000 (0)\n+30388 Compressed Size       00000000 (0)\n+3038C Uncompressed Size     00000000 (0)\n+30390 Filename Length       000F (15)\n+30392 Extra Length          0009 (9)\n+30394 Comment Length        0000 (0)\n+30396 Disk Start            0000 (0)\n+30398 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+3039A Ext File Attributes   00000000 (0)\n+3039E Local Header Offset   00003CD2 (15570)\n+303A2 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x303A2: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+303B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+303B3   Length              0005 (5)\n+303B5   Flags               01 (1) 'Modification'\n+303B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+303BA CENTRAL HEADER #10    02014B50 (33639248)\n+303BE Created Zip Spec      14 (20) '2.0'\n+303BF Created OS            00 (0) 'MS-DOS'\n+303C0 Extract Zip Spec      14 (20) '2.0'\n+303C1 Extract OS            00 (0) 'MS-DOS'\n+303C2 General Purpose Flag  0000 (0)\n+303C4 Compression Method    0000 (0) 'Stored'\n+303C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+303CA CRC                   00000000 (0)\n+303CE Compressed Size       00000000 (0)\n+303D2 Uncompressed Size     00000000 (0)\n+303D6 Filename Length       0020 (32)\n+303D8 Extra Length          0009 (9)\n+303DA Comment Length        0000 (0)\n+303DC Disk Start            0000 (0)\n+303DE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+303E0 Ext File Attributes   00000000 (0)\n+303E4 Local Header Offset   00003D08 (15624)\n+303E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x303E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30408 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3040A   Length              0005 (5)\n+3040C   Flags               01 (1) 'Modification'\n+3040D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30411 CENTRAL HEADER #11    02014B50 (33639248)\n+30415 Created Zip Spec      14 (20) '2.0'\n+30416 Created OS            00 (0) 'MS-DOS'\n+30417 Extract Zip Spec      14 (20) '2.0'\n+30418 Extract OS            00 (0) 'MS-DOS'\n+30419 General Purpose Flag  0000 (0)\n+3041B Compression Method    0000 (0) 'Stored'\n+3041D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30421 CRC                   00000000 (0)\n+30425 Compressed Size       00000000 (0)\n+30429 Uncompressed Size     00000000 (0)\n+3042D Filename Length       003D (61)\n+3042F Extra Length          0009 (9)\n+30431 Comment Length        0000 (0)\n+30433 Disk Start            0000 (0)\n+30435 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30437 Ext File Attributes   00000000 (0)\n+3043B Local Header Offset   00003D4F (15695)\n+3043F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3043F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3047C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3047E   Length              0005 (5)\n+30480   Flags               01 (1) 'Modification'\n+30481   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30485 CENTRAL HEADER #12    02014B50 (33639248)\n+30489 Created Zip Spec      14 (20) '2.0'\n+3048A Created OS            00 (0) 'MS-DOS'\n+3048B Extract Zip Spec      14 (20) '2.0'\n+3048C Extract OS            00 (0) 'MS-DOS'\n+3048D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3048F Compression Method    0000 (0) 'Stored'\n+30491 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30495 CRC                   00000000 (0)\n+30499 Compressed Size       00000000 (0)\n+3049D Uncompressed Size     00000000 (0)\n+304A1 Filename Length       004B (75)\n+304A3 Extra Length          0009 (9)\n+304A5 Comment Length        0000 (0)\n+304A7 Disk Start            0000 (0)\n+304A9 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+304AB Ext File Attributes   00000000 (0)\n+304AF Local Header Offset   00003DB3 (15795)\n+304B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x304B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+304FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30500   Length              0005 (5)\n+30502   Flags               01 (1) 'Modification'\n+30503   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30507 CENTRAL HEADER #13    02014B50 (33639248)\n+3050B Created Zip Spec      14 (20) '2.0'\n+3050C Created OS            00 (0) 'MS-DOS'\n+3050D Extract Zip Spec      14 (20) '2.0'\n+3050E Extract OS            00 (0) 'MS-DOS'\n+3050F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30511 Compression Method    0000 (0) 'Stored'\n+30513 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30517 CRC                   A4C37506 (2764272902)\n+3051B Compressed Size       00000EA7 (3751)\n+3051F Uncompressed Size     00000EA7 (3751)\n+30523 Filename Length       0044 (68)\n+30525 Extra Length          0009 (9)\n+30527 Comment Length        0000 (0)\n+30529 Disk Start            0000 (0)\n+3052B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+3052D Ext File Attributes   00000000 (0)\n+30531 Local Header Offset   00003E35 (15925)\n+30535 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30535: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30579 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3057B   Length              0005 (5)\n+3057D   Flags               01 (1) 'Modification'\n+3057E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30582 CENTRAL HEADER #14    02014B50 (33639248)\n+30586 Created Zip Spec      14 (20) '2.0'\n+30587 Created OS            00 (0) 'MS-DOS'\n+30588 Extract Zip Spec      14 (20) '2.0'\n+30589 Extract OS            00 (0) 'MS-DOS'\n+3058A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3058C Compression Method    0000 (0) 'Stored'\n+3058E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30592 CRC                   812B2402 (2167088130)\n+30596 Compressed Size       0000048E (1166)\n+3059A Uncompressed Size     0000048E (1166)\n+3059E Filename Length       000E (14)\n+305A0 Extra Length          0009 (9)\n+305A2 Comment Length        0000 (0)\n+305A4 Disk Start            0000 (0)\n+305A6 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+305A8 Ext File Attributes   00000000 (0)\n+305AC Local Header Offset   00004D57 (19799)\n+305B0 Filename              'XXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x305B0: Filename 'XXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+305BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+305C0   Length              0005 (5)\n+305C2   Flags               01 (1) 'Modification'\n+305C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+305C7 CENTRAL HEADER #15    02014B50 (33639248)\n+305CB Created Zip Spec      14 (20) '2.0'\n+305CC Created OS            00 (0) 'MS-DOS'\n+305CD Extract Zip Spec      14 (20) '2.0'\n+305CE Extract OS            00 (0) 'MS-DOS'\n+305CF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+305D1 Compression Method    0000 (0) 'Stored'\n+305D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+305D7 CRC                   79E45B46 (2045008710)\n+305DB Compressed Size       00000B1D (2845)\n+305DF Uncompressed Size     00000B1D (2845)\n+305E3 Filename Length       0011 (17)\n+305E5 Extra Length          0009 (9)\n+305E7 Comment Length        0000 (0)\n+305E9 Disk Start            0000 (0)\n+305EB Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+305ED Ext File Attributes   00000000 (0)\n+305F1 Local Header Offset   0000522A (21034)\n+305F5 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x305F5: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30606 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30608   Length              0005 (5)\n+3060A   Flags               01 (1) 'Modification'\n+3060B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3060F CENTRAL HEADER #16    02014B50 (33639248)\n+30613 Created Zip Spec      14 (20) '2.0'\n+30614 Created OS            00 (0) 'MS-DOS'\n+30615 Extract Zip Spec      14 (20) '2.0'\n+30616 Extract OS            00 (0) 'MS-DOS'\n+30617 General Purpose Flag  0000 (0)\n+30619 Compression Method    0000 (0) 'Stored'\n+3061B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3061F CRC                   00000000 (0)\n+30623 Compressed Size       00000000 (0)\n+30627 Uncompressed Size     00000000 (0)\n+3062B Filename Length       0004 (4)\n+3062D Extra Length          0009 (9)\n+3062F Comment Length        0000 (0)\n+30631 Disk Start            0000 (0)\n+30633 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30635 Ext File Attributes   00000000 (0)\n+30639 Local Header Offset   00005D8F (23951)\n+3063D Filename              'XXXX'\n+#\n+# WARNING: Offset 0x3063D: Filename 'XXXX'\n+#          Zero length filename\n+#\n+30641 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30643   Length              0005 (5)\n+30645   Flags               01 (1) 'Modification'\n+30646   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3064A CENTRAL HEADER #17    02014B50 (33639248)\n+3064E Created Zip Spec      14 (20) '2.0'\n+3064F Created OS            00 (0) 'MS-DOS'\n+30650 Extract Zip Spec      14 (20) '2.0'\n+30651 Extract OS            00 (0) 'MS-DOS'\n+30652 General Purpose Flag  0000 (0)\n+30654 Compression Method    0000 (0) 'Stored'\n+30656 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3065A CRC                   00000000 (0)\n+3065E Compressed Size       00000000 (0)\n+30662 Uncompressed Size     00000000 (0)\n+30666 Filename Length       000B (11)\n+30668 Extra Length          0009 (9)\n+3066A Comment Length        0000 (0)\n+3066C Disk Start            0000 (0)\n+3066E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30670 Ext File Attributes   00000000 (0)\n+30674 Local Header Offset   00005DBA (23994)\n+30678 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30678: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30683 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30685   Length              0005 (5)\n+30687   Flags               01 (1) 'Modification'\n+30688   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3068C CENTRAL HEADER #18    02014B50 (33639248)\n+30690 Created Zip Spec      14 (20) '2.0'\n+30691 Created OS            00 (0) 'MS-DOS'\n+30692 Extract Zip Spec      14 (20) '2.0'\n+30693 Extract OS            00 (0) 'MS-DOS'\n+30694 General Purpose Flag  0000 (0)\n+30696 Compression Method    0000 (0) 'Stored'\n+30698 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3069C CRC                   00000000 (0)\n+306A0 Compressed Size       00000000 (0)\n+306A4 Uncompressed Size     00000000 (0)\n+306A8 Filename Length       0011 (17)\n+306AA Extra Length          0009 (9)\n+306AC Comment Length        0000 (0)\n+306AE Disk Start            0000 (0)\n+306B0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+306B2 Ext File Attributes   00000000 (0)\n+306B6 Local Header Offset   00005DEC (24044)\n+306BA Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x306BA: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+306CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+306CD   Length              0005 (5)\n+306CF   Flags               01 (1) 'Modification'\n+306D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+306D4 CENTRAL HEADER #19    02014B50 (33639248)\n+306D8 Created Zip Spec      14 (20) '2.0'\n+306D9 Created OS            00 (0) 'MS-DOS'\n+306DA Extract Zip Spec      14 (20) '2.0'\n+306DB Extract OS            00 (0) 'MS-DOS'\n+306DC General Purpose Flag  0000 (0)\n+306DE Compression Method    0000 (0) 'Stored'\n+306E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+306E4 CRC                   00000000 (0)\n+306E8 Compressed Size       00000000 (0)\n+306EC Uncompressed Size     00000000 (0)\n+306F0 Filename Length       0018 (24)\n+306F2 Extra Length          0009 (9)\n+306F4 Comment Length        0000 (0)\n+306F6 Disk Start            0000 (0)\n+306F8 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+306FA Ext File Attributes   00000000 (0)\n+306FE Local Header Offset   00005E24 (24100)\n+30702 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30702: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3071A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3071C   Length              0005 (5)\n+3071E   Flags               01 (1) 'Modification'\n+3071F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30723 CENTRAL HEADER #20    02014B50 (33639248)\n+30727 Created Zip Spec      14 (20) '2.0'\n+30728 Created OS            00 (0) 'MS-DOS'\n+30729 Extract Zip Spec      14 (20) '2.0'\n+3072A Extract OS            00 (0) 'MS-DOS'\n+3072B General Purpose Flag  0000 (0)\n+3072D Compression Method    0000 (0) 'Stored'\n+3072F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30733 CRC                   00000000 (0)\n+30737 Compressed Size       00000000 (0)\n+3073B Uncompressed Size     00000000 (0)\n+3073F Filename Length       0022 (34)\n+30741 Extra Length          0009 (9)\n+30743 Comment Length        0000 (0)\n+30745 Disk Start            0000 (0)\n+30747 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30749 Ext File Attributes   00000000 (0)\n+3074D Local Header Offset   00005E63 (24163)\n+30751 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30751: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30773 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30775   Length              0005 (5)\n+30777   Flags               01 (1) 'Modification'\n+30778   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3077C CENTRAL HEADER #21    02014B50 (33639248)\n+30780 Created Zip Spec      14 (20) '2.0'\n+30781 Created OS            00 (0) 'MS-DOS'\n+30782 Extract Zip Spec      14 (20) '2.0'\n+30783 Extract OS            00 (0) 'MS-DOS'\n+30784 General Purpose Flag  0000 (0)\n+30786 Compression Method    0000 (0) 'Stored'\n+30788 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3078C CRC                   00000000 (0)\n+30790 Compressed Size       00000000 (0)\n+30794 Uncompressed Size     00000000 (0)\n+30798 Filename Length       002B (43)\n+3079A Extra Length          0009 (9)\n+3079C Comment Length        0000 (0)\n+3079E Disk Start            0000 (0)\n+307A0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+307A2 Ext File Attributes   00000000 (0)\n+307A6 Local Header Offset   00005EAC (24236)\n+307AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x307AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+307D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+307D7   Length              0005 (5)\n+307D9   Flags               01 (1) 'Modification'\n+307DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+307DE CENTRAL HEADER #22    02014B50 (33639248)\n+307E2 Created Zip Spec      14 (20) '2.0'\n+307E3 Created OS            00 (0) 'MS-DOS'\n+307E4 Extract Zip Spec      14 (20) '2.0'\n+307E5 Extract OS            00 (0) 'MS-DOS'\n+307E6 General Purpose Flag  0000 (0)\n+307E8 Compression Method    0000 (0) 'Stored'\n+307EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+307EE CRC                   00000000 (0)\n+307F2 Compressed Size       00000000 (0)\n+307F6 Uncompressed Size     00000000 (0)\n+307FA Filename Length       0033 (51)\n+307FC Extra Length          0009 (9)\n+307FE Comment Length        0000 (0)\n+30800 Disk Start            0000 (0)\n+30802 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30804 Ext File Attributes   00000000 (0)\n+30808 Local Header Offset   00005EFE (24318)\n+3080C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3080C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3083F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30841   Length              0005 (5)\n+30843   Flags               01 (1) 'Modification'\n+30844   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30848 CENTRAL HEADER #23    02014B50 (33639248)\n+3084C Created Zip Spec      14 (20) '2.0'\n+3084D Created OS            00 (0) 'MS-DOS'\n+3084E Extract Zip Spec      14 (20) '2.0'\n+3084F Extract OS            00 (0) 'MS-DOS'\n+30850 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30852 Compression Method    0000 (0) 'Stored'\n+30854 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30858 CRC                   770B2AC5 (1997220549)\n+3085C Compressed Size       0000159B (5531)\n+30860 Uncompressed Size     0000159B (5531)\n+30864 Filename Length       0056 (86)\n+30866 Extra Length          0009 (9)\n+30868 Comment Length        0000 (0)\n+3086A Disk Start            0000 (0)\n+3086C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+3086E Ext File Attributes   00000000 (0)\n+30872 Local Header Offset   00005F58 (24408)\n+30876 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30876: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+308CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+308CE   Length              0005 (5)\n+308D0   Flags               01 (1) 'Modification'\n+308D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+308D5 CENTRAL HEADER #24    02014B50 (33639248)\n+308D9 Created Zip Spec      14 (20) '2.0'\n+308DA Created OS            00 (0) 'MS-DOS'\n+308DB Extract Zip Spec      14 (20) '2.0'\n+308DC Extract OS            00 (0) 'MS-DOS'\n+308DD General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+308DF Compression Method    0000 (0) 'Stored'\n+308E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+308E5 CRC                   680E4C03 (1745767427)\n+308E9 Compressed Size       00001580 (5504)\n+308ED Uncompressed Size     00001580 (5504)\n+308F1 Filename Length       0057 (87)\n+308F3 Extra Length          0009 (9)\n+308F5 Comment Length        0000 (0)\n+308F7 Disk Start            0000 (0)\n+308F9 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+308FB Ext File Attributes   00000000 (0)\n+308FF Local Header Offset   00007580 (30080)\n+30903 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x3090F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x30903: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 3095A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 3095C   Length              0005 (5)\n 3095E   Flags               01 (1) 'Modification'\n 3095F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-30963 END CENTRAL HEADER    06054B50 (101010256)\n-30967 Number of this disk   0000 (0)\n-30969 Central Dir Disk no   0000 (0)\n-3096B Entries in this disk  0021 (33)\n-3096D Total Entries         0021 (33)\n-3096F Size of Central Dir   00000D09 (3337)\n-30973 Offset to Central Dir 0002FC5A (195674)\n-30977 Comment Length        0000 (0)\n+30963 CENTRAL HEADER #25    02014B50 (33639248)\n+30967 Created Zip Spec      14 (20) '2.0'\n+30968 Created OS            00 (0) 'MS-DOS'\n+30969 Extract Zip Spec      14 (20) '2.0'\n+3096A Extract OS            00 (0) 'MS-DOS'\n+3096B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+3096D Compression Method    0000 (0) 'Stored'\n+3096F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30973 CRC                   CECB8E17 (3469446679)\n+30977 Compressed Size       000007B4 (1972)\n+3097B Uncompressed Size     000007B4 (1972)\n+3097F Filename Length       0058 (88)\n+30981 Extra Length          0009 (9)\n+30983 Comment Length        0000 (0)\n+30985 Disk Start            0000 (0)\n+30987 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30989 Ext File Attributes   00000000 (0)\n+3098D Local Header Offset   00008B8E (35726)\n+30991 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30991: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+309E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+309EB   Length              0005 (5)\n+309ED   Flags               01 (1) 'Modification'\n+309EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+309F2 CENTRAL HEADER #26    02014B50 (33639248)\n+309F6 Created Zip Spec      14 (20) '2.0'\n+309F7 Created OS            00 (0) 'MS-DOS'\n+309F8 Extract Zip Spec      14 (20) '2.0'\n+309F9 Extract OS            00 (0) 'MS-DOS'\n+309FA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+309FC Compression Method    0000 (0) 'Stored'\n+309FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30A02 CRC                   16AE2BE0 (380513248)\n+30A06 Compressed Size       0000133A (4922)\n+30A0A Uncompressed Size     0000133A (4922)\n+30A0E Filename Length       0052 (82)\n+30A10 Extra Length          0009 (9)\n+30A12 Comment Length        0000 (0)\n+30A14 Disk Start            0000 (0)\n+30A16 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30A18 Ext File Attributes   00000000 (0)\n+30A1C Local Header Offset   000093D1 (37841)\n+30A20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30A20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30A72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30A74   Length              0005 (5)\n+30A76   Flags               01 (1) 'Modification'\n+30A77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30A7B CENTRAL HEADER #27    02014B50 (33639248)\n+30A7F Created Zip Spec      14 (20) '2.0'\n+30A80 Created OS            00 (0) 'MS-DOS'\n+30A81 Extract Zip Spec      14 (20) '2.0'\n+30A82 Extract OS            00 (0) 'MS-DOS'\n+30A83 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30A85 Compression Method    0000 (0) 'Stored'\n+30A87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30A8B CRC                   71435F02 (1900240642)\n+30A8F Compressed Size       0000159D (5533)\n+30A93 Uncompressed Size     0000159D (5533)\n+30A97 Filename Length       0053 (83)\n+30A99 Extra Length          0009 (9)\n+30A9B Comment Length        0000 (0)\n+30A9D Disk Start            0000 (0)\n+30A9F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30AA1 Ext File Attributes   00000000 (0)\n+30AA5 Local Header Offset   0000A794 (42900)\n+30AA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30AA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30AFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30AFE   Length              0005 (5)\n+30B00   Flags               01 (1) 'Modification'\n+30B01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30B05 CENTRAL HEADER #28    02014B50 (33639248)\n+30B09 Created Zip Spec      14 (20) '2.0'\n+30B0A Created OS            00 (0) 'MS-DOS'\n+30B0B Extract Zip Spec      14 (20) '2.0'\n+30B0C Extract OS            00 (0) 'MS-DOS'\n+30B0D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30B0F Compression Method    0000 (0) 'Stored'\n+30B11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30B15 CRC                   A92A8781 (2838136705)\n+30B19 Compressed Size       000009C6 (2502)\n+30B1D Uncompressed Size     000009C6 (2502)\n+30B21 Filename Length       0054 (84)\n+30B23 Extra Length          0009 (9)\n+30B25 Comment Length        0000 (0)\n+30B27 Disk Start            0000 (0)\n+30B29 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30B2B Ext File Attributes   00000000 (0)\n+30B2F Local Header Offset   0000BDBB (48571)\n+30B33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30B33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30B87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30B89   Length              0005 (5)\n+30B8B   Flags               01 (1) 'Modification'\n+30B8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30B90 CENTRAL HEADER #29    02014B50 (33639248)\n+30B94 Created Zip Spec      14 (20) '2.0'\n+30B95 Created OS            00 (0) 'MS-DOS'\n+30B96 Extract Zip Spec      14 (20) '2.0'\n+30B97 Extract OS            00 (0) 'MS-DOS'\n+30B98 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30B9A Compression Method    0000 (0) 'Stored'\n+30B9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30BA0 CRC                   7EEE431C (2129543964)\n+30BA4 Compressed Size       00002099 (8345)\n+30BA8 Uncompressed Size     00002099 (8345)\n+30BAC Filename Length       0045 (69)\n+30BAE Extra Length          0009 (9)\n+30BB0 Comment Length        0000 (0)\n+30BB2 Disk Start            0000 (0)\n+30BB4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30BB6 Ext File Attributes   00000000 (0)\n+30BBA Local Header Offset   0000C80C (51212)\n+30BBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30BBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30C03 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30C05   Length              0005 (5)\n+30C07   Flags               01 (1) 'Modification'\n+30C08   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30C0C CENTRAL HEADER #30    02014B50 (33639248)\n+30C10 Created Zip Spec      14 (20) '2.0'\n+30C11 Created OS            00 (0) 'MS-DOS'\n+30C12 Extract Zip Spec      14 (20) '2.0'\n+30C13 Extract OS            00 (0) 'MS-DOS'\n+30C14 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30C16 Compression Method    0000 (0) 'Stored'\n+30C18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30C1C CRC                   E46DD072 (3832402034)\n+30C20 Compressed Size       00000A55 (2645)\n+30C24 Uncompressed Size     00000A55 (2645)\n+30C28 Filename Length       0050 (80)\n+30C2A Extra Length          0009 (9)\n+30C2C Comment Length        0000 (0)\n+30C2E Disk Start            0000 (0)\n+30C30 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30C32 Ext File Attributes   00000000 (0)\n+30C36 Local Header Offset   0000E921 (59681)\n+30C3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30C3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30C8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30C8C   Length              0005 (5)\n+30C8E   Flags               01 (1) 'Modification'\n+30C8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30C93 CENTRAL HEADER #31    02014B50 (33639248)\n+30C97 Created Zip Spec      14 (20) '2.0'\n+30C98 Created OS            00 (0) 'MS-DOS'\n+30C99 Extract Zip Spec      14 (20) '2.0'\n+30C9A Extract OS            00 (0) 'MS-DOS'\n+30C9B General Purpose Flag  0000 (0)\n+30C9D Compression Method    0000 (0) 'Stored'\n+30C9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30CA3 CRC                   00000000 (0)\n+30CA7 Compressed Size       00000000 (0)\n+30CAB Uncompressed Size     00000000 (0)\n+30CAF Filename Length       003B (59)\n+30CB1 Extra Length          0009 (9)\n+30CB3 Comment Length        0000 (0)\n+30CB5 Disk Start            0000 (0)\n+30CB7 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30CB9 Ext File Attributes   00000000 (0)\n+30CBD Local Header Offset   0000F3FD (62461)\n+30CC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30CC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30CFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30CFE   Length              0005 (5)\n+30D00   Flags               01 (1) 'Modification'\n+30D01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30D05 CENTRAL HEADER #32    02014B50 (33639248)\n+30D09 Created Zip Spec      14 (20) '2.0'\n+30D0A Created OS            00 (0) 'MS-DOS'\n+30D0B Extract Zip Spec      14 (20) '2.0'\n+30D0C Extract OS            00 (0) 'MS-DOS'\n+30D0D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30D0F Compression Method    0000 (0) 'Stored'\n+30D11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30D15 CRC                   3E2D4260 (1043153504)\n+30D19 Compressed Size       00007BD0 (31696)\n+30D1D Uncompressed Size     00007BD0 (31696)\n+30D21 Filename Length       0048 (72)\n+30D23 Extra Length          0009 (9)\n+30D25 Comment Length        0000 (0)\n+30D27 Disk Start            0000 (0)\n+30D29 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30D2B Ext File Attributes   00000000 (0)\n+30D2F Local Header Offset   0000F45F (62559)\n+30D33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30D33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30D7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30D7D   Length              0005 (5)\n+30D7F   Flags               01 (1) 'Modification'\n+30D80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30D84 CENTRAL HEADER #33    02014B50 (33639248)\n+30D88 Created Zip Spec      14 (20) '2.0'\n+30D89 Created OS            00 (0) 'MS-DOS'\n+30D8A Extract Zip Spec      14 (20) '2.0'\n+30D8B Extract OS            00 (0) 'MS-DOS'\n+30D8C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+30D8E Compression Method    0000 (0) 'Stored'\n+30D90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30D94 CRC                   C5D2D6A4 (3318929060)\n+30D98 Compressed Size       00018FCD (102349)\n+30D9C Uncompressed Size     00018FCD (102349)\n+30DA0 Filename Length       004B (75)\n+30DA2 Extra Length          0009 (9)\n+30DA4 Comment Length        0000 (0)\n+30DA6 Disk Start            0000 (0)\n+30DA8 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+30DAA Ext File Attributes   00000000 (0)\n+30DAE Local Header Offset   000170AE (94382)\n+30DB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30DB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30DFD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30DFF   Length              0005 (5)\n+30E01   Flags               01 (1) 'Modification'\n+30E02   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+30E06 END CENTRAL HEADER    06054B50 (101010256)\n+30E0A Number of this disk   0000 (0)\n+30E0C Central Dir Disk no   0000 (0)\n+30E0E Entries in this disk  0021 (33)\n+30E10 Total Entries         0021 (33)\n+30E12 Size of Central Dir   00000D09 (3337)\n+30E16 Offset to Central Dir 000300FD (196861)\n+30E1A Comment Length        0000 (0)\n #\n # Warning Count: 66\n #\n # Done\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.common.serialize.Serialization", "source2": "META-INF/dubbo/internal/org.apache.dubbo.common.serialize.Serialization", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,2 +1,2 @@\n-protobuf-json=org.apache.dubbo.common.serialize.protobuf.support.GenericProtobufJsonSerialization\n+protobuf-json=org.apache.dubbo.common.serialize.protobuf.support.GenericProtobufJsonSerialization\r\n protobuf=org.apache.dubbo.common.serialize.protobuf.support.GenericProtobufSerialization\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/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,241 +1,235 @@\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 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: 0d0a 636f 6e74 7269 6275 746f 7220 6c69  ..contributor li\n-00000080: 6365 6e73 6520 6167 7265 656d 656e 7473  cense agreements\n-00000090: 2e20 2053 6565 2074 6865 204e 4f54 4943  .  See the NOTIC\n-000000a0: 4520 6669 6c65 2064 6973 7472 6962 7574  E file distribut\n-000000b0: 6564 2077 6974 680d 0a74 6869 7320 776f  ed with..this wo\n-000000c0: 726b 2066 6f72 2061 6464 6974 696f 6e61  rk for additiona\n-000000d0: 6c20 696e 666f 726d 6174 696f 6e20 7265  l information re\n-000000e0: 6761 7264 696e 6720 636f 7079 7269 6768  garding copyrigh\n-000000f0: 7420 6f77 6e65 7273 6869 702e 0d0a 5468  t ownership...Th\n-00000100: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000110: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000120: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000130: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000140: 6e20 322e 300d 0a28 7468 6520 224c 6963  n 2.0..(the \"Lic\n-00000150: 656e 7365 2229 3b20 796f 7520 6d61 7920  ense\"); you may \n-00000160: 6e6f 7420 7573 6520 7468 6973 2066 696c  not use this fil\n-00000170: 6520 6578 6365 7074 2069 6e20 636f 6d70  e except in comp\n-00000180: 6c69 616e 6365 2077 6974 680d 0a74 6865  liance with..the\n-00000190: 204c 6963 656e 7365 2e20 2059 6f75 206d   License.  You m\n-000001a0: 6179 206f 6274 6169 6e20 6120 636f 7079  ay obtain a copy\n-000001b0: 206f 6620 7468 6520 4c69 6365 6e73 6520   of the License \n-000001c0: 6174 0d0a 0d0a 2020 2020 2068 7474 703a  at....     http:\n-000001d0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000001e0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-000001f0: 452d 322e 300d 0a0d 0a55 6e6c 6573 7320  E-2.0....Unless \n-00000200: 7265 7175 6972 6564 2062 7920 6170 706c  required by appl\n-00000210: 6963 6162 6c65 206c 6177 206f 7220 6167  icable law or ag\n-00000220: 7265 6564 2074 6f20 696e 2077 7269 7469  reed to in writi\n-00000230: 6e67 2c20 736f 6674 7761 7265 0d0a 6469  ng, software..di\n-00000240: 7374 7269 6275 7465 6420 756e 6465 7220  stributed under \n-00000250: 7468 6520 4c69 6365 6e73 6520 6973 2064  the License is d\n-00000260: 6973 7472 6962 7574 6564 206f 6e20 616e  istributed on an\n-00000270: 2022 4153 2049 5322 2042 4153 4953 2c0d   \"AS IS\" BASIS,.\n-00000280: 0a57 4954 484f 5554 2057 4152 5241 4e54  .WITHOUT WARRANT\n-00000290: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n-000002a0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n-000002b0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n-000002c0: 2069 6d70 6c69 6564 2e0d 0a53 6565 2074   implied...See t\n-000002d0: 6865 204c 6963 656e 7365 2066 6f72 2074  he License for t\n-000002e0: 6865 2073 7065 6369 6669 6320 6c61 6e67  he specific lang\n-000002f0: 7561 6765 2067 6f76 6572 6e69 6e67 2070  uage governing p\n-00000300: 6572 6d69 7373 696f 6e73 2061 6e64 0d0a  ermissions and..\n-00000310: 6c69 6d69 7461 7469 6f6e 7320 756e 6465  limitations unde\n-00000320: 7220 7468 6520 4c69 6365 6e73 652e 0d0a  r the License...\n-00000330: 2d2d 3e0d 0a3c 7072 6f6a 6563 7420 7873  -->..<project xs\n-00000340: 693a 7363 6865 6d61 4c6f 6361 7469 6f6e  i:schemaLocation\n-00000350: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-00000360: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-00000370: 302e 3020 6874 7470 733a 2f2f 6d61 7665  0.0 https://mave\n-00000380: 6e2e 6170 6163 6865 2e6f 7267 2f78 7364  n.apache.org/xsd\n-00000390: 2f6d 6176 656e 2d34 2e30 2e30 2e78 7364  /maven-4.0.0.xsd\n-000003a0: 2220 786d 6c6e 733d 2268 7474 703a 2f2f  \" xmlns=\"http://\n-000003b0: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003c0: 2f50 4f4d 2f34 2e30 2e30 220d 0a20 2020  /POM/4.0.0\"..   \n-000003d0: 2078 6d6c 6e73 3a78 7369 3d22 6874 7470   xmlns:xsi=\"http\n-000003e0: 3a2f 2f77 7777 2e77 332e 6f72 672f 3230  ://www.w3.org/20\n-000003f0: 3031 2f58 4d4c 5363 6865 6d61 2d69 6e73  01/XMLSchema-ins\n-00000400: 7461 6e63 6522 3e0d 0a20 203c 6d6f 6465  tance\">..  <mode\n-00000410: 6c56 6572 7369 6f6e 3e34 2e30 2e30 3c2f  lVersion>4.0.0</\n-00000420: 6d6f 6465 6c56 6572 7369 6f6e 3e0d 0a20  modelVersion>.. \n-00000430: 203c 7061 7265 6e74 3e0d 0a20 2020 203c   <parent>..    <\n-00000440: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000450: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000460: 643e 0d0a 2020 2020 3c61 7274 6966 6163  d>..    <artifac\n-00000470: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000480: 697a 6174 696f 6e3c 2f61 7274 6966 6163  ization</artifac\n-00000490: 7449 643e 0d0a 2020 2020 3c76 6572 7369  tId>..    <versi\n-000004a0: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-000004b0: 6f6e 3e0d 0a20 203c 2f70 6172 656e 743e  on>..  </parent>\n-000004c0: 0d0a 2020 3c67 726f 7570 4964 3e6f 7267  ..  <groupId>org\n-000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000004e0: 726f 7570 4964 3e0d 0a20 203c 6172 7469  roupId>..  <arti\n-000004f0: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000500: 6961 6c69 7a61 7469 6f6e 2d70 726f 746f  ialization-proto\n-00000510: 6275 663c 2f61 7274 6966 6163 7449 643e  buf</artifactId>\n-00000520: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000530: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000540: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n-00000550: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n-00000560: 6d65 3e0d 0a20 203c 6465 7363 7269 7074  me>..  <descript\n-00000570: 696f 6e3e 5468 6520 7072 6f74 6f62 7566  ion>The protobuf\n-00000580: 2073 6572 6961 6c69 7a61 7469 6f6e 206d   serialization m\n-00000590: 6f64 756c 6520 6f66 2064 7562 626f 2070  odule of dubbo p\n-000005a0: 726f 6a65 6374 3c2f 6465 7363 7269 7074  roject</descript\n-000005b0: 696f 6e3e 0d0a 2020 3c6c 6963 656e 7365  ion>..  <license\n-000005c0: 733e 0d0a 2020 2020 3c6c 6963 656e 7365  s>..    <license\n-000005d0: 3e0d 0a20 2020 2020 203c 6e61 6d65 3e41  >..      <name>A\n-000005e0: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n-000005f0: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n-00000600: 3e0d 0a20 2020 2020 203c 7572 6c3e 6874  >..      <url>ht\n-00000610: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n-00000620: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n-00000630: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0d0a  ENSE-2.0</url>..\n-00000640: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n-00000650: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n-00000660: 6275 7469 6f6e 3e0d 0a20 2020 203c 2f6c  bution>..    </l\n-00000670: 6963 656e 7365 3e0d 0a20 203c 2f6c 6963  icense>..  </lic\n-00000680: 656e 7365 733e 0d0a 2020 3c70 726f 7065  enses>..  <prope\n-00000690: 7274 6965 733e 0d0a 2020 2020 3c73 6b69  rties>..    <ski\n-000006a0: 705f 6d61 7665 6e5f 6465 706c 6f79 3e66  p_maven_deploy>f\n-000006b0: 616c 7365 3c2f 736b 6970 5f6d 6176 656e  alse</skip_maven\n-000006c0: 5f64 6570 6c6f 793e 0d0a 2020 2020 3c64  _deploy>..    <d\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 4c69 6365  F-8\"?>.<!--.Lice\n+00000030: 6e73 6564 2074 6f20 7468 6520 4170 6163  nsed to the Apac\n+00000040: 6865 2053 6f66 7477 6172 6520 466f 756e  he Software Foun\n+00000050: 6461 7469 6f6e 2028 4153 4629 2075 6e64  dation (ASF) und\n+00000060: 6572 206f 6e65 206f 7220 6d6f 7265 0a63  er one or more.c\n+00000070: 6f6e 7472 6962 7574 6f72 206c 6963 656e  ontributor licen\n+00000080: 7365 2061 6772 6565 6d65 6e74 732e 2020  se agreements.  \n+00000090: 5365 6520 7468 6520 4e4f 5449 4345 2066  See the NOTICE f\n+000000a0: 696c 6520 6469 7374 7269 6275 7465 6420  ile distributed \n+000000b0: 7769 7468 0a74 6869 7320 776f 726b 2066  with.this work f\n+000000c0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n+000000d0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n+000000e0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n+000000f0: 6e65 7273 6869 702e 0a54 6865 2041 5346  nership..The ASF\n+00000100: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000110: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000120: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000130: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000140: 0a28 7468 6520 224c 6963 656e 7365 2229  .(the \"License\")\n+00000150: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n+00000160: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n+00000170: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n+00000180: 2077 6974 680a 7468 6520 4c69 6365 6e73   with.the Licens\n+00000190: 652e 2020 596f 7520 6d61 7920 6f62 7461  e.  You may obta\n+000001a0: 696e 2061 2063 6f70 7920 6f66 2074 6865  in a copy of the\n+000001b0: 204c 6963 656e 7365 2061 740a 0a20 2020   License at..   \n+000001c0: 2020 6874 7470 3a2f 2f77 7777 2e61 7061    http://www.apa\n+000001d0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+000001e0: 2f4c 4943 454e 5345 2d32 2e30 0a0a 556e  /LICENSE-2.0..Un\n+000001f0: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n+00000200: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n+00000210: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n+00000220: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n+00000230: 650a 6469 7374 7269 6275 7465 6420 756e  e.distributed un\n+00000240: 6465 7220 7468 6520 4c69 6365 6e73 6520  der the License \n+00000250: 6973 2064 6973 7472 6962 7574 6564 206f  is distributed o\n+00000260: 6e20 616e 2022 4153 2049 5322 2042 4153  n an \"AS IS\" BAS\n+00000270: 4953 2c0a 5749 5448 4f55 5420 5741 5252  IS,.WITHOUT WARR\n+00000280: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n+00000290: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n+000002a0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n+000002b0: 206f 7220 696d 706c 6965 642e 0a53 6565   or implied..See\n+000002c0: 2074 6865 204c 6963 656e 7365 2066 6f72   the License for\n+000002d0: 2074 6865 2073 7065 6369 6669 6320 6c61   the specific la\n+000002e0: 6e67 7561 6765 2067 6f76 6572 6e69 6e67  nguage governing\n+000002f0: 2070 6572 6d69 7373 696f 6e73 2061 6e64   permissions and\n+00000300: 0a6c 696d 6974 6174 696f 6e73 2075 6e64  .limitations und\n+00000310: 6572 2074 6865 204c 6963 656e 7365 2e0a  er the License..\n+00000320: 2d2d 3e0a 3c70 726f 6a65 6374 2078 7369  -->.<project xsi\n+00000330: 3a73 6368 656d 614c 6f63 6174 696f 6e3d  :schemaLocation=\n+00000340: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+00000350: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+00000360: 2e30 2068 7474 7073 3a2f 2f6d 6176 656e  .0 https://maven\n+00000370: 2e61 7061 6368 652e 6f72 672f 7873 642f  .apache.org/xsd/\n+00000380: 6d61 7665 6e2d 342e 302e 302e 7873 6422  maven-4.0.0.xsd\"\n+00000390: 2078 6d6c 6e73 3d22 6874 7470 3a2f 2f6d   xmlns=\"http://m\n+000003a0: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+000003b0: 504f 4d2f 342e 302e 3022 0a20 2020 2078  POM/4.0.0\".    x\n+000003c0: 6d6c 6e73 3a78 7369 3d22 6874 7470 3a2f  mlns:xsi=\"http:/\n+000003d0: 2f77 7777 2e77 332e 6f72 672f 3230 3031  /www.w3.org/2001\n+000003e0: 2f58 4d4c 5363 6865 6d61 2d69 6e73 7461  /XMLSchema-insta\n+000003f0: 6e63 6522 3e0a 2020 3c6d 6f64 656c 5665  nce\">.  <modelVe\n+00000400: 7273 696f 6e3e 342e 302e 303c 2f6d 6f64  rsion>4.0.0</mod\n+00000410: 656c 5665 7273 696f 6e3e 0a20 203c 7061  elVersion>.  <pa\n+00000420: 7265 6e74 3e0a 2020 2020 3c67 726f 7570  rent>.    <group\n+00000430: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000440: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000450: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000460: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000470: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+00000480: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n+00000490: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+000004a0: 2f70 6172 656e 743e 0a20 203c 6772 6f75  /parent>.  <grou\n+000004b0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000004c0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+000004d0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000004e0: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n+000004f0: 2d70 726f 746f 6275 663c 2f61 7274 6966  -protobuf</artif\n+00000500: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000510: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000520: 6e3e 0a20 203c 6e61 6d65 3e24 7b70 726f  n>.  <name>${pro\n+00000530: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n+00000540: 3c2f 6e61 6d65 3e0a 2020 3c64 6573 6372  </name>.  <descr\n+00000550: 6970 7469 6f6e 3e54 6865 2070 726f 746f  iption>The proto\n+00000560: 6275 6620 7365 7269 616c 697a 6174 696f  buf serializatio\n+00000570: 6e20 6d6f 6475 6c65 206f 6620 6475 6262  n module of dubb\n+00000580: 6f20 7072 6f6a 6563 743c 2f64 6573 6372  o project</descr\n+00000590: 6970 7469 6f6e 3e0a 2020 3c6c 6963 656e  iption>.  <licen\n+000005a0: 7365 733e 0a20 2020 203c 6c69 6365 6e73  ses>.    <licens\n+000005b0: 653e 0a20 2020 2020 203c 6e61 6d65 3e41  e>.      <name>A\n+000005c0: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n+000005d0: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n+000005e0: 3e0a 2020 2020 2020 3c75 726c 3e68 7474  >.      <url>htt\n+000005f0: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n+00000600: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n+00000610: 4e53 452d 322e 303c 2f75 726c 3e0a 2020  NSE-2.0</url>.  \n+00000620: 2020 2020 3c64 6973 7472 6962 7574 696f      <distributio\n+00000630: 6e3e 7265 706f 3c2f 6469 7374 7269 6275  n>repo</distribu\n+00000640: 7469 6f6e 3e0a 2020 2020 3c2f 6c69 6365  tion>.    </lice\n+00000650: 6e73 653e 0a20 203c 2f6c 6963 656e 7365  nse>.  </license\n+00000660: 733e 0a20 203c 7072 6f70 6572 7469 6573  s>.  <properties\n+00000670: 3e0a 2020 2020 3c73 6b69 705f 6d61 7665  >.    <skip_mave\n+00000680: 6e5f 6465 706c 6f79 3e66 616c 7365 3c2f  n_deploy>false</\n+00000690: 736b 6970 5f6d 6176 656e 5f64 6570 6c6f  skip_maven_deplo\n+000006a0: 793e 0a20 2020 203c 6475 6262 6f2e 636f  y>.    <dubbo.co\n+000006b0: 6d70 696c 6572 2e76 6572 7369 6f6e 3e30  mpiler.version>0\n+000006c0: 2e30 2e31 2d53 4e41 5053 484f 543c 2f64  .0.1-SNAPSHOT</d\n 000006d0: 7562 626f 2e63 6f6d 7069 6c65 722e 7665  ubbo.compiler.ve\n-000006e0: 7273 696f 6e3e 302e 302e 312d 534e 4150  rsion>0.0.1-SNAP\n-000006f0: 5348 4f54 3c2f 6475 6262 6f2e 636f 6d70  SHOT</dubbo.comp\n-00000700: 696c 6572 2e76 6572 7369 6f6e 3e0d 0a20  iler.version>.. \n-00000710: 203c 2f70 726f 7065 7274 6965 733e 0d0a   </properties>..\n-00000720: 2020 3c64 6570 656e 6465 6e63 6965 733e    <dependencies>\n-00000730: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-00000740: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-00000750: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-00000760: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-00000770: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-00000780: 3e64 7562 626f 2d73 6572 6961 6c69 7a61  >dubbo-serializa\n-00000790: 7469 6f6e 2d61 7069 3c2f 6172 7469 6661  tion-api</artifa\n-000007a0: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-000007b0: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-000007c0: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-000007d0: 2f76 6572 7369 6f6e 3e0d 0a20 2020 203c  /version>..    <\n-000007e0: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-000007f0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000800: 2020 2020 2020 3c67 726f 7570 4964 3e63        <groupId>c\n-00000810: 6f6d 2e67 6f6f 676c 652e 7072 6f74 6f62  om.google.protob\n-00000820: 7566 3c2f 6772 6f75 7049 643e 0d0a 2020  uf</groupId>..  \n-00000830: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000840: 7072 6f74 6f62 7566 2d6a 6176 613c 2f61  protobuf-java</a\n-00000850: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000860: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000870: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000880: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000890: 636f 6d2e 676f 6f67 6c65 2e70 726f 746f  com.google.proto\n-000008a0: 6275 663c 2f67 726f 7570 4964 3e0d 0a20  buf</groupId>.. \n-000008b0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-000008c0: 3e70 726f 746f 6275 662d 6a61 7661 2d75  >protobuf-java-u\n-000008d0: 7469 6c3c 2f61 7274 6966 6163 7449 643e  til</artifactId>\n-000008e0: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-000008f0: 6379 3e0d 0a20 203c 2f64 6570 656e 6465  cy>..  </depende\n-00000900: 6e63 6965 733e 0d0a 2020 3c62 7569 6c64  ncies>..  <build\n-00000910: 3e0d 0a20 2020 203c 6578 7465 6e73 696f  >..    <extensio\n-00000920: 6e73 3e0d 0a20 2020 2020 203c 6578 7465  ns>..      <exte\n-00000930: 6e73 696f 6e3e 0d0a 2020 2020 2020 2020  nsion>..        \n-00000940: 3c67 726f 7570 4964 3e6b 722e 6d6f 7464  <groupId>kr.motd\n-00000950: 2e6d 6176 656e 3c2f 6772 6f75 7049 643e  .maven</groupId>\n-00000960: 0d0a 2020 2020 2020 2020 3c61 7274 6966  ..        <artif\n-00000970: 6163 7449 643e 6f73 2d6d 6176 656e 2d70  actId>os-maven-p\n-00000980: 6c75 6769 6e3c 2f61 7274 6966 6163 7449  lugin</artifactI\n-00000990: 643e 0d0a 2020 2020 2020 2020 3c76 6572  d>..        <ver\n-000009a0: 7369 6f6e 3e31 2e36 2e31 3c2f 7665 7273  sion>1.6.1</vers\n-000009b0: 696f 6e3e 0d0a 2020 2020 2020 3c2f 6578  ion>..      </ex\n-000009c0: 7465 6e73 696f 6e3e 0d0a 2020 2020 3c2f  tension>..    </\n-000009d0: 6578 7465 6e73 696f 6e73 3e0d 0a20 2020  extensions>..   \n-000009e0: 203c 706c 7567 696e 733e 0d0a 2020 2020   <plugins>..    \n-000009f0: 2020 3c70 6c75 6769 6e3e 0d0a 2020 2020    <plugin>..    \n-00000a00: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000a10: 2e78 6f6c 7374 6963 652e 6d61 7665 6e2e  .xolstice.maven.\n-00000a20: 706c 7567 696e 733c 2f67 726f 7570 4964  plugins</groupId\n-00000a30: 3e0d 0a20 2020 2020 2020 203c 6172 7469  >..        <arti\n-00000a40: 6661 6374 4964 3e70 726f 746f 6275 662d  factId>protobuf-\n-00000a50: 6d61 7665 6e2d 706c 7567 696e 3c2f 6172  maven-plugin</ar\n-00000a60: 7469 6661 6374 4964 3e0d 0a20 2020 2020  tifactId>..     \n-00000a70: 2020 203c 7665 7273 696f 6e3e 302e 352e     <version>0.5.\n-00000a80: 313c 2f76 6572 7369 6f6e 3e0d 0a20 2020  1</version>..   \n-00000a90: 2020 2020 203c 6578 7465 6e73 696f 6e73       <extensions\n-00000aa0: 3e74 7275 653c 2f65 7874 656e 7369 6f6e  >true</extension\n-00000ab0: 733e 0d0a 2020 2020 2020 2020 3c65 7865  s>..        <exe\n-00000ac0: 6375 7469 6f6e 733e 0d0a 2020 2020 2020  cutions>..      \n-00000ad0: 2020 2020 3c65 7865 6375 7469 6f6e 3e0d      <execution>.\n-00000ae0: 0a20 2020 2020 2020 2020 2020 203c 676f  .            <go\n-00000af0: 616c 733e 0d0a 2020 2020 2020 2020 2020  als>..          \n-00000b00: 2020 2020 3c67 6f61 6c3e 636f 6d70 696c      <goal>compil\n-00000b10: 653c 2f67 6f61 6c3e 0d0a 2020 2020 2020  e</goal>..      \n-00000b20: 2020 2020 2020 2020 3c67 6f61 6c3e 7465          <goal>te\n-00000b30: 7374 2d63 6f6d 7069 6c65 3c2f 676f 616c  st-compile</goal\n-00000b40: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n-00000b50: 2f67 6f61 6c73 3e0d 0a20 2020 2020 2020  /goals>..       \n-00000b60: 2020 203c 2f65 7865 6375 7469 6f6e 3e0d     </execution>.\n-00000b70: 0a20 2020 2020 2020 203c 2f65 7865 6375  .        </execu\n-00000b80: 7469 6f6e 733e 0d0a 2020 2020 2020 2020  tions>..        \n-00000b90: 3c63 6f6e 6669 6775 7261 7469 6f6e 3e0d  <configuration>.\n-00000ba0: 0a20 2020 2020 2020 2020 203c 7072 6f74  .          <prot\n-00000bb0: 6f63 4172 7469 6661 6374 3e63 6f6d 2e67  ocArtifact>com.g\n-00000bc0: 6f6f 676c 652e 7072 6f74 6f62 7566 3a70  oogle.protobuf:p\n-00000bd0: 726f 746f 633a 332e 372e 313a 6578 653a  rotoc:3.7.1:exe:\n-00000be0: 247b 6f73 2e64 6574 6563 7465 642e 636c  ${os.detected.cl\n-00000bf0: 6173 7369 6669 6572 7d3c 2f70 726f 746f  assifier}</proto\n-00000c00: 6341 7274 6966 6163 743e 0d0a 2020 2020  cArtifact>..    \n-00000c10: 2020 2020 2020 3c6f 7574 7075 7444 6972        <outputDir\n-00000c20: 6563 746f 7279 3e62 7569 6c64 2f67 656e  ectory>build/gen\n-00000c30: 6572 6174 6564 2f73 6f75 7263 652f 7072  erated/source/pr\n-00000c40: 6f74 6f2f 6d61 696e 2f6a 6176 613c 2f6f  oto/main/java</o\n-00000c50: 7574 7075 7444 6972 6563 746f 7279 3e0d  utputDirectory>.\n-00000c60: 0a20 2020 2020 2020 2020 203c 636c 6561  .          <clea\n-00000c70: 724f 7574 7075 7444 6972 6563 746f 7279  rOutputDirectory\n-00000c80: 3e66 616c 7365 3c2f 636c 6561 724f 7574  >false</clearOut\n-00000c90: 7075 7444 6972 6563 746f 7279 3e0d 0a20  putDirectory>.. \n-00000ca0: 2020 2020 2020 203c 2f63 6f6e 6669 6775         </configu\n-00000cb0: 7261 7469 6f6e 3e0d 0a20 2020 2020 203c  ration>..      <\n-00000cc0: 2f70 6c75 6769 6e3e 0d0a 2020 2020 2020  /plugin>..      \n-00000cd0: 3c70 6c75 6769 6e3e 0d0a 2020 2020 2020  <plugin>..      \n-00000ce0: 2020 3c67 726f 7570 4964 3e6f 7267 2e63    <groupId>org.c\n-00000cf0: 6f64 6568 6175 732e 6d6f 6a6f 3c2f 6772  odehaus.mojo</gr\n-00000d00: 6f75 7049 643e 0d0a 2020 2020 2020 2020  oupId>..        \n-00000d10: 3c61 7274 6966 6163 7449 643e 6275 696c  <artifactId>buil\n-00000d20: 642d 6865 6c70 6572 2d6d 6176 656e 2d70  d-helper-maven-p\n-00000d30: 6c75 6769 6e3c 2f61 7274 6966 6163 7449  lugin</artifactI\n-00000d40: 643e 0d0a 2020 2020 2020 2020 3c65 7865  d>..        <exe\n-00000d50: 6375 7469 6f6e 733e 0d0a 2020 2020 2020  cutions>..      \n-00000d60: 2020 2020 3c65 7865 6375 7469 6f6e 3e0d      <execution>.\n-00000d70: 0a20 2020 2020 2020 2020 2020 203c 7068  .            <ph\n-00000d80: 6173 653e 6765 6e65 7261 7465 2d73 6f75  ase>generate-sou\n-00000d90: 7263 6573 3c2f 7068 6173 653e 0d0a 2020  rces</phase>..  \n-00000da0: 2020 2020 2020 2020 2020 3c67 6f61 6c73            <goals\n-00000db0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n-00000dc0: 203c 676f 616c 3e61 6464 2d73 6f75 7263   <goal>add-sourc\n-00000dd0: 653c 2f67 6f61 6c3e 0d0a 2020 2020 2020  e</goal>..      \n-00000de0: 2020 2020 2020 3c2f 676f 616c 733e 0d0a        </goals>..\n-00000df0: 2020 2020 2020 2020 2020 2020 3c63 6f6e              <con\n-00000e00: 6669 6775 7261 7469 6f6e 3e0d 0a20 2020  figuration>..   \n-00000e10: 2020 2020 2020 2020 2020 203c 736f 7572             <sour\n-00000e20: 6365 733e 0d0a 2020 2020 2020 2020 2020  ces>..          \n-00000e30: 2020 2020 2020 3c73 6f75 7263 653e 6275        <source>bu\n-00000e40: 696c 642f 6765 6e65 7261 7465 642f 736f  ild/generated/so\n-00000e50: 7572 6365 2f70 726f 746f 2f6d 6169 6e2f  urce/proto/main/\n-00000e60: 6a61 7661 3c2f 736f 7572 6365 3e0d 0a20  java</source>.. \n-00000e70: 2020 2020 2020 2020 2020 2020 203c 2f73               </s\n-00000e80: 6f75 7263 6573 3e0d 0a20 2020 2020 2020  ources>..       \n-00000e90: 2020 2020 203c 2f63 6f6e 6669 6775 7261       </configura\n-00000ea0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n-00000eb0: 203c 2f65 7865 6375 7469 6f6e 3e0d 0a20   </execution>.. \n-00000ec0: 2020 2020 2020 203c 2f65 7865 6375 7469         </executi\n-00000ed0: 6f6e 733e 0d0a 2020 2020 2020 3c2f 706c  ons>..      </pl\n-00000ee0: 7567 696e 3e0d 0a20 2020 203c 2f70 6c75  ugin>..    </plu\n-00000ef0: 6769 6e73 3e0d 0a20 203c 2f62 7569 6c64  gins>..  </build\n-00000f00: 3e0d 0a3c 2f70 726f 6a65 6374 3e0d 0a    >..</project>..\n+000006e0: 7273 696f 6e3e 0a20 203c 2f70 726f 7065  rsion>.  </prope\n+000006f0: 7274 6965 733e 0a20 203c 6465 7065 6e64  rties>.  <depend\n+00000700: 656e 6369 6573 3e0a 2020 2020 3c64 6570  encies>.    <dep\n+00000710: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000720: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+00000730: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+00000740: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000750: 6374 4964 3e64 7562 626f 2d73 6572 6961  ctId>dubbo-seria\n+00000760: 6c69 7a61 7469 6f6e 2d61 7069 3c2f 6172  lization-api</ar\n+00000770: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000780: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n+00000790: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n+000007a0: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+000007b0: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+000007c0: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+000007d0: 2020 2020 2020 3c67 726f 7570 4964 3e63        <groupId>c\n+000007e0: 6f6d 2e67 6f6f 676c 652e 7072 6f74 6f62  om.google.protob\n+000007f0: 7566 3c2f 6772 6f75 7049 643e 0a20 2020  uf</groupId>.   \n+00000800: 2020 203c 6172 7469 6661 6374 4964 3e70     <artifactId>p\n+00000810: 726f 746f 6275 662d 6a61 7661 3c2f 6172  rotobuf-java</ar\n+00000820: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+00000830: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000840: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000850: 2020 203c 6772 6f75 7049 643e 636f 6d2e     <groupId>com.\n+00000860: 676f 6f67 6c65 2e70 726f 746f 6275 663c  google.protobuf<\n+00000870: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000880: 3c61 7274 6966 6163 7449 643e 7072 6f74  <artifactId>prot\n+00000890: 6f62 7566 2d6a 6176 612d 7574 696c 3c2f  obuf-java-util</\n+000008a0: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+000008b0: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+000008c0: 3c2f 6465 7065 6e64 656e 6369 6573 3e0a  </dependencies>.\n+000008d0: 2020 3c62 7569 6c64 3e0a 2020 2020 3c65    <build>.    <e\n+000008e0: 7874 656e 7369 6f6e 733e 0a20 2020 2020  xtensions>.     \n+000008f0: 203c 6578 7465 6e73 696f 6e3e 0a20 2020   <extension>.   \n+00000900: 2020 2020 203c 6772 6f75 7049 643e 6b72       <groupId>kr\n+00000910: 2e6d 6f74 642e 6d61 7665 6e3c 2f67 726f  .motd.maven</gro\n+00000920: 7570 4964 3e0a 2020 2020 2020 2020 3c61  upId>.        <a\n+00000930: 7274 6966 6163 7449 643e 6f73 2d6d 6176  rtifactId>os-mav\n+00000940: 656e 2d70 6c75 6769 6e3c 2f61 7274 6966  en-plugin</artif\n+00000950: 6163 7449 643e 0a20 2020 2020 2020 203c  actId>.        <\n+00000960: 7665 7273 696f 6e3e 312e 362e 313c 2f76  version>1.6.1</v\n+00000970: 6572 7369 6f6e 3e0a 2020 2020 2020 3c2f  ersion>.      </\n+00000980: 6578 7465 6e73 696f 6e3e 0a20 2020 203c  extension>.    <\n+00000990: 2f65 7874 656e 7369 6f6e 733e 0a20 2020  /extensions>.   \n+000009a0: 203c 706c 7567 696e 733e 0a20 2020 2020   <plugins>.     \n+000009b0: 203c 706c 7567 696e 3e0a 2020 2020 2020   <plugin>.      \n+000009c0: 2020 3c67 726f 7570 4964 3e6f 7267 2e78    <groupId>org.x\n+000009d0: 6f6c 7374 6963 652e 6d61 7665 6e2e 706c  olstice.maven.pl\n+000009e0: 7567 696e 733c 2f67 726f 7570 4964 3e0a  ugins</groupId>.\n+000009f0: 2020 2020 2020 2020 3c61 7274 6966 6163          <artifac\n+00000a00: 7449 643e 7072 6f74 6f62 7566 2d6d 6176  tId>protobuf-mav\n+00000a10: 656e 2d70 6c75 6769 6e3c 2f61 7274 6966  en-plugin</artif\n+00000a20: 6163 7449 643e 0a20 2020 2020 2020 203c  actId>.        <\n+00000a30: 7665 7273 696f 6e3e 302e 352e 313c 2f76  version>0.5.1</v\n+00000a40: 6572 7369 6f6e 3e0a 2020 2020 2020 2020  ersion>.        \n+00000a50: 3c65 7874 656e 7369 6f6e 733e 7472 7565  <extensions>true\n+00000a60: 3c2f 6578 7465 6e73 696f 6e73 3e0a 2020  </extensions>.  \n+00000a70: 2020 2020 2020 3c65 7865 6375 7469 6f6e        <execution\n+00000a80: 733e 0a20 2020 2020 2020 2020 203c 6578  s>.          <ex\n+00000a90: 6563 7574 696f 6e3e 0a20 2020 2020 2020  ecution>.       \n+00000aa0: 2020 2020 203c 676f 616c 733e 0a20 2020       <goals>.   \n+00000ab0: 2020 2020 2020 2020 2020 203c 676f 616c             <goal\n+00000ac0: 3e63 6f6d 7069 6c65 3c2f 676f 616c 3e0a  >compile</goal>.\n+00000ad0: 2020 2020 2020 2020 2020 2020 2020 3c67                <g\n+00000ae0: 6f61 6c3e 7465 7374 2d63 6f6d 7069 6c65  oal>test-compile\n+00000af0: 3c2f 676f 616c 3e0a 2020 2020 2020 2020  </goal>.        \n+00000b00: 2020 2020 3c2f 676f 616c 733e 0a20 2020      </goals>.   \n+00000b10: 2020 2020 2020 203c 2f65 7865 6375 7469         </executi\n+00000b20: 6f6e 3e0a 2020 2020 2020 2020 3c2f 6578  on>.        </ex\n+00000b30: 6563 7574 696f 6e73 3e0a 2020 2020 2020  ecutions>.      \n+00000b40: 2020 3c63 6f6e 6669 6775 7261 7469 6f6e    <configuration\n+00000b50: 3e0a 2020 2020 2020 2020 2020 3c70 726f  >.          <pro\n+00000b60: 746f 6341 7274 6966 6163 743e 636f 6d2e  tocArtifact>com.\n+00000b70: 676f 6f67 6c65 2e70 726f 746f 6275 663a  google.protobuf:\n+00000b80: 7072 6f74 6f63 3a33 2e37 2e31 3a65 7865  protoc:3.7.1:exe\n+00000b90: 3a24 7b6f 732e 6465 7465 6374 6564 2e63  :${os.detected.c\n+00000ba0: 6c61 7373 6966 6965 727d 3c2f 7072 6f74  lassifier}</prot\n+00000bb0: 6f63 4172 7469 6661 6374 3e0a 2020 2020  ocArtifact>.    \n+00000bc0: 2020 2020 2020 3c6f 7574 7075 7444 6972        <outputDir\n+00000bd0: 6563 746f 7279 3e62 7569 6c64 2f67 656e  ectory>build/gen\n+00000be0: 6572 6174 6564 2f73 6f75 7263 652f 7072  erated/source/pr\n+00000bf0: 6f74 6f2f 6d61 696e 2f6a 6176 613c 2f6f  oto/main/java</o\n+00000c00: 7574 7075 7444 6972 6563 746f 7279 3e0a  utputDirectory>.\n+00000c10: 2020 2020 2020 2020 2020 3c63 6c65 6172            <clear\n+00000c20: 4f75 7470 7574 4469 7265 6374 6f72 793e  OutputDirectory>\n+00000c30: 6661 6c73 653c 2f63 6c65 6172 4f75 7470  false</clearOutp\n+00000c40: 7574 4469 7265 6374 6f72 793e 0a20 2020  utDirectory>.   \n+00000c50: 2020 2020 203c 2f63 6f6e 6669 6775 7261       </configura\n+00000c60: 7469 6f6e 3e0a 2020 2020 2020 3c2f 706c  tion>.      </pl\n+00000c70: 7567 696e 3e0a 2020 2020 2020 3c70 6c75  ugin>.      <plu\n+00000c80: 6769 6e3e 0a20 2020 2020 2020 203c 6772  gin>.        <gr\n+00000c90: 6f75 7049 643e 6f72 672e 636f 6465 6861  oupId>org.codeha\n+00000ca0: 7573 2e6d 6f6a 6f3c 2f67 726f 7570 4964  us.mojo</groupId\n+00000cb0: 3e0a 2020 2020 2020 2020 3c61 7274 6966  >.        <artif\n+00000cc0: 6163 7449 643e 6275 696c 642d 6865 6c70  actId>build-help\n+00000cd0: 6572 2d6d 6176 656e 2d70 6c75 6769 6e3c  er-maven-plugin<\n+00000ce0: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000cf0: 2020 2020 203c 6578 6563 7574 696f 6e73       <executions\n+00000d00: 3e0a 2020 2020 2020 2020 2020 3c65 7865  >.          <exe\n+00000d10: 6375 7469 6f6e 3e0a 2020 2020 2020 2020  cution>.        \n+00000d20: 2020 2020 3c70 6861 7365 3e67 656e 6572      <phase>gener\n+00000d30: 6174 652d 736f 7572 6365 733c 2f70 6861  ate-sources</pha\n+00000d40: 7365 3e0a 2020 2020 2020 2020 2020 2020  se>.            \n+00000d50: 3c67 6f61 6c73 3e0a 2020 2020 2020 2020  <goals>.        \n+00000d60: 2020 2020 2020 3c67 6f61 6c3e 6164 642d        <goal>add-\n+00000d70: 736f 7572 6365 3c2f 676f 616c 3e0a 2020  source</goal>.  \n+00000d80: 2020 2020 2020 2020 2020 3c2f 676f 616c            </goal\n+00000d90: 733e 0a20 2020 2020 2020 2020 2020 203c  s>.            <\n+00000da0: 636f 6e66 6967 7572 6174 696f 6e3e 0a20  configuration>. \n+00000db0: 2020 2020 2020 2020 2020 2020 203c 736f               <so\n+00000dc0: 7572 6365 733e 0a20 2020 2020 2020 2020  urces>.         \n+00000dd0: 2020 2020 2020 203c 736f 7572 6365 3e62         <source>b\n+00000de0: 7569 6c64 2f67 656e 6572 6174 6564 2f73  uild/generated/s\n+00000df0: 6f75 7263 652f 7072 6f74 6f2f 6d61 696e  ource/proto/main\n+00000e00: 2f6a 6176 613c 2f73 6f75 7263 653e 0a20  /java</source>. \n+00000e10: 2020 2020 2020 2020 2020 2020 203c 2f73               </s\n+00000e20: 6f75 7263 6573 3e0a 2020 2020 2020 2020  ources>.        \n+00000e30: 2020 2020 3c2f 636f 6e66 6967 7572 6174      </configurat\n+00000e40: 696f 6e3e 0a20 2020 2020 2020 2020 203c  ion>.          <\n+00000e50: 2f65 7865 6375 7469 6f6e 3e0a 2020 2020  /execution>.    \n+00000e60: 2020 2020 3c2f 6578 6563 7574 696f 6e73      </executions\n+00000e70: 3e0a 2020 2020 2020 3c2f 706c 7567 696e  >.      </plugin\n+00000e80: 3e0a 2020 2020 3c2f 706c 7567 696e 733e  >.    </plugins>\n+00000e90: 0a20 203c 2f62 7569 6c64 3e0a 3c2f 7072  .  </build>.</pr\n+00000ea0: 6f6a 6563 743e 0a                        oject>.\n"}, {"source1": "MapValue.proto", "source2": "MapValue.proto", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,27 +1,27 @@\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-// Messages used for transporting debug information between server and client.\n-\n-syntax = \"proto3\";\n-\n-package org.apache.dubbo.common.serialize.protobuf.support.wrapper;\n-\n-option java_package = \"org.apache.dubbo.common.serialize.protobuf.support.wrapper\";\n-option java_multiple_files = false;\n-\n-message Map{\n-    map<string,string> attachments = 1;\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+// Messages used for transporting debug information between server and client.\r\n+\r\n+syntax = \"proto3\";\r\n+\r\n+package org.apache.dubbo.common.serialize.protobuf.support.wrapper;\r\n+\r\n+option java_package = \"org.apache.dubbo.common.serialize.protobuf.support.wrapper\";\r\n+option java_multiple_files = false;\r\n+\r\n+message Map{\r\n+    map<string,string> attachments = 1;\r\n }\n"}, {"source1": "ThrowablePB.proto", "source2": "ThrowablePB.proto", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\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-// Messages used for transporting debug information between server and client.\n-\n-syntax = \"proto3\";\n-\n-package org.apache.dubbo.common.serialize.protobuf.support.wrapper;\n-\n-option java_package = \"org.apache.dubbo.common.serialize.protobuf.support.wrapper\";\n-option java_multiple_files = false;\n-\n-// An element in a stack trace, based on the Java type of the same name.\n-//\n-// See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\n-message StackTraceElementProto {\n-    // The fully qualified name of the class containing the execution point\n-    // represented by the stack trace element.\n-    string class_name = 1;\n-\n-    // The name of the method containing the execution point represented by the\n-    // stack trace element\n-    string method_name = 2;\n-\n-    // The name of the file containing the execution point represented by the\n-    // stack trace element, or null if this information is unavailable.\n-    string file_name = 3;\n-\n-    // The line number of the source line containing the execution point represented\n-    // by this stack trace element, or a negative number if this information is\n-    // unavailable.\n-    int32 line_number = 4;\n-}\n-\n-// An exception that was thrown by some code, based on the Java type of the same name.\n-//\n-// See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\n-message ThrowableProto {\n-    // The name of the class of the exception that was actually thrown. Downstream readers\n-    // of this message may or may not have the actual class available to initialize, so\n-    // this is just used to prefix the message of a generic exception type.\n-    string original_class_name = 1;\n-\n-    // The message of this throwable. Not filled if there is no message.\n-    string original_message = 2;\n-\n-    // The stack trace of this Throwable.\n-    repeated StackTraceElementProto stack_trace = 3;\n-\n-    // The cause of this Throwable. Not filled if there is no cause.\n-    ThrowableProto cause = 4;\n-}\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+// Messages used for transporting debug information between server and client.\r\n+\r\n+syntax = \"proto3\";\r\n+\r\n+package org.apache.dubbo.common.serialize.protobuf.support.wrapper;\r\n+\r\n+option java_package = \"org.apache.dubbo.common.serialize.protobuf.support.wrapper\";\r\n+option java_multiple_files = false;\r\n+\r\n+// An element in a stack trace, based on the Java type of the same name.\r\n+//\r\n+// See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\r\n+message StackTraceElementProto {\r\n+    // The fully qualified name of the class containing the execution point\r\n+    // represented by the stack trace element.\r\n+    string class_name = 1;\r\n+\r\n+    // The name of the method containing the execution point represented by the\r\n+    // stack trace element\r\n+    string method_name = 2;\r\n+\r\n+    // The name of the file containing the execution point represented by the\r\n+    // stack trace element, or null if this information is unavailable.\r\n+    string file_name = 3;\r\n+\r\n+    // The line number of the source line containing the execution point represented\r\n+    // by this stack trace element, or a negative number if this information is\r\n+    // unavailable.\r\n+    int32 line_number = 4;\r\n+}\r\n+\r\n+// An exception that was thrown by some code, based on the Java type of the same name.\r\n+//\r\n+// See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\r\n+message ThrowableProto {\r\n+    // The name of the class of the exception that was actually thrown. Downstream readers\r\n+    // of this message may or may not have the actual class available to initialize, so\r\n+    // this is just used to prefix the message of a generic exception type.\r\n+    string original_class_name = 1;\r\n+\r\n+    // The message of this throwable. Not filled if there is no message.\r\n+    string original_message = 2;\r\n+\r\n+    // The stack trace of this Throwable.\r\n+    repeated StackTraceElementProto stack_trace = 3;\r\n+\r\n+    // The cause of this Throwable. Not filled if there is no cause.\r\n+    ThrowableProto cause = 4;\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectInput.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectInput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,164 +1,164 @@\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.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\n-\n-import com.google.protobuf.BoolValue;\n-import com.google.protobuf.BytesValue;\n-import com.google.protobuf.DoubleValue;\n-import com.google.protobuf.FloatValue;\n-import com.google.protobuf.Int32Value;\n-import com.google.protobuf.Int64Value;\n-import com.google.protobuf.StringValue;\n-\n-import java.io.BufferedReader;\n-import java.io.EOFException;\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.InputStreamReader;\n-import java.lang.reflect.Type;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\n-\n-/**\n- * GenericGoogleProtobuf object input implementation\n- */\n-public class GenericProtobufJsonObjectInput implements ObjectInput {\n-    private final BufferedReader reader;\n-\n-    public GenericProtobufJsonObjectInput(InputStream in) {\n-        this.reader = new BufferedReader(new InputStreamReader(in));\n-    }\n-\n-    @Override\n-    public boolean readBool() throws IOException {\n-        return read(BoolValue.class).getValue();\n-    }\n-\n-    @Override\n-    public byte readByte() throws IOException {\n-        return (byte) read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public short readShort() throws IOException {\n-        return (short) read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public int readInt() throws IOException {\n-        return read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public long readLong() throws IOException {\n-        return read(Int64Value.class).getValue();\n-    }\n-\n-    @Override\n-    public float readFloat() throws IOException {\n-        return read(FloatValue.class).getValue();\n-    }\n-\n-    @Override\n-    public double readDouble() throws IOException {\n-        return read(DoubleValue.class).getValue();\n-    }\n-\n-    @Override\n-    public String readUTF() throws IOException {\n-        return read(StringValue.class).getValue();\n-    }\n-\n-    @Override\n-    public byte[] readBytes() throws IOException {\n-        return read(BytesValue.class).getValue().toByteArray();\n-    }\n-\n-    @Override\n-    public Object readObject() {\n-        throw new UnsupportedOperationException(\"Provide the protobuf message type you want to read.\");\n-    }\n-\n-    @Override\n-    public <T> T readObject(Class<T> cls) throws IOException {\n-        return read(cls);\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T readObject(Class<T> cls, Type type) throws IOException {\n-        return readObject(cls);\n-    }\n-\n-    private String readLine() throws IOException {\n-        String line = reader.readLine();\n-        if (line == null || line.trim().length() == 0) {\n-            throw new EOFException();\n-        }\n-        return line;\n-    }\n-\n-    private <T> T read(Class<T> cls) throws IOException {\n-        if (!ProtobufUtils.isSupported(cls)) {\n-            throw new IllegalArgumentException(\"This serialization only support google protobuf entity, the class is :\" + cls.getName());\n-        }\n-\n-        String json = readLine();\n-        return ProtobufUtils.deserializeJson(json, cls);\n-    }\n-\n-    @Override\n-    public Throwable readThrowable() throws IOException {\n-        String json = readLine();\n-        ThrowablePB.ThrowableProto throwableProto = ProtobufUtils.deserializeJson(json, ThrowablePB.ThrowableProto.class);\n-        return ProtobufUtils.convertToException(throwableProto);\n-    }\n-\n-    /**\n-     * FIXME, only supports transmission of String values.\n-     *\n-     * @return\n-     * @throws IOException\n-     * @throws ClassNotFoundException\n-     */\n-    @Override\n-    public Map<String, Object> readAttachments() throws IOException, ClassNotFoundException {\n-        String json = readLine();\n-        Map<String, String> attachments = ProtobufUtils.deserializeJson(json, MapValue.Map.class).getAttachmentsMap();\n-        Map<String, Object> genericAttachments = new HashMap<>();\n-        attachments.forEach((k, v) -> {\n-            genericAttachments.put(k, v);\n-        });\n-        return genericAttachments;\n-    }\n-\n-    @Override\n-    public Object readEvent() throws IOException, ClassNotFoundException {\n-        String eventData = readUTF();\n-        if (eventData.equals(MOCK_HEARTBEAT_EVENT)) {\n-            eventData = HEARTBEAT_EVENT;\n-        }\n-        return eventData;\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.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\r\n+\r\n+import com.google.protobuf.BoolValue;\r\n+import com.google.protobuf.BytesValue;\r\n+import com.google.protobuf.DoubleValue;\r\n+import com.google.protobuf.FloatValue;\r\n+import com.google.protobuf.Int32Value;\r\n+import com.google.protobuf.Int64Value;\r\n+import com.google.protobuf.StringValue;\r\n+\r\n+import java.io.BufferedReader;\r\n+import java.io.EOFException;\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.InputStreamReader;\r\n+import java.lang.reflect.Type;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * GenericGoogleProtobuf object input implementation\r\n+ */\r\n+public class GenericProtobufJsonObjectInput implements ObjectInput {\r\n+    private final BufferedReader reader;\r\n+\r\n+    public GenericProtobufJsonObjectInput(InputStream in) {\r\n+        this.reader = new BufferedReader(new InputStreamReader(in));\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readBool() throws IOException {\r\n+        return read(BoolValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() throws IOException {\r\n+        return (byte) read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public short readShort() throws IOException {\r\n+        return (short) read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readInt() throws IOException {\r\n+        return read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public long readLong() throws IOException {\r\n+        return read(Int64Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public float readFloat() throws IOException {\r\n+        return read(FloatValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public double readDouble() throws IOException {\r\n+        return read(DoubleValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String readUTF() throws IOException {\r\n+        return read(StringValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte[] readBytes() throws IOException {\r\n+        return read(BytesValue.class).getValue().toByteArray();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readObject() {\r\n+        throw new UnsupportedOperationException(\"Provide the protobuf message type you want to read.\");\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> T readObject(Class<T> cls) throws IOException {\r\n+        return read(cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T readObject(Class<T> cls, Type type) throws IOException {\r\n+        return readObject(cls);\r\n+    }\r\n+\r\n+    private String readLine() throws IOException {\r\n+        String line = reader.readLine();\r\n+        if (line == null || line.trim().length() == 0) {\r\n+            throw new EOFException();\r\n+        }\r\n+        return line;\r\n+    }\r\n+\r\n+    private <T> T read(Class<T> cls) throws IOException {\r\n+        if (!ProtobufUtils.isSupported(cls)) {\r\n+            throw new IllegalArgumentException(\"This serialization only support google protobuf entity, the class is :\" + cls.getName());\r\n+        }\r\n+\r\n+        String json = readLine();\r\n+        return ProtobufUtils.deserializeJson(json, cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Throwable readThrowable() throws IOException {\r\n+        String json = readLine();\r\n+        ThrowablePB.ThrowableProto throwableProto = ProtobufUtils.deserializeJson(json, ThrowablePB.ThrowableProto.class);\r\n+        return ProtobufUtils.convertToException(throwableProto);\r\n+    }\r\n+\r\n+    /**\r\n+     * FIXME, only supports transmission of String values.\r\n+     *\r\n+     * @return\r\n+     * @throws IOException\r\n+     * @throws ClassNotFoundException\r\n+     */\r\n+    @Override\r\n+    public Map<String, Object> readAttachments() throws IOException, ClassNotFoundException {\r\n+        String json = readLine();\r\n+        Map<String, String> attachments = ProtobufUtils.deserializeJson(json, MapValue.Map.class).getAttachmentsMap();\r\n+        Map<String, Object> genericAttachments = new HashMap<>();\r\n+        attachments.forEach((k, v) -> {\r\n+            genericAttachments.put(k, v);\r\n+        });\r\n+        return genericAttachments;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readEvent() throws IOException, ClassNotFoundException {\r\n+        String eventData = readUTF();\r\n+        if (eventData.equals(MOCK_HEARTBEAT_EVENT)) {\r\n+            eventData = HEARTBEAT_EVENT;\r\n+        }\r\n+        return eventData;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,161 +1,161 @@\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.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\n-\n-import com.google.protobuf.BoolValue;\n-import com.google.protobuf.ByteString;\n-import com.google.protobuf.BytesValue;\n-import com.google.protobuf.DoubleValue;\n-import com.google.protobuf.FloatValue;\n-import com.google.protobuf.Int32Value;\n-import com.google.protobuf.Int64Value;\n-import com.google.protobuf.StringValue;\n-\n-import java.io.IOException;\n-import java.io.OutputStream;\n-import java.io.OutputStreamWriter;\n-import java.io.PrintWriter;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\n-\n-/**\n- * GenericGoogleProtobuf object output implementation\n- */\n-public class GenericProtobufJsonObjectOutput implements ObjectOutput {\n-\n-    private final PrintWriter writer;\n-\n-    public GenericProtobufJsonObjectOutput(OutputStream out) {\n-        this.writer = new PrintWriter(new OutputStreamWriter(out));\n-    }\n-\n-    @Override\n-    public void writeBool(boolean v) throws IOException {\n-\n-        writeObject(BoolValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeByte(byte v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue((v)).build());\n-    }\n-\n-    @Override\n-    public void writeShort(short v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeInt(int v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeLong(long v) throws IOException {\n-        writeObject(Int64Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeFloat(float v) throws IOException {\n-        writeObject(FloatValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeDouble(double v) throws IOException {\n-        writeObject(DoubleValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeUTF(String v) throws IOException {\n-        writeObject(StringValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b) throws IOException {\n-        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b)).build());\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b, int off, int len) throws IOException {\n-        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b, off, len)).build());\n-    }\n-\n-\n-    @Override\n-    public void writeObject(Object obj) throws IOException {\n-        if (obj == null) {\n-            throw new IllegalArgumentException(\"This serialization only support google protobuf object, the object is : null\");\n-        }\n-        if (!ProtobufUtils.isSupported(obj.getClass())) {\n-            throw new IllegalArgumentException(\"This serialization only support google protobuf object, the object class is: \" + obj.getClass().getName());\n-        }\n-\n-        writer.write(ProtobufUtils.serializeJson(obj));\n-        writer.println();\n-        writer.flush();\n-    }\n-\n-    @Override\n-    public void writeThrowable(Object th) throws IOException {\n-        if (th instanceof Throwable && !ProtobufUtils.isSupported(th.getClass())) {\n-            th = ProtobufUtils.convertToThrowableProto((Throwable) th);\n-        }\n-        writer.write(ProtobufUtils.serializeJson(th));\n-        writer.println();\n-        writer.flush();\n-    }\n-\n-    @Override\n-    public void writeEvent(Object data) throws IOException {\n-        if (data == HEARTBEAT_EVENT) {\n-            data = MOCK_HEARTBEAT_EVENT;\n-        }\n-        writeUTF((String) data);\n-    }\n-\n-    /**\n-     * FIXME, only supports transmission of String values.\n-     *\n-     * @param attachments\n-     * @throws IOException\n-     */\n-    @Override\n-    public void writeAttachments(Map<String, Object> attachments) throws IOException {\n-        if (attachments == null) {\n-            return;\n-        }\n-\n-        Map<String, String> stringAttachments = new HashMap<>();\n-        attachments.forEach((k, v) -> stringAttachments.put(k, (String) v));\n-        MapValue.Map proto = MapValue.Map.newBuilder().putAllAttachments(stringAttachments).build();\n-        writer.write(ProtobufUtils.serializeJson(proto));\n-        writer.println();\n-        writer.flush();\n-    }\n-\n-    @Override\n-    public void flushBuffer() {\n-        writer.flush();\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.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\r\n+\r\n+import com.google.protobuf.BoolValue;\r\n+import com.google.protobuf.ByteString;\r\n+import com.google.protobuf.BytesValue;\r\n+import com.google.protobuf.DoubleValue;\r\n+import com.google.protobuf.FloatValue;\r\n+import com.google.protobuf.Int32Value;\r\n+import com.google.protobuf.Int64Value;\r\n+import com.google.protobuf.StringValue;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+import java.io.OutputStreamWriter;\r\n+import java.io.PrintWriter;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * GenericGoogleProtobuf object output implementation\r\n+ */\r\n+public class GenericProtobufJsonObjectOutput implements ObjectOutput {\r\n+\r\n+    private final PrintWriter writer;\r\n+\r\n+    public GenericProtobufJsonObjectOutput(OutputStream out) {\r\n+        this.writer = new PrintWriter(new OutputStreamWriter(out));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBool(boolean v) throws IOException {\r\n+\r\n+        writeObject(BoolValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(byte v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue((v)).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeShort(short v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeInt(int v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeLong(long v) throws IOException {\r\n+        writeObject(Int64Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeFloat(float v) throws IOException {\r\n+        writeObject(FloatValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeDouble(double v) throws IOException {\r\n+        writeObject(DoubleValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeUTF(String v) throws IOException {\r\n+        writeObject(StringValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b) throws IOException {\r\n+        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b)).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b, int off, int len) throws IOException {\r\n+        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b, off, len)).build());\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public void writeObject(Object obj) throws IOException {\r\n+        if (obj == null) {\r\n+            throw new IllegalArgumentException(\"This serialization only support google protobuf object, the object is : null\");\r\n+        }\r\n+        if (!ProtobufUtils.isSupported(obj.getClass())) {\r\n+            throw new IllegalArgumentException(\"This serialization only support google protobuf object, the object class is: \" + obj.getClass().getName());\r\n+        }\r\n+\r\n+        writer.write(ProtobufUtils.serializeJson(obj));\r\n+        writer.println();\r\n+        writer.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeThrowable(Object th) throws IOException {\r\n+        if (th instanceof Throwable && !ProtobufUtils.isSupported(th.getClass())) {\r\n+            th = ProtobufUtils.convertToThrowableProto((Throwable) th);\r\n+        }\r\n+        writer.write(ProtobufUtils.serializeJson(th));\r\n+        writer.println();\r\n+        writer.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeEvent(Object data) throws IOException {\r\n+        if (data == HEARTBEAT_EVENT) {\r\n+            data = MOCK_HEARTBEAT_EVENT;\r\n+        }\r\n+        writeUTF((String) data);\r\n+    }\r\n+\r\n+    /**\r\n+     * FIXME, only supports transmission of String values.\r\n+     *\r\n+     * @param attachments\r\n+     * @throws IOException\r\n+     */\r\n+    @Override\r\n+    public void writeAttachments(Map<String, Object> attachments) throws IOException {\r\n+        if (attachments == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        Map<String, String> stringAttachments = new HashMap<>();\r\n+        attachments.forEach((k, v) -> stringAttachments.put(k, (String) v));\r\n+        MapValue.Map proto = MapValue.Map.newBuilder().putAllAttachments(stringAttachments).build();\r\n+        writer.write(ProtobufUtils.serializeJson(proto));\r\n+        writer.println();\r\n+        writer.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void flushBuffer() {\r\n+        writer.flush();\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonSerialization.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,54 +1,54 @@\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.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.PROTOBUF_JSON_SERIALIZATION_ID;\n-\n-/**\n- * This serialization is use for google protobuf generic reference.\n- * The entity be transported between client and server by json string.\n- */\n-public class GenericProtobufJsonSerialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return PROTOBUF_JSON_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"text/json\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream output) {\n-        return new GenericProtobufJsonObjectOutput(output);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream input) {\n-        return new GenericProtobufJsonObjectInput(input);\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.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.PROTOBUF_JSON_SERIALIZATION_ID;\r\n+\r\n+/**\r\n+ * This serialization is use for google protobuf generic reference.\r\n+ * The entity be transported between client and server by json string.\r\n+ */\r\n+public class GenericProtobufJsonSerialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return PROTOBUF_JSON_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"text/json\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream output) {\r\n+        return new GenericProtobufJsonObjectOutput(output);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream input) {\r\n+        return new GenericProtobufJsonObjectInput(input);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectInput.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectInput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,146 +1,146 @@\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.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\n-\n-import com.google.protobuf.BoolValue;\n-import com.google.protobuf.BytesValue;\n-import com.google.protobuf.DoubleValue;\n-import com.google.protobuf.FloatValue;\n-import com.google.protobuf.Int32Value;\n-import com.google.protobuf.Int64Value;\n-import com.google.protobuf.StringValue;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.lang.reflect.Type;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\n-\n-public class GenericProtobufObjectInput implements ObjectInput {\n-    private final InputStream is;\n-\n-    public GenericProtobufObjectInput(InputStream is) {\n-        this.is = is;\n-    }\n-\n-    @Override\n-    public boolean readBool() throws IOException {\n-        return read(BoolValue.class).getValue();\n-    }\n-\n-    @Override\n-    public byte readByte() throws IOException {\n-        return (byte) read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public short readShort() throws IOException {\n-        return (short) read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public int readInt() throws IOException {\n-        return read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public long readLong() throws IOException {\n-        return read(Int64Value.class).getValue();\n-    }\n-\n-    @Override\n-    public float readFloat() throws IOException {\n-        return read(FloatValue.class).getValue();\n-    }\n-\n-    @Override\n-    public double readDouble() throws IOException {\n-        return read(DoubleValue.class).getValue();\n-    }\n-\n-    @Override\n-    public String readUTF() throws IOException {\n-        return read(StringValue.class).getValue();\n-    }\n-\n-    @Override\n-    public byte[] readBytes() throws IOException {\n-        return read(BytesValue.class).getValue().toByteArray();\n-    }\n-\n-    /**\n-     * Avoid using readObject, always try to pass the target class type for the data you want to read.\n-     *\n-     * @return\n-     */\n-    @Override\n-    public Object readObject() {\n-        throw new UnsupportedOperationException(\"Provide the protobuf message type you want to read.\");\n-    }\n-\n-    @Override\n-    public <T> T readObject(Class<T> cls) throws IOException {\n-        return read(cls);\n-    }\n-\n-    @Override\n-    public <T> T readObject(Class<T> cls, Type type) throws IOException {\n-        return readObject(cls);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private <T> T read(Class<T> cls) throws IOException {\n-        if (!ProtobufUtils.isSupported(cls)) {\n-            throw new IllegalArgumentException(\"This serialization only support google protobuf messages, but the actual input type is :\" + cls.getName());\n-        }\n-\n-        return ProtobufUtils.deserialize(is, cls);\n-    }\n-\n-    @Override\n-    public Throwable readThrowable() throws IOException {\n-        ThrowablePB.ThrowableProto throwableProto = ProtobufUtils.deserialize(is, ThrowablePB.ThrowableProto.class);\n-        return ProtobufUtils.convertToException(throwableProto);\n-    }\n-\n-    @Override\n-    public Object readEvent() throws IOException {\n-        String eventData = readUTF();\n-        if (eventData.equals(MOCK_HEARTBEAT_EVENT)) {\n-            eventData = HEARTBEAT_EVENT;\n-        }\n-        return eventData;\n-    }\n-\n-    @Override\n-    public Map<String, Object> readAttachments() throws IOException {\n-        Map<String, String> stringAttachments = ProtobufUtils.deserialize(is, MapValue.Map.class).getAttachmentsMap();\n-        Map<String, Object> attachments = new HashMap<>();\n-\n-        if (stringAttachments != null) {\n-            stringAttachments.forEach((k, v) -> attachments.put(k, v));\n-        }\n-        return attachments;\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.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\r\n+\r\n+import com.google.protobuf.BoolValue;\r\n+import com.google.protobuf.BytesValue;\r\n+import com.google.protobuf.DoubleValue;\r\n+import com.google.protobuf.FloatValue;\r\n+import com.google.protobuf.Int32Value;\r\n+import com.google.protobuf.Int64Value;\r\n+import com.google.protobuf.StringValue;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.lang.reflect.Type;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\r\n+\r\n+public class GenericProtobufObjectInput implements ObjectInput {\r\n+    private final InputStream is;\r\n+\r\n+    public GenericProtobufObjectInput(InputStream is) {\r\n+        this.is = is;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readBool() throws IOException {\r\n+        return read(BoolValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() throws IOException {\r\n+        return (byte) read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public short readShort() throws IOException {\r\n+        return (short) read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readInt() throws IOException {\r\n+        return read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public long readLong() throws IOException {\r\n+        return read(Int64Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public float readFloat() throws IOException {\r\n+        return read(FloatValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public double readDouble() throws IOException {\r\n+        return read(DoubleValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String readUTF() throws IOException {\r\n+        return read(StringValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte[] readBytes() throws IOException {\r\n+        return read(BytesValue.class).getValue().toByteArray();\r\n+    }\r\n+\r\n+    /**\r\n+     * Avoid using readObject, always try to pass the target class type for the data you want to read.\r\n+     *\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public Object readObject() {\r\n+        throw new UnsupportedOperationException(\"Provide the protobuf message type you want to read.\");\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> T readObject(Class<T> cls) throws IOException {\r\n+        return read(cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> T readObject(Class<T> cls, Type type) throws IOException {\r\n+        return readObject(cls);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private <T> T read(Class<T> cls) throws IOException {\r\n+        if (!ProtobufUtils.isSupported(cls)) {\r\n+            throw new IllegalArgumentException(\"This serialization only support google protobuf messages, but the actual input type is :\" + cls.getName());\r\n+        }\r\n+\r\n+        return ProtobufUtils.deserialize(is, cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Throwable readThrowable() throws IOException {\r\n+        ThrowablePB.ThrowableProto throwableProto = ProtobufUtils.deserialize(is, ThrowablePB.ThrowableProto.class);\r\n+        return ProtobufUtils.convertToException(throwableProto);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readEvent() throws IOException {\r\n+        String eventData = readUTF();\r\n+        if (eventData.equals(MOCK_HEARTBEAT_EVENT)) {\r\n+            eventData = HEARTBEAT_EVENT;\r\n+        }\r\n+        return eventData;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, Object> readAttachments() throws IOException {\r\n+        Map<String, String> stringAttachments = ProtobufUtils.deserialize(is, MapValue.Map.class).getAttachmentsMap();\r\n+        Map<String, Object> attachments = new HashMap<>();\r\n+\r\n+        if (stringAttachments != null) {\r\n+            stringAttachments.forEach((k, v) -> attachments.put(k, v));\r\n+        }\r\n+        return attachments;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,157 +1,157 @@\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.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\n-\n-import com.google.protobuf.BoolValue;\n-import com.google.protobuf.ByteString;\n-import com.google.protobuf.BytesValue;\n-import com.google.protobuf.DoubleValue;\n-import com.google.protobuf.FloatValue;\n-import com.google.protobuf.Int32Value;\n-import com.google.protobuf.Int64Value;\n-import com.google.protobuf.MessageLite;\n-import com.google.protobuf.StringValue;\n-\n-import java.io.IOException;\n-import java.io.OutputStream;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\n-\n-/**\n- * GenericGoogleProtobuf object output implementation\n- */\n-public class GenericProtobufObjectOutput implements ObjectOutput {\n-\n-    private final OutputStream os;\n-\n-    public GenericProtobufObjectOutput(OutputStream os) {\n-        this.os = os;\n-    }\n-\n-    @Override\n-    public void writeBool(boolean v) throws IOException {\n-\n-        writeObject(BoolValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeByte(byte v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue((v)).build());\n-    }\n-\n-    @Override\n-    public void writeShort(short v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeInt(int v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeLong(long v) throws IOException {\n-        writeObject(Int64Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeFloat(float v) throws IOException {\n-        writeObject(FloatValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeDouble(double v) throws IOException {\n-        writeObject(DoubleValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeUTF(String v) throws IOException {\n-        writeObject(StringValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b) throws IOException {\n-        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b)).build());\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b, int off, int len) throws IOException {\n-        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b, off, len)).build());\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    @Override\n-    public void writeObject(Object obj) throws IOException {\n-        /**\n-         * Protobuf does not allow writing of non-protobuf generated messages, including null value.\n-         * Writing of null value from developers should be denied immediately by throwing exception.\n-         */\n-        if (obj == null) {\n-            throw new IllegalStateException(\"This serialization only supports google protobuf objects, \" +\n-                    \"please use com.google.protobuf.Empty instead if you want to transmit null values.\");\n-            // obj = ProtobufUtils.convertNullToEmpty();\n-        }\n-        if (!ProtobufUtils.isSupported(obj.getClass())) {\n-            throw new IllegalArgumentException(\"This serialization only supports google protobuf objects, current object class is: \" + obj.getClass().getName());\n-        }\n-\n-        ProtobufUtils.serialize(obj, os);\n-        os.flush();\n-    }\n-\n-    @Override\n-    public void writeEvent(Object data) throws IOException {\n-        if (data == HEARTBEAT_EVENT) {\n-            data = MOCK_HEARTBEAT_EVENT;\n-        }\n-        writeUTF((String) data);\n-    }\n-\n-    @Override\n-    public void writeThrowable(Object obj) throws IOException {\n-        if (obj instanceof Throwable && !(obj instanceof MessageLite)) {\n-            obj = ProtobufUtils.convertToThrowableProto((Throwable) obj);\n-        }\n-        ProtobufUtils.serialize(obj, os);\n-        os.flush();\n-    }\n-\n-    @Override\n-    public void writeAttachments(Map<String, Object> attachments) throws IOException {\n-        if (attachments == null) {\n-            return;\n-        }\n-\n-        Map<String, String> stringAttachments = new HashMap<>();\n-        attachments.forEach((k, v) -> stringAttachments.put(k, (String) v));\n-\n-        ProtobufUtils.serialize(MapValue.Map.newBuilder().putAllAttachments(stringAttachments).build(), os);\n-        os.flush();\n-    }\n-\n-    @Override\n-    public void flushBuffer() throws IOException {\n-        os.flush();\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.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\r\n+\r\n+import com.google.protobuf.BoolValue;\r\n+import com.google.protobuf.ByteString;\r\n+import com.google.protobuf.BytesValue;\r\n+import com.google.protobuf.DoubleValue;\r\n+import com.google.protobuf.FloatValue;\r\n+import com.google.protobuf.Int32Value;\r\n+import com.google.protobuf.Int64Value;\r\n+import com.google.protobuf.MessageLite;\r\n+import com.google.protobuf.StringValue;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * GenericGoogleProtobuf object output implementation\r\n+ */\r\n+public class GenericProtobufObjectOutput implements ObjectOutput {\r\n+\r\n+    private final OutputStream os;\r\n+\r\n+    public GenericProtobufObjectOutput(OutputStream os) {\r\n+        this.os = os;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBool(boolean v) throws IOException {\r\n+\r\n+        writeObject(BoolValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(byte v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue((v)).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeShort(short v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeInt(int v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeLong(long v) throws IOException {\r\n+        writeObject(Int64Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeFloat(float v) throws IOException {\r\n+        writeObject(FloatValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeDouble(double v) throws IOException {\r\n+        writeObject(DoubleValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeUTF(String v) throws IOException {\r\n+        writeObject(StringValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b) throws IOException {\r\n+        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b)).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b, int off, int len) throws IOException {\r\n+        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b, off, len)).build());\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    @Override\r\n+    public void writeObject(Object obj) throws IOException {\r\n+        /**\r\n+         * Protobuf does not allow writing of non-protobuf generated messages, including null value.\r\n+         * Writing of null value from developers should be denied immediately by throwing exception.\r\n+         */\r\n+        if (obj == null) {\r\n+            throw new IllegalStateException(\"This serialization only supports google protobuf objects, \" +\r\n+                    \"please use com.google.protobuf.Empty instead if you want to transmit null values.\");\r\n+            // obj = ProtobufUtils.convertNullToEmpty();\r\n+        }\r\n+        if (!ProtobufUtils.isSupported(obj.getClass())) {\r\n+            throw new IllegalArgumentException(\"This serialization only supports google protobuf objects, current object class is: \" + obj.getClass().getName());\r\n+        }\r\n+\r\n+        ProtobufUtils.serialize(obj, os);\r\n+        os.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeEvent(Object data) throws IOException {\r\n+        if (data == HEARTBEAT_EVENT) {\r\n+            data = MOCK_HEARTBEAT_EVENT;\r\n+        }\r\n+        writeUTF((String) data);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeThrowable(Object obj) throws IOException {\r\n+        if (obj instanceof Throwable && !(obj instanceof MessageLite)) {\r\n+            obj = ProtobufUtils.convertToThrowableProto((Throwable) obj);\r\n+        }\r\n+        ProtobufUtils.serialize(obj, os);\r\n+        os.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeAttachments(Map<String, Object> attachments) throws IOException {\r\n+        if (attachments == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        Map<String, String> stringAttachments = new HashMap<>();\r\n+        attachments.forEach((k, v) -> stringAttachments.put(k, (String) v));\r\n+\r\n+        ProtobufUtils.serialize(MapValue.Map.newBuilder().putAllAttachments(stringAttachments).build(), os);\r\n+        os.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void flushBuffer() throws IOException {\r\n+        os.flush();\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufSerialization.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,63 +1,63 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.Constants;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-/**\n- * <p>\n- * Currently, the Dubbo protocol / framework data, such as attachments, event data, etc.,\n- * depends on business layer serialization protocol to do serialization before transmitted.\n- * That's a problem when using Protobuf as business serialization protocol, because Protobuf does not support raw java Object types,\n- * to solve it, we can use one of the following methods:\n- *\n- * <ul>\n- *     <li>1. Package these data with Protobuf so that they can be serialized.</li>\n- *     <li>2. Separate the serialization of Dubbo protocol/framework and the service args (easy to cross-platform, cross-language serialization) to avoid the binding of this part and serialization protocol.</li>\n- * </ul>\n- *\n- * </p>\n- */\n-public class GenericProtobufSerialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return Constants.PROTOBUF_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"text/json\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream output) {\n-        return new GenericProtobufObjectOutput(output);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream input) {\n-        return new GenericProtobufObjectInput(input);\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.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.Constants;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+/**\r\n+ * <p>\r\n+ * Currently, the Dubbo protocol / framework data, such as attachments, event data, etc.,\r\n+ * depends on business layer serialization protocol to do serialization before transmitted.\r\n+ * That's a problem when using Protobuf as business serialization protocol, because Protobuf does not support raw java Object types,\r\n+ * to solve it, we can use one of the following methods:\r\n+ *\r\n+ * <ul>\r\n+ *     <li>1. Package these data with Protobuf so that they can be serialized.</li>\r\n+ *     <li>2. Separate the serialization of Dubbo protocol/framework and the service args (easy to cross-platform, cross-language serialization) to avoid the binding of this part and serialization protocol.</li>\r\n+ * </ul>\r\n+ *\r\n+ * </p>\r\n+ */\r\n+public class GenericProtobufSerialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return Constants.PROTOBUF_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"text/json\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream output) {\r\n+        return new GenericProtobufObjectOutput(output);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream input) {\r\n+        return new GenericProtobufObjectInput(input);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/ProtobufUtils.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/ProtobufUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,206 +1,206 @@\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.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto;\n-\n-import com.google.common.base.Strings;\n-import com.google.protobuf.BoolValue;\n-import com.google.protobuf.BytesValue;\n-import com.google.protobuf.CodedInputStream;\n-import com.google.protobuf.DoubleValue;\n-import com.google.protobuf.Empty;\n-import com.google.protobuf.ExtensionRegistryLite;\n-import com.google.protobuf.FloatValue;\n-import com.google.protobuf.GeneratedMessageV3.Builder;\n-import com.google.protobuf.Int32Value;\n-import com.google.protobuf.Int64Value;\n-import com.google.protobuf.InvalidProtocolBufferException;\n-import com.google.protobuf.MessageLite;\n-import com.google.protobuf.MessageOrBuilder;\n-import com.google.protobuf.Parser;\n-import com.google.protobuf.StringValue;\n-import com.google.protobuf.util.JsonFormat;\n-import com.google.protobuf.util.JsonFormat.Printer;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-import java.lang.reflect.Method;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-public class ProtobufUtils {\n-\n-    static boolean isSupported(Class<?> clazz) {\n-        if (clazz == null) {\n-            return false;\n-        }\n-\n-        if (MessageLite.class.isAssignableFrom(clazz)) {\n-            return true;\n-        }\n-        return false;\n-    }\n-\n-    /* Protobuf json */\n-\n-    static <T> T deserializeJson(String json, Class<T> requestClass) throws InvalidProtocolBufferException {\n-        Builder builder;\n-        try {\n-            builder = getMessageBuilder(requestClass);\n-        } catch (Exception e) {\n-            throw new IllegalArgumentException(\"Get google protobuf message builder from \" + requestClass.getName() + \"failed\", e);\n-        }\n-        JsonFormat.parser().merge(json, builder);\n-        return (T) builder.build();\n-    }\n-\n-    static String serializeJson(Object value) throws InvalidProtocolBufferException {\n-        Printer printer = JsonFormat.printer().omittingInsignificantWhitespace();\n-        return printer.print((MessageOrBuilder) value);\n-    }\n-\n-    private static Builder getMessageBuilder(Class<?> requestType) throws Exception {\n-        Method method = requestType.getMethod(\"newBuilder\");\n-        return (Builder) method.invoke(null, null);\n-    }\n-\n-\n-    /* Protobuf */\n-\n-    private static ConcurrentMap<Class<? extends MessageLite>, MessageMarshaller> marshallers =\n-            new ConcurrentHashMap<>();\n-\n-    private static volatile ExtensionRegistryLite globalRegistry =\n-            ExtensionRegistryLite.getEmptyRegistry();\n-\n-    static {\n-        // Built-in types need to be registered in advance\n-        marshaller(MapValue.Map.getDefaultInstance());\n-        marshaller(Empty.getDefaultInstance());\n-        marshaller(ThrowableProto.getDefaultInstance());\n-        marshaller(BoolValue.getDefaultInstance());\n-        marshaller(Int32Value.getDefaultInstance());\n-        marshaller(Int64Value.getDefaultInstance());\n-        marshaller(FloatValue.getDefaultInstance());\n-        marshaller(DoubleValue.getDefaultInstance());\n-        marshaller(BytesValue.getDefaultInstance());\n-        marshaller(StringValue.getDefaultInstance());\n-    }\n-\n-    public static <T extends MessageLite> void marshaller(T defaultInstance) {\n-        marshallers.put(defaultInstance.getClass(), new MessageMarshaller<>(defaultInstance));\n-    }\n-\n-    static void serialize(Object value, OutputStream os) throws IOException {\n-        MessageLite messageLite = (MessageLite) value;\n-        messageLite.writeDelimitedTo(os);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    static <T> T deserialize(InputStream is, Class<T> requestClass) throws InvalidProtocolBufferException {\n-        MessageMarshaller<?> marshaller = marshallers.get(requestClass);\n-        if (marshaller == null) {\n-            throw new IllegalStateException(String.format(\"Protobuf classes should be registered in advance before \" +\n-                    \"do serialization, class name: %s\", requestClass.getName()));\n-        }\n-        return (T) marshaller.parse(is);\n-    }\n-\n-    public static Empty convertNullToEmpty() {\n-        return Empty.newBuilder().build();\n-    }\n-\n-    public static Object convertEmptyToNull(Empty empty) {\n-        return null;\n-    }\n-\n-    public static ThrowableProto convertToThrowableProto(Throwable throwable) {\n-        final ThrowableProto.Builder builder = ThrowableProto.newBuilder();\n-        builder.setOriginalClassName(throwable.getClass().getCanonicalName());\n-        builder.setOriginalMessage(Strings.nullToEmpty(throwable.getMessage()));\n-\n-        for (StackTraceElement e : throwable.getStackTrace()) {\n-            builder.addStackTrace(toStackTraceElement(e));\n-        }\n-\n-        if (throwable.getCause() != null) {\n-            builder.setCause(convertToThrowableProto(throwable.getCause()));\n-        }\n-        return builder.build();\n-    }\n-\n-    public static Throwable convertToException(ThrowableProto throwableProto) {\n-        return new ProtobufWrappedException(throwableProto);\n-    }\n-\n-    private static StackTraceElementProto toStackTraceElement(StackTraceElement element) {\n-        final StackTraceElementProto.Builder builder =\n-                StackTraceElementProto.newBuilder()\n-                        .setClassName(element.getClassName())\n-                        .setMethodName(element.getMethodName())\n-                        .setLineNumber(element.getLineNumber());\n-        if (element.getFileName() != null) {\n-            builder.setFileName(element.getFileName());\n-        }\n-        return builder.build();\n-    }\n-\n-    private static final class MessageMarshaller<T extends MessageLite> {\n-        private final Parser<T> parser;\n-        private final T defaultInstance;\n-\n-        @SuppressWarnings(\"unchecked\")\n-        MessageMarshaller(T defaultInstance) {\n-            this.defaultInstance = defaultInstance;\n-            parser = (Parser<T>) defaultInstance.getParserForType();\n-        }\n-\n-        @SuppressWarnings(\"unchecked\")\n-        public Class<T> getMessageClass() {\n-            // Precisely T since protobuf doesn't let messages extend other messages.\n-            return (Class<T>) defaultInstance.getClass();\n-        }\n-\n-        public T getMessagePrototype() {\n-            return defaultInstance;\n-        }\n-\n-        public T parse(InputStream stream) throws InvalidProtocolBufferException {\n-            return parser.parseDelimitedFrom(stream, globalRegistry);\n-//            CodedInputStream cis = CodedInputStream.newInstance(stream);\n-//            // Pre-create the CodedInputStream so that we can remove the size limit restriction\n-//            // when parsing.\n-//            cis.setSizeLimit(Integer.MAX_VALUE);\n-//            return parseFrom(cis);\n-        }\n-\n-        private T parseFrom(CodedInputStream stream) throws InvalidProtocolBufferException {\n-            T message = parser.parseFrom(stream, globalRegistry);\n-            try {\n-                stream.checkLastTagWas(0);\n-                return message;\n-            } catch (InvalidProtocolBufferException e) {\n-                e.setUnfinishedMessage(message);\n-                throw e;\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.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto;\r\n+\r\n+import com.google.common.base.Strings;\r\n+import com.google.protobuf.BoolValue;\r\n+import com.google.protobuf.BytesValue;\r\n+import com.google.protobuf.CodedInputStream;\r\n+import com.google.protobuf.DoubleValue;\r\n+import com.google.protobuf.Empty;\r\n+import com.google.protobuf.ExtensionRegistryLite;\r\n+import com.google.protobuf.FloatValue;\r\n+import com.google.protobuf.GeneratedMessageV3.Builder;\r\n+import com.google.protobuf.Int32Value;\r\n+import com.google.protobuf.Int64Value;\r\n+import com.google.protobuf.InvalidProtocolBufferException;\r\n+import com.google.protobuf.MessageLite;\r\n+import com.google.protobuf.MessageOrBuilder;\r\n+import com.google.protobuf.Parser;\r\n+import com.google.protobuf.StringValue;\r\n+import com.google.protobuf.util.JsonFormat;\r\n+import com.google.protobuf.util.JsonFormat.Printer;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+import java.lang.reflect.Method;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+public class ProtobufUtils {\r\n+\r\n+    static boolean isSupported(Class<?> clazz) {\r\n+        if (clazz == null) {\r\n+            return false;\r\n+        }\r\n+\r\n+        if (MessageLite.class.isAssignableFrom(clazz)) {\r\n+            return true;\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    /* Protobuf json */\r\n+\r\n+    static <T> T deserializeJson(String json, Class<T> requestClass) throws InvalidProtocolBufferException {\r\n+        Builder builder;\r\n+        try {\r\n+            builder = getMessageBuilder(requestClass);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalArgumentException(\"Get google protobuf message builder from \" + requestClass.getName() + \"failed\", e);\r\n+        }\r\n+        JsonFormat.parser().merge(json, builder);\r\n+        return (T) builder.build();\r\n+    }\r\n+\r\n+    static String serializeJson(Object value) throws InvalidProtocolBufferException {\r\n+        Printer printer = JsonFormat.printer().omittingInsignificantWhitespace();\r\n+        return printer.print((MessageOrBuilder) value);\r\n+    }\r\n+\r\n+    private static Builder getMessageBuilder(Class<?> requestType) throws Exception {\r\n+        Method method = requestType.getMethod(\"newBuilder\");\r\n+        return (Builder) method.invoke(null, null);\r\n+    }\r\n+\r\n+\r\n+    /* Protobuf */\r\n+\r\n+    private static ConcurrentMap<Class<? extends MessageLite>, MessageMarshaller> marshallers =\r\n+            new ConcurrentHashMap<>();\r\n+\r\n+    private static volatile ExtensionRegistryLite globalRegistry =\r\n+            ExtensionRegistryLite.getEmptyRegistry();\r\n+\r\n+    static {\r\n+        // Built-in types need to be registered in advance\r\n+        marshaller(MapValue.Map.getDefaultInstance());\r\n+        marshaller(Empty.getDefaultInstance());\r\n+        marshaller(ThrowableProto.getDefaultInstance());\r\n+        marshaller(BoolValue.getDefaultInstance());\r\n+        marshaller(Int32Value.getDefaultInstance());\r\n+        marshaller(Int64Value.getDefaultInstance());\r\n+        marshaller(FloatValue.getDefaultInstance());\r\n+        marshaller(DoubleValue.getDefaultInstance());\r\n+        marshaller(BytesValue.getDefaultInstance());\r\n+        marshaller(StringValue.getDefaultInstance());\r\n+    }\r\n+\r\n+    public static <T extends MessageLite> void marshaller(T defaultInstance) {\r\n+        marshallers.put(defaultInstance.getClass(), new MessageMarshaller<>(defaultInstance));\r\n+    }\r\n+\r\n+    static void serialize(Object value, OutputStream os) throws IOException {\r\n+        MessageLite messageLite = (MessageLite) value;\r\n+        messageLite.writeDelimitedTo(os);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    static <T> T deserialize(InputStream is, Class<T> requestClass) throws InvalidProtocolBufferException {\r\n+        MessageMarshaller<?> marshaller = marshallers.get(requestClass);\r\n+        if (marshaller == null) {\r\n+            throw new IllegalStateException(String.format(\"Protobuf classes should be registered in advance before \" +\r\n+                    \"do serialization, class name: %s\", requestClass.getName()));\r\n+        }\r\n+        return (T) marshaller.parse(is);\r\n+    }\r\n+\r\n+    public static Empty convertNullToEmpty() {\r\n+        return Empty.newBuilder().build();\r\n+    }\r\n+\r\n+    public static Object convertEmptyToNull(Empty empty) {\r\n+        return null;\r\n+    }\r\n+\r\n+    public static ThrowableProto convertToThrowableProto(Throwable throwable) {\r\n+        final ThrowableProto.Builder builder = ThrowableProto.newBuilder();\r\n+        builder.setOriginalClassName(throwable.getClass().getCanonicalName());\r\n+        builder.setOriginalMessage(Strings.nullToEmpty(throwable.getMessage()));\r\n+\r\n+        for (StackTraceElement e : throwable.getStackTrace()) {\r\n+            builder.addStackTrace(toStackTraceElement(e));\r\n+        }\r\n+\r\n+        if (throwable.getCause() != null) {\r\n+            builder.setCause(convertToThrowableProto(throwable.getCause()));\r\n+        }\r\n+        return builder.build();\r\n+    }\r\n+\r\n+    public static Throwable convertToException(ThrowableProto throwableProto) {\r\n+        return new ProtobufWrappedException(throwableProto);\r\n+    }\r\n+\r\n+    private static StackTraceElementProto toStackTraceElement(StackTraceElement element) {\r\n+        final StackTraceElementProto.Builder builder =\r\n+                StackTraceElementProto.newBuilder()\r\n+                        .setClassName(element.getClassName())\r\n+                        .setMethodName(element.getMethodName())\r\n+                        .setLineNumber(element.getLineNumber());\r\n+        if (element.getFileName() != null) {\r\n+            builder.setFileName(element.getFileName());\r\n+        }\r\n+        return builder.build();\r\n+    }\r\n+\r\n+    private static final class MessageMarshaller<T extends MessageLite> {\r\n+        private final Parser<T> parser;\r\n+        private final T defaultInstance;\r\n+\r\n+        @SuppressWarnings(\"unchecked\")\r\n+        MessageMarshaller(T defaultInstance) {\r\n+            this.defaultInstance = defaultInstance;\r\n+            parser = (Parser<T>) defaultInstance.getParserForType();\r\n+        }\r\n+\r\n+        @SuppressWarnings(\"unchecked\")\r\n+        public Class<T> getMessageClass() {\r\n+            // Precisely T since protobuf doesn't let messages extend other messages.\r\n+            return (Class<T>) defaultInstance.getClass();\r\n+        }\r\n+\r\n+        public T getMessagePrototype() {\r\n+            return defaultInstance;\r\n+        }\r\n+\r\n+        public T parse(InputStream stream) throws InvalidProtocolBufferException {\r\n+            return parser.parseDelimitedFrom(stream, globalRegistry);\r\n+//            CodedInputStream cis = CodedInputStream.newInstance(stream);\r\n+//            // Pre-create the CodedInputStream so that we can remove the size limit restriction\r\n+//            // when parsing.\r\n+//            cis.setSizeLimit(Integer.MAX_VALUE);\r\n+//            return parseFrom(cis);\r\n+        }\r\n+\r\n+        private T parseFrom(CodedInputStream stream) throws InvalidProtocolBufferException {\r\n+            T message = parser.parseFrom(stream, globalRegistry);\r\n+            try {\r\n+                stream.checkLastTagWas(0);\r\n+                return message;\r\n+            } catch (InvalidProtocolBufferException e) {\r\n+                e.setUnfinishedMessage(message);\r\n+                throw e;\r\n+            }\r\n+        }\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/ProtobufWrappedException.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/ProtobufWrappedException.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,68 +1,68 @@\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.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto;\n-\n-import com.google.common.base.Strings;\n-\n-/**\n- * For protobuf, all server side exceptions should be wrapped using this specific one.\n- */\n-public class ProtobufWrappedException extends RuntimeException {\n-\n-    private static final long serialVersionUID = -1792808536714102039L;\n-\n-    private String originalClassName;\n-    private String originalMessage;\n-\n-    public ProtobufWrappedException(ThrowableProto throwableProto) {\n-        super(throwableProto.getOriginalClassName() + \": \" + throwableProto.getOriginalMessage());\n-\n-        originalClassName = throwableProto.getOriginalClassName();\n-        originalMessage = throwableProto.getOriginalMessage();\n-\n-        if (throwableProto.getStackTraceCount() > 0) {\n-            setStackTrace(throwableProto.getStackTraceList().stream()\n-                    .map(ProtobufWrappedException::toStackTraceElement)\n-                    .toArray(StackTraceElement[]::new));\n-        }\n-\n-        if (throwableProto.hasCause()) {\n-            initCause(new ProtobufWrappedException(throwableProto.getCause()));\n-        }\n-    }\n-\n-    public String getOriginalClassName() {\n-        return originalClassName;\n-    }\n-\n-    public String getOriginalMessage() {\n-        return originalMessage;\n-    }\n-\n-    private static StackTraceElement toStackTraceElement(ThrowablePB.StackTraceElementProto proto) {\n-        return new StackTraceElement(\n-                proto.getClassName(),\n-                proto.getMethodName(),\n-                Strings.emptyToNull(proto.getFileName()),\n-                proto.getLineNumber());\n-    }\n-\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto;\r\n+\r\n+import com.google.common.base.Strings;\r\n+\r\n+/**\r\n+ * For protobuf, all server side exceptions should be wrapped using this specific one.\r\n+ */\r\n+public class ProtobufWrappedException extends RuntimeException {\r\n+\r\n+    private static final long serialVersionUID = -1792808536714102039L;\r\n+\r\n+    private String originalClassName;\r\n+    private String originalMessage;\r\n+\r\n+    public ProtobufWrappedException(ThrowableProto throwableProto) {\r\n+        super(throwableProto.getOriginalClassName() + \": \" + throwableProto.getOriginalMessage());\r\n+\r\n+        originalClassName = throwableProto.getOriginalClassName();\r\n+        originalMessage = throwableProto.getOriginalMessage();\r\n+\r\n+        if (throwableProto.getStackTraceCount() > 0) {\r\n+            setStackTrace(throwableProto.getStackTraceList().stream()\r\n+                    .map(ProtobufWrappedException::toStackTraceElement)\r\n+                    .toArray(StackTraceElement[]::new));\r\n+        }\r\n+\r\n+        if (throwableProto.hasCause()) {\r\n+            initCause(new ProtobufWrappedException(throwableProto.getCause()));\r\n+        }\r\n+    }\r\n+\r\n+    public String getOriginalClassName() {\r\n+        return originalClassName;\r\n+    }\r\n+\r\n+    public String getOriginalMessage() {\r\n+        return originalMessage;\r\n+    }\r\n+\r\n+    private static StackTraceElement toStackTraceElement(ThrowablePB.StackTraceElementProto proto) {\r\n+        return new StackTraceElement(\r\n+                proto.getClassName(),\r\n+                proto.getMethodName(),\r\n+                Strings.emptyToNull(proto.getFileName()),\r\n+                proto.getLineNumber());\r\n+    }\r\n+\r\n+}\r\n+\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/wrapper/ThrowablePB.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/wrapper/ThrowablePB.java", "unified_diff": "@@ -16,87 +16,88 @@\n   }\n   public interface StackTraceElementProtoOrBuilder extends\n       // @@protoc_insertion_point(interface_extends:org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto)\n       com.google.protobuf.MessageOrBuilder {\n \n     /**\n      * <pre>\n-     * The fully qualified name of the class containing the execution point\n-     * represented by the stack trace element.\n+     * The fully qualified name of the class containing the execution point\r\n+     * represented by the stack trace element.\r\n      * </pre>\n      *\n      * <code>string class_name = 1;</code>\n      */\n     java.lang.String getClassName();\n     /**\n      * <pre>\n-     * The fully qualified name of the class containing the execution point\n-     * represented by the stack trace element.\n+     * The fully qualified name of the class containing the execution point\r\n+     * represented by the stack trace element.\r\n      * </pre>\n      *\n      * <code>string class_name = 1;</code>\n      */\n     com.google.protobuf.ByteString\n         getClassNameBytes();\n \n     /**\n      * <pre>\n-     * The name of the method containing the execution point represented by the\n-     * stack trace element\n+     * The name of the method containing the execution point represented by the\r\n+     * stack trace element\r\n      * </pre>\n      *\n      * <code>string method_name = 2;</code>\n      */\n     java.lang.String getMethodName();\n     /**\n      * <pre>\n-     * The name of the method containing the execution point represented by the\n-     * stack trace element\n+     * The name of the method containing the execution point represented by the\r\n+     * stack trace element\r\n      * </pre>\n      *\n      * <code>string method_name = 2;</code>\n      */\n     com.google.protobuf.ByteString\n         getMethodNameBytes();\n \n     /**\n      * <pre>\n-     * The name of the file containing the execution point represented by the\n-     * stack trace element, or null if this information is unavailable.\n+     * The name of the file containing the execution point represented by the\r\n+     * stack trace element, or null if this information is unavailable.\r\n      * </pre>\n      *\n      * <code>string file_name = 3;</code>\n      */\n     java.lang.String getFileName();\n     /**\n      * <pre>\n-     * The name of the file containing the execution point represented by the\n-     * stack trace element, or null if this information is unavailable.\n+     * The name of the file containing the execution point represented by the\r\n+     * stack trace element, or null if this information is unavailable.\r\n      * </pre>\n      *\n      * <code>string file_name = 3;</code>\n      */\n     com.google.protobuf.ByteString\n         getFileNameBytes();\n \n     /**\n      * <pre>\n-     * The line number of the source line containing the execution point represented\n-     * by this stack trace element, or a negative number if this information is\n-     * unavailable.\n+     * The line number of the source line containing the execution point represented\r\n+     * by this stack trace element, or a negative number if this information is\r\n+     * unavailable.\r\n      * </pre>\n      *\n      * <code>int32 line_number = 4;</code>\n      */\n     int getLineNumber();\n   }\n   /**\n    * <pre>\n-   * An element in a stack trace, based on the Java type of the same name.\n-   * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\n+   * An element in a stack trace, based on the Java type of the same name.\r\n+   *\r\n+   * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\r\n    * </pre>\n    *\n    * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto}\n    */\n   public  static final class StackTraceElementProto extends\n       com.google.protobuf.GeneratedMessageV3 implements\n       // @@protoc_insertion_point(message_implements:org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto)\n@@ -191,16 +192,16 @@\n               org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.class, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder.class);\n     }\n \n     public static final int CLASS_NAME_FIELD_NUMBER = 1;\n     private volatile java.lang.Object className_;\n     /**\n      * <pre>\n-     * The fully qualified name of the class containing the execution point\n-     * represented by the stack trace element.\n+     * The fully qualified name of the class containing the execution point\r\n+     * represented by the stack trace element.\r\n      * </pre>\n      *\n      * <code>string class_name = 1;</code>\n      */\n     public java.lang.String getClassName() {\n       java.lang.Object ref = className_;\n       if (ref instanceof java.lang.String) {\n@@ -211,16 +212,16 @@\n         java.lang.String s = bs.toStringUtf8();\n         className_ = s;\n         return s;\n       }\n     }\n     /**\n      * <pre>\n-     * The fully qualified name of the class containing the execution point\n-     * represented by the stack trace element.\n+     * The fully qualified name of the class containing the execution point\r\n+     * represented by the stack trace element.\r\n      * </pre>\n      *\n      * <code>string class_name = 1;</code>\n      */\n     public com.google.protobuf.ByteString\n         getClassNameBytes() {\n       java.lang.Object ref = className_;\n@@ -235,16 +236,16 @@\n       }\n     }\n \n     public static final int METHOD_NAME_FIELD_NUMBER = 2;\n     private volatile java.lang.Object methodName_;\n     /**\n      * <pre>\n-     * The name of the method containing the execution point represented by the\n-     * stack trace element\n+     * The name of the method containing the execution point represented by the\r\n+     * stack trace element\r\n      * </pre>\n      *\n      * <code>string method_name = 2;</code>\n      */\n     public java.lang.String getMethodName() {\n       java.lang.Object ref = methodName_;\n       if (ref instanceof java.lang.String) {\n@@ -255,16 +256,16 @@\n         java.lang.String s = bs.toStringUtf8();\n         methodName_ = s;\n         return s;\n       }\n     }\n     /**\n      * <pre>\n-     * The name of the method containing the execution point represented by the\n-     * stack trace element\n+     * The name of the method containing the execution point represented by the\r\n+     * stack trace element\r\n      * </pre>\n      *\n      * <code>string method_name = 2;</code>\n      */\n     public com.google.protobuf.ByteString\n         getMethodNameBytes() {\n       java.lang.Object ref = methodName_;\n@@ -279,16 +280,16 @@\n       }\n     }\n \n     public static final int FILE_NAME_FIELD_NUMBER = 3;\n     private volatile java.lang.Object fileName_;\n     /**\n      * <pre>\n-     * The name of the file containing the execution point represented by the\n-     * stack trace element, or null if this information is unavailable.\n+     * The name of the file containing the execution point represented by the\r\n+     * stack trace element, or null if this information is unavailable.\r\n      * </pre>\n      *\n      * <code>string file_name = 3;</code>\n      */\n     public java.lang.String getFileName() {\n       java.lang.Object ref = fileName_;\n       if (ref instanceof java.lang.String) {\n@@ -299,16 +300,16 @@\n         java.lang.String s = bs.toStringUtf8();\n         fileName_ = s;\n         return s;\n       }\n     }\n     /**\n      * <pre>\n-     * The name of the file containing the execution point represented by the\n-     * stack trace element, or null if this information is unavailable.\n+     * The name of the file containing the execution point represented by the\r\n+     * stack trace element, or null if this information is unavailable.\r\n      * </pre>\n      *\n      * <code>string file_name = 3;</code>\n      */\n     public com.google.protobuf.ByteString\n         getFileNameBytes() {\n       java.lang.Object ref = fileName_;\n@@ -323,17 +324,17 @@\n       }\n     }\n \n     public static final int LINE_NUMBER_FIELD_NUMBER = 4;\n     private int lineNumber_;\n     /**\n      * <pre>\n-     * The line number of the source line containing the execution point represented\n-     * by this stack trace element, or a negative number if this information is\n-     * unavailable.\n+     * The line number of the source line containing the execution point represented\r\n+     * by this stack trace element, or a negative number if this information is\r\n+     * unavailable.\r\n      * </pre>\n      *\n      * <code>int32 line_number = 4;</code>\n      */\n     public int getLineNumber() {\n       return lineNumber_;\n     }\n@@ -521,16 +522,17 @@\n     protected Builder newBuilderForType(\n         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {\n       Builder builder = new Builder(parent);\n       return builder;\n     }\n     /**\n      * <pre>\n-     * An element in a stack trace, based on the Java type of the same name.\n-     * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\n+     * An element in a stack trace, based on the Java type of the same name.\r\n+     *\r\n+     * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\r\n      * </pre>\n      *\n      * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto}\n      */\n     public static final class Builder extends\n         com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements\n         // @@protoc_insertion_point(builder_implements:org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto)\n@@ -695,16 +697,16 @@\n         }\n         return this;\n       }\n \n       private java.lang.Object className_ = \"\";\n       /**\n        * <pre>\n-       * The fully qualified name of the class containing the execution point\n-       * represented by the stack trace element.\n+       * The fully qualified name of the class containing the execution point\r\n+       * represented by the stack trace element.\r\n        * </pre>\n        *\n        * <code>string class_name = 1;</code>\n        */\n       public java.lang.String getClassName() {\n         java.lang.Object ref = className_;\n         if (!(ref instanceof java.lang.String)) {\n@@ -715,16 +717,16 @@\n           return s;\n         } else {\n           return (java.lang.String) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The fully qualified name of the class containing the execution point\n-       * represented by the stack trace element.\n+       * The fully qualified name of the class containing the execution point\r\n+       * represented by the stack trace element.\r\n        * </pre>\n        *\n        * <code>string class_name = 1;</code>\n        */\n       public com.google.protobuf.ByteString\n           getClassNameBytes() {\n         java.lang.Object ref = className_;\n@@ -736,16 +738,16 @@\n           return b;\n         } else {\n           return (com.google.protobuf.ByteString) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The fully qualified name of the class containing the execution point\n-       * represented by the stack trace element.\n+       * The fully qualified name of the class containing the execution point\r\n+       * represented by the stack trace element.\r\n        * </pre>\n        *\n        * <code>string class_name = 1;</code>\n        */\n       public Builder setClassName(\n           java.lang.String value) {\n         if (value == null) {\n@@ -754,30 +756,30 @@\n   \n         className_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The fully qualified name of the class containing the execution point\n-       * represented by the stack trace element.\n+       * The fully qualified name of the class containing the execution point\r\n+       * represented by the stack trace element.\r\n        * </pre>\n        *\n        * <code>string class_name = 1;</code>\n        */\n       public Builder clearClassName() {\n         \n         className_ = getDefaultInstance().getClassName();\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The fully qualified name of the class containing the execution point\n-       * represented by the stack trace element.\n+       * The fully qualified name of the class containing the execution point\r\n+       * represented by the stack trace element.\r\n        * </pre>\n        *\n        * <code>string class_name = 1;</code>\n        */\n       public Builder setClassNameBytes(\n           com.google.protobuf.ByteString value) {\n         if (value == null) {\n@@ -789,16 +791,16 @@\n         onChanged();\n         return this;\n       }\n \n       private java.lang.Object methodName_ = \"\";\n       /**\n        * <pre>\n-       * The name of the method containing the execution point represented by the\n-       * stack trace element\n+       * The name of the method containing the execution point represented by the\r\n+       * stack trace element\r\n        * </pre>\n        *\n        * <code>string method_name = 2;</code>\n        */\n       public java.lang.String getMethodName() {\n         java.lang.Object ref = methodName_;\n         if (!(ref instanceof java.lang.String)) {\n@@ -809,16 +811,16 @@\n           return s;\n         } else {\n           return (java.lang.String) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the method containing the execution point represented by the\n-       * stack trace element\n+       * The name of the method containing the execution point represented by the\r\n+       * stack trace element\r\n        * </pre>\n        *\n        * <code>string method_name = 2;</code>\n        */\n       public com.google.protobuf.ByteString\n           getMethodNameBytes() {\n         java.lang.Object ref = methodName_;\n@@ -830,16 +832,16 @@\n           return b;\n         } else {\n           return (com.google.protobuf.ByteString) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the method containing the execution point represented by the\n-       * stack trace element\n+       * The name of the method containing the execution point represented by the\r\n+       * stack trace element\r\n        * </pre>\n        *\n        * <code>string method_name = 2;</code>\n        */\n       public Builder setMethodName(\n           java.lang.String value) {\n         if (value == null) {\n@@ -848,30 +850,30 @@\n   \n         methodName_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the method containing the execution point represented by the\n-       * stack trace element\n+       * The name of the method containing the execution point represented by the\r\n+       * stack trace element\r\n        * </pre>\n        *\n        * <code>string method_name = 2;</code>\n        */\n       public Builder clearMethodName() {\n         \n         methodName_ = getDefaultInstance().getMethodName();\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the method containing the execution point represented by the\n-       * stack trace element\n+       * The name of the method containing the execution point represented by the\r\n+       * stack trace element\r\n        * </pre>\n        *\n        * <code>string method_name = 2;</code>\n        */\n       public Builder setMethodNameBytes(\n           com.google.protobuf.ByteString value) {\n         if (value == null) {\n@@ -883,16 +885,16 @@\n         onChanged();\n         return this;\n       }\n \n       private java.lang.Object fileName_ = \"\";\n       /**\n        * <pre>\n-       * The name of the file containing the execution point represented by the\n-       * stack trace element, or null if this information is unavailable.\n+       * The name of the file containing the execution point represented by the\r\n+       * stack trace element, or null if this information is unavailable.\r\n        * </pre>\n        *\n        * <code>string file_name = 3;</code>\n        */\n       public java.lang.String getFileName() {\n         java.lang.Object ref = fileName_;\n         if (!(ref instanceof java.lang.String)) {\n@@ -903,16 +905,16 @@\n           return s;\n         } else {\n           return (java.lang.String) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the file containing the execution point represented by the\n-       * stack trace element, or null if this information is unavailable.\n+       * The name of the file containing the execution point represented by the\r\n+       * stack trace element, or null if this information is unavailable.\r\n        * </pre>\n        *\n        * <code>string file_name = 3;</code>\n        */\n       public com.google.protobuf.ByteString\n           getFileNameBytes() {\n         java.lang.Object ref = fileName_;\n@@ -924,16 +926,16 @@\n           return b;\n         } else {\n           return (com.google.protobuf.ByteString) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the file containing the execution point represented by the\n-       * stack trace element, or null if this information is unavailable.\n+       * The name of the file containing the execution point represented by the\r\n+       * stack trace element, or null if this information is unavailable.\r\n        * </pre>\n        *\n        * <code>string file_name = 3;</code>\n        */\n       public Builder setFileName(\n           java.lang.String value) {\n         if (value == null) {\n@@ -942,30 +944,30 @@\n   \n         fileName_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the file containing the execution point represented by the\n-       * stack trace element, or null if this information is unavailable.\n+       * The name of the file containing the execution point represented by the\r\n+       * stack trace element, or null if this information is unavailable.\r\n        * </pre>\n        *\n        * <code>string file_name = 3;</code>\n        */\n       public Builder clearFileName() {\n         \n         fileName_ = getDefaultInstance().getFileName();\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the file containing the execution point represented by the\n-       * stack trace element, or null if this information is unavailable.\n+       * The name of the file containing the execution point represented by the\r\n+       * stack trace element, or null if this information is unavailable.\r\n        * </pre>\n        *\n        * <code>string file_name = 3;</code>\n        */\n       public Builder setFileNameBytes(\n           com.google.protobuf.ByteString value) {\n         if (value == null) {\n@@ -977,44 +979,44 @@\n         onChanged();\n         return this;\n       }\n \n       private int lineNumber_ ;\n       /**\n        * <pre>\n-       * The line number of the source line containing the execution point represented\n-       * by this stack trace element, or a negative number if this information is\n-       * unavailable.\n+       * The line number of the source line containing the execution point represented\r\n+       * by this stack trace element, or a negative number if this information is\r\n+       * unavailable.\r\n        * </pre>\n        *\n        * <code>int32 line_number = 4;</code>\n        */\n       public int getLineNumber() {\n         return lineNumber_;\n       }\n       /**\n        * <pre>\n-       * The line number of the source line containing the execution point represented\n-       * by this stack trace element, or a negative number if this information is\n-       * unavailable.\n+       * The line number of the source line containing the execution point represented\r\n+       * by this stack trace element, or a negative number if this information is\r\n+       * unavailable.\r\n        * </pre>\n        *\n        * <code>int32 line_number = 4;</code>\n        */\n       public Builder setLineNumber(int value) {\n         \n         lineNumber_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The line number of the source line containing the execution point represented\n-       * by this stack trace element, or a negative number if this information is\n-       * unavailable.\n+       * The line number of the source line containing the execution point represented\r\n+       * by this stack trace element, or a negative number if this information is\r\n+       * unavailable.\r\n        * </pre>\n        *\n        * <code>int32 line_number = 4;</code>\n        */\n       public Builder clearLineNumber() {\n         \n         lineNumber_ = 0;\n@@ -1076,125 +1078,126 @@\n \n   public interface ThrowableProtoOrBuilder extends\n       // @@protoc_insertion_point(interface_extends:org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto)\n       com.google.protobuf.MessageOrBuilder {\n \n     /**\n      * <pre>\n-     * The name of the class of the exception that was actually thrown. Downstream readers\n-     * of this message may or may not have the actual class available to initialize, so\n-     * this is just used to prefix the message of a generic exception type.\n+     * The name of the class of the exception that was actually thrown. Downstream readers\r\n+     * of this message may or may not have the actual class available to initialize, so\r\n+     * this is just used to prefix the message of a generic exception type.\r\n      * </pre>\n      *\n      * <code>string original_class_name = 1;</code>\n      */\n     java.lang.String getOriginalClassName();\n     /**\n      * <pre>\n-     * The name of the class of the exception that was actually thrown. Downstream readers\n-     * of this message may or may not have the actual class available to initialize, so\n-     * this is just used to prefix the message of a generic exception type.\n+     * The name of the class of the exception that was actually thrown. Downstream readers\r\n+     * of this message may or may not have the actual class available to initialize, so\r\n+     * this is just used to prefix the message of a generic exception type.\r\n      * </pre>\n      *\n      * <code>string original_class_name = 1;</code>\n      */\n     com.google.protobuf.ByteString\n         getOriginalClassNameBytes();\n \n     /**\n      * <pre>\n-     * The message of this throwable. Not filled if there is no message.\n+     * The message of this throwable. Not filled if there is no message.\r\n      * </pre>\n      *\n      * <code>string original_message = 2;</code>\n      */\n     java.lang.String getOriginalMessage();\n     /**\n      * <pre>\n-     * The message of this throwable. Not filled if there is no message.\n+     * The message of this throwable. Not filled if there is no message.\r\n      * </pre>\n      *\n      * <code>string original_message = 2;</code>\n      */\n     com.google.protobuf.ByteString\n         getOriginalMessageBytes();\n \n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     java.util.List<org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto> \n         getStackTraceList();\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto getStackTrace(int index);\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     int getStackTraceCount();\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     java.util.List<? extends org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder> \n         getStackTraceOrBuilderList();\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder getStackTraceOrBuilder(\n         int index);\n \n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     boolean hasCause();\n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto getCause();\n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProtoOrBuilder getCauseOrBuilder();\n   }\n   /**\n    * <pre>\n-   * An exception that was thrown by some code, based on the Java type of the same name.\n-   * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\n+   * An exception that was thrown by some code, based on the Java type of the same name.\r\n+   *\r\n+   * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\r\n    * </pre>\n    *\n    * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto}\n    */\n   public  static final class ThrowableProto extends\n       com.google.protobuf.GeneratedMessageV3 implements\n       // @@protoc_insertion_point(message_implements:org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto)\n@@ -1304,17 +1307,17 @@\n     }\n \n     private int bitField0_;\n     public static final int ORIGINAL_CLASS_NAME_FIELD_NUMBER = 1;\n     private volatile java.lang.Object originalClassName_;\n     /**\n      * <pre>\n-     * The name of the class of the exception that was actually thrown. Downstream readers\n-     * of this message may or may not have the actual class available to initialize, so\n-     * this is just used to prefix the message of a generic exception type.\n+     * The name of the class of the exception that was actually thrown. Downstream readers\r\n+     * of this message may or may not have the actual class available to initialize, so\r\n+     * this is just used to prefix the message of a generic exception type.\r\n      * </pre>\n      *\n      * <code>string original_class_name = 1;</code>\n      */\n     public java.lang.String getOriginalClassName() {\n       java.lang.Object ref = originalClassName_;\n       if (ref instanceof java.lang.String) {\n@@ -1325,17 +1328,17 @@\n         java.lang.String s = bs.toStringUtf8();\n         originalClassName_ = s;\n         return s;\n       }\n     }\n     /**\n      * <pre>\n-     * The name of the class of the exception that was actually thrown. Downstream readers\n-     * of this message may or may not have the actual class available to initialize, so\n-     * this is just used to prefix the message of a generic exception type.\n+     * The name of the class of the exception that was actually thrown. Downstream readers\r\n+     * of this message may or may not have the actual class available to initialize, so\r\n+     * this is just used to prefix the message of a generic exception type.\r\n      * </pre>\n      *\n      * <code>string original_class_name = 1;</code>\n      */\n     public com.google.protobuf.ByteString\n         getOriginalClassNameBytes() {\n       java.lang.Object ref = originalClassName_;\n@@ -1350,15 +1353,15 @@\n       }\n     }\n \n     public static final int ORIGINAL_MESSAGE_FIELD_NUMBER = 2;\n     private volatile java.lang.Object originalMessage_;\n     /**\n      * <pre>\n-     * The message of this throwable. Not filled if there is no message.\n+     * The message of this throwable. Not filled if there is no message.\r\n      * </pre>\n      *\n      * <code>string original_message = 2;</code>\n      */\n     public java.lang.String getOriginalMessage() {\n       java.lang.Object ref = originalMessage_;\n       if (ref instanceof java.lang.String) {\n@@ -1369,15 +1372,15 @@\n         java.lang.String s = bs.toStringUtf8();\n         originalMessage_ = s;\n         return s;\n       }\n     }\n     /**\n      * <pre>\n-     * The message of this throwable. Not filled if there is no message.\n+     * The message of this throwable. Not filled if there is no message.\r\n      * </pre>\n      *\n      * <code>string original_message = 2;</code>\n      */\n     public com.google.protobuf.ByteString\n         getOriginalMessageBytes() {\n       java.lang.Object ref = originalMessage_;\n@@ -1392,90 +1395,90 @@\n       }\n     }\n \n     public static final int STACK_TRACE_FIELD_NUMBER = 3;\n     private java.util.List<org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto> stackTrace_;\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     public java.util.List<org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto> getStackTraceList() {\n       return stackTrace_;\n     }\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     public java.util.List<? extends org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder> \n         getStackTraceOrBuilderList() {\n       return stackTrace_;\n     }\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     public int getStackTraceCount() {\n       return stackTrace_.size();\n     }\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto getStackTrace(int index) {\n       return stackTrace_.get(index);\n     }\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder getStackTraceOrBuilder(\n         int index) {\n       return stackTrace_.get(index);\n     }\n \n     public static final int CAUSE_FIELD_NUMBER = 4;\n     private org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto cause_;\n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     public boolean hasCause() {\n       return cause_ != null;\n     }\n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto getCause() {\n       return cause_ == null ? org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.getDefaultInstance() : cause_;\n     }\n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProtoOrBuilder getCauseOrBuilder() {\n       return getCause();\n     }\n@@ -1671,16 +1674,17 @@\n     protected Builder newBuilderForType(\n         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {\n       Builder builder = new Builder(parent);\n       return builder;\n     }\n     /**\n      * <pre>\n-     * An exception that was thrown by some code, based on the Java type of the same name.\n-     * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\n+     * An exception that was thrown by some code, based on the Java type of the same name.\r\n+     *\r\n+     * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\r\n      * </pre>\n      *\n      * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto}\n      */\n     public static final class Builder extends\n         com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements\n         // @@protoc_insertion_point(builder_implements:org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto)\n@@ -1892,17 +1896,17 @@\n         return this;\n       }\n       private int bitField0_;\n \n       private java.lang.Object originalClassName_ = \"\";\n       /**\n        * <pre>\n-       * The name of the class of the exception that was actually thrown. Downstream readers\n-       * of this message may or may not have the actual class available to initialize, so\n-       * this is just used to prefix the message of a generic exception type.\n+       * The name of the class of the exception that was actually thrown. Downstream readers\r\n+       * of this message may or may not have the actual class available to initialize, so\r\n+       * this is just used to prefix the message of a generic exception type.\r\n        * </pre>\n        *\n        * <code>string original_class_name = 1;</code>\n        */\n       public java.lang.String getOriginalClassName() {\n         java.lang.Object ref = originalClassName_;\n         if (!(ref instanceof java.lang.String)) {\n@@ -1913,17 +1917,17 @@\n           return s;\n         } else {\n           return (java.lang.String) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the class of the exception that was actually thrown. Downstream readers\n-       * of this message may or may not have the actual class available to initialize, so\n-       * this is just used to prefix the message of a generic exception type.\n+       * The name of the class of the exception that was actually thrown. Downstream readers\r\n+       * of this message may or may not have the actual class available to initialize, so\r\n+       * this is just used to prefix the message of a generic exception type.\r\n        * </pre>\n        *\n        * <code>string original_class_name = 1;</code>\n        */\n       public com.google.protobuf.ByteString\n           getOriginalClassNameBytes() {\n         java.lang.Object ref = originalClassName_;\n@@ -1935,17 +1939,17 @@\n           return b;\n         } else {\n           return (com.google.protobuf.ByteString) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the class of the exception that was actually thrown. Downstream readers\n-       * of this message may or may not have the actual class available to initialize, so\n-       * this is just used to prefix the message of a generic exception type.\n+       * The name of the class of the exception that was actually thrown. Downstream readers\r\n+       * of this message may or may not have the actual class available to initialize, so\r\n+       * this is just used to prefix the message of a generic exception type.\r\n        * </pre>\n        *\n        * <code>string original_class_name = 1;</code>\n        */\n       public Builder setOriginalClassName(\n           java.lang.String value) {\n         if (value == null) {\n@@ -1954,32 +1958,32 @@\n   \n         originalClassName_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the class of the exception that was actually thrown. Downstream readers\n-       * of this message may or may not have the actual class available to initialize, so\n-       * this is just used to prefix the message of a generic exception type.\n+       * The name of the class of the exception that was actually thrown. Downstream readers\r\n+       * of this message may or may not have the actual class available to initialize, so\r\n+       * this is just used to prefix the message of a generic exception type.\r\n        * </pre>\n        *\n        * <code>string original_class_name = 1;</code>\n        */\n       public Builder clearOriginalClassName() {\n         \n         originalClassName_ = getDefaultInstance().getOriginalClassName();\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the class of the exception that was actually thrown. Downstream readers\n-       * of this message may or may not have the actual class available to initialize, so\n-       * this is just used to prefix the message of a generic exception type.\n+       * The name of the class of the exception that was actually thrown. Downstream readers\r\n+       * of this message may or may not have the actual class available to initialize, so\r\n+       * this is just used to prefix the message of a generic exception type.\r\n        * </pre>\n        *\n        * <code>string original_class_name = 1;</code>\n        */\n       public Builder setOriginalClassNameBytes(\n           com.google.protobuf.ByteString value) {\n         if (value == null) {\n@@ -1991,15 +1995,15 @@\n         onChanged();\n         return this;\n       }\n \n       private java.lang.Object originalMessage_ = \"\";\n       /**\n        * <pre>\n-       * The message of this throwable. Not filled if there is no message.\n+       * The message of this throwable. Not filled if there is no message.\r\n        * </pre>\n        *\n        * <code>string original_message = 2;</code>\n        */\n       public java.lang.String getOriginalMessage() {\n         java.lang.Object ref = originalMessage_;\n         if (!(ref instanceof java.lang.String)) {\n@@ -2010,15 +2014,15 @@\n           return s;\n         } else {\n           return (java.lang.String) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The message of this throwable. Not filled if there is no message.\n+       * The message of this throwable. Not filled if there is no message.\r\n        * </pre>\n        *\n        * <code>string original_message = 2;</code>\n        */\n       public com.google.protobuf.ByteString\n           getOriginalMessageBytes() {\n         java.lang.Object ref = originalMessage_;\n@@ -2030,15 +2034,15 @@\n           return b;\n         } else {\n           return (com.google.protobuf.ByteString) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The message of this throwable. Not filled if there is no message.\n+       * The message of this throwable. Not filled if there is no message.\r\n        * </pre>\n        *\n        * <code>string original_message = 2;</code>\n        */\n       public Builder setOriginalMessage(\n           java.lang.String value) {\n         if (value == null) {\n@@ -2047,28 +2051,28 @@\n   \n         originalMessage_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The message of this throwable. Not filled if there is no message.\n+       * The message of this throwable. Not filled if there is no message.\r\n        * </pre>\n        *\n        * <code>string original_message = 2;</code>\n        */\n       public Builder clearOriginalMessage() {\n         \n         originalMessage_ = getDefaultInstance().getOriginalMessage();\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The message of this throwable. Not filled if there is no message.\n+       * The message of this throwable. Not filled if there is no message.\r\n        * </pre>\n        *\n        * <code>string original_message = 2;</code>\n        */\n       public Builder setOriginalMessageBytes(\n           com.google.protobuf.ByteString value) {\n         if (value == null) {\n@@ -2091,57 +2095,57 @@\n       }\n \n       private com.google.protobuf.RepeatedFieldBuilderV3<\n           org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder> stackTraceBuilder_;\n \n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public java.util.List<org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto> getStackTraceList() {\n         if (stackTraceBuilder_ == null) {\n           return java.util.Collections.unmodifiableList(stackTrace_);\n         } else {\n           return stackTraceBuilder_.getMessageList();\n         }\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public int getStackTraceCount() {\n         if (stackTraceBuilder_ == null) {\n           return stackTrace_.size();\n         } else {\n           return stackTraceBuilder_.getCount();\n         }\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto getStackTrace(int index) {\n         if (stackTraceBuilder_ == null) {\n           return stackTrace_.get(index);\n         } else {\n           return stackTraceBuilder_.getMessage(index);\n         }\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder setStackTrace(\n           int index, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto value) {\n         if (stackTraceBuilder_ == null) {\n@@ -2154,15 +2158,15 @@\n         } else {\n           stackTraceBuilder_.setMessage(index, value);\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder setStackTrace(\n           int index, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder builderForValue) {\n         if (stackTraceBuilder_ == null) {\n@@ -2172,15 +2176,15 @@\n         } else {\n           stackTraceBuilder_.setMessage(index, builderForValue.build());\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder addStackTrace(org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto value) {\n         if (stackTraceBuilder_ == null) {\n           if (value == null) {\n@@ -2192,15 +2196,15 @@\n         } else {\n           stackTraceBuilder_.addMessage(value);\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder addStackTrace(\n           int index, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto value) {\n         if (stackTraceBuilder_ == null) {\n@@ -2213,15 +2217,15 @@\n         } else {\n           stackTraceBuilder_.addMessage(index, value);\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder addStackTrace(\n           org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder builderForValue) {\n         if (stackTraceBuilder_ == null) {\n@@ -2231,15 +2235,15 @@\n         } else {\n           stackTraceBuilder_.addMessage(builderForValue.build());\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder addStackTrace(\n           int index, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder builderForValue) {\n         if (stackTraceBuilder_ == null) {\n@@ -2249,15 +2253,15 @@\n         } else {\n           stackTraceBuilder_.addMessage(index, builderForValue.build());\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder addAllStackTrace(\n           java.lang.Iterable<? extends org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto> values) {\n         if (stackTraceBuilder_ == null) {\n@@ -2268,15 +2272,15 @@\n         } else {\n           stackTraceBuilder_.addAllMessages(values);\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder clearStackTrace() {\n         if (stackTraceBuilder_ == null) {\n           stackTrace_ = java.util.Collections.emptyList();\n@@ -2285,15 +2289,15 @@\n         } else {\n           stackTraceBuilder_.clear();\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder removeStackTrace(int index) {\n         if (stackTraceBuilder_ == null) {\n           ensureStackTraceIsMutable();\n@@ -2302,78 +2306,78 @@\n         } else {\n           stackTraceBuilder_.remove(index);\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder getStackTraceBuilder(\n           int index) {\n         return getStackTraceFieldBuilder().getBuilder(index);\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder getStackTraceOrBuilder(\n           int index) {\n         if (stackTraceBuilder_ == null) {\n           return stackTrace_.get(index);  } else {\n           return stackTraceBuilder_.getMessageOrBuilder(index);\n         }\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public java.util.List<? extends org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder> \n            getStackTraceOrBuilderList() {\n         if (stackTraceBuilder_ != null) {\n           return stackTraceBuilder_.getMessageOrBuilderList();\n         } else {\n           return java.util.Collections.unmodifiableList(stackTrace_);\n         }\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder addStackTraceBuilder() {\n         return getStackTraceFieldBuilder().addBuilder(\n             org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.getDefaultInstance());\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder addStackTraceBuilder(\n           int index) {\n         return getStackTraceFieldBuilder().addBuilder(\n             index, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.getDefaultInstance());\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public java.util.List<org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder> \n            getStackTraceBuilderList() {\n         return getStackTraceFieldBuilder().getBuilderList();\n@@ -2394,39 +2398,39 @@\n       }\n \n       private org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto cause_;\n       private com.google.protobuf.SingleFieldBuilderV3<\n           org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.Builder, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProtoOrBuilder> causeBuilder_;\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public boolean hasCause() {\n         return causeBuilder_ != null || cause_ != null;\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto getCause() {\n         if (causeBuilder_ == null) {\n           return cause_ == null ? org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.getDefaultInstance() : cause_;\n         } else {\n           return causeBuilder_.getMessage();\n         }\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public Builder setCause(org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto value) {\n         if (causeBuilder_ == null) {\n           if (value == null) {\n@@ -2438,15 +2442,15 @@\n           causeBuilder_.setMessage(value);\n         }\n \n         return this;\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public Builder setCause(\n           org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.Builder builderForValue) {\n         if (causeBuilder_ == null) {\n@@ -2456,15 +2460,15 @@\n           causeBuilder_.setMessage(builderForValue.build());\n         }\n \n         return this;\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public Builder mergeCause(org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto value) {\n         if (causeBuilder_ == null) {\n           if (cause_ != null) {\n@@ -2478,15 +2482,15 @@\n           causeBuilder_.mergeFrom(value);\n         }\n \n         return this;\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public Builder clearCause() {\n         if (causeBuilder_ == null) {\n           cause_ = null;\n@@ -2496,42 +2500,42 @@\n           causeBuilder_ = null;\n         }\n \n         return this;\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.Builder getCauseBuilder() {\n         \n         onChanged();\n         return getCauseFieldBuilder().getBuilder();\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProtoOrBuilder getCauseOrBuilder() {\n         if (causeBuilder_ != null) {\n           return causeBuilder_.getMessageOrBuilder();\n         } else {\n           return cause_ == null ?\n               org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.getDefaultInstance() : cause_;\n         }\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       private com.google.protobuf.SingleFieldBuilderV3<\n           org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.Builder, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProtoOrBuilder> \n           getCauseFieldBuilder() {\n"}]}
