608060405234801561000f575f80fd5b506040516142963803806142968339818101604052810190610031919061082b565b838383815f90816100429190610af0565b5080600190816100529190610af0565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100c5575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100bc9190610bce565b60405180910390fd5b6100d48161038660201b60201c565b506100e48161044960201b60201c565b61016960016040518060400160405280600981526020017f417274776f726b20310000000000000000000000000000000000000000000000815250836040516020016101309190610c47565b6040516020818303038152906040526003662386f26fc10000730d9819013109779c0d633077b5949d1fc49c8d8f61046a60201b60201c565b6101ee60026040518060400160405280600981526020017f417274776f726b20320000000000000000000000000000000000000000000000815250836040516020016101b59190610c92565b6040516020818303038152906040526003662386f26fc10000730d9819013109779c0d633077b5949d1fc49c8d8f61046a60201b60201c565b61027360036040518060400160405280600981526020017f417274776f726b203300000000000000000000000000000000000000000000008152508360405160200161023a9190610cdd565b6040516020818303038152906040526003662386f26fc10000730d9819013109779c0d633077b5949d1fc49c8d8f61046a60201b60201c565b6102f860046040518060400160405280600981526020017f417274776f726b20340000000000000000000000000000000000000000000000815250836040516020016102bf9190610d28565b6040516020818303038152906040526003662386f26fc10000730d9819013109779c0d633077b5949d1fc49c8d8f61046a60201b60201c565b61037d60056040518060400160405280600981526020017f417274776f726b20350000000000000000000000000000000000000000000000815250836040516020016103449190610d73565b6040516020818303038152906040526003662386f26fc10000730d9819013109779c0d633077b5949d1fc49c8d8f61046a60201b60201c565b50505050610e10565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6104576105bc60201b60201c565b80600790816104669190610af0565b5050565b5f60085f8881526020019081526020015f205f0154146104bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b690610df2565b60405180910390fd5b6040518060e001604052808781526020018681526020018581526020015f81526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681525060085f8881526020019081526020015f205f820151815f015560208201518160010190816105369190610af0565b50604082015181600201908161054c9190610af0565b50606082015181600301556080820151816004015560a0820151816005015560c0820151816006015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505050505050565b6105ca61065560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166105ee61065c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146106535761061761065560201b60201c565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161064a9190610bce565b60405180910390fd5b565b5f33905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106be82610695565b9050919050565b6106ce816106b4565b81146106d8575f80fd5b50565b5f815190506106e9816106c5565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61073d826106f7565b810181811067ffffffffffffffff8211171561075c5761075b610707565b5b80604052505050565b5f61076e610684565b905061077a8282610734565b919050565b5f67ffffffffffffffff82111561079957610798610707565b5b6107a2826106f7565b9050602081019050919050565b8281835e5f83830152505050565b5f6107cf6107ca8461077f565b610765565b9050828152602081018484840111156107eb576107ea6106f3565b5b6107f68482856107af565b509392505050565b5f82601f830112610812576108116106ef565b5b81516108228482602086016107bd565b91505092915050565b5f805f80608085870312156108435761084261068d565b5b5f610850878288016106db565b945050602085015167ffffffffffffffff81111561087157610870610691565b5b61087d878288016107fe565b935050604085015167ffffffffffffffff81111561089e5761089d610691565b5b6108aa878288016107fe565b925050606085015167ffffffffffffffff8111156108cb576108ca610691565b5b6108d7878288016107fe565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061093157607f821691505b602082108103610944576109436108ed565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109a67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261096b565b6109b0868361096b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6109f46109ef6109ea846109c8565b6109d1565b6109c8565b9050919050565b5f819050919050565b610a0d836109da565b610a21610a19826109fb565b848454610977565b825550505050565b5f90565b610a35610a29565b610a40818484610a04565b505050565b5b81811015610a6357610a585f82610a2d565b600181019050610a46565b5050565b601f821115610aa857610a798161094a565b610a828461095c565b81016020851015610a91578190505b610aa5610a9d8561095c565b830182610a45565b50505b505050565b5f82821c905092915050565b5f610ac85f1984600802610aad565b1980831691505092915050565b5f610ae08383610ab9565b9150826002028217905092915050565b610af9826108e3565b67ffffffffffffffff811115610b1257610b11610707565b5b610b1c825461091a565b610b27828285610a67565b5f60209050601f831160018114610b58575f8415610b46578287015190505b610b508582610ad5565b865550610bb7565b601f198416610b668661094a565b5f5b82811015610b8d57848901518255600182019150602085019450602081019050610b68565b86831015610baa5784890151610ba6601f891682610ab9565b8355505b6001600288020188555050505b505050505050565b610bc8816106b4565b82525050565b5f602082019050610be15f830184610bbf565b92915050565b5f81905092915050565b5f610bfb826108e3565b610c058185610be7565b9350610c158185602086016107af565b80840191505092915050565b7f3100000000000000000000000000000000000000000000000000000000000000815250565b5f610c528284610bf1565b9150610c5d82610c21565b60018201915081905092915050565b7f3200000000000000000000000000000000000000000000000000000000000000815250565b5f610c9d8284610bf1565b9150610ca882610c6c565b60018201915081905092915050565b7f3300000000000000000000000000000000000000000000000000000000000000815250565b5f610ce88284610bf1565b9150610cf382610cb7565b60018201915081905092915050565b7f3400000000000000000000000000000000000000000000000000000000000000815250565b5f610d338284610bf1565b9150610d3e82610d02565b60018201915081905092915050565b7f3500000000000000000000000000000000000000000000000000000000000000815250565b5f610d7e8284610bf1565b9150610d8982610d4d565b60018201915081905092915050565b5f82825260208201905092915050565b7f417274776f726b20616c726561647920657869737473000000000000000000005f82015250565b5f610ddc601683610d98565b9150610de782610da8565b602082019050919050565b5f6020820190508181035f830152610e0981610dd0565b9050919050565b61347980610e1d5f395ff3fe60806040526004361061019b575f3560e01c8063715018a6116100eb578063c87b56dd11610089578063e939567911610063578063e9395679146105a5578063e985e9c5146105e1578063f2fde38b1461061d578063f54def51146106455761019b565b8063c87b56dd14610517578063caccd7f714610553578063d806521c1461057d5761019b565b806395d89b41116100c557806395d89b4114610473578063a22cb4651461049d578063b88d4fde146104c5578063c002d23d146104ed5761019b565b8063715018a6146104095780637d5953521461041f5780638da5cb5b146104495761019b565b806324eeedf61161015857806355f804b31161013257806355f804b31461033f5780636352211e146103675780636c0360eb146103a357806370a08231146103cd5761019b565b806324eeedf6146102b957806342842e0e146102d55780634b602673146102fd5761019b565b806301ffc9a71461019f57806306fdde03146101db578063081812fc14610205578063095ea7b31461024157806323b872dd1461026957806324d354d014610291575b5f80fd5b3480156101aa575f80fd5b506101c560048036038101906101c091906124c4565b61066d565b6040516101d29190612509565b60405180910390f35b3480156101e6575f80fd5b506101ef61074e565b6040516101fc9190612592565b60405180910390f35b348015610210575f80fd5b5061022b600480360381019061022691906125e5565b6107dd565b604051610238919061264f565b60405180910390f35b34801561024c575f80fd5b5061026760048036038101906102629190612692565b6107f8565b005b348015610274575f80fd5b5061028f600480360381019061028a91906126d0565b61080e565b005b34801561029c575f80fd5b506102b760048036038101906102b2919061284c565b61090d565b005b6102d360048036038101906102ce91906128a6565b610990565b005b3480156102e0575f80fd5b506102fb60048036038101906102f691906126d0565b610d02565b005b348015610308575f80fd5b50610323600480360381019061031e91906125e5565b610d21565b6040516103369796959493929190612905565b60405180910390f35b34801561034a575f80fd5b5061036560048036038101906103609190612980565b610e8a565b005b348015610372575f80fd5b5061038d600480360381019061038891906125e5565b610ea5565b60405161039a919061264f565b60405180910390f35b3480156103ae575f80fd5b506103b7610eb6565b6040516103c49190612592565b60405180910390f35b3480156103d8575f80fd5b506103f360048036038101906103ee91906129c7565b610f42565b60405161040091906129f2565b60405180910390f35b348015610414575f80fd5b5061041d610ff8565b005b34801561042a575f80fd5b5061043361100b565b60405161044091906129f2565b60405180910390f35b348015610454575f80fd5b5061045d611010565b60405161046a919061264f565b60405180910390f35b34801561047e575f80fd5b50610487611038565b6040516104949190612592565b60405180910390f35b3480156104a8575f80fd5b506104c360048036038101906104be9190612a35565b6110c8565b005b3480156104d0575f80fd5b506104eb60048036038101906104e69190612b11565b6110de565b005b3480156104f8575f80fd5b506105016110fb565b60405161050e91906129f2565b60405180910390f35b348015610522575f80fd5b5061053d600480360381019061053891906125e5565b611106565b60405161054a9190612592565b60405180910390f35b34801561055e575f80fd5b5061056761116c565b604051610574919061264f565b60405180910390f35b348015610588575f80fd5b506105a3600480360381019061059e9190612b91565b611184565b005b3480156105b0575f80fd5b506105cb60048036038101906105c691906125e5565b6111fe565b6040516105d89190612592565b60405180910390f35b3480156105ec575f80fd5b5061060760048036038101906106029190612bcf565b6113cf565b6040516106149190612509565b60405180910390f35b348015610628575f80fd5b50610643600480360381019061063e91906129c7565b61145d565b005b348015610650575f80fd5b5061066b60048036038101906106669190612c0d565b6114e1565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061073757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610747575061074682611594565b5b9050919050565b60605f805461075c90612c78565b80601f016020809104026020016040519081016040528092919081815260200182805461078890612c78565b80156107d35780601f106107aa576101008083540402835291602001916107d3565b820191905f5260205f20905b8154815290600101906020018083116107b657829003601f168201915b5050505050905090565b5f6107e7826115fd565b506107f182611683565b9050919050565b61080a82826108056116bc565b6116c3565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361087e575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610875919061264f565b60405180910390fd5b5f610891838361088c6116bc565b6116d5565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610907578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016108fe93929190612ca8565b60405180910390fd5b50505050565b6109156118e0565b5f60085f8481526020019081526020015f205f01540361096a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096190612d27565b60405180910390fd5b8060085f8481526020019081526020015f20600201908161098b9190612ee2565b505050565b5f60085f8481526020019081526020015f205f0154036109e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dc90612d27565b60405180910390fd5b5f8111610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e90613021565b60405180910390fd5b8060085f8481526020019081526020015f2060050154610a47919061306c565b341015610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a80906130f7565b60405180910390fd5b5f8160085f8581526020019081526020015f2060030154610aaa9190613115565b905060085f8481526020019081526020015f2060040154811115610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa90613192565b60405180910390fd5b5f8260085f8681526020019081526020015f2060050154610b24919061306c565b90505f6064600583610b36919061306c565b610b4091906131dd565b90505f6064600584610b52919061306c565b610b5c91906131dd565b90505f818385610b6c919061320d565b610b76919061320d565b905060085f8881526020019081526020015f206006015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8490811502906040515f60405180830381858888f19350505050158015610bee573d5f803e3d5ffd5b50736a2547b54059ca2b822e82f017b0c97ec6b0837c73ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015610c46573d5f803e3d5ffd5b50610c4f611010565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610c91573d5f803e3d5ffd5b505f5b86811015610cde57610cd18960018360085f8d81526020019081526020015f2060030154610cc29190613115565b610ccc9190613115565b611967565b8080600101915050610c94565b508460085f8981526020019081526020015f20600301819055505050505050505050565b610d1c83838360405180602001604052805f8152506110de565b505050565b6008602052805f5260405f205f91509050805f015490806001018054610d4690612c78565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7290612c78565b8015610dbd5780601f10610d9457610100808354040283529160200191610dbd565b820191905f5260205f20905b815481529060010190602001808311610da057829003601f168201915b505050505090806002018054610dd290612c78565b80601f0160208091040260200160405190810160405280929190818152602001828054610dfe90612c78565b8015610e495780601f10610e2057610100808354040283529160200191610e49565b820191905f5260205f20905b815481529060010190602001808311610e2c57829003601f168201915b505050505090806003015490806004015490806005015490806006015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905087565b610e926118e0565b8060079081610ea19190612ee2565b5050565b5f610eaf826115fd565b9050919050565b60078054610ec390612c78565b80601f0160208091040260200160405190810160405280929190818152602001828054610eef90612c78565b8015610f3a5780601f10610f1157610100808354040283529160200191610f3a565b820191905f5260205f20905b815481529060010190602001808311610f1d57829003601f168201915b505050505081565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fb3575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610faa919061264f565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110006118e0565b6110095f611a5a565b565b600381565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461104790612c78565b80601f016020809104026020016040519081016040528092919081815260200182805461107390612c78565b80156110be5780601f10611095576101008083540402835291602001916110be565b820191905f5260205f20905b8154815290600101906020018083116110a157829003601f168201915b5050505050905090565b6110da6110d36116bc565b8383611b1d565b5050565b6110e984848461080e565b6110f584848484611c86565b50505050565b662386f26fc1000081565b6060611111826115fd565b505f61111b611e38565b90505f8151116111395760405180602001604052805f815250611164565b8061114384611ec8565b60405160200161115492919061327a565b6040516020818303038152906040525b915050919050565b736a2547b54059ca2b822e82f017b0c97ec6b0837c81565b61118c6118e0565b5f60085f8481526020019081526020015f205f0154036111e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d890612d27565b60405180910390fd5b8060085f8481526020019081526020015f20600501819055505050565b60605f606490505f8167ffffffffffffffff8111156112205761121f612728565b5b6040519080825280601f01601f1916602001820160405280156112525781602001600182028036833780820191505090505b5090505f5b5f85146112e0575f600a8661126c919061329d565b9050600a8661127b91906131dd565b955080603061128a9190613115565b60f81b838380611299906132cd565b9450815181106112ac576112ab613314565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535050611257565b5f8167ffffffffffffffff8111156112fb576112fa612728565b5b6040519080825280601f01601f19166020018201604052801561132d5781602001600182028036833780820191505090505b5090505f5b828110156113bd578360018285611349919061320d565b611353919061320d565b8151811061136457611363613314565b5b602001015160f81c60f81b82828151811061138257611381613314565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050611332565b505f8190508095505050505050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6114656118e0565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114d5575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016114cc919061264f565b60405180910390fd5b6114de81611a5a565b50565b6114e96118e0565b5f60085f8481526020019081526020015f205f01540361153e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153590612d27565b60405180910390fd5b8060085f8481526020019081526020015f206006015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8061160883611f92565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361167a57826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161167191906129f2565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6116d08383836001611fcb565b505050565b5f806116e084611f92565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117215761172081848661218a565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146117ac576117605f855f80611fcb565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461182b57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6118e86116bc565b73ffffffffffffffffffffffffffffffffffffffff16611906611010565b73ffffffffffffffffffffffffffffffffffffffff1614611965576119296116bc565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161195c919061264f565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119d7575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119ce919061264f565b60405180910390fd5b5f6119e383835f6116d5565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611a55575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611a4c919061264f565b60405180910390fd5b505050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b8d57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401611b84919061264f565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c799190612509565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611e32578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02611cc96116bc565b8685856040518563ffffffff1660e01b8152600401611ceb9493929190613393565b6020604051808303815f875af1925050508015611d2657506040513d601f19601f82011682018060405250810190611d2391906133f1565b60015b611da7573d805f8114611d54576040519150601f19603f3d011682016040523d82523d5f602084013e611d59565b606091505b505f815103611d9f57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611d96919061264f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e3057836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611e27919061264f565b60405180910390fd5b505b50505050565b606060078054611e4790612c78565b80601f0160208091040260200160405190810160405280929190818152602001828054611e7390612c78565b8015611ebe5780601f10611e9557610100808354040283529160200191611ebe565b820191905f5260205f20905b815481529060010190602001808311611ea157829003601f168201915b5050505050905090565b60605f6001611ed68461224d565b0190505f8167ffffffffffffffff811115611ef457611ef3612728565b5b6040519080825280601f01601f191660200182016040528015611f265781602001600182028036833780820191505090505b5090505f82602001820190505b600115611f87578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f7c57611f7b6131b0565b5b0494505f8503611f33575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061200357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612135575f612012846115fd565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561207c57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561208f575061208d81846113cf565b155b156120d157826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016120c8919061264f565b60405180910390fd5b811561213357838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b61219583838361239e565b612248575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361220957806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161220091906129f2565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161223f92919061341c565b60405180910390fd5b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106122a9577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161229f5761229e6131b0565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106122e6576d04ee2d6d415b85acef810000000083816122dc576122db6131b0565b5b0492506020810190505b662386f26fc10000831061231557662386f26fc10000838161230b5761230a6131b0565b5b0492506010810190505b6305f5e100831061233e576305f5e1008381612334576123336131b0565b5b0492506008810190505b6127108310612363576127108381612359576123586131b0565b5b0492506004810190505b60648310612386576064838161237c5761237b6131b0565b5b0492506002810190505b600a8310612395576001810190505b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561245557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612416575061241584846113cf565b5b8061245457508273ffffffffffffffffffffffffffffffffffffffff1661243c83611683565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6124a38161246f565b81146124ad575f80fd5b50565b5f813590506124be8161249a565b92915050565b5f602082840312156124d9576124d8612467565b5b5f6124e6848285016124b0565b91505092915050565b5f8115159050919050565b612503816124ef565b82525050565b5f60208201905061251c5f8301846124fa565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61256482612522565b61256e818561252c565b935061257e81856020860161253c565b6125878161254a565b840191505092915050565b5f6020820190508181035f8301526125aa818461255a565b905092915050565b5f819050919050565b6125c4816125b2565b81146125ce575f80fd5b50565b5f813590506125df816125bb565b92915050565b5f602082840312156125fa576125f9612467565b5b5f612607848285016125d1565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61263982612610565b9050919050565b6126498161262f565b82525050565b5f6020820190506126625f830184612640565b92915050565b6126718161262f565b811461267b575f80fd5b50565b5f8135905061268c81612668565b92915050565b5f80604083850312156126a8576126a7612467565b5b5f6126b58582860161267e565b92505060206126c6858286016125d1565b9150509250929050565b5f805f606084860312156126e7576126e6612467565b5b5f6126f48682870161267e565b93505060206127058682870161267e565b9250506040612716868287016125d1565b9150509250925092565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61275e8261254a565b810181811067ffffffffffffffff8211171561277d5761277c612728565b5b80604052505050565b5f61278f61245e565b905061279b8282612755565b919050565b5f67ffffffffffffffff8211156127ba576127b9612728565b5b6127c38261254a565b9050602081019050919050565b828183375f83830152505050565b5f6127f06127eb846127a0565b612786565b90508281526020810184848401111561280c5761280b612724565b5b6128178482856127d0565b509392505050565b5f82601f83011261283357612832612720565b5b81356128438482602086016127de565b91505092915050565b5f806040838503121561286257612861612467565b5b5f61286f858286016125d1565b925050602083013567ffffffffffffffff8111156128905761288f61246b565b5b61289c8582860161281f565b9150509250929050565b5f805f606084860312156128bd576128bc612467565b5b5f6128ca8682870161267e565b93505060206128db868287016125d1565b92505060406128ec868287016125d1565b9150509250925092565b6128ff816125b2565b82525050565b5f60e0820190506129185f83018a6128f6565b818103602083015261292a818961255a565b9050818103604083015261293e818861255a565b905061294d60608301876128f6565b61295a60808301866128f6565b61296760a08301856128f6565b61297460c0830184612640565b98975050505050505050565b5f6020828403121561299557612994612467565b5b5f82013567ffffffffffffffff8111156129b2576129b161246b565b5b6129be8482850161281f565b91505092915050565b5f602082840312156129dc576129db612467565b5b5f6129e98482850161267e565b91505092915050565b5f602082019050612a055f8301846128f6565b92915050565b612a14816124ef565b8114612a1e575f80fd5b50565b5f81359050612a2f81612a0b565b92915050565b5f8060408385031215612a4b57612a4a612467565b5b5f612a588582860161267e565b9250506020612a6985828601612a21565b9150509250929050565b5f67ffffffffffffffff821115612a8d57612a8c612728565b5b612a968261254a565b9050602081019050919050565b5f612ab5612ab084612a73565b612786565b905082815260208101848484011115612ad157612ad0612724565b5b612adc8482856127d0565b509392505050565b5f82601f830112612af857612af7612720565b5b8135612b08848260208601612aa3565b91505092915050565b5f805f8060808587031215612b2957612b28612467565b5b5f612b368782880161267e565b9450506020612b478782880161267e565b9350506040612b58878288016125d1565b925050606085013567ffffffffffffffff811115612b7957612b7861246b565b5b612b8587828801612ae4565b91505092959194509250565b5f8060408385031215612ba757612ba6612467565b5b5f612bb4858286016125d1565b9250506020612bc5858286016125d1565b9150509250929050565b5f8060408385031215612be557612be4612467565b5b5f612bf28582860161267e565b9250506020612c038582860161267e565b9150509250929050565b5f8060408385031215612c2357612c22612467565b5b5f612c30858286016125d1565b9250506020612c418582860161267e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612c8f57607f821691505b602082108103612ca257612ca1612c4b565b5b50919050565b5f606082019050612cbb5f830186612640565b612cc860208301856128f6565b612cd56040830184612640565b949350505050565b7f417274776f726b20646f6573206e6f74206578697374000000000000000000005f82015250565b5f612d1160168361252c565b9150612d1c82612cdd565b602082019050919050565b5f6020820190508181035f830152612d3e81612d05565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612da17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612d66565b612dab8683612d66565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612de6612de1612ddc846125b2565b612dc3565b6125b2565b9050919050565b5f819050919050565b612dff83612dcc565b612e13612e0b82612ded565b848454612d72565b825550505050565b5f90565b612e27612e1b565b612e32818484612df6565b505050565b5b81811015612e5557612e4a5f82612e1f565b600181019050612e38565b5050565b601f821115612e9a57612e6b81612d45565b612e7484612d57565b81016020851015612e83578190505b612e97612e8f85612d57565b830182612e37565b50505b505050565b5f82821c905092915050565b5f612eba5f1984600802612e9f565b1980831691505092915050565b5f612ed28383612eab565b9150826002028217905092915050565b612eeb82612522565b67ffffffffffffffff811115612f0457612f03612728565b5b612f0e8254612c78565b612f19828285612e59565b5f60209050601f831160018114612f4a575f8415612f38578287015190505b612f428582612ec7565b865550612fa9565b601f198416612f5886612d45565b5f5b82811015612f7f57848901518255600182019150602085019450602081019050612f5a565b86831015612f9c5784890151612f98601f891682612eab565b8355505b6001600288020188555050505b505050505050565b7f4e756d626572206f6620636f70696573206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f61300b602a8361252c565b915061301682612fb1565b604082019050919050565b5f6020820190508181035f83015261303881612fff565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613076826125b2565b9150613081836125b2565b925082820261308f816125b2565b915082820484148315176130a6576130a561303f565b5b5092915050565b7f496e73756666696369656e74207061796d656e740000000000000000000000005f82015250565b5f6130e160148361252c565b91506130ec826130ad565b602082019050919050565b5f6020820190508181035f83015261310e816130d5565b9050919050565b5f61311f826125b2565b915061312a836125b2565b92508282019050808211156131425761314161303f565b5b92915050565b7f45786365656473206d6178696d756d20636f70696573000000000000000000005f82015250565b5f61317c60168361252c565b915061318782613148565b602082019050919050565b5f6020820190508181035f8301526131a981613170565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131e7826125b2565b91506131f2836125b2565b925082613202576132016131b0565b5b828204905092915050565b5f613217826125b2565b9150613222836125b2565b925082820390508181111561323a5761323961303f565b5b92915050565b5f81905092915050565b5f61325482612522565b61325e8185613240565b935061326e81856020860161253c565b80840191505092915050565b5f613285828561324a565b9150613291828461324a565b91508190509392505050565b5f6132a7826125b2565b91506132b2836125b2565b9250826132c2576132c16131b0565b5b828206905092915050565b5f6132d7826125b2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133095761330861303f565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f61336582613341565b61336f818561334b565b935061337f81856020860161253c565b6133888161254a565b840191505092915050565b5f6080820190506133a65f830187612640565b6133b36020830186612640565b6133c060408301856128f6565b81810360608301526133d2818461335b565b905095945050505050565b5f815190506133eb8161249a565b92915050565b5f6020828403121561340657613405612467565b5b5f613413848285016133dd565b91505092915050565b5f60408201905061342f5f830185612640565b61343c60208301846128f6565b939250505056fea26469706673582212203ede9701497fc290a8a77b0f7a73df872e7013fed2481cf02bdfbaedeb7bdcbc64736f6c63430008190033000000000000000000000000aae1cdbfef89f2b575145944365c13149ae4db6f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000096d7950524f4a454354000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000076d7950524a4354000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d576563706e6f4e444a5935645a32613845335472395a33793170596935745a466a4d567a67736a5333797a632f00000000000000000000