60806040525f600d555f600f5f6101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff0219169083151502179055505f600f60026101000a81548160ff0219169083151502179055505f600f60036101000a81548160ff02191690831515021790555034801561007b575f80fd5b506040518060400160405280600f81526020017f47656e65736973204f66204d656d6500000000000000000000000000000000008152506040518060400160405280600481526020017f47454d450000000000000000000000000000000000000000000000000000000081525081600390816100f79190610d93565b5080600490816101079190610d93565b50505061012661011b61064e60201b60201c565b61065560201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905061014f81600161071860201b60201c565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101fc9190610ec0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610261573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102859190610ec0565b6040518363ffffffff1660e01b81526004016102a2929190610efa565b6020604051808303815f875af11580156102be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e29190610ec0565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061035360075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161071860201b60201c565b61038560075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016107f860201b60201c565b5f805f600990505f805f600990505f6b033b2e3c9fd0803ce800000090506a0422ca8b0a00a425000000600a819055506a108b2a2c28029094000000600c819055506127106005826103d79190610f4e565b6103e19190610fbc565b600b8190555073b698f7fb4d62c0ca4063becdf43fd2a7552113b160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b698f7fb4d62c0ca4063becdf43fd2a7552113b160085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508660148190555085601581905550846016819055506016546015546014546104b79190610fec565b6104c19190610fec565b601381905550836018819055508260198190555081601a81905550601a546019546018546104ef9190610fec565b6104f99190610fec565b60178190555061051d61051061089660201b60201c565b600161071860201b60201c565b61052e30600161071860201b60201c565b61054161dead600161071860201b60201c565b61056673b698f7fb4d62c0ca4063becdf43fd2a7552113b1600161071860201b60201c565b61059860095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161071860201b60201c565b6105b66105a961089660201b60201c565b60016108be60201b60201c565b6105c73060016108be60201b60201c565b6105da61dead60016108be60201b60201c565b6105ff73b698f7fb4d62c0ca4063becdf43fd2a7552113b160016108be60201b60201c565b61063160085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016108be60201b60201c565b61064133826109ec60201b60201c565b505050505050505061115a565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61072661064e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1661074a61089660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146107a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079790611079565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80601e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108cc61064e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166108f061089660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d90611079565b60405180910390fd5b80601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f3f3af5ad5225fea847fdb19fb8a94b09a585a081f88b02ea3d5cd792f0f242c7826040516109e091906110b1565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5190611114565b60405180910390fd5b610a6b5f8383610b4f60201b60201c565b8060025f828254610a7c9190610fec565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610ace9190610fec565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b329190611141565b60405180910390a3610b4b5f8383610b5460201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610bd457607f821691505b602082108103610be757610be6610b90565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610c497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610c0e565b610c538683610c0e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610c97610c92610c8d84610c6b565b610c74565b610c6b565b9050919050565b5f819050919050565b610cb083610c7d565b610cc4610cbc82610c9e565b848454610c1a565b825550505050565b5f90565b610cd8610ccc565b610ce3818484610ca7565b505050565b5b81811015610d0657610cfb5f82610cd0565b600181019050610ce9565b5050565b601f821115610d4b57610d1c81610bed565b610d2584610bff565b81016020851015610d34578190505b610d48610d4085610bff565b830182610ce8565b50505b505050565b5f82821c905092915050565b5f610d6b5f1984600802610d50565b1980831691505092915050565b5f610d838383610d5c565b9150826002028217905092915050565b610d9c82610b59565b67ffffffffffffffff811115610db557610db4610b63565b5b610dbf8254610bbd565b610dca828285610d0a565b5f60209050601f831160018114610dfb575f8415610de9578287015190505b610df38582610d78565b865550610e5a565b601f198416610e0986610bed565b5f5b82811015610e3057848901518255600182019150602085019450602081019050610e0b565b86831015610e4d5784890151610e49601f891682610d5c565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e8f82610e66565b9050919050565b610e9f81610e85565b8114610ea9575f80fd5b50565b5f81519050610eba81610e96565b92915050565b5f60208284031215610ed557610ed4610e62565b5b5f610ee284828501610eac565b91505092915050565b610ef481610e85565b82525050565b5f604082019050610f0d5f830185610eeb565b610f1a6020830184610eeb565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610f5882610c6b565b9150610f6383610c6b565b9250828202610f7181610c6b565b91508282048414831517610f8857610f87610f21565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610fc682610c6b565b9150610fd183610c6b565b925082610fe157610fe0610f8f565b5b828204905092915050565b5f610ff682610c6b565b915061100183610c6b565b925082820190508082111561101957611018610f21565b5b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61106360208361101f565b915061106e8261102f565b602082019050919050565b5f6020820190508181035f83015261109081611057565b9050919050565b5f8115159050919050565b6110ab81611097565b82525050565b5f6020820190506110c45f8301846110a2565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6110fe601f8361101f565b9150611109826110ca565b602082019050919050565b5f6020820190508181035f83015261112b816110f2565b9050919050565b61113b81610c6b565b82525050565b5f6020820190506111545f830184611132565b92915050565b615ab7806111675f395ff3fe608060405260043610610379575f3560e01c80637202f063116101d0578063a9059cbb11610101578063dcb8bc301161009f578063e95886361161006e578063e958863614610caa578063f11a24d314610ce6578063f2fde38b14610d10578063f637434214610d3857610380565b8063dcb8bc3014610bf6578063dd62ed3e14610c1e578063df97ca5114610c5a578063e76e5f5214610c8257610380565b8063b9dbe71d116100db578063b9dbe71d14610b52578063bd58638814610b7c578063c10c060414610ba6578063c5bf471114610bce57610380565b8063a9059cbb14610ab0578063aedd8f4814610aec578063b62496f514610b1657610380565b8063921369131161016e5780639ec490d6116101485780639ec490d6146109fa578063a1e1e60814610a22578063a457c2d714610a4c578063a4f9058814610a8857610380565b8063921369131461097e57806395d89b41146109a85780639a7a23d6146109d257610380565b8063827f1b33116101aa578063827f1b33146108d85780638a8c523c146109025780638da5cb5b146109185780639145dbe21461094257610380565b80637202f0631461085a578063751039fc146108845780637bce5a04146108ae57610380565b80632610eaca116102aa57806348d86135116102485780635f1caf6e116102225780635f1caf6e146107b45780636d7effaa146107de57806370a0823114610808578063715018a61461084457610380565b806348d861351461073857806349bd5a5e14610760578063531d8fe91461078a57610380565b8063313ce56711610284578063313ce5671461067e57806339509351146106a85780633b68edea146106e457806342d4ee511461070e57610380565b80632610eaca1461060257806327c8f8351461062a5780632b112e491461065457610380565b806318160ddd116103175780631d4d18d3116102f15780631d4d18d31461054a5780631f3fed8f14610574578063238760641461059e57806323b872dd146105c657610380565b806318160ddd146104ce5780631a0a3a3a146104f85780631a8145bb1461052057610380565b806306fdde031161035357806306fdde0314610402578063095ea7b31461042c578063144ed8a1146104685780631694505e146104a457610380565b806301ba031f146103845780630326b643146103ae578063040fb7ce146103d857610380565b3661038057005b5f80fd5b34801561038f575f80fd5b50610398610d62565b6040516103a591906143be565b60405180910390f35b3480156103b9575f80fd5b506103c2610d87565b6040516103cf91906143f1565b60405180910390f35b3480156103e3575f80fd5b506103ec610d9a565b6040516103f99190614422565b60405180910390f35b34801561040d575f80fd5b50610416610da0565b60405161042391906144ab565b60405180910390f35b348015610437575f80fd5b50610452600480360381019061044d9190614530565b610e30565b60405161045f91906143f1565b60405180910390f35b348015610473575f80fd5b5061048e6004803603810190610489919061456e565b610e4d565b60405161049b91906143f1565b60405180910390f35b3480156104af575f80fd5b506104b8610eda565b6040516104c591906145f4565b60405180910390f35b3480156104d9575f80fd5b506104e2610eff565b6040516104ef9190614422565b60405180910390f35b348015610503575f80fd5b5061051e6004803603810190610519919061460d565b610f08565b005b34801561052b575f80fd5b50610534610fc1565b6040516105419190614422565b60405180910390f35b348015610555575f80fd5b5061055e610fc7565b60405161056b9190614422565b60405180910390f35b34801561057f575f80fd5b50610588610fcd565b6040516105959190614422565b60405180910390f35b3480156105a9575f80fd5b506105c460048036038101906105bf9190614687565b610fd3565b005b3480156105d1575f80fd5b506105ec60048036038101906105e791906146c5565b611309565b6040516105f991906143f1565b60405180910390f35b34801561060d575f80fd5b5061062860048036038101906106239190614915565b6113fb565b005b348015610635575f80fd5b5061063e611587565b60405161064b91906143be565b60405180910390f35b34801561065f575f80fd5b5061066861158d565b6040516106759190614422565b60405180910390f35b348015610689575f80fd5b506106926115c3565b60405161069f91906149a6565b60405180910390f35b3480156106b3575f80fd5b506106ce60048036038101906106c99190614530565b6115cb565b6040516106db91906143f1565b60405180910390f35b3480156106ef575f80fd5b506106f8611672565b60405161070591906143f1565b60405180910390f35b348015610719575f80fd5b50610722611685565b60405161072f9190614422565b60405180910390f35b348015610743575f80fd5b5061075e600480360381019061075991906149bf565b61168b565b005b34801561076b575f80fd5b506107746119fb565b60405161078191906143be565b60405180910390f35b348015610795575f80fd5b5061079e611a20565b6040516107ab91906143f1565b60405180910390f35b3480156107bf575f80fd5b506107c8611a33565b6040516107d59190614422565b60405180910390f35b3480156107e9575f80fd5b506107f2611a39565b6040516107ff9190614422565b60405180910390f35b348015610813575f80fd5b5061082e600480360381019061082991906149bf565b611a3f565b60405161083b9190614422565b60405180910390f35b34801561084f575f80fd5b50610858611a84565b005b348015610865575f80fd5b5061086e611b0b565b60405161087b9190614422565b60405180910390f35b34801561088f575f80fd5b50610898611b11565b6040516108a591906143f1565b60405180910390f35b3480156108b9575f80fd5b506108c2611baf565b6040516108cf9190614422565b60405180910390f35b3480156108e3575f80fd5b506108ec611bb5565b6040516108f99190614422565b60405180910390f35b34801561090d575f80fd5b50610916611bbb565b005b348015610923575f80fd5b5061092c611c76565b60405161093991906143be565b60405180910390f35b34801561094d575f80fd5b50610968600480360381019061096391906149bf565b611c9e565b60405161097591906143f1565b60405180910390f35b348015610989575f80fd5b50610992611cf0565b60405161099f9190614422565b60405180910390f35b3480156109b3575f80fd5b506109bc611cf6565b6040516109c991906144ab565b60405180910390f35b3480156109dd575f80fd5b506109f860048036038101906109f39190614687565b611d86565b005b348015610a05575f80fd5b50610a206004803603810190610a1b919061460d565b611e9f565b005b348015610a2d575f80fd5b50610a36611f58565b604051610a439190614422565b60405180910390f35b348015610a57575f80fd5b50610a726004803603810190610a6d9190614530565b611f5e565b604051610a7f91906143f1565b60405180910390f35b348015610a93575f80fd5b50610aae6004803603810190610aa991906149ea565b612044565b005b348015610abb575f80fd5b50610ad66004803603810190610ad19190614530565b6120f8565b604051610ae391906143f1565b60405180910390f35b348015610af7575f80fd5b50610b00612115565b604051610b0d9190614422565b60405180910390f35b348015610b21575f80fd5b50610b3c6004803603810190610b3791906149bf565b61211b565b604051610b4991906143f1565b60405180910390f35b348015610b5d575f80fd5b50610b66612138565b604051610b7391906143be565b60405180910390f35b348015610b87575f80fd5b50610b9061215d565b604051610b9d91906143f1565b60405180910390f35b348015610bb1575f80fd5b50610bcc6004803603810190610bc791906149bf565b61216f565b005b348015610bd9575f80fd5b50610bf46004803603810190610bef9190614687565b6122a9565b005b348015610c01575f80fd5b50610c1c6004803603810190610c1791906149bf565b61237d565b005b348015610c29575f80fd5b50610c446004803603810190610c3f9190614a28565b612928565b604051610c519190614422565b60405180910390f35b348015610c65575f80fd5b50610c806004803603810190610c7b9190614687565b6129aa565b005b348015610c8d575f80fd5b50610ca86004803603810190610ca391906149bf565b612acc565b005b348015610cb5575f80fd5b50610cd06004803603810190610ccb91906149bf565b612c06565b604051610cdd91906143f1565b60405180910390f35b348015610cf1575f80fd5b50610cfa612c23565b604051610d079190614422565b60405180910390f35b348015610d1b575f80fd5b50610d366004803603810190610d3191906149bf565b612c29565b005b348015610d43575f80fd5b50610d4c612d1f565b604051610d599190614422565b60405180910390f35b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60039054906101000a900460ff1681565b60175481565b606060038054610daf90614a93565b80601f0160208091040260200160405190810160405280929190818152602001828054610ddb90614a93565b8015610e265780601f10610dfd57610100808354040283529160200191610e26565b820191905f5260205f20905b815481529060010190602001808311610e0957829003601f168201915b5050505050905090565b5f610e43610e3c612d25565b8484612d2c565b6001905092915050565b5f610e56612d25565b73ffffffffffffffffffffffffffffffffffffffff16610e74611c76565b73ffffffffffffffffffffffffffffffffffffffff1614610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec190614b0d565b60405180910390fd5b81600b8190555060019050919050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600254905090565b610f10612d25565b73ffffffffffffffffffffffffffffffffffffffff16610f2e611c76565b73ffffffffffffffffffffffffffffffffffffffff1614610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b90614b0d565b60405180910390fd5b826018819055508160198190555080601a81905550601a54601954601854610fac9190614b58565b610fb69190614b58565b601781905550505050565b60115481565b600b5481565b60105481565b610fdb612d25565b73ffffffffffffffffffffffffffffffffffffffff16610ff9611c76565b73ffffffffffffffffffffffffffffffffffffffff161461104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690614b0d565b60405180910390fd5b80611137575f601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632572d106835f6040518363ffffffff1660e01b8152600401611105929190614b8b565b5f604051808303815f87803b15801561111c575f80fd5b505af115801561112e573d5f803e3d5ffd5b50505050611305565b5f600d5414611193576203f480600d54426111529190614bb2565b11611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118990614c2f565b60405180910390fd5b5b601b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561121d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121490614c97565b60405180910390fd5b6001601b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555042600d81905550600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632572d1068360016040518363ffffffff1660e01b81526004016112d7929190614b8b565b5f604051808303815f87803b1580156112ee575f80fd5b505af1158015611300573d5f803e3d5ffd5b505050505b5050565b5f611315848484612eef565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61135c612d25565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d290614d25565b60405180910390fd5b6113ef856113e7612d25565b858403612d2c565b60019150509392505050565b611403612d25565b73ffffffffffffffffffffffffffffffffffffffff16611421611c76565b73ffffffffffffffffffffffffffffffffffffffff1614611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90614b0d565b60405180910390fd5b80518251146114bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b290614d8d565b60405180910390fd5b5f5b82518161ffff16101561158257670de0b6b3a7640000828261ffff16815181106114ea576114e9614dab565b5b60200260200101516114fc9190614dd8565b61150533611a3f565b1015611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90614e63565b60405180910390fd5b61156e33838361ffff168151811061156157611560614dab565b5b60200260200101516120f8565b50808061157a90614e8e565b9150506114bd565b505050565b61dead81565b5f6115975f611a3f565b6115a261dead611a3f565b6115ac9190614b58565b6115b4610eff565b6115be9190614bb2565b905090565b5f6012905090565b5f6116686115d7612d25565b848460015f6115e4612d25565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546116639190614b58565b612d2c565b6001905092915050565b600f60029054906101000a900460ff1681565b60125481565b611693612d25565b73ffffffffffffffffffffffffffffffffffffffff166116b1611c76565b73ffffffffffffffffffffffffffffffffffffffff1614611707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fe90614b0d565b60405180910390fd5b600f60029054906101000a900460ff1615611720575f80fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590614f01565b60405180910390fd5b80600f60046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dcb31b826040518163ffffffff1660e01b815260040160408051808303815f875af192505050801561185957506040513d601f19601f820116820180604052508101906118569190614f33565b60015b611861575f80fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506119aa611962611c76565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612d2c565b6119f63060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612d2c565b505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60019054906101000a900460ff1681565b601a5481565b60165481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611a8c612d25565b73ffffffffffffffffffffffffffffffffffffffff16611aaa611c76565b73ffffffffffffffffffffffffffffffffffffffff1614611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af790614b0d565b60405180910390fd5b611b095f613980565b565b600a5481565b5f611b1a612d25565b73ffffffffffffffffffffffffffffffffffffffff16611b38611c76565b73ffffffffffffffffffffffffffffffffffffffff1614611b8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8590614b0d565b60405180910390fd5b5f600f60016101000a81548160ff0219169083151502179055506001905090565b60145481565b600e5481565b611bc3612d25565b73ffffffffffffffffffffffffffffffffffffffff16611be1611c76565b73ffffffffffffffffffffffffffffffffffffffff1614611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e90614b0d565b60405180910390fd5b6001600f60026101000a81548160ff0219169083151502179055506001600f60036101000a81548160ff02191690831515021790555042600e81905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f601c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60185481565b606060048054611d0590614a93565b80601f0160208091040260200160405190810160405280929190818152602001828054611d3190614a93565b8015611d7c5780601f10611d5357610100808354040283529160200191611d7c565b820191905f5260205f20905b815481529060010190602001808311611d5f57829003601f168201915b5050505050905090565b611d8e612d25565b73ffffffffffffffffffffffffffffffffffffffff16611dac611c76565b73ffffffffffffffffffffffffffffffffffffffff1614611e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df990614b0d565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8890614fe1565b60405180910390fd5b611e9b8282613a43565b5050565b611ea7612d25565b73ffffffffffffffffffffffffffffffffffffffff16611ec5611c76565b73ffffffffffffffffffffffffffffffffffffffff1614611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1290614b0d565b60405180910390fd5b826014819055508160158190555080601681905550601654601554601454611f439190614b58565b611f4d9190614b58565b601381905550505050565b60135481565b5f8060015f611f6b612d25565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201c9061506f565b60405180910390fd5b612039612030612d25565b85858403612d2c565b600191505092915050565b61204c612d25565b73ffffffffffffffffffffffffffffffffffffffff1661206a611c76565b73ffffffffffffffffffffffffffffffffffffffff16146120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b790614b0d565b60405180910390fd5b670de0b6b3a7640000826120d49190614dd8565b600c81905550670de0b6b3a7640000816120ee9190614dd8565b600a819055505050565b5f61210b612104612d25565b8484612eef565b6001905092915050565b600c5481565b601e602052805f5260405f205f915054906101000a900460ff1681565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5f9054906101000a900460ff1681565b612177612d25565b73ffffffffffffffffffffffffffffffffffffffff16612195611c76565b73ffffffffffffffffffffffffffffffffffffffff16146121eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e290614b0d565b60405180910390fd5b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167ff6dfc3bff32523d89be03971ac0347b7c590c1e890eccc9553a95c1bf79596a360405160405180910390a38060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122b1612d25565b73ffffffffffffffffffffffffffffffffffffffff166122cf611c76565b73ffffffffffffffffffffffffffffffffffffffff1614612325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231c90614b0d565b60405180910390fd5b80601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b612385612d25565b73ffffffffffffffffffffffffffffffffffffffff166123a3611c76565b73ffffffffffffffffffffffffffffffffffffffff16146123f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f090614b0d565b60405180910390fd5b600f5f9054906101000a900460ff1615612448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243f906150d7565b60405180910390fd5b5f8190505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612496573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124ba91906150f5565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561251f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061254391906150f5565b6040518363ffffffff1660e01b8152600401612560929190615120565b602060405180830381865afa15801561257b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061259f91906150f5565b90505f601b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036127e0578173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612692573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126b691906150f5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061273f91906150f5565b6040518363ffffffff1660e01b815260040161275c929190615120565b6020604051808303815f875af1158015612778573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061279c91906150f5565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612821565b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506129233060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612d2c565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6129b2612d25565b73ffffffffffffffffffffffffffffffffffffffff166129d0611c76565b73ffffffffffffffffffffffffffffffffffffffff1614612a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1d90614b0d565b60405180910390fd5b80601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f3f3af5ad5225fea847fdb19fb8a94b09a585a081f88b02ea3d5cd792f0f242c782604051612ac091906143f1565b60405180910390a25050565b612ad4612d25565b73ffffffffffffffffffffffffffffffffffffffff16612af2611c76565b73ffffffffffffffffffffffffffffffffffffffff1614612b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3f90614b0d565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa27b2fa8ad99b22f0c36abfb9c82c7139a42a9660c10039e8c6e0a11af6c13c260405160405180910390a38060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601d602052805f5260405f205f915054906101000a900460ff1681565b60155481565b612c31612d25565b73ffffffffffffffffffffffffffffffffffffffff16612c4f611c76565b73ffffffffffffffffffffffffffffffffffffffff1614612ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9c90614b0d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0a906151b7565b60405180910390fd5b612d1c81613980565b50565b60195481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612d9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9190615245565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dff906152d3565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612ee29190614422565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5490615361565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc2906153ef565b60405180910390fd5b5f8103612fe257612fdd83835f613ae1565b61397b565b600f60019054906101000a900460ff16156134c757612fff611c76565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561306d575061303d611c76565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156130a557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156130df575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156130f85750600760149054906101000a900460ff16155b156134c657600f60029054906101000a900460ff166131ec57601c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806131ac5750601c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6131eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131e290615457565b60405180910390fd5b5b601e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156132895750601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561333057600a548111156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca906154e5565b60405180910390fd5b600c546132df83611a3f565b826132ea9190614b58565b111561332b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133229061554d565b60405180910390fd5b6134c5565b601e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156133cd5750601d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561341c57600a54811115613417576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161340e906155db565b60405180910390fd5b6134c4565b601d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166134c357600c5461347683611a3f565b826134819190614b58565b11156134c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134b99061554d565b60405180910390fd5b5b5b5b5b5b5f6134d130611a3f565b90505f600b5482101590508080156134f55750600f60039054906101000a900460ff165b801561350e5750600760149054906101000a900460ff16155b80156135615750601e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156135b45750601c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156136075750601c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561364a576001600760146101000a81548160ff02191690831515021790555061362f613d56565b5f600760146101000a81548160ff0219169083151502179055505b5f600760149054906101000a900460ff16159050601c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806136f95750601c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15613702575f90505b5f811561396b57601e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561376057505f601754115b1561382a5761378d606461377f6017548861402590919063ffffffff16565b61403a90919063ffffffff16565b9050601754601954826137a09190614dd8565b6137aa9190615626565b60115f8282546137ba9190614b58565b92505081905550601754601a54826137d29190614dd8565b6137dc9190615626565b60125f8282546137ec9190614b58565b92505081905550601754601854826138049190614dd8565b61380e9190615626565b60105f82825461381e9190614b58565b92505081905550613948565b601e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561388157505f601354115b15613947576138ae60646138a06013548861402590919063ffffffff16565b61403a90919063ffffffff16565b9050601354601554826138c19190614dd8565b6138cb9190615626565b60115f8282546138db9190614b58565b92505081905550601354601654826138f39190614dd8565b6138fd9190615626565b60125f82825461390d9190614b58565b92505081905550601354601454826139259190614dd8565b61392f9190615626565b60105f82825461393f9190614b58565b925050819055505b5b5f81111561395c5761395b873083613ae1565b5b80856139689190614bb2565b94505b613976878787613ae1565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b46906156c6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bb490615754565b60405180910390fd5b613bc883838361404f565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c42906157e2565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254613cd99190614b58565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613d3d9190614422565b60405180910390a3613d50848484614054565b50505050565b5f613d6030611a3f565b90505f601254601054601154613d769190614b58565b613d809190614b58565b90505f80831480613d9057505f82145b15613d9d57505050614023565b6014600b54613dac9190614dd8565b831115613dc5576014600b54613dc29190614dd8565b92505b5f60028360115486613dd79190614dd8565b613de19190615626565b613deb9190615626565b90505f613e01828661405990919063ffffffff16565b90505f479050613e108261406e565b5f613e24824761405990919063ffffffff16565b90505f613e4e87613e406010548561402590919063ffffffff16565b61403a90919063ffffffff16565b90505f613e7888613e6a6012548661402590919063ffffffff16565b61403a90919063ffffffff16565b90505f818385613e889190614bb2565b613e929190614bb2565b90505f6011819055505f6010819055505f60128190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051613eee9061582d565b5f6040518083038185875af1925050503d805f8114613f28576040519150601f19603f3d011682016040523d82523d5f602084013e613f2d565b606091505b5050809850505f87118015613f4157505f81115b15613f8e57613f5087826142a4565b7f71f6c7d380d6759e27472dddd8edda114ea424114ec44db5601ca370e3a5f90e8682601154604051613f8593929190615841565b60405180910390a15b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051613fd39061582d565b5f6040518083038185875af1925050503d805f811461400d576040519150601f19603f3d011682016040523d82523d5f602084013e614012565b606091505b505080985050505050505050505050505b565b5f81836140329190614dd8565b905092915050565b5f81836140479190615626565b905092915050565b505050565b505050565b5f81836140669190614bb2565b905092915050565b5f600267ffffffffffffffff81111561408a57614089614719565b5b6040519080825280602002602001820160405280156140b85781602001602082028036833780820191505090505b50905030815f815181106140cf576140ce614dab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614173573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061419791906150f5565b816001815181106141ab576141aa614dab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506142113060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612d2c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401614273959493929190615966565b5f604051808303815f87803b15801561428a575f80fd5b505af115801561429c573d5f803e3d5ffd5b505050505050565b6142d03060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612d2c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061dead426040518863ffffffff1660e01b8152600401614337969594939291906159be565b60606040518083038185885af1158015614353573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906143789190615a31565b5050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6143a88261437f565b9050919050565b6143b88161439e565b82525050565b5f6020820190506143d15f8301846143af565b92915050565b5f8115159050919050565b6143eb816143d7565b82525050565b5f6020820190506144045f8301846143e2565b92915050565b5f819050919050565b61441c8161440a565b82525050565b5f6020820190506144355f830184614413565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61447d8261443b565b6144878185614445565b9350614497818560208601614455565b6144a081614463565b840191505092915050565b5f6020820190508181035f8301526144c38184614473565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b6144e58161439e565b81146144ef575f80fd5b50565b5f81359050614500816144dc565b92915050565b61450f8161440a565b8114614519575f80fd5b50565b5f8135905061452a81614506565b92915050565b5f8060408385031215614546576145456144d4565b5b5f614553858286016144f2565b92505060206145648582860161451c565b9150509250929050565b5f60208284031215614583576145826144d4565b5b5f6145908482850161451c565b91505092915050565b5f819050919050565b5f6145bc6145b76145b28461437f565b614599565b61437f565b9050919050565b5f6145cd826145a2565b9050919050565b5f6145de826145c3565b9050919050565b6145ee816145d4565b82525050565b5f6020820190506146075f8301846145e5565b92915050565b5f805f60608486031215614624576146236144d4565b5b5f6146318682870161451c565b93505060206146428682870161451c565b92505060406146538682870161451c565b9150509250925092565b614666816143d7565b8114614670575f80fd5b50565b5f813590506146818161465d565b92915050565b5f806040838503121561469d5761469c6144d4565b5b5f6146aa858286016144f2565b92505060206146bb85828601614673565b9150509250929050565b5f805f606084860312156146dc576146db6144d4565b5b5f6146e9868287016144f2565b93505060206146fa868287016144f2565b925050604061470b8682870161451c565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61474f82614463565b810181811067ffffffffffffffff8211171561476e5761476d614719565b5b80604052505050565b5f6147806144cb565b905061478c8282614746565b919050565b5f67ffffffffffffffff8211156147ab576147aa614719565b5b602082029050602081019050919050565b5f80fd5b5f6147d26147cd84614791565b614777565b905080838252602082019050602084028301858111156147f5576147f46147bc565b5b835b8181101561481e578061480a88826144f2565b8452602084019350506020810190506147f7565b5050509392505050565b5f82601f83011261483c5761483b614715565b5b813561484c8482602086016147c0565b91505092915050565b5f67ffffffffffffffff82111561486f5761486e614719565b5b602082029050602081019050919050565b5f61489261488d84614855565b614777565b905080838252602082019050602084028301858111156148b5576148b46147bc565b5b835b818110156148de57806148ca888261451c565b8452602084019350506020810190506148b7565b5050509392505050565b5f82601f8301126148fc576148fb614715565b5b813561490c848260208601614880565b91505092915050565b5f806040838503121561492b5761492a6144d4565b5b5f83013567ffffffffffffffff811115614948576149476144d8565b5b61495485828601614828565b925050602083013567ffffffffffffffff811115614975576149746144d8565b5b614981858286016148e8565b9150509250929050565b5f60ff82169050919050565b6149a08161498b565b82525050565b5f6020820190506149b95f830184614997565b92915050565b5f602082840312156149d4576149d36144d4565b5b5f6149e1848285016144f2565b91505092915050565b5f8060408385031215614a00576149ff6144d4565b5b5f614a0d8582860161451c565b9250506020614a1e8582860161451c565b9150509250929050565b5f8060408385031215614a3e57614a3d6144d4565b5b5f614a4b858286016144f2565b9250506020614a5c858286016144f2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680614aaa57607f821691505b602082108103614abd57614abc614a66565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f614af7602083614445565b9150614b0282614ac3565b602082019050919050565b5f6020820190508181035f830152614b2481614aeb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614b628261440a565b9150614b6d8361440a565b9250828201905080821115614b8557614b84614b2b565b5b92915050565b5f604082019050614b9e5f8301856143af565b614bab60208301846143e2565b9392505050565b5f614bbc8261440a565b9150614bc78361440a565b9250828203905081811115614bdf57614bde614b2b565b5b92915050565b7f332044617920636f6f6c646f776e2e00000000000000000000000000000000005f82015250565b5f614c19600f83614445565b9150614c2482614be5565b602082019050919050565b5f6020820190508181035f830152614c4681614c0d565b9050919050565b7f5061697220616c726561647920616464656420746f206c6973742e00000000005f82015250565b5f614c81601b83614445565b9150614c8c82614c4d565b602082019050919050565b5f6020820190508181035f830152614cae81614c75565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f614d0f602883614445565b9150614d1a82614cb5565b604082019050919050565b5f6020820190508181035f830152614d3c81614d03565b9050919050565b7f4c656e6774687320646f206e6f74206d617463682e00000000000000000000005f82015250565b5f614d77601583614445565b9150614d8282614d43565b602082019050919050565b5f6020820190508181035f830152614da481614d6b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f614de28261440a565b9150614ded8361440a565b9250828202614dfb8161440a565b91508282048414831517614e1257614e11614b2b565b5b5092915050565b7f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000005f82015250565b5f614e4d601283614445565b9150614e5882614e19565b602082019050919050565b5f6020820190508181035f830152614e7a81614e41565b9050919050565b5f61ffff82169050919050565b5f614e9882614e81565b915061ffff8203614eac57614eab614b2b565b5b600182019050919050565b7f43616e27742062652073656c662e0000000000000000000000000000000000005f82015250565b5f614eeb600e83614445565b9150614ef682614eb7565b602082019050919050565b5f6020820190508181035f830152614f1881614edf565b9050919050565b5f81519050614f2d816144dc565b92915050565b5f8060408385031215614f4957614f486144d4565b5b5f614f5685828601614f1f565b9250506020614f6785828601614f1f565b9150509250929050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f614fcb603983614445565b9150614fd682614f71565b604082019050919050565b5f6020820190508181035f830152614ff881614fbf565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f615059602583614445565b915061506482614fff565b604082019050919050565b5f6020820190508181035f8301526150868161504d565b9050919050565b7f43616e6e6f74206368616e6765206166746572206c69717569646974792e00005f82015250565b5f6150c1601e83614445565b91506150cc8261508d565b602082019050919050565b5f6020820190508181035f8301526150ee816150b5565b9050919050565b5f6020828403121561510a576151096144d4565b5b5f61511784828501614f1f565b91505092915050565b5f6040820190506151335f8301856143af565b61514060208301846143af565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6151a1602683614445565b91506151ac82615147565b604082019050919050565b5f6020820190508181035f8301526151ce81615195565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61522f602483614445565b915061523a826151d5565b604082019050919050565b5f6020820190508181035f83015261525c81615223565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6152bd602283614445565b91506152c882615263565b604082019050919050565b5f6020820190508181035f8301526152ea816152b1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f64726573732e0000000000000000000000000000000000000000000000000000602082015250565b5f61534b602683614445565b9150615356826152f1565b604082019050919050565b5f6020820190508181035f8301526153788161533f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573732e00000000000000000000000000000000000000000000000000000000602082015250565b5f6153d9602483614445565b91506153e48261537f565b604082019050919050565b5f6020820190508181035f830152615406816153cd565b9050919050565b7f54726164696e67206973206e6f742061637469766521000000000000000000005f82015250565b5f615441601683614445565b915061544c8261540d565b602082019050919050565b5f6020820190508181035f83015261546e81615435565b9050919050565b7f427579207472616e7366657220616d6f756e74203e206d61785478496e5065725f8201527f63656e7421000000000000000000000000000000000000000000000000000000602082015250565b5f6154cf602583614445565b91506154da82615475565b604082019050919050565b5f6020820190508181035f8301526154fc816154c3565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f615537601383614445565b915061554282615503565b602082019050919050565b5f6020820190508181035f8301526155648161552b565b9050919050565b7f53656c6c207472616e7366657220616d6f756e74203e206d61785478496e50655f8201527f7263656e74210000000000000000000000000000000000000000000000000000602082015250565b5f6155c5602683614445565b91506155d08261556b565b604082019050919050565b5f6020820190508181035f8301526155f2816155b9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6156308261440a565b915061563b8361440a565b92508261564b5761564a6155f9565b5b828204905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6156b0602583614445565b91506156bb82615656565b604082019050919050565b5f6020820190508181035f8301526156dd816156a4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61573e602383614445565b9150615749826156e4565b604082019050919050565b5f6020820190508181035f83015261576b81615732565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6157cc602683614445565b91506157d782615772565b604082019050919050565b5f6020820190508181035f8301526157f9816157c0565b9050919050565b5f81905092915050565b50565b5f6158185f83615800565b91506158238261580a565b5f82019050919050565b5f6158378261580d565b9150819050919050565b5f6060820190506158545f830186614413565b6158616020830185614413565b61586e6040830184614413565b949350505050565b5f819050919050565b5f61589961589461588f84615876565b614599565b61440a565b9050919050565b6158a98161587f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6158e18161439e565b82525050565b5f6158f283836158d8565b60208301905092915050565b5f602082019050919050565b5f615914826158af565b61591e81856158b9565b9350615929836158c9565b805f5b8381101561595957815161594088826158e7565b975061594b836158fe565b92505060018101905061592c565b5085935050505092915050565b5f60a0820190506159795f830188614413565b61598660208301876158a0565b8181036040830152615998818661590a565b90506159a760608301856143af565b6159b46080830184614413565b9695505050505050565b5f60c0820190506159d15f8301896143af565b6159de6020830188614413565b6159eb60408301876158a0565b6159f860608301866158a0565b615a0560808301856143af565b615a1260a0830184614413565b979650505050505050565b5f81519050615a2b81614506565b92915050565b5f805f60608486031215615a4857615a476144d4565b5b5f615a5586828701615a1d565b9350506020615a6686828701615a1d565b9250506040615a7786828701615a1d565b915050925092509256fea2646970667358221220ac1055f034639a6fd673cbcaf7222a3775609b5cc39a020f7b798b087b7d1e2764736f6c63430008190033