{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,24 +1,24 @@\n-Zip file size: 42180 bytes, number of entries: 22\n+Zip file size: 42603 bytes, number of entries: 22\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/\n -rw----     2.0 fat     6595 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      181 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       82 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory\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-configcenter-nacos/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/pom.properties\n--rw----     2.0 fat     2073 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/pom.xml\n+-rw----     2.0 fat     2024 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/\n--rw----     2.0 fat     2563 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosConfigServiceWrapper.java\n--rw----     2.0 fat    13610 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java\n--rw----     2.0 fat     1789 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfigurationFactory.java\n-22 files, 38276 bytes uncompressed, 38276 bytes compressed:  0.0%\n+-rw----     2.0 fat     2628 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosConfigServiceWrapper.java\n+-rw----     2.0 fat    13976 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java\n+-rw----     2.0 fat     1830 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfigurationFactory.java\n+22 files, 38699 bytes uncompressed, 38699 bytes compressed:  0.0%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -312,882 +312,882 @@\n #\n 4B59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 4B5B   Length              0005 (5)\n 4B5D   Flags               01 (1) 'Modification'\n 4B5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n 4B62 PAYLOAD\n \n-537B DATA DESCRIPTOR       08074B50 (134695760)\n-537F CRC                   CFD7D535 (3487028533)\n-5383 Compressed Size       00000819 (2073)\n-5387 Uncompressed Size     00000819 (2073)\n-\n-538B LOCAL HEADER #14      04034B50 (67324752)\n-538F Extract Zip Spec      14 (20) '2.0'\n-5390 Extract OS            00 (0) 'MS-DOS'\n-5391 General Purpose Flag  0000 (0)\n-5393 Compression Method    0000 (0) 'Stored'\n-5395 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5399 CRC                   00000000 (0)\n-539D Compressed Size       00000000 (0)\n-53A1 Uncompressed Size     00000000 (0)\n-53A5 Filename Length       0004 (4)\n-53A7 Extra Length          0009 (9)\n-53A9 Filename              'XXXX'\n-#\n-# WARNING: Offset 0x53A9: Filename 'XXXX'\n-#          Zero length filename\n-#\n-53AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53AF   Length              0005 (5)\n-53B1   Flags               01 (1) 'Modification'\n-53B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-53B6 LOCAL HEADER #15      04034B50 (67324752)\n-53BA Extract Zip Spec      14 (20) '2.0'\n-53BB Extract OS            00 (0) 'MS-DOS'\n-53BC General Purpose Flag  0000 (0)\n-53BE Compression Method    0000 (0) 'Stored'\n-53C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53C4 CRC                   00000000 (0)\n-53C8 Compressed Size       00000000 (0)\n-53CC Uncompressed Size     00000000 (0)\n-53D0 Filename Length       000B (11)\n-53D2 Extra Length          0009 (9)\n-53D4 Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53D4: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53E1   Length              0005 (5)\n-53E3   Flags               01 (1) 'Modification'\n-53E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-53E8 LOCAL HEADER #16      04034B50 (67324752)\n-53EC Extract Zip Spec      14 (20) '2.0'\n-53ED Extract OS            00 (0) 'MS-DOS'\n-53EE General Purpose Flag  0000 (0)\n-53F0 Compression Method    0000 (0) 'Stored'\n-53F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53F6 CRC                   00000000 (0)\n-53FA Compressed Size       00000000 (0)\n-53FE Uncompressed Size     00000000 (0)\n-5402 Filename Length       0011 (17)\n-5404 Extra Length          0009 (9)\n-5406 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5406: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5417 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5419   Length              0005 (5)\n-541B   Flags               01 (1) 'Modification'\n-541C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5420 LOCAL HEADER #17      04034B50 (67324752)\n-5424 Extract Zip Spec      14 (20) '2.0'\n-5425 Extract OS            00 (0) 'MS-DOS'\n-5426 General Purpose Flag  0000 (0)\n-5428 Compression Method    0000 (0) 'Stored'\n-542A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-542E CRC                   00000000 (0)\n-5432 Compressed Size       00000000 (0)\n-5436 Uncompressed Size     00000000 (0)\n-543A Filename Length       001E (30)\n-543C Extra Length          0009 (9)\n-543E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x543E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-545C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-545E   Length              0005 (5)\n-5460   Flags               01 (1) 'Modification'\n-5461   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5465 LOCAL HEADER #18      04034B50 (67324752)\n-5469 Extract Zip Spec      14 (20) '2.0'\n-546A Extract OS            00 (0) 'MS-DOS'\n-546B General Purpose Flag  0000 (0)\n-546D Compression Method    0000 (0) 'Stored'\n-546F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5473 CRC                   00000000 (0)\n-5477 Compressed Size       00000000 (0)\n-547B Uncompressed Size     00000000 (0)\n-547F Filename Length       0026 (38)\n-5481 Extra Length          0009 (9)\n-5483 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5483: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54AB   Length              0005 (5)\n-54AD   Flags               01 (1) 'Modification'\n-54AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-54B2 LOCAL HEADER #19      04034B50 (67324752)\n-54B6 Extract Zip Spec      14 (20) '2.0'\n-54B7 Extract OS            00 (0) 'MS-DOS'\n-54B8 General Purpose Flag  0000 (0)\n-54BA Compression Method    0000 (0) 'Stored'\n-54BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54C0 CRC                   00000000 (0)\n-54C4 Compressed Size       00000000 (0)\n-54C8 Uncompressed Size     00000000 (0)\n-54CC Filename Length       002C (44)\n-54CE Extra Length          0009 (9)\n-54D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54FE   Length              0005 (5)\n-5500   Flags               01 (1) 'Modification'\n-5501   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5505 LOCAL HEADER #20      04034B50 (67324752)\n-5509 Extract Zip Spec      14 (20) '2.0'\n-550A Extract OS            00 (0) 'MS-DOS'\n-550B General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-550D Compression Method    0000 (0) 'Stored'\n-550F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5513 CRC                   00000000 (0)\n-5517 Compressed Size       00000000 (0)\n-551B Uncompressed Size     00000000 (0)\n-551F Filename Length       004A (74)\n-5521 Extra Length          0009 (9)\n-5523 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5523: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-556D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-556F   Length              0005 (5)\n-5571   Flags               01 (1) 'Modification'\n-5572   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5576 PAYLOAD\n-\n-5F79 DATA DESCRIPTOR       08074B50 (134695760)\n-5F7D CRC                   9FC2FAF4 (2680355572)\n-5F81 Compressed Size       00000A03 (2563)\n-5F85 Uncompressed Size     00000A03 (2563)\n-\n-5F89 LOCAL HEADER #21      04034B50 (67324752)\n-5F8D Extract Zip Spec      14 (20) '2.0'\n-5F8E Extract OS            00 (0) 'MS-DOS'\n-5F8F General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-5F91 Compression Method    0000 (0) 'Stored'\n-5F93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F97 CRC                   00000000 (0)\n-5F9B Compressed Size       00000000 (0)\n-5F9F Uncompressed Size     00000000 (0)\n-5FA3 Filename Length       004A (74)\n-5FA5 Extra Length          0009 (9)\n-5FA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5FF1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5FF3   Length              0005 (5)\n-5FF5   Flags               01 (1) 'Modification'\n-5FF6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5FFA PAYLOAD\n-\n-9524 DATA DESCRIPTOR       08074B50 (134695760)\n-9528 CRC                   E1F2B0D2 (3790778578)\n-952C Compressed Size       0000352A (13610)\n-9530 Uncompressed Size     0000352A (13610)\n-\n-9534 LOCAL HEADER #22      04034B50 (67324752)\n-9538 Extract Zip Spec      14 (20) '2.0'\n-9539 Extract OS            00 (0) 'MS-DOS'\n-953A General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-953C Compression Method    0000 (0) 'Stored'\n-953E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9542 CRC                   00000000 (0)\n-9546 Compressed Size       00000000 (0)\n-954A Uncompressed Size     00000000 (0)\n-954E Filename Length       0051 (81)\n-9550 Extra Length          0009 (9)\n-9552 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9552: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-95A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-95A5   Length              0005 (5)\n-95A7   Flags               01 (1) 'Modification'\n-95A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-95AC PAYLOAD\n-\n-9CA9 DATA DESCRIPTOR       08074B50 (134695760)\n-9CAD CRC                   2422B0CC (606253260)\n-9CB1 Compressed Size       000006FD (1789)\n-9CB5 Uncompressed Size     000006FD (1789)\n-\n-9CB9 CENTRAL HEADER #1     02014B50 (33639248)\n-9CBD Created Zip Spec      14 (20) '2.0'\n-9CBE Created OS            00 (0) 'MS-DOS'\n-9CBF Extract Zip Spec      14 (20) '2.0'\n-9CC0 Extract OS            00 (0) 'MS-DOS'\n-9CC1 General Purpose Flag  0000 (0)\n-9CC3 Compression Method    0000 (0) 'Stored'\n-9CC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9CC9 CRC                   00000000 (0)\n-9CCD Compressed Size       00000000 (0)\n-9CD1 Uncompressed Size     00000000 (0)\n-9CD5 Filename Length       0009 (9)\n-9CD7 Extra Length          0009 (9)\n-9CD9 Comment Length        0000 (0)\n-9CDB Disk Start            0000 (0)\n-9CDD Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9CDF Ext File Attributes   00000000 (0)\n-9CE3 Local Header Offset   00000000 (0)\n-9CE7 Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x9CE7: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-9CF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9CF2   Length              0005 (5)\n-9CF4   Flags               01 (1) 'Modification'\n-9CF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9CF9 CENTRAL HEADER #2     02014B50 (33639248)\n-9CFD Created Zip Spec      14 (20) '2.0'\n-9CFE Created OS            00 (0) 'MS-DOS'\n-9CFF Extract Zip Spec      14 (20) '2.0'\n-9D00 Extract OS            00 (0) 'MS-DOS'\n-9D01 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-9D03 Compression Method    0000 (0) 'Stored'\n-9D05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9D09 CRC                   D188DF1F (3515408159)\n-9D0D Compressed Size       000019C3 (6595)\n-9D11 Uncompressed Size     000019C3 (6595)\n-9D15 Filename Length       0015 (21)\n-9D17 Extra Length          0009 (9)\n-9D19 Comment Length        0000 (0)\n-9D1B Disk Start            0000 (0)\n-9D1D Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9D1F Ext File Attributes   00000000 (0)\n-9D23 Local Header Offset   00000030 (48)\n-9D27 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9D27: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9D3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9D3E   Length              0005 (5)\n-9D40   Flags               01 (1) 'Modification'\n-9D41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9D45 CENTRAL HEADER #3     02014B50 (33639248)\n-9D49 Created Zip Spec      14 (20) '2.0'\n-9D4A Created OS            00 (0) 'MS-DOS'\n-9D4B Extract Zip Spec      14 (20) '2.0'\n-9D4C Extract OS            00 (0) 'MS-DOS'\n-9D4D General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-9D4F Compression Method    0000 (0) 'Stored'\n-9D51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9D55 CRC                   86E2B4B4 (2263004340)\n-9D59 Compressed Size       00002C5E (11358)\n-9D5D Uncompressed Size     00002C5E (11358)\n-9D61 Filename Length       0010 (16)\n-9D63 Extra Length          0009 (9)\n-9D65 Comment Length        0000 (0)\n-9D67 Disk Start            0000 (0)\n-9D69 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9D6B Ext File Attributes   00000000 (0)\n-9D6F Local Header Offset   00001A3F (6719)\n-9D73 Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9D73: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9D83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9D85   Length              0005 (5)\n-9D87   Flags               01 (1) 'Modification'\n-9D88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9D8C CENTRAL HEADER #4     02014B50 (33639248)\n-9D90 Created Zip Spec      14 (20) '2.0'\n-9D91 Created OS            00 (0) 'MS-DOS'\n-9D92 Extract Zip Spec      14 (20) '2.0'\n-9D93 Extract OS            00 (0) 'MS-DOS'\n-9D94 General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-9D96 Compression Method    0000 (0) 'Stored'\n-9D98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9D9C CRC                   EE027FB2 (3993141170)\n-9DA0 Compressed Size       00000019 (25)\n-9DA4 Uncompressed Size     00000019 (25)\n-9DA8 Filename Length       0014 (20)\n-9DAA Extra Length          0009 (9)\n-9DAC Comment Length        0000 (0)\n-9DAE Disk Start            0000 (0)\n-9DB0 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9DB2 Ext File Attributes   00000000 (0)\n-9DB6 Local Header Offset   000046E4 (18148)\n-9DBA Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9DBA: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9DCE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9DD0   Length              0005 (5)\n-9DD2   Flags               01 (1) 'Modification'\n-9DD3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9DD7 CENTRAL HEADER #5     02014B50 (33639248)\n-9DDB Created Zip Spec      14 (20) '2.0'\n-9DDC Created OS            00 (0) 'MS-DOS'\n-9DDD Extract Zip Spec      14 (20) '2.0'\n-9DDE Extract OS            00 (0) 'MS-DOS'\n-9DDF General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-9DE1 Compression Method    0000 (0) 'Stored'\n-9DE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9DE7 CRC                   5C9F96CE (1553962702)\n-9DEB Compressed Size       000000B5 (181)\n-9DEF Uncompressed Size     000000B5 (181)\n-9DF3 Filename Length       000F (15)\n-9DF5 Extra Length          0009 (9)\n-9DF7 Comment Length        0000 (0)\n-9DF9 Disk Start            0000 (0)\n-9DFB Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9DFD Ext File Attributes   00000000 (0)\n-9E01 Local Header Offset   00004748 (18248)\n-9E05 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9E05: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9E14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9E16   Length              0005 (5)\n-9E18   Flags               01 (1) 'Modification'\n-9E19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9E1D CENTRAL HEADER #6     02014B50 (33639248)\n-9E21 Created Zip Spec      14 (20) '2.0'\n-9E22 Created OS            00 (0) 'MS-DOS'\n-9E23 Extract Zip Spec      14 (20) '2.0'\n-9E24 Extract OS            00 (0) 'MS-DOS'\n-9E25 General Purpose Flag  0000 (0)\n-9E27 Compression Method    0000 (0) 'Stored'\n-9E29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9E2D CRC                   00000000 (0)\n-9E31 Compressed Size       00000000 (0)\n-9E35 Uncompressed Size     00000000 (0)\n-9E39 Filename Length       000F (15)\n-9E3B Extra Length          0009 (9)\n-9E3D Comment Length        0000 (0)\n-9E3F Disk Start            0000 (0)\n-9E41 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9E43 Ext File Attributes   00000000 (0)\n-9E47 Local Header Offset   00004843 (18499)\n-9E4B Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9E4B: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9E5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9E5C   Length              0005 (5)\n-9E5E   Flags               01 (1) 'Modification'\n-9E5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9E63 CENTRAL HEADER #7     02014B50 (33639248)\n-9E67 Created Zip Spec      14 (20) '2.0'\n-9E68 Created OS            00 (0) 'MS-DOS'\n-9E69 Extract Zip Spec      14 (20) '2.0'\n-9E6A Extract OS            00 (0) 'MS-DOS'\n-9E6B General Purpose Flag  0000 (0)\n-9E6D Compression Method    0000 (0) 'Stored'\n-9E6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9E73 CRC                   00000000 (0)\n-9E77 Compressed Size       00000000 (0)\n-9E7B Uncompressed Size     00000000 (0)\n-9E7F Filename Length       0018 (24)\n-9E81 Extra Length          0009 (9)\n-9E83 Comment Length        0000 (0)\n-9E85 Disk Start            0000 (0)\n-9E87 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9E89 Ext File Attributes   00000000 (0)\n-9E8D Local Header Offset   00004879 (18553)\n-9E91 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9E91: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9EA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9EAB   Length              0005 (5)\n-9EAD   Flags               01 (1) 'Modification'\n-9EAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9EB2 CENTRAL HEADER #8     02014B50 (33639248)\n-9EB6 Created Zip Spec      14 (20) '2.0'\n-9EB7 Created OS            00 (0) 'MS-DOS'\n-9EB8 Extract Zip Spec      14 (20) '2.0'\n-9EB9 Extract OS            00 (0) 'MS-DOS'\n-9EBA General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-9EBC Compression Method    0000 (0) 'Stored'\n-9EBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9EC2 CRC                   BA7FA1B6 (3128926646)\n-9EC6 Compressed Size       00000052 (82)\n-9ECA Uncompressed Size     00000052 (82)\n-9ECE Filename Length       005F (95)\n-9ED0 Extra Length          0009 (9)\n-9ED2 Comment Length        0000 (0)\n-9ED4 Disk Start            0000 (0)\n-9ED6 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9ED8 Ext File Attributes   00000000 (0)\n-9EDC Local Header Offset   000048B8 (18616)\n-9EE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9EE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9F3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9F41   Length              0005 (5)\n-9F43   Flags               01 (1) 'Modification'\n-9F44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9F48 CENTRAL HEADER #9     02014B50 (33639248)\n-9F4C Created Zip Spec      14 (20) '2.0'\n-9F4D Created OS            00 (0) 'MS-DOS'\n-9F4E Extract Zip Spec      14 (20) '2.0'\n-9F4F Extract OS            00 (0) 'MS-DOS'\n-9F50 General Purpose Flag  0000 (0)\n-9F52 Compression Method    0000 (0) 'Stored'\n-9F54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9F58 CRC                   00000000 (0)\n-9F5C Compressed Size       00000000 (0)\n-9F60 Uncompressed Size     00000000 (0)\n-9F64 Filename Length       000F (15)\n-9F66 Extra Length          0009 (9)\n-9F68 Comment Length        0000 (0)\n-9F6A Disk Start            0000 (0)\n-9F6C Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9F6E Ext File Attributes   00000000 (0)\n-9F72 Local Header Offset   000049A0 (18848)\n-9F76 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9F76: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9F85 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9F87   Length              0005 (5)\n-9F89   Flags               01 (1) 'Modification'\n-9F8A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9F8E CENTRAL HEADER #10    02014B50 (33639248)\n-9F92 Created Zip Spec      14 (20) '2.0'\n-9F93 Created OS            00 (0) 'MS-DOS'\n-9F94 Extract Zip Spec      14 (20) '2.0'\n-9F95 Extract OS            00 (0) 'MS-DOS'\n-9F96 General Purpose Flag  0000 (0)\n-9F98 Compression Method    0000 (0) 'Stored'\n-9F9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9F9E CRC                   00000000 (0)\n-9FA2 Compressed Size       00000000 (0)\n-9FA6 Uncompressed Size     00000000 (0)\n-9FAA Filename Length       0020 (32)\n-9FAC Extra Length          0009 (9)\n-9FAE Comment Length        0000 (0)\n-9FB0 Disk Start            0000 (0)\n-9FB2 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-9FB4 Ext File Attributes   00000000 (0)\n-9FB8 Local Header Offset   000049D6 (18902)\n-9FBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9FBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-9FDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-9FDE   Length              0005 (5)\n-9FE0   Flags               01 (1) 'Modification'\n-9FE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-9FE5 CENTRAL HEADER #11    02014B50 (33639248)\n-9FE9 Created Zip Spec      14 (20) '2.0'\n-9FEA Created OS            00 (0) 'MS-DOS'\n-9FEB Extract Zip Spec      14 (20) '2.0'\n-9FEC Extract OS            00 (0) 'MS-DOS'\n-9FED General Purpose Flag  0000 (0)\n-9FEF Compression Method    0000 (0) 'Stored'\n-9FF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-9FF5 CRC                   00000000 (0)\n-9FF9 Compressed Size       00000000 (0)\n-9FFD Uncompressed Size     00000000 (0)\n-A001 Filename Length       0039 (57)\n-A003 Extra Length          0009 (9)\n-A005 Comment Length        0000 (0)\n-A007 Disk Start            0000 (0)\n-A009 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A00B Ext File Attributes   00000000 (0)\n-A00F Local Header Offset   00004A1D (18973)\n-A013 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA013: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A04C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A04E   Length              0005 (5)\n-A050   Flags               01 (1) 'Modification'\n-A051   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A055 CENTRAL HEADER #12    02014B50 (33639248)\n-A059 Created Zip Spec      14 (20) '2.0'\n-A05A Created OS            00 (0) 'MS-DOS'\n-A05B Extract Zip Spec      14 (20) '2.0'\n-A05C Extract OS            00 (0) 'MS-DOS'\n-A05D General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-A05F Compression Method    0000 (0) 'Stored'\n-A061 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A065 CRC                   00000000 (0)\n-A069 Compressed Size       00000000 (0)\n-A06D Uncompressed Size     00000000 (0)\n-A071 Filename Length       0047 (71)\n-A073 Extra Length          0009 (9)\n-A075 Comment Length        0000 (0)\n-A077 Disk Start            0000 (0)\n-A079 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A07B Ext File Attributes   00000000 (0)\n-A07F Local Header Offset   00004A7D (19069)\n-A083 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA083: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A0CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A0CC   Length              0005 (5)\n-A0CE   Flags               01 (1) 'Modification'\n-A0CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A0D3 CENTRAL HEADER #13    02014B50 (33639248)\n-A0D7 Created Zip Spec      14 (20) '2.0'\n-A0D8 Created OS            00 (0) 'MS-DOS'\n-A0D9 Extract Zip Spec      14 (20) '2.0'\n-A0DA Extract OS            00 (0) 'MS-DOS'\n-A0DB General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-A0DD Compression Method    0000 (0) 'Stored'\n-A0DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A0E3 CRC                   CFD7D535 (3487028533)\n-A0E7 Compressed Size       00000819 (2073)\n-A0EB Uncompressed Size     00000819 (2073)\n-A0EF Filename Length       0040 (64)\n-A0F1 Extra Length          0009 (9)\n-A0F3 Comment Length        0000 (0)\n-A0F5 Disk Start            0000 (0)\n-A0F7 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A0F9 Ext File Attributes   00000000 (0)\n-A0FD Local Header Offset   00004AFB (19195)\n-A101 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA101: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A141 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A143   Length              0005 (5)\n-A145   Flags               01 (1) 'Modification'\n-A146   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A14A CENTRAL HEADER #14    02014B50 (33639248)\n-A14E Created Zip Spec      14 (20) '2.0'\n-A14F Created OS            00 (0) 'MS-DOS'\n-A150 Extract Zip Spec      14 (20) '2.0'\n-A151 Extract OS            00 (0) 'MS-DOS'\n-A152 General Purpose Flag  0000 (0)\n-A154 Compression Method    0000 (0) 'Stored'\n-A156 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A15A CRC                   00000000 (0)\n-A15E Compressed Size       00000000 (0)\n-A162 Uncompressed Size     00000000 (0)\n-A166 Filename Length       0004 (4)\n-A168 Extra Length          0009 (9)\n-A16A Comment Length        0000 (0)\n-A16C Disk Start            0000 (0)\n-A16E Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A170 Ext File Attributes   00000000 (0)\n-A174 Local Header Offset   0000538B (21387)\n-A178 Filename              'XXXX'\n-#\n-# WARNING: Offset 0xA178: Filename 'XXXX'\n-#          Zero length filename\n-#\n-A17C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A17E   Length              0005 (5)\n-A180   Flags               01 (1) 'Modification'\n-A181   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A185 CENTRAL HEADER #15    02014B50 (33639248)\n-A189 Created Zip Spec      14 (20) '2.0'\n-A18A Created OS            00 (0) 'MS-DOS'\n-A18B Extract Zip Spec      14 (20) '2.0'\n-A18C Extract OS            00 (0) 'MS-DOS'\n-A18D General Purpose Flag  0000 (0)\n-A18F Compression Method    0000 (0) 'Stored'\n-A191 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A195 CRC                   00000000 (0)\n-A199 Compressed Size       00000000 (0)\n-A19D Uncompressed Size     00000000 (0)\n-A1A1 Filename Length       000B (11)\n-A1A3 Extra Length          0009 (9)\n-A1A5 Comment Length        0000 (0)\n-A1A7 Disk Start            0000 (0)\n-A1A9 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A1AB Ext File Attributes   00000000 (0)\n-A1AF Local Header Offset   000053B6 (21430)\n-A1B3 Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA1B3: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A1BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A1C0   Length              0005 (5)\n-A1C2   Flags               01 (1) 'Modification'\n-A1C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A1C7 CENTRAL HEADER #16    02014B50 (33639248)\n-A1CB Created Zip Spec      14 (20) '2.0'\n-A1CC Created OS            00 (0) 'MS-DOS'\n-A1CD Extract Zip Spec      14 (20) '2.0'\n-A1CE Extract OS            00 (0) 'MS-DOS'\n-A1CF General Purpose Flag  0000 (0)\n-A1D1 Compression Method    0000 (0) 'Stored'\n-A1D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A1D7 CRC                   00000000 (0)\n-A1DB Compressed Size       00000000 (0)\n-A1DF Uncompressed Size     00000000 (0)\n-A1E3 Filename Length       0011 (17)\n-A1E5 Extra Length          0009 (9)\n-A1E7 Comment Length        0000 (0)\n-A1E9 Disk Start            0000 (0)\n-A1EB Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A1ED Ext File Attributes   00000000 (0)\n-A1F1 Local Header Offset   000053E8 (21480)\n-A1F5 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA1F5: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A206 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A208   Length              0005 (5)\n-A20A   Flags               01 (1) 'Modification'\n-A20B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A20F CENTRAL HEADER #17    02014B50 (33639248)\n-A213 Created Zip Spec      14 (20) '2.0'\n-A214 Created OS            00 (0) 'MS-DOS'\n-A215 Extract Zip Spec      14 (20) '2.0'\n-A216 Extract OS            00 (0) 'MS-DOS'\n-A217 General Purpose Flag  0000 (0)\n-A219 Compression Method    0000 (0) 'Stored'\n-A21B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A21F CRC                   00000000 (0)\n-A223 Compressed Size       00000000 (0)\n-A227 Uncompressed Size     00000000 (0)\n-A22B Filename Length       001E (30)\n-A22D Extra Length          0009 (9)\n-A22F Comment Length        0000 (0)\n-A231 Disk Start            0000 (0)\n-A233 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A235 Ext File Attributes   00000000 (0)\n-A239 Local Header Offset   00005420 (21536)\n-A23D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA23D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A25B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A25D   Length              0005 (5)\n-A25F   Flags               01 (1) 'Modification'\n-A260   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A264 CENTRAL HEADER #18    02014B50 (33639248)\n-A268 Created Zip Spec      14 (20) '2.0'\n-A269 Created OS            00 (0) 'MS-DOS'\n-A26A Extract Zip Spec      14 (20) '2.0'\n-A26B Extract OS            00 (0) 'MS-DOS'\n-A26C General Purpose Flag  0000 (0)\n-A26E Compression Method    0000 (0) 'Stored'\n-A270 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A274 CRC                   00000000 (0)\n-A278 Compressed Size       00000000 (0)\n-A27C Uncompressed Size     00000000 (0)\n-A280 Filename Length       0026 (38)\n-A282 Extra Length          0009 (9)\n-A284 Comment Length        0000 (0)\n-A286 Disk Start            0000 (0)\n-A288 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A28A Ext File Attributes   00000000 (0)\n-A28E Local Header Offset   00005465 (21605)\n-A292 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA292: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A2B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A2BA   Length              0005 (5)\n-A2BC   Flags               01 (1) 'Modification'\n-A2BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A2C1 CENTRAL HEADER #19    02014B50 (33639248)\n-A2C5 Created Zip Spec      14 (20) '2.0'\n-A2C6 Created OS            00 (0) 'MS-DOS'\n-A2C7 Extract Zip Spec      14 (20) '2.0'\n-A2C8 Extract OS            00 (0) 'MS-DOS'\n-A2C9 General Purpose Flag  0000 (0)\n-A2CB Compression Method    0000 (0) 'Stored'\n-A2CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A2D1 CRC                   00000000 (0)\n-A2D5 Compressed Size       00000000 (0)\n-A2D9 Uncompressed Size     00000000 (0)\n-A2DD Filename Length       002C (44)\n-A2DF Extra Length          0009 (9)\n-A2E1 Comment Length        0000 (0)\n-A2E3 Disk Start            0000 (0)\n-A2E5 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A2E7 Ext File Attributes   00000000 (0)\n-A2EB Local Header Offset   000054B2 (21682)\n-A2EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA2EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A31B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A31D   Length              0005 (5)\n-A31F   Flags               01 (1) 'Modification'\n-A320   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A324 CENTRAL HEADER #20    02014B50 (33639248)\n-A328 Created Zip Spec      14 (20) '2.0'\n-A329 Created OS            00 (0) 'MS-DOS'\n-A32A Extract Zip Spec      14 (20) '2.0'\n-A32B Extract OS            00 (0) 'MS-DOS'\n-A32C General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-A32E Compression Method    0000 (0) 'Stored'\n-A330 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A334 CRC                   9FC2FAF4 (2680355572)\n-A338 Compressed Size       00000A03 (2563)\n-A33C Uncompressed Size     00000A03 (2563)\n-A340 Filename Length       004A (74)\n-A342 Extra Length          0009 (9)\n-A344 Comment Length        0000 (0)\n-A346 Disk Start            0000 (0)\n-A348 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A34A Ext File Attributes   00000000 (0)\n-A34E Local Header Offset   00005505 (21765)\n-A352 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA352: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A39C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A39E   Length              0005 (5)\n-A3A0   Flags               01 (1) 'Modification'\n-A3A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A3A5 CENTRAL HEADER #21    02014B50 (33639248)\n-A3A9 Created Zip Spec      14 (20) '2.0'\n-A3AA Created OS            00 (0) 'MS-DOS'\n-A3AB Extract Zip Spec      14 (20) '2.0'\n-A3AC Extract OS            00 (0) 'MS-DOS'\n-A3AD General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-A3AF Compression Method    0000 (0) 'Stored'\n-A3B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A3B5 CRC                   E1F2B0D2 (3790778578)\n-A3B9 Compressed Size       0000352A (13610)\n-A3BD Uncompressed Size     0000352A (13610)\n-A3C1 Filename Length       004A (74)\n-A3C3 Extra Length          0009 (9)\n-A3C5 Comment Length        0000 (0)\n-A3C7 Disk Start            0000 (0)\n-A3C9 Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A3CB Ext File Attributes   00000000 (0)\n-A3CF Local Header Offset   00005F89 (24457)\n-A3D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA3D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A41D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A41F   Length              0005 (5)\n-A421   Flags               01 (1) 'Modification'\n-A422   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A426 CENTRAL HEADER #22    02014B50 (33639248)\n-A42A Created Zip Spec      14 (20) '2.0'\n-A42B Created OS            00 (0) 'MS-DOS'\n-A42C Extract Zip Spec      14 (20) '2.0'\n-A42D Extract OS            00 (0) 'MS-DOS'\n-A42E General Purpose Flag  0008 (8)\n-     [Bit  3]              1 'Streamed'\n-A430 Compression Method    0000 (0) 'Stored'\n-A432 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-A436 CRC                   2422B0CC (606253260)\n-A43A Compressed Size       000006FD (1789)\n-A43E Uncompressed Size     000006FD (1789)\n-A442 Filename Length       0051 (81)\n-A444 Extra Length          0009 (9)\n-A446 Comment Length        0000 (0)\n-A448 Disk Start            0000 (0)\n-A44A Int File Attributes   0000 (0)\n-     [Bit 0]               0 'Binary Data'\n-A44C Ext File Attributes   00000000 (0)\n-A450 Local Header Offset   00009534 (38196)\n-A454 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA454: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-A4A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-A4A7   Length              0005 (5)\n-A4A9   Flags               01 (1) 'Modification'\n-A4AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-A4AE END CENTRAL HEADER    06054B50 (101010256)\n-A4B2 Number of this disk   0000 (0)\n-A4B4 Central Dir Disk no   0000 (0)\n-A4B6 Entries in this disk  0016 (22)\n-A4B8 Total Entries         0016 (22)\n-A4BA Size of Central Dir   000007F5 (2037)\n-A4BE Offset to Central Dir 00009CB9 (40121)\n-A4C2 Comment Length        0000 (0)\n+534A DATA DESCRIPTOR       08074B50 (134695760)\n+534E CRC                   F1E099F8 (4058028536)\n+5352 Compressed Size       000007E8 (2024)\n+5356 Uncompressed Size     000007E8 (2024)\n+\n+535A LOCAL HEADER #14      04034B50 (67324752)\n+535E Extract Zip Spec      14 (20) '2.0'\n+535F Extract OS            00 (0) 'MS-DOS'\n+5360 General Purpose Flag  0000 (0)\n+5362 Compression Method    0000 (0) 'Stored'\n+5364 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5368 CRC                   00000000 (0)\n+536C Compressed Size       00000000 (0)\n+5370 Uncompressed Size     00000000 (0)\n+5374 Filename Length       0004 (4)\n+5376 Extra Length          0009 (9)\n+5378 Filename              'XXXX'\n+#\n+# WARNING: Offset 0x5378: Filename 'XXXX'\n+#          Zero length filename\n+#\n+537C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+537E   Length              0005 (5)\n+5380   Flags               01 (1) 'Modification'\n+5381   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5385 LOCAL HEADER #15      04034B50 (67324752)\n+5389 Extract Zip Spec      14 (20) '2.0'\n+538A Extract OS            00 (0) 'MS-DOS'\n+538B General Purpose Flag  0000 (0)\n+538D Compression Method    0000 (0) 'Stored'\n+538F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5393 CRC                   00000000 (0)\n+5397 Compressed Size       00000000 (0)\n+539B Uncompressed Size     00000000 (0)\n+539F Filename Length       000B (11)\n+53A1 Extra Length          0009 (9)\n+53A3 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53A3: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+53AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+53B0   Length              0005 (5)\n+53B2   Flags               01 (1) 'Modification'\n+53B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+53B7 LOCAL HEADER #16      04034B50 (67324752)\n+53BB Extract Zip Spec      14 (20) '2.0'\n+53BC Extract OS            00 (0) 'MS-DOS'\n+53BD General Purpose Flag  0000 (0)\n+53BF Compression Method    0000 (0) 'Stored'\n+53C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+53C5 CRC                   00000000 (0)\n+53C9 Compressed Size       00000000 (0)\n+53CD Uncompressed Size     00000000 (0)\n+53D1 Filename Length       0011 (17)\n+53D3 Extra Length          0009 (9)\n+53D5 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53D5: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+53E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+53E8   Length              0005 (5)\n+53EA   Flags               01 (1) 'Modification'\n+53EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+53EF LOCAL HEADER #17      04034B50 (67324752)\n+53F3 Extract Zip Spec      14 (20) '2.0'\n+53F4 Extract OS            00 (0) 'MS-DOS'\n+53F5 General Purpose Flag  0000 (0)\n+53F7 Compression Method    0000 (0) 'Stored'\n+53F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+53FD CRC                   00000000 (0)\n+5401 Compressed Size       00000000 (0)\n+5405 Uncompressed Size     00000000 (0)\n+5409 Filename Length       001E (30)\n+540B Extra Length          0009 (9)\n+540D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x540D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+542B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+542D   Length              0005 (5)\n+542F   Flags               01 (1) 'Modification'\n+5430   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5434 LOCAL HEADER #18      04034B50 (67324752)\n+5438 Extract Zip Spec      14 (20) '2.0'\n+5439 Extract OS            00 (0) 'MS-DOS'\n+543A General Purpose Flag  0000 (0)\n+543C Compression Method    0000 (0) 'Stored'\n+543E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5442 CRC                   00000000 (0)\n+5446 Compressed Size       00000000 (0)\n+544A Uncompressed Size     00000000 (0)\n+544E Filename Length       0026 (38)\n+5450 Extra Length          0009 (9)\n+5452 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5452: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5478 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+547A   Length              0005 (5)\n+547C   Flags               01 (1) 'Modification'\n+547D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5481 LOCAL HEADER #19      04034B50 (67324752)\n+5485 Extract Zip Spec      14 (20) '2.0'\n+5486 Extract OS            00 (0) 'MS-DOS'\n+5487 General Purpose Flag  0000 (0)\n+5489 Compression Method    0000 (0) 'Stored'\n+548B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+548F CRC                   00000000 (0)\n+5493 Compressed Size       00000000 (0)\n+5497 Uncompressed Size     00000000 (0)\n+549B Filename Length       002C (44)\n+549D Extra Length          0009 (9)\n+549F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x549F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54CD   Length              0005 (5)\n+54CF   Flags               01 (1) 'Modification'\n+54D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+54D4 LOCAL HEADER #20      04034B50 (67324752)\n+54D8 Extract Zip Spec      14 (20) '2.0'\n+54D9 Extract OS            00 (0) 'MS-DOS'\n+54DA General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+54DC Compression Method    0000 (0) 'Stored'\n+54DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54E2 CRC                   00000000 (0)\n+54E6 Compressed Size       00000000 (0)\n+54EA Uncompressed Size     00000000 (0)\n+54EE Filename Length       004A (74)\n+54F0 Extra Length          0009 (9)\n+54F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+553C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+553E   Length              0005 (5)\n+5540   Flags               01 (1) 'Modification'\n+5541   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5545 PAYLOAD\n+\n+5F89 DATA DESCRIPTOR       08074B50 (134695760)\n+5F8D CRC                   F13A996B (4047149419)\n+5F91 Compressed Size       00000A44 (2628)\n+5F95 Uncompressed Size     00000A44 (2628)\n+\n+5F99 LOCAL HEADER #21      04034B50 (67324752)\n+5F9D Extract Zip Spec      14 (20) '2.0'\n+5F9E Extract OS            00 (0) 'MS-DOS'\n+5F9F General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+5FA1 Compression Method    0000 (0) 'Stored'\n+5FA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FA7 CRC                   00000000 (0)\n+5FAB Compressed Size       00000000 (0)\n+5FAF Uncompressed Size     00000000 (0)\n+5FB3 Filename Length       004A (74)\n+5FB5 Extra Length          0009 (9)\n+5FB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6001 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6003   Length              0005 (5)\n+6005   Flags               01 (1) 'Modification'\n+6006   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+600A PAYLOAD\n+\n+96A2 DATA DESCRIPTOR       08074B50 (134695760)\n+96A6 CRC                   2B568850 (727091280)\n+96AA Compressed Size       00003698 (13976)\n+96AE Uncompressed Size     00003698 (13976)\n+\n+96B2 LOCAL HEADER #22      04034B50 (67324752)\n+96B6 Extract Zip Spec      14 (20) '2.0'\n+96B7 Extract OS            00 (0) 'MS-DOS'\n+96B8 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+96BA Compression Method    0000 (0) 'Stored'\n+96BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+96C0 CRC                   00000000 (0)\n+96C4 Compressed Size       00000000 (0)\n+96C8 Uncompressed Size     00000000 (0)\n+96CC Filename Length       0051 (81)\n+96CE Extra Length          0009 (9)\n+96D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x96D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9721 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9723   Length              0005 (5)\n+9725   Flags               01 (1) 'Modification'\n+9726   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+972A PAYLOAD\n+\n+9E50 DATA DESCRIPTOR       08074B50 (134695760)\n+9E54 CRC                   78482BCF (2017995727)\n+9E58 Compressed Size       00000726 (1830)\n+9E5C Uncompressed Size     00000726 (1830)\n+\n+9E60 CENTRAL HEADER #1     02014B50 (33639248)\n+9E64 Created Zip Spec      14 (20) '2.0'\n+9E65 Created OS            00 (0) 'MS-DOS'\n+9E66 Extract Zip Spec      14 (20) '2.0'\n+9E67 Extract OS            00 (0) 'MS-DOS'\n+9E68 General Purpose Flag  0000 (0)\n+9E6A Compression Method    0000 (0) 'Stored'\n+9E6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9E70 CRC                   00000000 (0)\n+9E74 Compressed Size       00000000 (0)\n+9E78 Uncompressed Size     00000000 (0)\n+9E7C Filename Length       0009 (9)\n+9E7E Extra Length          0009 (9)\n+9E80 Comment Length        0000 (0)\n+9E82 Disk Start            0000 (0)\n+9E84 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9E86 Ext File Attributes   00000000 (0)\n+9E8A Local Header Offset   00000000 (0)\n+9E8E Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x9E8E: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+9E97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9E99   Length              0005 (5)\n+9E9B   Flags               01 (1) 'Modification'\n+9E9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9EA0 CENTRAL HEADER #2     02014B50 (33639248)\n+9EA4 Created Zip Spec      14 (20) '2.0'\n+9EA5 Created OS            00 (0) 'MS-DOS'\n+9EA6 Extract Zip Spec      14 (20) '2.0'\n+9EA7 Extract OS            00 (0) 'MS-DOS'\n+9EA8 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+9EAA Compression Method    0000 (0) 'Stored'\n+9EAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9EB0 CRC                   D188DF1F (3515408159)\n+9EB4 Compressed Size       000019C3 (6595)\n+9EB8 Uncompressed Size     000019C3 (6595)\n+9EBC Filename Length       0015 (21)\n+9EBE Extra Length          0009 (9)\n+9EC0 Comment Length        0000 (0)\n+9EC2 Disk Start            0000 (0)\n+9EC4 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9EC6 Ext File Attributes   00000000 (0)\n+9ECA Local Header Offset   00000030 (48)\n+9ECE Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9ECE: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9EE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9EE5   Length              0005 (5)\n+9EE7   Flags               01 (1) 'Modification'\n+9EE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9EEC CENTRAL HEADER #3     02014B50 (33639248)\n+9EF0 Created Zip Spec      14 (20) '2.0'\n+9EF1 Created OS            00 (0) 'MS-DOS'\n+9EF2 Extract Zip Spec      14 (20) '2.0'\n+9EF3 Extract OS            00 (0) 'MS-DOS'\n+9EF4 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+9EF6 Compression Method    0000 (0) 'Stored'\n+9EF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9EFC CRC                   86E2B4B4 (2263004340)\n+9F00 Compressed Size       00002C5E (11358)\n+9F04 Uncompressed Size     00002C5E (11358)\n+9F08 Filename Length       0010 (16)\n+9F0A Extra Length          0009 (9)\n+9F0C Comment Length        0000 (0)\n+9F0E Disk Start            0000 (0)\n+9F10 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9F12 Ext File Attributes   00000000 (0)\n+9F16 Local Header Offset   00001A3F (6719)\n+9F1A Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9F1A: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9F2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9F2C   Length              0005 (5)\n+9F2E   Flags               01 (1) 'Modification'\n+9F2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9F33 CENTRAL HEADER #4     02014B50 (33639248)\n+9F37 Created Zip Spec      14 (20) '2.0'\n+9F38 Created OS            00 (0) 'MS-DOS'\n+9F39 Extract Zip Spec      14 (20) '2.0'\n+9F3A Extract OS            00 (0) 'MS-DOS'\n+9F3B General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+9F3D Compression Method    0000 (0) 'Stored'\n+9F3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9F43 CRC                   EE027FB2 (3993141170)\n+9F47 Compressed Size       00000019 (25)\n+9F4B Uncompressed Size     00000019 (25)\n+9F4F Filename Length       0014 (20)\n+9F51 Extra Length          0009 (9)\n+9F53 Comment Length        0000 (0)\n+9F55 Disk Start            0000 (0)\n+9F57 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9F59 Ext File Attributes   00000000 (0)\n+9F5D Local Header Offset   000046E4 (18148)\n+9F61 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9F61: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9F75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9F77   Length              0005 (5)\n+9F79   Flags               01 (1) 'Modification'\n+9F7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9F7E CENTRAL HEADER #5     02014B50 (33639248)\n+9F82 Created Zip Spec      14 (20) '2.0'\n+9F83 Created OS            00 (0) 'MS-DOS'\n+9F84 Extract Zip Spec      14 (20) '2.0'\n+9F85 Extract OS            00 (0) 'MS-DOS'\n+9F86 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+9F88 Compression Method    0000 (0) 'Stored'\n+9F8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9F8E CRC                   5C9F96CE (1553962702)\n+9F92 Compressed Size       000000B5 (181)\n+9F96 Uncompressed Size     000000B5 (181)\n+9F9A Filename Length       000F (15)\n+9F9C Extra Length          0009 (9)\n+9F9E Comment Length        0000 (0)\n+9FA0 Disk Start            0000 (0)\n+9FA2 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9FA4 Ext File Attributes   00000000 (0)\n+9FA8 Local Header Offset   00004748 (18248)\n+9FAC Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9FAC: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+9FBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+9FBD   Length              0005 (5)\n+9FBF   Flags               01 (1) 'Modification'\n+9FC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+9FC4 CENTRAL HEADER #6     02014B50 (33639248)\n+9FC8 Created Zip Spec      14 (20) '2.0'\n+9FC9 Created OS            00 (0) 'MS-DOS'\n+9FCA Extract Zip Spec      14 (20) '2.0'\n+9FCB Extract OS            00 (0) 'MS-DOS'\n+9FCC General Purpose Flag  0000 (0)\n+9FCE Compression Method    0000 (0) 'Stored'\n+9FD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+9FD4 CRC                   00000000 (0)\n+9FD8 Compressed Size       00000000 (0)\n+9FDC Uncompressed Size     00000000 (0)\n+9FE0 Filename Length       000F (15)\n+9FE2 Extra Length          0009 (9)\n+9FE4 Comment Length        0000 (0)\n+9FE6 Disk Start            0000 (0)\n+9FE8 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+9FEA Ext File Attributes   00000000 (0)\n+9FEE Local Header Offset   00004843 (18499)\n+9FF2 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9FF2: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A001 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A003   Length              0005 (5)\n+A005   Flags               01 (1) 'Modification'\n+A006   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A00A CENTRAL HEADER #7     02014B50 (33639248)\n+A00E Created Zip Spec      14 (20) '2.0'\n+A00F Created OS            00 (0) 'MS-DOS'\n+A010 Extract Zip Spec      14 (20) '2.0'\n+A011 Extract OS            00 (0) 'MS-DOS'\n+A012 General Purpose Flag  0000 (0)\n+A014 Compression Method    0000 (0) 'Stored'\n+A016 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A01A CRC                   00000000 (0)\n+A01E Compressed Size       00000000 (0)\n+A022 Uncompressed Size     00000000 (0)\n+A026 Filename Length       0018 (24)\n+A028 Extra Length          0009 (9)\n+A02A Comment Length        0000 (0)\n+A02C Disk Start            0000 (0)\n+A02E Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A030 Ext File Attributes   00000000 (0)\n+A034 Local Header Offset   00004879 (18553)\n+A038 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA038: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A050 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A052   Length              0005 (5)\n+A054   Flags               01 (1) 'Modification'\n+A055   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A059 CENTRAL HEADER #8     02014B50 (33639248)\n+A05D Created Zip Spec      14 (20) '2.0'\n+A05E Created OS            00 (0) 'MS-DOS'\n+A05F Extract Zip Spec      14 (20) '2.0'\n+A060 Extract OS            00 (0) 'MS-DOS'\n+A061 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+A063 Compression Method    0000 (0) 'Stored'\n+A065 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A069 CRC                   BA7FA1B6 (3128926646)\n+A06D Compressed Size       00000052 (82)\n+A071 Uncompressed Size     00000052 (82)\n+A075 Filename Length       005F (95)\n+A077 Extra Length          0009 (9)\n+A079 Comment Length        0000 (0)\n+A07B Disk Start            0000 (0)\n+A07D Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A07F Ext File Attributes   00000000 (0)\n+A083 Local Header Offset   000048B8 (18616)\n+A087 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA087: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A0E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A0E8   Length              0005 (5)\n+A0EA   Flags               01 (1) 'Modification'\n+A0EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A0EF CENTRAL HEADER #9     02014B50 (33639248)\n+A0F3 Created Zip Spec      14 (20) '2.0'\n+A0F4 Created OS            00 (0) 'MS-DOS'\n+A0F5 Extract Zip Spec      14 (20) '2.0'\n+A0F6 Extract OS            00 (0) 'MS-DOS'\n+A0F7 General Purpose Flag  0000 (0)\n+A0F9 Compression Method    0000 (0) 'Stored'\n+A0FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A0FF CRC                   00000000 (0)\n+A103 Compressed Size       00000000 (0)\n+A107 Uncompressed Size     00000000 (0)\n+A10B Filename Length       000F (15)\n+A10D Extra Length          0009 (9)\n+A10F Comment Length        0000 (0)\n+A111 Disk Start            0000 (0)\n+A113 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A115 Ext File Attributes   00000000 (0)\n+A119 Local Header Offset   000049A0 (18848)\n+A11D Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA11D: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A12C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A12E   Length              0005 (5)\n+A130   Flags               01 (1) 'Modification'\n+A131   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A135 CENTRAL HEADER #10    02014B50 (33639248)\n+A139 Created Zip Spec      14 (20) '2.0'\n+A13A Created OS            00 (0) 'MS-DOS'\n+A13B Extract Zip Spec      14 (20) '2.0'\n+A13C Extract OS            00 (0) 'MS-DOS'\n+A13D General Purpose Flag  0000 (0)\n+A13F Compression Method    0000 (0) 'Stored'\n+A141 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A145 CRC                   00000000 (0)\n+A149 Compressed Size       00000000 (0)\n+A14D Uncompressed Size     00000000 (0)\n+A151 Filename Length       0020 (32)\n+A153 Extra Length          0009 (9)\n+A155 Comment Length        0000 (0)\n+A157 Disk Start            0000 (0)\n+A159 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A15B Ext File Attributes   00000000 (0)\n+A15F Local Header Offset   000049D6 (18902)\n+A163 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA163: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A183 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A185   Length              0005 (5)\n+A187   Flags               01 (1) 'Modification'\n+A188   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A18C CENTRAL HEADER #11    02014B50 (33639248)\n+A190 Created Zip Spec      14 (20) '2.0'\n+A191 Created OS            00 (0) 'MS-DOS'\n+A192 Extract Zip Spec      14 (20) '2.0'\n+A193 Extract OS            00 (0) 'MS-DOS'\n+A194 General Purpose Flag  0000 (0)\n+A196 Compression Method    0000 (0) 'Stored'\n+A198 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A19C CRC                   00000000 (0)\n+A1A0 Compressed Size       00000000 (0)\n+A1A4 Uncompressed Size     00000000 (0)\n+A1A8 Filename Length       0039 (57)\n+A1AA Extra Length          0009 (9)\n+A1AC Comment Length        0000 (0)\n+A1AE Disk Start            0000 (0)\n+A1B0 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A1B2 Ext File Attributes   00000000 (0)\n+A1B6 Local Header Offset   00004A1D (18973)\n+A1BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA1BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A1F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A1F5   Length              0005 (5)\n+A1F7   Flags               01 (1) 'Modification'\n+A1F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A1FC CENTRAL HEADER #12    02014B50 (33639248)\n+A200 Created Zip Spec      14 (20) '2.0'\n+A201 Created OS            00 (0) 'MS-DOS'\n+A202 Extract Zip Spec      14 (20) '2.0'\n+A203 Extract OS            00 (0) 'MS-DOS'\n+A204 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+A206 Compression Method    0000 (0) 'Stored'\n+A208 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A20C CRC                   00000000 (0)\n+A210 Compressed Size       00000000 (0)\n+A214 Uncompressed Size     00000000 (0)\n+A218 Filename Length       0047 (71)\n+A21A Extra Length          0009 (9)\n+A21C Comment Length        0000 (0)\n+A21E Disk Start            0000 (0)\n+A220 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A222 Ext File Attributes   00000000 (0)\n+A226 Local Header Offset   00004A7D (19069)\n+A22A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA22A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A271 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A273   Length              0005 (5)\n+A275   Flags               01 (1) 'Modification'\n+A276   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A27A CENTRAL HEADER #13    02014B50 (33639248)\n+A27E Created Zip Spec      14 (20) '2.0'\n+A27F Created OS            00 (0) 'MS-DOS'\n+A280 Extract Zip Spec      14 (20) '2.0'\n+A281 Extract OS            00 (0) 'MS-DOS'\n+A282 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+A284 Compression Method    0000 (0) 'Stored'\n+A286 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A28A CRC                   F1E099F8 (4058028536)\n+A28E Compressed Size       000007E8 (2024)\n+A292 Uncompressed Size     000007E8 (2024)\n+A296 Filename Length       0040 (64)\n+A298 Extra Length          0009 (9)\n+A29A Comment Length        0000 (0)\n+A29C Disk Start            0000 (0)\n+A29E Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A2A0 Ext File Attributes   00000000 (0)\n+A2A4 Local Header Offset   00004AFB (19195)\n+A2A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA2A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A2E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A2EA   Length              0005 (5)\n+A2EC   Flags               01 (1) 'Modification'\n+A2ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A2F1 CENTRAL HEADER #14    02014B50 (33639248)\n+A2F5 Created Zip Spec      14 (20) '2.0'\n+A2F6 Created OS            00 (0) 'MS-DOS'\n+A2F7 Extract Zip Spec      14 (20) '2.0'\n+A2F8 Extract OS            00 (0) 'MS-DOS'\n+A2F9 General Purpose Flag  0000 (0)\n+A2FB Compression Method    0000 (0) 'Stored'\n+A2FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A301 CRC                   00000000 (0)\n+A305 Compressed Size       00000000 (0)\n+A309 Uncompressed Size     00000000 (0)\n+A30D Filename Length       0004 (4)\n+A30F Extra Length          0009 (9)\n+A311 Comment Length        0000 (0)\n+A313 Disk Start            0000 (0)\n+A315 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A317 Ext File Attributes   00000000 (0)\n+A31B Local Header Offset   0000535A (21338)\n+A31F Filename              'XXXX'\n+#\n+# WARNING: Offset 0xA31F: Filename 'XXXX'\n+#          Zero length filename\n+#\n+A323 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A325   Length              0005 (5)\n+A327   Flags               01 (1) 'Modification'\n+A328   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A32C CENTRAL HEADER #15    02014B50 (33639248)\n+A330 Created Zip Spec      14 (20) '2.0'\n+A331 Created OS            00 (0) 'MS-DOS'\n+A332 Extract Zip Spec      14 (20) '2.0'\n+A333 Extract OS            00 (0) 'MS-DOS'\n+A334 General Purpose Flag  0000 (0)\n+A336 Compression Method    0000 (0) 'Stored'\n+A338 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A33C CRC                   00000000 (0)\n+A340 Compressed Size       00000000 (0)\n+A344 Uncompressed Size     00000000 (0)\n+A348 Filename Length       000B (11)\n+A34A Extra Length          0009 (9)\n+A34C Comment Length        0000 (0)\n+A34E Disk Start            0000 (0)\n+A350 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A352 Ext File Attributes   00000000 (0)\n+A356 Local Header Offset   00005385 (21381)\n+A35A Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA35A: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A365 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A367   Length              0005 (5)\n+A369   Flags               01 (1) 'Modification'\n+A36A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A36E CENTRAL HEADER #16    02014B50 (33639248)\n+A372 Created Zip Spec      14 (20) '2.0'\n+A373 Created OS            00 (0) 'MS-DOS'\n+A374 Extract Zip Spec      14 (20) '2.0'\n+A375 Extract OS            00 (0) 'MS-DOS'\n+A376 General Purpose Flag  0000 (0)\n+A378 Compression Method    0000 (0) 'Stored'\n+A37A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A37E CRC                   00000000 (0)\n+A382 Compressed Size       00000000 (0)\n+A386 Uncompressed Size     00000000 (0)\n+A38A Filename Length       0011 (17)\n+A38C Extra Length          0009 (9)\n+A38E Comment Length        0000 (0)\n+A390 Disk Start            0000 (0)\n+A392 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A394 Ext File Attributes   00000000 (0)\n+A398 Local Header Offset   000053B7 (21431)\n+A39C Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA39C: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A3AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A3AF   Length              0005 (5)\n+A3B1   Flags               01 (1) 'Modification'\n+A3B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A3B6 CENTRAL HEADER #17    02014B50 (33639248)\n+A3BA Created Zip Spec      14 (20) '2.0'\n+A3BB Created OS            00 (0) 'MS-DOS'\n+A3BC Extract Zip Spec      14 (20) '2.0'\n+A3BD Extract OS            00 (0) 'MS-DOS'\n+A3BE General Purpose Flag  0000 (0)\n+A3C0 Compression Method    0000 (0) 'Stored'\n+A3C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A3C6 CRC                   00000000 (0)\n+A3CA Compressed Size       00000000 (0)\n+A3CE Uncompressed Size     00000000 (0)\n+A3D2 Filename Length       001E (30)\n+A3D4 Extra Length          0009 (9)\n+A3D6 Comment Length        0000 (0)\n+A3D8 Disk Start            0000 (0)\n+A3DA Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A3DC Ext File Attributes   00000000 (0)\n+A3E0 Local Header Offset   000053EF (21487)\n+A3E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA3E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A402 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A404   Length              0005 (5)\n+A406   Flags               01 (1) 'Modification'\n+A407   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A40B CENTRAL HEADER #18    02014B50 (33639248)\n+A40F Created Zip Spec      14 (20) '2.0'\n+A410 Created OS            00 (0) 'MS-DOS'\n+A411 Extract Zip Spec      14 (20) '2.0'\n+A412 Extract OS            00 (0) 'MS-DOS'\n+A413 General Purpose Flag  0000 (0)\n+A415 Compression Method    0000 (0) 'Stored'\n+A417 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A41B CRC                   00000000 (0)\n+A41F Compressed Size       00000000 (0)\n+A423 Uncompressed Size     00000000 (0)\n+A427 Filename Length       0026 (38)\n+A429 Extra Length          0009 (9)\n+A42B Comment Length        0000 (0)\n+A42D Disk Start            0000 (0)\n+A42F Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A431 Ext File Attributes   00000000 (0)\n+A435 Local Header Offset   00005434 (21556)\n+A439 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA439: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A45F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A461   Length              0005 (5)\n+A463   Flags               01 (1) 'Modification'\n+A464   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A468 CENTRAL HEADER #19    02014B50 (33639248)\n+A46C Created Zip Spec      14 (20) '2.0'\n+A46D Created OS            00 (0) 'MS-DOS'\n+A46E Extract Zip Spec      14 (20) '2.0'\n+A46F Extract OS            00 (0) 'MS-DOS'\n+A470 General Purpose Flag  0000 (0)\n+A472 Compression Method    0000 (0) 'Stored'\n+A474 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A478 CRC                   00000000 (0)\n+A47C Compressed Size       00000000 (0)\n+A480 Uncompressed Size     00000000 (0)\n+A484 Filename Length       002C (44)\n+A486 Extra Length          0009 (9)\n+A488 Comment Length        0000 (0)\n+A48A Disk Start            0000 (0)\n+A48C Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A48E Ext File Attributes   00000000 (0)\n+A492 Local Header Offset   00005481 (21633)\n+A496 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA496: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A4C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A4C4   Length              0005 (5)\n+A4C6   Flags               01 (1) 'Modification'\n+A4C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A4CB CENTRAL HEADER #20    02014B50 (33639248)\n+A4CF Created Zip Spec      14 (20) '2.0'\n+A4D0 Created OS            00 (0) 'MS-DOS'\n+A4D1 Extract Zip Spec      14 (20) '2.0'\n+A4D2 Extract OS            00 (0) 'MS-DOS'\n+A4D3 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+A4D5 Compression Method    0000 (0) 'Stored'\n+A4D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A4DB CRC                   F13A996B (4047149419)\n+A4DF Compressed Size       00000A44 (2628)\n+A4E3 Uncompressed Size     00000A44 (2628)\n+A4E7 Filename Length       004A (74)\n+A4E9 Extra Length          0009 (9)\n+A4EB Comment Length        0000 (0)\n+A4ED Disk Start            0000 (0)\n+A4EF Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A4F1 Ext File Attributes   00000000 (0)\n+A4F5 Local Header Offset   000054D4 (21716)\n+A4F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA4F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A543 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A545   Length              0005 (5)\n+A547   Flags               01 (1) 'Modification'\n+A548   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A54C CENTRAL HEADER #21    02014B50 (33639248)\n+A550 Created Zip Spec      14 (20) '2.0'\n+A551 Created OS            00 (0) 'MS-DOS'\n+A552 Extract Zip Spec      14 (20) '2.0'\n+A553 Extract OS            00 (0) 'MS-DOS'\n+A554 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+A556 Compression Method    0000 (0) 'Stored'\n+A558 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A55C CRC                   2B568850 (727091280)\n+A560 Compressed Size       00003698 (13976)\n+A564 Uncompressed Size     00003698 (13976)\n+A568 Filename Length       004A (74)\n+A56A Extra Length          0009 (9)\n+A56C Comment Length        0000 (0)\n+A56E Disk Start            0000 (0)\n+A570 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A572 Ext File Attributes   00000000 (0)\n+A576 Local Header Offset   00005F99 (24473)\n+A57A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA57A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A5C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A5C6   Length              0005 (5)\n+A5C8   Flags               01 (1) 'Modification'\n+A5C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A5CD CENTRAL HEADER #22    02014B50 (33639248)\n+A5D1 Created Zip Spec      14 (20) '2.0'\n+A5D2 Created OS            00 (0) 'MS-DOS'\n+A5D3 Extract Zip Spec      14 (20) '2.0'\n+A5D4 Extract OS            00 (0) 'MS-DOS'\n+A5D5 General Purpose Flag  0008 (8)\n+     [Bit  3]              1 'Streamed'\n+A5D7 Compression Method    0000 (0) 'Stored'\n+A5D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+A5DD CRC                   78482BCF (2017995727)\n+A5E1 Compressed Size       00000726 (1830)\n+A5E5 Uncompressed Size     00000726 (1830)\n+A5E9 Filename Length       0051 (81)\n+A5EB Extra Length          0009 (9)\n+A5ED Comment Length        0000 (0)\n+A5EF Disk Start            0000 (0)\n+A5F1 Int File Attributes   0000 (0)\n+     [Bit 0]               0 'Binary Data'\n+A5F3 Ext File Attributes   00000000 (0)\n+A5F7 Local Header Offset   000096B2 (38578)\n+A5FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA5FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+A64C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+A64E   Length              0005 (5)\n+A650   Flags               01 (1) 'Modification'\n+A651   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+A655 END CENTRAL HEADER    06054B50 (101010256)\n+A659 Number of this disk   0000 (0)\n+A65B Central Dir Disk no   0000 (0)\n+A65D Entries in this disk  0016 (22)\n+A65F Total Entries         0016 (22)\n+A661 Size of Central Dir   000007F5 (2037)\n+A665 Offset to Central Dir 00009E60 (40544)\n+A669 Comment Length        0000 (0)\n #\n # Warning Count: 44\n #\n # Done\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/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,130 +1,127 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 7e20 4c69 6365 6e73 6564 2074 6f20 7468  ~ Licensed to th\n-00000040: 6520 4170 6163 6865 2053 6f66 7477 6172  e Apache Softwar\n-00000050: 6520 466f 756e 6461 7469 6f6e 2028 4153  e Foundation (AS\n-00000060: 4629 2075 6e64 6572 206f 6e65 206f 7220  F) under one or \n-00000070: 6d6f 7265 0d0a 2020 7e20 636f 6e74 7269  more..  ~ contri\n-00000080: 6275 746f 7220 6c69 6365 6e73 6520 6167  butor license ag\n-00000090: 7265 656d 656e 7473 2e20 2053 6565 2074  reements.  See t\n-000000a0: 6865 204e 4f54 4943 4520 6669 6c65 2064  he NOTICE file d\n-000000b0: 6973 7472 6962 7574 6564 2077 6974 680d  istributed with.\n-000000c0: 0a20 207e 2074 6869 7320 776f 726b 2066  .  ~ this work f\n-000000d0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n-000000e0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n-000000f0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n-00000100: 6e65 7273 6869 702e 0d0a 2020 7e20 5468  nership...  ~ Th\n-00000110: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000120: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000130: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000140: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000150: 6e20 322e 300d 0a20 207e 2028 7468 6520  n 2.0..  ~ (the \n-00000160: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n-00000170: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n-00000180: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n-00000190: 636f 6d70 6c69 616e 6365 2077 6974 680d  compliance with.\n-000001a0: 0a20 207e 2074 6865 204c 6963 656e 7365  .  ~ the License\n-000001b0: 2e20 2059 6f75 206d 6179 206f 6274 6169  .  You may obtai\n-000001c0: 6e20 6120 636f 7079 206f 6620 7468 6520  n a copy of the \n-000001d0: 4c69 6365 6e73 6520 6174 0d0a 2020 7e0d  License at..  ~.\n-000001e0: 0a20 207e 2020 2020 2068 7474 703a 2f2f  .  ~     http://\n-000001f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000200: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000210: 322e 300d 0a20 207e 0d0a 2020 7e20 556e  2.0..  ~..  ~ Un\n-00000220: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n-00000230: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n-00000240: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n-00000250: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n-00000260: 650d 0a20 207e 2064 6973 7472 6962 7574  e..  ~ distribut\n-00000270: 6564 2075 6e64 6572 2074 6865 204c 6963  ed under the Lic\n-00000280: 656e 7365 2069 7320 6469 7374 7269 6275  ense is distribu\n-00000290: 7465 6420 6f6e 2061 6e20 2241 5320 4953  ted on an \"AS IS\n-000002a0: 2220 4241 5349 532c 0d0a 2020 7e20 5749  \" BASIS,..  ~ WI\n-000002b0: 5448 4f55 5420 5741 5252 414e 5449 4553  THOUT WARRANTIES\n-000002c0: 204f 5220 434f 4e44 4954 494f 4e53 204f   OR CONDITIONS O\n-000002d0: 4620 414e 5920 4b49 4e44 2c20 6569 7468  F ANY KIND, eith\n-000002e0: 6572 2065 7870 7265 7373 206f 7220 696d  er express or im\n-000002f0: 706c 6965 642e 0d0a 2020 7e20 5365 6520  plied...  ~ See \n-00000300: 7468 6520 4c69 6365 6e73 6520 666f 7220  the License for \n-00000310: 7468 6520 7370 6563 6966 6963 206c 616e  the specific lan\n-00000320: 6775 6167 6520 676f 7665 726e 696e 6720  guage governing \n-00000330: 7065 726d 6973 7369 6f6e 7320 616e 640d  permissions and.\n-00000340: 0a20 207e 206c 696d 6974 6174 696f 6e73  .  ~ limitations\n-00000350: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000360: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000370: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000380: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000390: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003a0: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-000003b0: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003c0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003d0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003e0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003f0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-00000400: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-00000410: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000420: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000430: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000440: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000450: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000460: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000470: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000480: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000490: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-000004a0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000004b0: 2d63 6f6e 6669 6763 656e 7465 723c 2f61  -configcenter</a\n-000004c0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000004d0: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-000004e0: 2f76 6572 7369 6f6e 3e0d 0a20 203c 2f70  /version>..  </p\n-000004f0: 6172 656e 743e 0d0a 2020 3c67 726f 7570  arent>..  <group\n-00000500: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-00000510: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-00000520: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000530: 626f 2d63 6f6e 6669 6763 656e 7465 722d  bo-configcenter-\n-00000540: 6e61 636f 733c 2f61 7274 6966 6163 7449  nacos</artifactI\n-00000550: 643e 0d0a 2020 3c76 6572 7369 6f6e 3e32  d>..  <version>2\n-00000560: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0d  .7.10</version>.\n-00000570: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n-00000580: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n-00000590: 6e61 6d65 3e0d 0a20 203c 6465 7363 7269  name>..  <descri\n-000005a0: 7074 696f 6e3e 5468 6520 6e61 636f 7320  ption>The nacos \n-000005b0: 696d 706c 656d 656e 7461 7469 6f6e 206f  implementation o\n-000005c0: 6620 7468 6520 636f 6e66 6967 2d63 656e  f the config-cen\n-000005d0: 7465 7220 6170 693c 2f64 6573 6372 6970  ter api</descrip\n-000005e0: 7469 6f6e 3e0d 0a20 203c 6c69 6365 6e73  tion>..  <licens\n-000005f0: 6573 3e0d 0a20 2020 203c 6c69 6365 6e73  es>..    <licens\n-00000600: 653e 0d0a 2020 2020 2020 3c6e 616d 653e  e>..      <name>\n-00000610: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n-00000620: 5665 7273 696f 6e20 322e 303c 2f6e 616d  Version 2.0</nam\n-00000630: 653e 0d0a 2020 2020 2020 3c75 726c 3e68  e>..      <url>h\n-00000640: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n-00000650: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n-00000660: 4345 4e53 452d 322e 303c 2f75 726c 3e0d  CENSE-2.0</url>.\n-00000670: 0a20 2020 2020 203c 6469 7374 7269 6275  .      <distribu\n-00000680: 7469 6f6e 3e72 6570 6f3c 2f64 6973 7472  tion>repo</distr\n-00000690: 6962 7574 696f 6e3e 0d0a 2020 2020 3c2f  ibution>..    </\n-000006a0: 6c69 6365 6e73 653e 0d0a 2020 3c2f 6c69  license>..  </li\n-000006b0: 6365 6e73 6573 3e0d 0a20 203c 6465 7065  censes>..  <depe\n-000006c0: 6e64 656e 6369 6573 3e0d 0a20 2020 203c  ndencies>..    <\n-000006d0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000006e0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-000006f0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-00000700: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000710: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000720: 636f 6d6d 6f6e 3c2f 6172 7469 6661 6374  common</artifact\n-00000730: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-00000740: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000750: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000760: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000770: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000780: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000790: 2020 2020 3c67 726f 7570 4964 3e63 6f6d      <groupId>com\n-000007a0: 2e61 6c69 6261 6261 2e6e 6163 6f73 3c2f  .alibaba.nacos</\n-000007b0: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-000007c0: 3c61 7274 6966 6163 7449 643e 6e61 636f  <artifactId>naco\n-000007d0: 732d 636c 6965 6e74 3c2f 6172 7469 6661  s-client</artifa\n-000007e0: 6374 4964 3e0d 0a20 2020 203c 2f64 6570  ctId>..    </dep\n-000007f0: 656e 6465 6e63 793e 0d0a 2020 3c2f 6465  endency>..  </de\n-00000800: 7065 6e64 656e 6369 6573 3e0d 0a3c 2f70  pendencies>..</p\n-00000810: 726f 6a65 6374 3e0d 0a                   roject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 7e20  F-8\"?>.<!--.  ~ \n+00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n+00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n+00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n+00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n+00000070: 7265 0a20 207e 2063 6f6e 7472 6962 7574  re.  ~ contribut\n+00000080: 6f72 206c 6963 656e 7365 2061 6772 6565  or license agree\n+00000090: 6d65 6e74 732e 2020 5365 6520 7468 6520  ments.  See the \n+000000a0: 4e4f 5449 4345 2066 696c 6520 6469 7374  NOTICE file dist\n+000000b0: 7269 6275 7465 6420 7769 7468 0a20 207e  ributed with.  ~\n+000000c0: 2074 6869 7320 776f 726b 2066 6f72 2061   this work for a\n+000000d0: 6464 6974 696f 6e61 6c20 696e 666f 726d  dditional inform\n+000000e0: 6174 696f 6e20 7265 6761 7264 696e 6720  ation regarding \n+000000f0: 636f 7079 7269 6768 7420 6f77 6e65 7273  copyright owners\n+00000100: 6869 702e 0a20 207e 2054 6865 2041 5346  hip..  ~ The ASF\n+00000110: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000120: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000130: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000140: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000150: 0a20 207e 2028 7468 6520 224c 6963 656e  .  ~ (the \"Licen\n+00000160: 7365 2229 3b20 796f 7520 6d61 7920 6e6f  se\"); you may no\n+00000170: 7420 7573 6520 7468 6973 2066 696c 6520  t use this file \n+00000180: 6578 6365 7074 2069 6e20 636f 6d70 6c69  except in compli\n+00000190: 616e 6365 2077 6974 680a 2020 7e20 7468  ance with.  ~ th\n+000001a0: 6520 4c69 6365 6e73 652e 2020 596f 7520  e License.  You \n+000001b0: 6d61 7920 6f62 7461 696e 2061 2063 6f70  may obtain a cop\n+000001c0: 7920 6f66 2074 6865 204c 6963 656e 7365  y of the License\n+000001d0: 2061 740a 2020 7e0a 2020 7e20 2020 2020   at.  ~.  ~     \n+000001e0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000001f0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+00000200: 4943 454e 5345 2d32 2e30 0a20 207e 0a20  ICENSE-2.0.  ~. \n+00000210: 207e 2055 6e6c 6573 7320 7265 7175 6972   ~ Unless requir\n+00000220: 6564 2062 7920 6170 706c 6963 6162 6c65  ed by applicable\n+00000230: 206c 6177 206f 7220 6167 7265 6564 2074   law or agreed t\n+00000240: 6f20 696e 2077 7269 7469 6e67 2c20 736f  o in writing, so\n+00000250: 6674 7761 7265 0a20 207e 2064 6973 7472  ftware.  ~ distr\n+00000260: 6962 7574 6564 2075 6e64 6572 2074 6865  ibuted under the\n+00000270: 204c 6963 656e 7365 2069 7320 6469 7374   License is dist\n+00000280: 7269 6275 7465 6420 6f6e 2061 6e20 2241  ributed on an \"A\n+00000290: 5320 4953 2220 4241 5349 532c 0a20 207e  S IS\" BASIS,.  ~\n+000002a0: 2057 4954 484f 5554 2057 4152 5241 4e54   WITHOUT WARRANT\n+000002b0: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n+000002c0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n+000002d0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n+000002e0: 2069 6d70 6c69 6564 2e0a 2020 7e20 5365   implied..  ~ Se\n+000002f0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n+00000300: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n+00000310: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n+00000320: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n+00000330: 640a 2020 7e20 6c69 6d69 7461 7469 6f6e  d.  ~ limitation\n+00000340: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000350: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000360: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000370: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000380: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000390: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+000003a0: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+000003b0: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003c0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003d0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003e0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003f0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+00000400: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+00000410: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000420: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000430: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000440: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000450: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000460: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000470: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000480: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000490: 6374 4964 3e64 7562 626f 2d63 6f6e 6669  ctId>dubbo-confi\n+000004a0: 6763 656e 7465 723c 2f61 7274 6966 6163  gcenter</artifac\n+000004b0: 7449 643e 0a20 2020 203c 7665 7273 696f  tId>.    <versio\n+000004c0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+000004d0: 6e3e 0a20 203c 2f70 6172 656e 743e 0a20  n>.  </parent>. \n+000004e0: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+000004f0: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000500: 7049 643e 0a20 203c 6172 7469 6661 6374  pId>.  <artifact\n+00000510: 4964 3e64 7562 626f 2d63 6f6e 6669 6763  Id>dubbo-configc\n+00000520: 656e 7465 722d 6e61 636f 733c 2f61 7274  enter-nacos</art\n+00000530: 6966 6163 7449 643e 0a20 203c 7665 7273  ifactId>.  <vers\n+00000540: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+00000550: 696f 6e3e 0a20 203c 6e61 6d65 3e24 7b70  ion>.  <name>${p\n+00000560: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n+00000570: 647d 3c2f 6e61 6d65 3e0a 2020 3c64 6573  d}</name>.  <des\n+00000580: 6372 6970 7469 6f6e 3e54 6865 206e 6163  cription>The nac\n+00000590: 6f73 2069 6d70 6c65 6d65 6e74 6174 696f  os implementatio\n+000005a0: 6e20 6f66 2074 6865 2063 6f6e 6669 672d  n of the config-\n+000005b0: 6365 6e74 6572 2061 7069 3c2f 6465 7363  center api</desc\n+000005c0: 7269 7074 696f 6e3e 0a20 203c 6c69 6365  ription>.  <lice\n+000005d0: 6e73 6573 3e0a 2020 2020 3c6c 6963 656e  nses>.    <licen\n+000005e0: 7365 3e0a 2020 2020 2020 3c6e 616d 653e  se>.      <name>\n+000005f0: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n+00000600: 5665 7273 696f 6e20 322e 303c 2f6e 616d  Version 2.0</nam\n+00000610: 653e 0a20 2020 2020 203c 7572 6c3e 6874  e>.      <url>ht\n+00000620: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n+00000630: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n+00000640: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0a20  ENSE-2.0</url>. \n+00000650: 2020 2020 203c 6469 7374 7269 6275 7469       <distributi\n+00000660: 6f6e 3e72 6570 6f3c 2f64 6973 7472 6962  on>repo</distrib\n+00000670: 7574 696f 6e3e 0a20 2020 203c 2f6c 6963  ution>.    </lic\n+00000680: 656e 7365 3e0a 2020 3c2f 6c69 6365 6e73  ense>.  </licens\n+00000690: 6573 3e0a 2020 3c64 6570 656e 6465 6e63  es>.  <dependenc\n+000006a0: 6965 733e 0a20 2020 203c 6465 7065 6e64  ies>.    <depend\n+000006b0: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+000006c0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n+000006d0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0a  dubbo</groupId>.\n+000006e0: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+000006f0: 643e 6475 6262 6f2d 636f 6d6d 6f6e 3c2f  d>dubbo-common</\n+00000700: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000710: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n+00000720: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n+00000730: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0a20  ion}</version>. \n+00000740: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000750: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000760: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000770: 3e63 6f6d 2e61 6c69 6261 6261 2e6e 6163  >com.alibaba.nac\n+00000780: 6f73 3c2f 6772 6f75 7049 643e 0a20 2020  os</groupId>.   \n+00000790: 2020 203c 6172 7469 6661 6374 4964 3e6e     <artifactId>n\n+000007a0: 6163 6f73 2d63 6c69 656e 743c 2f61 7274  acos-client</art\n+000007b0: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+000007c0: 6570 656e 6465 6e63 793e 0a20 203c 2f64  ependency>.  </d\n+000007d0: 6570 656e 6465 6e63 6965 733e 0a3c 2f70  ependencies>.</p\n+000007e0: 726f 6a65 6374 3e0a                      roject>.\n"}, {"source1": "org/apache/dubbo/configcenter/support/nacos/NacosConfigServiceWrapper.java", "source2": "org/apache/dubbo/configcenter/support/nacos/NacosConfigServiceWrapper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.configcenter.support.nacos;\n-\n-import com.alibaba.nacos.api.config.ConfigService;\n-import com.alibaba.nacos.api.config.listener.Listener;\n-import com.alibaba.nacos.api.exception.NacosException;\n-\n-public class NacosConfigServiceWrapper {\n-\n-    private static final String INNERCLASS_SYMBOL = \"$\";\n-\n-    private static final String INNERCLASS_COMPATIBLE_SYMBOL = \"___\";\n-\n-    private ConfigService configService;\n-\n-\n-    public NacosConfigServiceWrapper(ConfigService configService) {\n-        this.configService = configService;\n-    }\n-\n-    public ConfigService getConfigService() {\n-        return configService;\n-    }\n-\n-    public void addListener(String dataId, String group, Listener listener) throws NacosException {\n-        configService.addListener(handleInnerSymbol(dataId), handleInnerSymbol(group), listener);\n-    }\n-\n-    public String getConfig(String dataId, String group, long timeout) throws NacosException {\n-        return configService.getConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), timeout);\n-    }\n-\n-    public boolean publishConfig(String dataId, String group, String content) throws NacosException {\n-        return configService.publishConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), content);\n-    }\n-\n-    public boolean removeConfig(String dataId, String group) throws NacosException {\n-        return configService.removeConfig(handleInnerSymbol(dataId), handleInnerSymbol(group));\n-    }\n-\n-    /**\n-     * see {@link com.alibaba.nacos.client.config.utils.ParamUtils#isValid(java.lang.String)}\n-     */\n-    private String handleInnerSymbol(String dataId) {\n-        if (dataId == null) {\n-            return null;\n-        }\n-        return dataId.replace(INNERCLASS_SYMBOL, INNERCLASS_COMPATIBLE_SYMBOL);\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.configcenter.support.nacos;\r\n+\r\n+import com.alibaba.nacos.api.config.ConfigService;\r\n+import com.alibaba.nacos.api.config.listener.Listener;\r\n+import com.alibaba.nacos.api.exception.NacosException;\r\n+\r\n+public class NacosConfigServiceWrapper {\r\n+\r\n+    private static final String INNERCLASS_SYMBOL = \"$\";\r\n+\r\n+    private static final String INNERCLASS_COMPATIBLE_SYMBOL = \"___\";\r\n+\r\n+    private ConfigService configService;\r\n+\r\n+\r\n+    public NacosConfigServiceWrapper(ConfigService configService) {\r\n+        this.configService = configService;\r\n+    }\r\n+\r\n+    public ConfigService getConfigService() {\r\n+        return configService;\r\n+    }\r\n+\r\n+    public void addListener(String dataId, String group, Listener listener) throws NacosException {\r\n+        configService.addListener(handleInnerSymbol(dataId), handleInnerSymbol(group), listener);\r\n+    }\r\n+\r\n+    public String getConfig(String dataId, String group, long timeout) throws NacosException {\r\n+        return configService.getConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), timeout);\r\n+    }\r\n+\r\n+    public boolean publishConfig(String dataId, String group, String content) throws NacosException {\r\n+        return configService.publishConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), content);\r\n+    }\r\n+\r\n+    public boolean removeConfig(String dataId, String group) throws NacosException {\r\n+        return configService.removeConfig(handleInnerSymbol(dataId), handleInnerSymbol(group));\r\n+    }\r\n+\r\n+    /**\r\n+     * see {@link com.alibaba.nacos.client.config.utils.ParamUtils#isValid(java.lang.String)}\r\n+     */\r\n+    private String handleInnerSymbol(String dataId) {\r\n+        if (dataId == null) {\r\n+            return null;\r\n+        }\r\n+        return dataId.replace(INNERCLASS_SYMBOL, INNERCLASS_COMPATIBLE_SYMBOL);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java", "source2": "org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,366 +1,366 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.configcenter.support.nacos;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import com.alibaba.fastjson.JSON;\n-import com.alibaba.fastjson.JSONArray;\n-import com.alibaba.fastjson.JSONObject;\n-import com.alibaba.nacos.api.NacosFactory;\n-import com.alibaba.nacos.api.PropertyKeyConst;\n-import com.alibaba.nacos.api.config.ConfigService;\n-import com.alibaba.nacos.api.config.listener.AbstractSharedListener;\n-import com.alibaba.nacos.api.exception.NacosException;\n-import com.alibaba.nacos.client.config.http.HttpAgent;\n-import com.alibaba.nacos.client.config.impl.HttpSimpleClient;\n-\n-import java.io.IOException;\n-import java.lang.reflect.Field;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Properties;\n-import java.util.Set;\n-import java.util.SortedSet;\n-import java.util.TreeSet;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.CopyOnWriteArraySet;\n-import java.util.concurrent.Executor;\n-import java.util.stream.Stream;\n-\n-import static com.alibaba.nacos.api.PropertyKeyConst.ENCODE;\n-import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_LOAD_CACHE_AT_START;\n-import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;\n-import static com.alibaba.nacos.client.naming.utils.UtilAndComs.NACOS_NAMING_LOG_NAME;\n-import static java.util.Arrays.asList;\n-import static java.util.Collections.emptyList;\n-import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\n-import static org.apache.dubbo.common.utils.StringConstantFieldValuePredicate.of;\n-import static org.apache.dubbo.common.utils.StringUtils.HYPHEN_CHAR;\n-import static org.apache.dubbo.common.utils.StringUtils.SLASH_CHAR;\n-import static org.apache.dubbo.common.utils.StringUtils.isBlank;\n-\n-/**\n- * The nacos implementation of {@link DynamicConfiguration}\n- */\n-public class NacosDynamicConfiguration implements DynamicConfiguration {\n-\n-    private static final String GET_CONFIG_KEYS_PATH = \"/v1/cs/configs\";\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-    /**\n-     * the default timeout in millis to get config from nacos\n-     */\n-    private static final long DEFAULT_TIMEOUT = 5000L;\n-\n-    private Properties nacosProperties;\n-\n-    /**\n-     * The nacos configService\n-     */\n-    private final NacosConfigServiceWrapper configService;\n-\n-    private HttpAgent httpAgent;\n-\n-    /**\n-     * The map store the key to {@link NacosConfigListener} mapping\n-     */\n-    private final ConcurrentMap<String, NacosConfigListener> watchListenerMap;\n-\n-    NacosDynamicConfiguration(URL url) {\n-        this.nacosProperties = buildNacosProperties(url);\n-        this.configService = buildConfigService(url);\n-        this.httpAgent = getHttpAgent(configService.getConfigService());\n-        watchListenerMap = new ConcurrentHashMap<>();\n-    }\n-\n-    private NacosConfigServiceWrapper buildConfigService(URL url) {\n-        ConfigService configService = null;\n-        try {\n-            configService = NacosFactory.createConfigService(nacosProperties);\n-        } catch (NacosException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getErrMsg(), e);\n-            }\n-            throw new IllegalStateException(e);\n-        }\n-        return new NacosConfigServiceWrapper(configService);\n-    }\n-\n-    private HttpAgent getHttpAgent(ConfigService configService) {\n-        HttpAgent agent = null;\n-        try {\n-            Field field = configService.getClass().getDeclaredField(\"agent\");\n-            ReflectUtils.makeAccessible(field);\n-            agent = (HttpAgent) field.get(configService);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e);\n-        }\n-        return agent;\n-    }\n-\n-    private Properties buildNacosProperties(URL url) {\n-        Properties properties = new Properties();\n-        setServerAddr(url, properties);\n-        setProperties(url, properties);\n-        return properties;\n-    }\n-\n-    private void setServerAddr(URL url, Properties properties) {\n-        StringBuilder serverAddrBuilder =\n-                new StringBuilder(url.getHost()) // Host\n-                        .append(\":\")\n-                        .append(url.getPort()); // Port\n-\n-        // Append backup parameter as other servers\n-        String backup = url.getParameter(BACKUP_KEY);\n-        if (backup != null) {\n-            serverAddrBuilder.append(\",\").append(backup);\n-        }\n-        String serverAddr = serverAddrBuilder.toString();\n-        properties.put(SERVER_ADDR, serverAddr);\n-    }\n-\n-    private static void setProperties(URL url, Properties properties) {\n-        putPropertyIfAbsent(url, properties, NACOS_NAMING_LOG_NAME);\n-\n-        // Get the parameters from constants\n-        Map<String, String> parameters = url.getParameters(of(PropertyKeyConst.class));\n-        // Put all parameters\n-        properties.putAll(parameters);\n-\n-        putPropertyIfAbsent(url, properties, NAMING_LOAD_CACHE_AT_START, \"true\");\n-    }\n-\n-    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName) {\n-        String propertyValue = url.getParameter(propertyName);\n-        if (StringUtils.isNotEmpty(propertyValue)) {\n-            properties.setProperty(propertyName, propertyValue);\n-        }\n-    }\n-\n-    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName, String defaultValue) {\n-        String propertyValue = url.getParameter(propertyName);\n-        if (StringUtils.isNotEmpty(propertyValue)) {\n-            properties.setProperty(propertyName, propertyValue);\n-        } else {\n-            properties.setProperty(propertyName, defaultValue);\n-        }\n-    }\n-\n-    /**\n-     * Ignores the group parameter.\n-     *\n-     * @param key   property key the native listener will listen on\n-     * @param group to distinguish different set of properties\n-     * @return\n-     */\n-    private NacosConfigListener createTargetListener(String key, String group) {\n-        NacosConfigListener configListener = new NacosConfigListener();\n-        configListener.fillContext(key, group);\n-        return configListener;\n-    }\n-\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-        String resolvedGroup = resolveGroup(group);\n-        String listenerKey = buildListenerKey(key, group);\n-        NacosConfigListener nacosConfigListener = watchListenerMap.computeIfAbsent(listenerKey, k -> createTargetListener(key, resolvedGroup));\n-        nacosConfigListener.addListener(listener);\n-        try {\n-            configService.addListener(key, resolvedGroup, nacosConfigListener);\n-        } catch (NacosException e) {\n-            logger.error(e.getMessage());\n-        }\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-        String listenerKey = buildListenerKey(key, group);\n-        NacosConfigListener eventListener = watchListenerMap.get(listenerKey);\n-        if (eventListener != null) {\n-            eventListener.removeListener(listener);\n-        }\n-    }\n-\n-    @Override\n-    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\n-        String resolvedGroup = resolveGroup(group);\n-        try {\n-            long nacosTimeout = timeout < 0 ? getDefaultTimeout() : timeout;\n-            if (StringUtils.isEmpty(resolvedGroup)) {\n-                resolvedGroup = DEFAULT_GROUP;\n-            }\n-            return configService.getConfig(key, resolvedGroup, nacosTimeout);\n-        } catch (NacosException e) {\n-            logger.error(e.getMessage());\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        try {\n-            return configService.getConfig(key, DEFAULT_GROUP, getDefaultTimeout());\n-        } catch (NacosException e) {\n-            logger.error(e.getMessage());\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public boolean publishConfig(String key, String group, String content) {\n-        boolean published = false;\n-        String resolvedGroup = resolveGroup(group);\n-        try {\n-            published = configService.publishConfig(key, resolvedGroup, content);\n-        } catch (NacosException e) {\n-            logger.error(e.getErrMsg(), e);\n-        }\n-        return published;\n-    }\n-\n-    @Override\n-    public long getDefaultTimeout() {\n-        return DEFAULT_TIMEOUT;\n-    }\n-\n-    /**\n-     * TODO Nacos does not support atomic update of the value mapped to a key.\n-     *\n-     * @param group the specified group\n-     * @return\n-     */\n-    @Override\n-    public SortedSet<String> getConfigKeys(String group) {\n-        // TODO use Nacos Client API to replace HTTP Open API\n-        SortedSet<String> keys = new TreeSet<>();\n-        try {\n-            List<String> paramsValues = asList(\n-                    \"search\", \"accurate\",\n-                    \"dataId\", \"\",\n-                    \"group\", resolveGroup(group),\n-                    \"pageNo\", \"1\",\n-                    \"pageSize\", String.valueOf(Integer.MAX_VALUE)\n-            );\n-            String encoding = getProperty(ENCODE, \"UTF-8\");\n-            HttpSimpleClient.HttpResult result = httpAgent.httpGet(GET_CONFIG_KEYS_PATH, emptyList(), paramsValues, encoding, 5 * 1000);\n-            Stream<String> keysStream = toKeysStream(result.content);\n-            keysStream.forEach(keys::add);\n-        } catch (IOException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getMessage(), e);\n-            }\n-        }\n-        return keys;\n-    }\n-\n-    @Override\n-    public boolean removeConfig(String key, String group) {\n-        boolean removed = false;\n-        try {\n-            removed = configService.removeConfig(key, group);\n-        } catch (NacosException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getMessage(), e);\n-            }\n-        }\n-        return removed;\n-    }\n-\n-    private Stream<String> toKeysStream(String content) {\n-        JSONObject jsonObject = JSON.parseObject(content);\n-        JSONArray pageItems = jsonObject.getJSONArray(\"pageItems\");\n-        return pageItems.stream()\n-                .map(object -> (JSONObject) object)\n-                .map(json -> json.getString(\"dataId\"));\n-    }\n-\n-    private String getProperty(String name, String defaultValue) {\n-        return nacosProperties.getProperty(name, defaultValue);\n-    }\n-\n-    public class NacosConfigListener extends AbstractSharedListener {\n-\n-        private Set<ConfigurationListener> listeners = new CopyOnWriteArraySet<>();\n-        /**\n-         * cache data to store old value\n-         */\n-        private Map<String, String> cacheData = new ConcurrentHashMap<>();\n-\n-        @Override\n-        public Executor getExecutor() {\n-            return null;\n-        }\n-\n-        /**\n-         * receive\n-         *\n-         * @param dataId     data ID\n-         * @param group      group\n-         * @param configInfo content\n-         */\n-        @Override\n-        public void innerReceive(String dataId, String group, String configInfo) {\n-            String oldValue = cacheData.get(dataId);\n-            ConfigChangedEvent event = new ConfigChangedEvent(dataId, group, configInfo, getChangeType(configInfo, oldValue));\n-            if (configInfo == null) {\n-                cacheData.remove(dataId);\n-            } else {\n-                cacheData.put(dataId, configInfo);\n-            }\n-            listeners.forEach(listener -> listener.process(event));\n-        }\n-\n-        void addListener(ConfigurationListener configurationListener) {\n-\n-            this.listeners.add(configurationListener);\n-        }\n-\n-        void removeListener(ConfigurationListener configurationListener) {\n-            this.listeners.remove(configurationListener);\n-        }\n-\n-        private ConfigChangeType getChangeType(String configInfo, String oldValue) {\n-            if (StringUtils.isBlank(configInfo)) {\n-                return ConfigChangeType.DELETED;\n-            }\n-            if (StringUtils.isBlank(oldValue)) {\n-                return ConfigChangeType.ADDED;\n-            }\n-            return ConfigChangeType.MODIFIED;\n-        }\n-    }\n-\n-    protected String buildListenerKey(String key, String group) {\n-        return key + HYPHEN_CHAR + resolveGroup(group);\n-    }\n-\n-    protected String resolveGroup(String group) {\n-        return isBlank(group) ? group : group.replace(SLASH_CHAR, HYPHEN_CHAR);\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+\r\n+package org.apache.dubbo.configcenter.support.nacos;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+import com.alibaba.fastjson.JSONArray;\r\n+import com.alibaba.fastjson.JSONObject;\r\n+import com.alibaba.nacos.api.NacosFactory;\r\n+import com.alibaba.nacos.api.PropertyKeyConst;\r\n+import com.alibaba.nacos.api.config.ConfigService;\r\n+import com.alibaba.nacos.api.config.listener.AbstractSharedListener;\r\n+import com.alibaba.nacos.api.exception.NacosException;\r\n+import com.alibaba.nacos.client.config.http.HttpAgent;\r\n+import com.alibaba.nacos.client.config.impl.HttpSimpleClient;\r\n+\r\n+import java.io.IOException;\r\n+import java.lang.reflect.Field;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Properties;\r\n+import java.util.Set;\r\n+import java.util.SortedSet;\r\n+import java.util.TreeSet;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.CopyOnWriteArraySet;\r\n+import java.util.concurrent.Executor;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.ENCODE;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_LOAD_CACHE_AT_START;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;\r\n+import static com.alibaba.nacos.client.naming.utils.UtilAndComs.NACOS_NAMING_LOG_NAME;\r\n+import static java.util.Arrays.asList;\r\n+import static java.util.Collections.emptyList;\r\n+import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\r\n+import static org.apache.dubbo.common.utils.StringConstantFieldValuePredicate.of;\r\n+import static org.apache.dubbo.common.utils.StringUtils.HYPHEN_CHAR;\r\n+import static org.apache.dubbo.common.utils.StringUtils.SLASH_CHAR;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isBlank;\r\n+\r\n+/**\r\n+ * The nacos implementation of {@link DynamicConfiguration}\r\n+ */\r\n+public class NacosDynamicConfiguration implements DynamicConfiguration {\r\n+\r\n+    private static final String GET_CONFIG_KEYS_PATH = \"/v1/cs/configs\";\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+    /**\r\n+     * the default timeout in millis to get config from nacos\r\n+     */\r\n+    private static final long DEFAULT_TIMEOUT = 5000L;\r\n+\r\n+    private Properties nacosProperties;\r\n+\r\n+    /**\r\n+     * The nacos configService\r\n+     */\r\n+    private final NacosConfigServiceWrapper configService;\r\n+\r\n+    private HttpAgent httpAgent;\r\n+\r\n+    /**\r\n+     * The map store the key to {@link NacosConfigListener} mapping\r\n+     */\r\n+    private final ConcurrentMap<String, NacosConfigListener> watchListenerMap;\r\n+\r\n+    NacosDynamicConfiguration(URL url) {\r\n+        this.nacosProperties = buildNacosProperties(url);\r\n+        this.configService = buildConfigService(url);\r\n+        this.httpAgent = getHttpAgent(configService.getConfigService());\r\n+        watchListenerMap = new ConcurrentHashMap<>();\r\n+    }\r\n+\r\n+    private NacosConfigServiceWrapper buildConfigService(URL url) {\r\n+        ConfigService configService = null;\r\n+        try {\r\n+            configService = NacosFactory.createConfigService(nacosProperties);\r\n+        } catch (NacosException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getErrMsg(), e);\r\n+            }\r\n+            throw new IllegalStateException(e);\r\n+        }\r\n+        return new NacosConfigServiceWrapper(configService);\r\n+    }\r\n+\r\n+    private HttpAgent getHttpAgent(ConfigService configService) {\r\n+        HttpAgent agent = null;\r\n+        try {\r\n+            Field field = configService.getClass().getDeclaredField(\"agent\");\r\n+            ReflectUtils.makeAccessible(field);\r\n+            agent = (HttpAgent) field.get(configService);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e);\r\n+        }\r\n+        return agent;\r\n+    }\r\n+\r\n+    private Properties buildNacosProperties(URL url) {\r\n+        Properties properties = new Properties();\r\n+        setServerAddr(url, properties);\r\n+        setProperties(url, properties);\r\n+        return properties;\r\n+    }\r\n+\r\n+    private void setServerAddr(URL url, Properties properties) {\r\n+        StringBuilder serverAddrBuilder =\r\n+                new StringBuilder(url.getHost()) // Host\r\n+                        .append(\":\")\r\n+                        .append(url.getPort()); // Port\r\n+\r\n+        // Append backup parameter as other servers\r\n+        String backup = url.getParameter(BACKUP_KEY);\r\n+        if (backup != null) {\r\n+            serverAddrBuilder.append(\",\").append(backup);\r\n+        }\r\n+        String serverAddr = serverAddrBuilder.toString();\r\n+        properties.put(SERVER_ADDR, serverAddr);\r\n+    }\r\n+\r\n+    private static void setProperties(URL url, Properties properties) {\r\n+        putPropertyIfAbsent(url, properties, NACOS_NAMING_LOG_NAME);\r\n+\r\n+        // Get the parameters from constants\r\n+        Map<String, String> parameters = url.getParameters(of(PropertyKeyConst.class));\r\n+        // Put all parameters\r\n+        properties.putAll(parameters);\r\n+\r\n+        putPropertyIfAbsent(url, properties, NAMING_LOAD_CACHE_AT_START, \"true\");\r\n+    }\r\n+\r\n+    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName) {\r\n+        String propertyValue = url.getParameter(propertyName);\r\n+        if (StringUtils.isNotEmpty(propertyValue)) {\r\n+            properties.setProperty(propertyName, propertyValue);\r\n+        }\r\n+    }\r\n+\r\n+    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName, String defaultValue) {\r\n+        String propertyValue = url.getParameter(propertyName);\r\n+        if (StringUtils.isNotEmpty(propertyValue)) {\r\n+            properties.setProperty(propertyName, propertyValue);\r\n+        } else {\r\n+            properties.setProperty(propertyName, defaultValue);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Ignores the group parameter.\r\n+     *\r\n+     * @param key   property key the native listener will listen on\r\n+     * @param group to distinguish different set of properties\r\n+     * @return\r\n+     */\r\n+    private NacosConfigListener createTargetListener(String key, String group) {\r\n+        NacosConfigListener configListener = new NacosConfigListener();\r\n+        configListener.fillContext(key, group);\r\n+        return configListener;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+        String resolvedGroup = resolveGroup(group);\r\n+        String listenerKey = buildListenerKey(key, group);\r\n+        NacosConfigListener nacosConfigListener = watchListenerMap.computeIfAbsent(listenerKey, k -> createTargetListener(key, resolvedGroup));\r\n+        nacosConfigListener.addListener(listener);\r\n+        try {\r\n+            configService.addListener(key, resolvedGroup, nacosConfigListener);\r\n+        } catch (NacosException e) {\r\n+            logger.error(e.getMessage());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        String listenerKey = buildListenerKey(key, group);\r\n+        NacosConfigListener eventListener = watchListenerMap.get(listenerKey);\r\n+        if (eventListener != null) {\r\n+            eventListener.removeListener(listener);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\r\n+        String resolvedGroup = resolveGroup(group);\r\n+        try {\r\n+            long nacosTimeout = timeout < 0 ? getDefaultTimeout() : timeout;\r\n+            if (StringUtils.isEmpty(resolvedGroup)) {\r\n+                resolvedGroup = DEFAULT_GROUP;\r\n+            }\r\n+            return configService.getConfig(key, resolvedGroup, nacosTimeout);\r\n+        } catch (NacosException e) {\r\n+            logger.error(e.getMessage());\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        try {\r\n+            return configService.getConfig(key, DEFAULT_GROUP, getDefaultTimeout());\r\n+        } catch (NacosException e) {\r\n+            logger.error(e.getMessage());\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean publishConfig(String key, String group, String content) {\r\n+        boolean published = false;\r\n+        String resolvedGroup = resolveGroup(group);\r\n+        try {\r\n+            published = configService.publishConfig(key, resolvedGroup, content);\r\n+        } catch (NacosException e) {\r\n+            logger.error(e.getErrMsg(), e);\r\n+        }\r\n+        return published;\r\n+    }\r\n+\r\n+    @Override\r\n+    public long getDefaultTimeout() {\r\n+        return DEFAULT_TIMEOUT;\r\n+    }\r\n+\r\n+    /**\r\n+     * TODO Nacos does not support atomic update of the value mapped to a key.\r\n+     *\r\n+     * @param group the specified group\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public SortedSet<String> getConfigKeys(String group) {\r\n+        // TODO use Nacos Client API to replace HTTP Open API\r\n+        SortedSet<String> keys = new TreeSet<>();\r\n+        try {\r\n+            List<String> paramsValues = asList(\r\n+                    \"search\", \"accurate\",\r\n+                    \"dataId\", \"\",\r\n+                    \"group\", resolveGroup(group),\r\n+                    \"pageNo\", \"1\",\r\n+                    \"pageSize\", String.valueOf(Integer.MAX_VALUE)\r\n+            );\r\n+            String encoding = getProperty(ENCODE, \"UTF-8\");\r\n+            HttpSimpleClient.HttpResult result = httpAgent.httpGet(GET_CONFIG_KEYS_PATH, emptyList(), paramsValues, encoding, 5 * 1000);\r\n+            Stream<String> keysStream = toKeysStream(result.content);\r\n+            keysStream.forEach(keys::add);\r\n+        } catch (IOException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+        return keys;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean removeConfig(String key, String group) {\r\n+        boolean removed = false;\r\n+        try {\r\n+            removed = configService.removeConfig(key, group);\r\n+        } catch (NacosException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+        return removed;\r\n+    }\r\n+\r\n+    private Stream<String> toKeysStream(String content) {\r\n+        JSONObject jsonObject = JSON.parseObject(content);\r\n+        JSONArray pageItems = jsonObject.getJSONArray(\"pageItems\");\r\n+        return pageItems.stream()\r\n+                .map(object -> (JSONObject) object)\r\n+                .map(json -> json.getString(\"dataId\"));\r\n+    }\r\n+\r\n+    private String getProperty(String name, String defaultValue) {\r\n+        return nacosProperties.getProperty(name, defaultValue);\r\n+    }\r\n+\r\n+    public class NacosConfigListener extends AbstractSharedListener {\r\n+\r\n+        private Set<ConfigurationListener> listeners = new CopyOnWriteArraySet<>();\r\n+        /**\r\n+         * cache data to store old value\r\n+         */\r\n+        private Map<String, String> cacheData = new ConcurrentHashMap<>();\r\n+\r\n+        @Override\r\n+        public Executor getExecutor() {\r\n+            return null;\r\n+        }\r\n+\r\n+        /**\r\n+         * receive\r\n+         *\r\n+         * @param dataId     data ID\r\n+         * @param group      group\r\n+         * @param configInfo content\r\n+         */\r\n+        @Override\r\n+        public void innerReceive(String dataId, String group, String configInfo) {\r\n+            String oldValue = cacheData.get(dataId);\r\n+            ConfigChangedEvent event = new ConfigChangedEvent(dataId, group, configInfo, getChangeType(configInfo, oldValue));\r\n+            if (configInfo == null) {\r\n+                cacheData.remove(dataId);\r\n+            } else {\r\n+                cacheData.put(dataId, configInfo);\r\n+            }\r\n+            listeners.forEach(listener -> listener.process(event));\r\n+        }\r\n+\r\n+        void addListener(ConfigurationListener configurationListener) {\r\n+\r\n+            this.listeners.add(configurationListener);\r\n+        }\r\n+\r\n+        void removeListener(ConfigurationListener configurationListener) {\r\n+            this.listeners.remove(configurationListener);\r\n+        }\r\n+\r\n+        private ConfigChangeType getChangeType(String configInfo, String oldValue) {\r\n+            if (StringUtils.isBlank(configInfo)) {\r\n+                return ConfigChangeType.DELETED;\r\n+            }\r\n+            if (StringUtils.isBlank(oldValue)) {\r\n+                return ConfigChangeType.ADDED;\r\n+            }\r\n+            return ConfigChangeType.MODIFIED;\r\n+        }\r\n+    }\r\n+\r\n+    protected String buildListenerKey(String key, String group) {\r\n+        return key + HYPHEN_CHAR + resolveGroup(group);\r\n+    }\r\n+\r\n+    protected String resolveGroup(String group) {\r\n+        return isBlank(group) ? group : group.replace(SLASH_CHAR, HYPHEN_CHAR);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.configcenter.support.nacos;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-\n-import com.alibaba.nacos.api.PropertyKeyConst;\n-\n-/**\n- * The nacos implementation of {@link AbstractDynamicConfigurationFactory}\n- */\n-public class NacosDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\n-\n-    @Override\n-    protected DynamicConfiguration createDynamicConfiguration(URL url) {\n-        URL nacosURL = url;\n-        if (CommonConstants.DUBBO.equals(url.getParameter(PropertyKeyConst.NAMESPACE))) {\n-            // Nacos use empty string as default name space, replace default namespace \"dubbo\" to \"\"\n-            nacosURL = url.removeParameter(PropertyKeyConst.NAMESPACE);\n-        }\n-        return new NacosDynamicConfiguration(nacosURL);\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+\r\n+package org.apache.dubbo.configcenter.support.nacos;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+\r\n+import com.alibaba.nacos.api.PropertyKeyConst;\r\n+\r\n+/**\r\n+ * The nacos implementation of {@link AbstractDynamicConfigurationFactory}\r\n+ */\r\n+public class NacosDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\r\n+\r\n+    @Override\r\n+    protected DynamicConfiguration createDynamicConfiguration(URL url) {\r\n+        URL nacosURL = url;\r\n+        if (CommonConstants.DUBBO.equals(url.getParameter(PropertyKeyConst.NAMESPACE))) {\r\n+            // Nacos use empty string as default name space, replace default namespace \"dubbo\" to \"\"\r\n+            nacosURL = url.removeParameter(PropertyKeyConst.NAMESPACE);\r\n+        }\r\n+        return new NacosDynamicConfiguration(nacosURL);\r\n+    }\r\n+}\r\n"}]}
