0x1ef690c40000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000021a00000000000000000000000000000000000000000000000000000000000000084000000000000000000000000593da32cdd2fd6cb7ec1ca04db2f590b9870fe1a00000000000000000000000058dcedfb8291b2da55c523d3d9ef90409c1535ef00000000000000000000000058dcedfb8291b2da55c523d3d9ef90409c1535ef00000000000000000000000058dcedfb8291b2da55c523d3d9ef90409c1535ef00000000000000000000000058dcedfb8291b2da55c523d3d9ef90409c1535ef00000000000000000000000058d5b35d791c280ddbd9b701efef8fcf9a88f30000000000000000000000000058d5b35d791c280ddbd9b701efef8fcf9a88f30000000000000000000000000058d5b35d791c280ddbd9b701efef8fcf9a88f30000000000000000000000000054f9c72d128b4bbc7ff7564cbe0f193aba7bb14600000000000000000000000054f9c72d128b4bbc7ff7564cbe0f193aba7bb14600000000000000000000000054f9c72d128b4bbc7ff7564cbe0f193aba7bb14600000000000000000000000054f9c72d128b4bbc7ff7564cbe0f193aba7bb14600000000000000000000000054f9c72d128b4bbc7ff7564cbe0f193aba7bb14600000000000000000000000054f9c72d128b4bbc7ff7564cbe0f193aba7bb14600000000000000000000000054f9c72d128b4bbc7ff7564cbe0f193aba7bb1460000000000000000000000004e2781e3ad94b2dfcf34c51de0d8e9358c69f2960000000000000000000000004e2781e3ad94b2dfcf34c51de0d8e9358c69f2960000000000000000000000004db91d7c8ed546040012d074d8100e31f20adc62000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000495f947276749ce646f68ac8c248420045cb7b5e000000000000000000000000446f86cd99d4c0f29380a2d8abde7822190c26bb000000000000000000000000446f86cd99d4c0f29380a2d8abde7822190c26bb00000000000000000000000043bdd9b2337fb8f9b65e3e7e4b89bb220da0a20600000000000000000000000041be64ae9acda8ffbb6814b4dc4a271de87949b3000000000000000000000000375ea781c49eafedde07afe6196f885761f166ae000000000000000000000000350b4cdd07cc5836e30086b993d27983465ec014000000000000000000000000350b4cdd07cc5836e30086b993d27983465ec014000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a000000000000000000000000333700c270b669e6c9c559d2d3de8c56c984228a00000000000000000000000032bf213df29fe5401d040c284c5a3d5f616b457f00000000000000000000000032b249ba9fb9d79f536402dfd71190866433a77700000000000000000000000031a7d612788277457c03e34ecd4efe4d6e6a8e3900000000000000000000000031a7d612788277457c03e34ecd4efe4d6e6a8e3900000000000000000000000031a7d612788277457c03e34ecd4efe4d6e6a8e3900000000000000000000000031a7d612788277457c03e34ecd4efe4d6e6a8e39000000000000000000000000300ef850ca7754437cfce52fe0c47e5f890fb183000000000000000000000000300ef850ca7754437cfce52fe0c47e5f890fb1830000000000000000000000002f35783908cbda09e715608824d097fe2b50a4df0000000000000000000000002f35783908cbda09e715608824d097fe2b50a4df0000000000000000000000002b841d4b7ca08d45cc3de814de08850dc3008c430000000000000000000000001f867e8d47b416e3d4bffd3012e6a27c274db0ce0000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001eb4c9921c143e9926a2e592b828005a63529da50000000000000000000000001b680acb015dce9aaa607994f918f50b04f16f1d00000000000000000000000017aad3fcf1703ef7908777084ec24e55bc58ae3300000000000000000000000017aad3fcf1703ef7908777084ec24e55bc58ae3300000000000000000000000015ea13b66b3badb355fcfa6317c3b965678250370000000000000000000000001562e3428ed1d6cdbdb1695cc505aba33ab4ea5e0000000000000000000000000bb3e1c80c0ffde985fb0ec6392aa18a1d2de40e0000000000000000000000000a29f80099e7c7bf9a87c329d687686645fed0730000000000000000000000000a29f80099e7c7bf9a87c329d687686645fed0730000000000000000000000000a1e21c169ff261fe6f370068a4f71c25f096a550000000000000000000000000a1e21c169ff261fe6f370068a4f71c25f096a550000000000000000000000000974e6c435c18ddfbbc1f500ede24f99c3cf07f200000000000000000000000006b6553b18d9137cffc481c48251c4b07579a70c000000000000000000000000066f2d5ead7951f0d0038c19affd500b9f02c0e5000000000000000000000000066f2d5ead7951f0d0038c19affd500b9f02c0e50000000000000000000000000574c34385b039c2bb8db898f61b7767024a944900000000000000000000000004dfdf94c0e5e1d9101a6840e8476fbfce3fe7eb00000000000000000000000004dfdf94c0e5e1d9101a6840e8476fbfce3fe7eb00000000000000000000000004dfdf94c0e5e1d9101a6840e8476fbfce3fe7eb00000000000000000000000004dfdf94c0e5e1d9101a6840e8476fbfce3fe7eb00000000000000000000000004dfdf94c0e5e1d9101a6840e8476fbfce3fe7eb00000000000000000000000004dfdf94c0e5e1d9101a6840e8476fbfce3fe7eb000000000000000000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000e8000000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005d0000000000000000000000000000000000000000000000000000000000000091000000000000000000000000000000000000000000000000000000000000009200000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000006af00000000000000000000000000000000000000000000000000000000000006b10000000000000000000000000000000000000000000000000000000000000224000000000000000000000000000000000000000000000000000000000000022500000000000000000000000000000000000000000000000000000000000002bea7538f6a77c7c7b42a5c65ed2bdd591e91235d670000000000000c0000000001a7538f6a77c7c7b42a5c65ed2bdd591e91235d670000000000001e0000000001a7538f6a77c7c7b42a5c65ed2bdd591e91235d670000000000000600000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000079500000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000007c300000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000007f000000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000007ee00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000076c00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000073a00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000066c00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000006bf00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000006b800000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000006c000000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000006de00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000006fc00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000072000000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000065900000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000065200000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005ff00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005f500000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005f000000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005dd00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005d700000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005ba00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005c700000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005c800000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005c900000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005cc00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005d200000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005cf00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005b700000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005b300000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000005a700000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000057a00000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000055700000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000001d300000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000059500000000214fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000015400000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc0000000000017800000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000001c900000000014fae31dcf3775d1cab577c755c742dcec0d8b9fc000000000000ce0000000001463d454194d412e7dfaa4759d43fa0f1ac170bbe0000000000002c0000000001000000000000000000000000000000000000000000000000000000000000055f000000000000000000000000000000000000000000000000000000000000055e00000000000000000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000000000000000cb80000000000000000000000000000000000000000000000000000000000000d06000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000121a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000004ad00000000000000000000000000000000000000000000000000000000000004ae00000000000000000000000000000000000000000000000000000002ef050ca40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f00000000000000000000000000000000000000000000000000000000000002960000000000000000000000000000000000000000000000000000000000000b5800000000000000000000000000000000000000000000000000000000000007c40000000000000000000000000000000000000000000000000000000000000bf7000000000000000000000000000000000000000000000000000000000000150d000000000000000000000000000000000000000000000000000000000000156b0000000000000000000000000000000000000000000000000000000000000cad000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000eb00000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000ef00000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f100000000000000000000000000000000000000000000000000000000000000f200000000000000000000000000000000000000000000000000000000000000f400000000000000000000000000000000000000000000000000000000000000f5000000000000000000000000000000000000000000000000000000000000012400000000000000000000000000000000000000000000000000000000000001250000000000000000000000000000000000000000000000000000000000000126000000000000000000000000000000000000000000000000000000000000012700000000000000000000000000000000000000000000000000000000000001280000000000000000000000000000000000000000000000000000000000000129000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af0000000000000000000000000000000000000000000000000000000000000164000000000000000000000000000000000000000000000000000000000000060200000000000000000000000000000000000000000000000000000000000018760000000000000000000000000000000000000000000000000000000000000c9500000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000006de000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c0000000000000000000000000000000000000000000000000000000000000dfd00000000000000000000000000000000000000000000000000000000000004210000000000000000000000000000000000000000000000000000000000000069000000000000000000000000000000000000000000000000000000000000047d0000000000000000000000000000000000000000000000000000000000001dcf000000000000000000000000000000000000000000000000000000000000293600000000000000000000000000000000000000000000000000000000000009b100000000000000000000000000000000000000000000000000000000000007690000000000000000000000000000000000000000000000000000000000000cf80000000000000000000000000000000000000000000000000000000000000ff8000000000000000000000000000000000000000000000000000000000000108c00000000000000000000000000000000000000000000000000000000000014be00000000000000000000000000000000000000000000000000000000000015e30000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000