60806040526a52b7d2dcc80cd2e4000000600a556064600a546003620000269190620007a5565b6200003291906200081f565b600b556064600a546003620000489190620007a5565b6200005491906200081f565b600c55612710600a5460056200006b9190620007a5565b6200007791906200081f565b600d556000600e60006101000a81548160ff0219169083151502179055506000600e60016101000a81548160ff0219169083151502179055506001600f556001601055600060115560016012556064601355348015620000d657600080fd5b506040518060400160405280600b81526020017f4d454d45204f4e204554480000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d45544800000000000000000000000000000000000000000000000000000000815250816003908162000154919062000ac7565b50806004908162000166919062000ac7565b505050620001896200017d6200034660201b60201c565b6200034e60201b60201c565b620001996200034660201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ccfe213ec103efeb16bcda4dd5247fb3af943824600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000250620002426200041460201b60201c565b60016200043e60201b60201c565b62000285600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200043e60201b60201c565b620002983060016200043e60201b60201c565b620002ad61dead60016200043e60201b60201c565b620002cf620002c16200041460201b60201c565b6001620004f960201b60201c565b62000304600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620004f960201b60201c565b62000317306001620004f960201b60201c565b6200032c61dead6001620004f960201b60201c565b6200034033600a546200056460201b60201c565b62000d46565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200044e620006d160201b60201c565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620004ed919062000bcb565b60405180910390a25050565b62000509620006d160201b60201c565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005cd9062000c49565b60405180910390fd5b620005ea600083836200076260201b60201c565b8060026000828254620005fe919062000c6b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006b1919062000cb7565b60405180910390a3620006cd600083836200076760201b60201c565b5050565b620006e16200034660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007076200041460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000760576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007579062000d24565b60405180910390fd5b565b505050565b505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007b2826200076c565b9150620007bf836200076c565b9250828202620007cf816200076c565b91508282048414831517620007e957620007e862000776565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200082c826200076c565b915062000839836200076c565b9250826200084c576200084b620007f0565b5b828204905092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008d957607f821691505b602082108103620008ef57620008ee62000891565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091a565b6200096586836200091a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620009a8620009a26200099c846200076c565b6200097d565b6200076c565b9050919050565b6000819050919050565b620009c48362000987565b620009dc620009d382620009af565b84845462000927565b825550505050565b600090565b620009f3620009e4565b62000a00818484620009b9565b505050565b5b8181101562000a285762000a1c600082620009e9565b60018101905062000a06565b5050565b601f82111562000a775762000a4181620008f5565b62000a4c846200090a565b8101602085101562000a5c578190505b62000a7462000a6b856200090a565b83018262000a05565b50505b505050565b600082821c905092915050565b600062000a9c6000198460080262000a7c565b1980831691505092915050565b600062000ab7838362000a89565b9150826002028217905092915050565b62000ad28262000857565b67ffffffffffffffff81111562000aee5762000aed62000862565b5b62000afa8254620008c0565b62000b0782828562000a2c565b600060209050601f83116001811462000b3f576000841562000b2a578287015190505b62000b36858262000aa9565b86555062000ba6565b601f19841662000b4f86620008f5565b60005b8281101562000b795784890151825560018201915060208501945060208101905062000b52565b8683101562000b99578489015162000b95601f89168262000a89565b8355505b6001600288020188555050505b505050505050565b60008115159050919050565b62000bc58162000bae565b82525050565b600060208201905062000be2600083018462000bba565b92915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c31601f8362000be8565b915062000c3e8262000bf9565b602082019050919050565b6000602082019050818103600083015262000c648162000c22565b9050919050565b600062000c78826200076c565b915062000c85836200076c565b925082820190508082111562000ca05762000c9f62000776565b5b92915050565b62000cb1816200076c565b82525050565b600060208201905062000cce600083018462000ca6565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000d0c60208362000be8565b915062000d198262000cd4565b602082019050919050565b6000602082019050818103600083015262000d3f8162000cfd565b9050919050565b613f078062000d566000396000f3fe6080604052600436106102295760003560e01c80637571336a11610123578063c8c8ebe4116100ab578063dd8546521161006f578063dd854652146107d1578063e2f45605146107fc578063f2fde38b14610827578063f8b45b0514610850578063ffb54a991461087b57610230565b8063c8c8ebe414610710578063cccab2121461073b578063cf9522fd14610752578063d99885ed1461077d578063dd62ed3e1461079457610230565b8063a457c2d7116100f2578063a457c2d71461061b578063a9059cbb14610658578063afa4f3b214610695578063b4e75827146106be578063c0246668146106e757610230565b80637571336a146105735780638da5cb5b1461059c57806395d89b41146105c75780639a7a23d6146105f257610230565b806339509351116101b1578063583e056811610175578063583e0568146104a05780636ddd1713146104cb5780636e5ce0a5146104f657806370a082311461051f578063715018a61461055c57610230565b806339509351146103a55780633ff52513146103e2578063414a87861461040d57806349bd5a5e146104385780634fbee1931461046357610230565b80631ec03851116101f85780631ec03851146102f157806323b872dd1461030857806324e3444314610345578063311028af1461034f578063313ce5671461037a57610230565b806306fdde0314610235578063095ea7b31461026057806318160ddd1461029d5780631816467f146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108a6565b6040516102579190612c7a565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612d35565b610938565b6040516102949190612d90565b60405180910390f35b3480156102a957600080fd5b506102b261095b565b6040516102bf9190612dba565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190612dd5565b610965565b005b3480156102fd57600080fd5b50610306610a2d565b005b34801561031457600080fd5b5061032f600480360381019061032a9190612e02565b610abd565b60405161033c9190612d90565b60405180910390f35b61034d610aec565b005b34801561035b57600080fd5b50610364610eb2565b6040516103719190612dba565b60405180910390f35b34801561038657600080fd5b5061038f610eb8565b60405161039c9190612e71565b60405180910390f35b3480156103b157600080fd5b506103cc60048036038101906103c79190612d35565b610ec1565b6040516103d99190612d90565b60405180910390f35b3480156103ee57600080fd5b506103f7610ef8565b6040516104049190612dba565b60405180910390f35b34801561041957600080fd5b50610422610efe565b60405161042f9190612dba565b60405180910390f35b34801561044457600080fd5b5061044d610f04565b60405161045a9190612e9b565b60405180910390f35b34801561046f57600080fd5b5061048a60048036038101906104859190612dd5565b610f2a565b6040516104979190612d90565b60405180910390f35b3480156104ac57600080fd5b506104b5610f80565b6040516104c29190612f15565b60405180910390f35b3480156104d757600080fd5b506104e0610fa6565b6040516104ed9190612d90565b60405180910390f35b34801561050257600080fd5b5061051d60048036038101906105189190612f30565b610fb9565b005b34801561052b57600080fd5b5061054660048036038101906105419190612dd5565b6110a1565b6040516105539190612dba565b60405180910390f35b34801561056857600080fd5b506105716110e9565b005b34801561057f57600080fd5b5061059a60048036038101906105959190612f89565b6110fd565b005b3480156105a857600080fd5b506105b1611160565b6040516105be9190612e9b565b60405180910390f35b3480156105d357600080fd5b506105dc61118a565b6040516105e99190612c7a565b60405180910390f35b3480156105fe57600080fd5b5061061960048036038101906106149190612f89565b61121c565b005b34801561062757600080fd5b50610642600480360381019061063d9190612d35565b6112c2565b60405161064f9190612d90565b60405180910390f35b34801561066457600080fd5b5061067f600480360381019061067a9190612d35565b611339565b60405161068c9190612d90565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190612f30565b61135c565b005b3480156106ca57600080fd5b506106e560048036038101906106e09190613007565b611381565b005b3480156106f357600080fd5b5061070e60048036038101906107099190612f89565b6113a3565b005b34801561071c57600080fd5b50610725611454565b6040516107329190612dba565b60405180910390f35b34801561074757600080fd5b5061075061145a565b005b34801561075e57600080fd5b5061076761147f565b6040516107749190612dba565b60405180910390f35b34801561078957600080fd5b50610792611485565b005b3480156107a057600080fd5b506107bb60048036038101906107b69190613047565b611572565b6040516107c89190612dba565b60405180910390f35b3480156107dd57600080fd5b506107e66115f9565b6040516107f39190612dba565b60405180910390f35b34801561080857600080fd5b506108116115ff565b60405161081e9190612dba565b60405180910390f35b34801561083357600080fd5b5061084e60048036038101906108499190612dd5565b611605565b005b34801561085c57600080fd5b50610865611688565b6040516108729190612dba565b60405180910390f35b34801561088757600080fd5b5061089061168e565b60405161089d9190612d90565b60405180910390f35b6060600380546108b5906130b6565b80601f01602080910402602001604051908101604052809291908181526020018280546108e1906130b6565b801561092e5780601f106109035761010080835404028352916020019161092e565b820191906000526020600020905b81548152906001019060200180831161091157829003601f168201915b5050505050905090565b6000806109436116a1565b90506109508185856116a9565b600191505092915050565b6000600254905090565b61096d611872565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610a35611872565b600e60009054906101000a900460ff1615610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90613133565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055506001600e60006101000a81548160ff021916908315150217905550565b600080610ac86116a1565b9050610ad58582856118f0565b610ae085858561197c565b60019150509392505050565b610af4611872565b737a250d5630b4cf539739df2c5dacb4c659f2488d600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b76600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016110fd565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c079190613168565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb49190613168565b6040518363ffffffff1660e01b8152600401610cd1929190613195565b6020604051808303816000875af1158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d149190613168565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d81600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016110fd565b610dae600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016122be565b610dfb30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6116a9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610e44306110a1565b60008033426040518863ffffffff1660e01b8152600401610e6a969594939291906131f9565b60606040518083038185885af1158015610e88573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ead919061326f565b505050565b600a5481565b60006012905090565b600080610ecc6116a1565b9050610eed818585610ede8589611572565b610ee891906132f1565b6116a9565b600191505092915050565b60125481565b60115481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ffa6116a1565b73ffffffffffffffffffffffffffffffffffffffff161461101a57600080fd5b600061102461095b565b90506000611031306110a1565b90506000606484846110439190613325565b61104d9190613396565b905080821015611092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108990613413565b60405180910390fd5b61109b8161235f565b50505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110f1611872565b6110fb60006125c4565b565b611105611872565b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611199906130b6565b80601f01602080910402602001604051908101604052809291908181526020018280546111c5906130b6565b80156112125780601f106111e757610100808354040283529160200191611212565b820191906000526020600020905b8154815290600101906020018083116111f557829003601f168201915b5050505050905090565b611224611872565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab906134a5565b60405180910390fd5b6112be82826122be565b5050565b6000806112cd6116a1565b905060006112db8286611572565b905083811015611320576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131790613537565b60405180910390fd5b61132d82868684036116a9565b60019250505092915050565b6000806113446116a1565b905061135181858561197c565b600191505092915050565b611364611872565b670de0b6b3a7640000816113789190613325565b600d8190555050565b3361138b81610f2a565b61139457600080fd5b61139e838361268a565b505050565b6113ab611872565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516114489190612d90565b60405180910390a25050565b600b5481565b611462611872565b600061146c61095b565b905080600b8190555080600c8190555050565b60105481565b600047116114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf906135a3565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115096116a1565b73ffffffffffffffffffffffffffffffffffffffff161461152957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561156f573d6000803e3d6000fd5b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f5481565b600d5481565b61160d611872565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390613635565b60405180910390fd5b611685816125c4565b50565b600c5481565b600e60009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170f906136c7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613759565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118659190612dba565b60405180910390a3505050565b61187a6116a1565b73ffffffffffffffffffffffffffffffffffffffff16611898611160565b73ffffffffffffffffffffffffffffffffffffffff16146118ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e5906137c5565b60405180910390fd5b565b60006118fc8484611572565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146119765781811015611968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195f90613831565b60405180910390fd5b61197584848484036116a9565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e2906138c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5190613955565b60405180910390fd5b60008103611a7357611a6e83836000612857565b6122b9565b611a7b611160565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ae95750611ab9611160565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b225750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b5c575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b755750600960149054906101000a900460ff16155b15611f5857600e60009054906101000a900460ff16611c6f57601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c2f5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c65906139c1565b60405180910390fd5b5b601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d125750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611db957600b54811115611d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5390613a53565b60405180910390fd5b600c54611d68836110a1565b82611d7391906132f1565b1115611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab90613abf565b60405180910390fd5b611f57565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e5c5750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611eab57600b54811115611ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9d90613b51565b60405180910390fd5b611f56565b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f5557600c54611f08836110a1565b82611f1391906132f1565b1115611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b90613abf565b60405180910390fd5b5b5b5b5b6000611f63306110a1565b905060008082119050808015611f855750600e60019054906101000a900460ff165b8015611f9e5750600960149054906101000a900460ff16155b8015611ff45750601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561204a5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120a05750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120e5576001600960146101000a81548160ff0219169083151502179055506120c983612acd565b6000600960146101000a81548160ff0219169083151502179055505b6000600960149054906101000a900460ff16159050601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061219b5750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121a557600090505b600081156122a957601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122445761223d601354612210601254612b6b565b61221a9190613325565b61222f60105488612bb490919063ffffffff16565b612bca90919063ffffffff16565b9050612285565b612282601354612255601154612b6b565b61225f9190613325565b612274600f5488612bb490919063ffffffff16565b612bca90919063ffffffff16565b90505b600081111561229a57612299873083612857565b5b80856122a69190613b71565b94505b6122b4878787612857565b505050505b505050565b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600267ffffffffffffffff81111561237c5761237b613ba5565b5b6040519080825280602002602001820160405280156123aa5781602001602082028036833780820191505090505b50905030816000815181106123c2576123c1613bd4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248d9190613168565b816001815181106124a1576124a0613bd4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061250830600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116a9565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161258e959493929190613cc1565b600060405180830381600087803b1580156125a857600080fd5b505af11580156125bc573d6000803e3d6000fd5b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036126f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f090613d8d565b60405180910390fd5b61270582600083612be0565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561278b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278290613e1f565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161283e9190612dba565b60405180910390a361285283600084612be5565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bd906138c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292c90613955565b60405180910390fd5b612940838383612be0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156129c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bd90613eb1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ab49190612dba565b60405180910390a3612ac7848484612be5565b50505050565b6000612ad8306110a1565b90506000808203612aea575050612b68565b600082118015612afb5750600d5482105b15612b0857819050612b5c565b6000612b326064612b2460105487612bb490919063ffffffff16565b612bca90919063ffffffff16565b90508084612b409190613b71565b9350600d54841115612b5657600d549150612b5a565b8391505b505b612b658161235f565b50505b50565b600080612b7961dead6110a1565b118015612b865750600082115b612b91576001612bad565b60646001601354612ba29190613b71565b612bac9190613396565b5b9050919050565b60008183612bc29190613325565b905092915050565b60008183612bd89190613396565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c24578082015181840152602081019050612c09565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c4c82612bea565b612c568185612bf5565b9350612c66818560208601612c06565b612c6f81612c30565b840191505092915050565b60006020820190508181036000830152612c948184612c41565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ccc82612ca1565b9050919050565b612cdc81612cc1565b8114612ce757600080fd5b50565b600081359050612cf981612cd3565b92915050565b6000819050919050565b612d1281612cff565b8114612d1d57600080fd5b50565b600081359050612d2f81612d09565b92915050565b60008060408385031215612d4c57612d4b612c9c565b5b6000612d5a85828601612cea565b9250506020612d6b85828601612d20565b9150509250929050565b60008115159050919050565b612d8a81612d75565b82525050565b6000602082019050612da56000830184612d81565b92915050565b612db481612cff565b82525050565b6000602082019050612dcf6000830184612dab565b92915050565b600060208284031215612deb57612dea612c9c565b5b6000612df984828501612cea565b91505092915050565b600080600060608486031215612e1b57612e1a612c9c565b5b6000612e2986828701612cea565b9350506020612e3a86828701612cea565b9250506040612e4b86828701612d20565b9150509250925092565b600060ff82169050919050565b612e6b81612e55565b82525050565b6000602082019050612e866000830184612e62565b92915050565b612e9581612cc1565b82525050565b6000602082019050612eb06000830184612e8c565b92915050565b6000819050919050565b6000612edb612ed6612ed184612ca1565b612eb6565b612ca1565b9050919050565b6000612eed82612ec0565b9050919050565b6000612eff82612ee2565b9050919050565b612f0f81612ef4565b82525050565b6000602082019050612f2a6000830184612f06565b92915050565b600060208284031215612f4657612f45612c9c565b5b6000612f5484828501612d20565b91505092915050565b612f6681612d75565b8114612f7157600080fd5b50565b600081359050612f8381612f5d565b92915050565b60008060408385031215612fa057612f9f612c9c565b5b6000612fae85828601612cea565b9250506020612fbf85828601612f74565b9150509250929050565b6000612fd482612cc1565b9050919050565b612fe481612fc9565b8114612fef57600080fd5b50565b60008135905061300181612fdb565b92915050565b6000806040838503121561301e5761301d612c9c565b5b600061302c85828601612ff2565b925050602061303d85828601612d20565b9150509250929050565b6000806040838503121561305e5761305d612c9c565b5b600061306c85828601612cea565b925050602061307d85828601612cea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806130ce57607f821691505b6020821081036130e1576130e0613087565b5b50919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061311d601783612bf5565b9150613128826130e7565b602082019050919050565b6000602082019050818103600083015261314c81613110565b9050919050565b60008151905061316281612cd3565b92915050565b60006020828403121561317e5761317d612c9c565b5b600061318c84828501613153565b91505092915050565b60006040820190506131aa6000830185612e8c565b6131b76020830184612e8c565b9392505050565b6000819050919050565b60006131e36131de6131d9846131be565b612eb6565b612cff565b9050919050565b6131f3816131c8565b82525050565b600060c08201905061320e6000830189612e8c565b61321b6020830188612dab565b61322860408301876131ea565b61323560608301866131ea565b6132426080830185612e8c565b61324f60a0830184612dab565b979650505050505050565b60008151905061326981612d09565b92915050565b60008060006060848603121561328857613287612c9c565b5b60006132968682870161325a565b93505060206132a78682870161325a565b92505060406132b88682870161325a565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132fc82612cff565b915061330783612cff565b925082820190508082111561331f5761331e6132c2565b5b92915050565b600061333082612cff565b915061333b83612cff565b925082820261334981612cff565b915082820484148315176133605761335f6132c2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133a182612cff565b91506133ac83612cff565b9250826133bc576133bb613367565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e73000000000000000000000000000000600082015250565b60006133fd601183612bf5565b9150613408826133c7565b602082019050919050565b6000602082019050818103600083015261342c816133f0565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b600061348f603983612bf5565b915061349a82613433565b604082019050919050565b600060208201905081810360008301526134be81613482565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613521602583612bf5565b915061352c826134c5565b604082019050919050565b6000602082019050818103600083015261355081613514565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b600061358d601683612bf5565b915061359882613557565b602082019050919050565b600060208201905081810360008301526135bc81613580565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061361f602683612bf5565b915061362a826135c3565b604082019050919050565b6000602082019050818103600083015261364e81613612565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006136b1602483612bf5565b91506136bc82613655565b604082019050919050565b600060208201905081810360008301526136e0816136a4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613743602283612bf5565b915061374e826136e7565b604082019050919050565b6000602082019050818103600083015261377281613736565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137af602083612bf5565b91506137ba82613779565b602082019050919050565b600060208201905081810360008301526137de816137a2565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061381b601d83612bf5565b9150613826826137e5565b602082019050919050565b6000602082019050818103600083015261384a8161380e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138ad602583612bf5565b91506138b882613851565b604082019050919050565b600060208201905081810360008301526138dc816138a0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061393f602383612bf5565b915061394a826138e3565b604082019050919050565b6000602082019050818103600083015261396e81613932565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006139ab601683612bf5565b91506139b682613975565b602082019050919050565b600060208201905081810360008301526139da8161399e565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613a3d603583612bf5565b9150613a48826139e1565b604082019050919050565b60006020820190508181036000830152613a6c81613a30565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613aa9601383612bf5565b9150613ab482613a73565b602082019050919050565b60006020820190508181036000830152613ad881613a9c565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613b3b603683612bf5565b9150613b4682613adf565b604082019050919050565b60006020820190508181036000830152613b6a81613b2e565b9050919050565b6000613b7c82612cff565b9150613b8783612cff565b9250828203905081811115613b9f57613b9e6132c2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c3881612cc1565b82525050565b6000613c4a8383613c2f565b60208301905092915050565b6000602082019050919050565b6000613c6e82613c03565b613c788185613c0e565b9350613c8383613c1f565b8060005b83811015613cb4578151613c9b8882613c3e565b9750613ca683613c56565b925050600181019050613c87565b5085935050505092915050565b600060a082019050613cd66000830188612dab565b613ce360208301876131ea565b8181036040830152613cf58186613c63565b9050613d046060830185612e8c565b613d116080830184612dab565b9695505050505050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d77602183612bf5565b9150613d8282613d1b565b604082019050919050565b60006020820190508181036000830152613da681613d6a565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e09602283612bf5565b9150613e1482613dad565b604082019050919050565b60006020820190508181036000830152613e3881613dfc565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613e9b602683612bf5565b9150613ea682613e3f565b604082019050919050565b60006020820190508181036000830152613eca81613e8e565b905091905056fea26469706673582212205db41df3cbe12dbc81ac7f6ff9c7172f883889c8d89f417c63cc585578de4ea364736f6c63430008130033