60806040523480156200001157600080fd5b506040516200392a3803806200392a8339810160408190526200003491620001d4565b8484604051806020016040528060008152508062000058816200018f60201b60201c565b50612710821115620000bc5760405162461bcd60e51b815260206004820152602360248201527f43757272656e746c79206f6e6c7920737570706f7274732031306b20737570706044820152626c792160e81b606482015260840160405180910390fd5b6003620000ca84826200037c565b50600060045560058290556006620000e382826200037c565b503060009081526007602052604081206029018390555b602881101562000139573060009081526007602052604090206000199060010182602881106200012e576200012e62000448565b0155600101620000fa565b5050600c80546001600160a01b039687166001600160a01b031991821617909155600d8054958716958216959095179094555050600e805491909316911617905550506009805460ff60a01b191690556200045e565b60066200019d82826200037c565b5050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620001cf57600080fd5b919050565b600080600080600060a08688031215620001ed57600080fd5b85516001600160401b03808211156200020557600080fd5b818801915088601f8301126200021a57600080fd5b8151818111156200022f576200022f620001a1565b604051601f8201601f19908116603f011681019083821181831017156200025a576200025a620001a1565b81604052828152602093508b848487010111156200027757600080fd5b600091505b828210156200029b57848201840151818301850152908301906200027c565b60008484830101528099505050508088015195505050620002bf60408701620001b7565b9250620002cf60608701620001b7565b9150620002df60808701620001b7565b90509295509295909350565b600181811c908216806200030057607f821691505b6020821081036200032157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000377576000816000526020600020601f850160051c81016020861015620003525750805b601f850160051c820191505b8181101562000373578281556001016200035e565b5050505b505050565b81516001600160401b03811115620003985762000398620001a1565b620003b081620003a98454620002eb565b8462000327565b602080601f831160018114620003e85760008415620003cf5750858301515b600019600386901b1c1916600185901b17855562000373565b600085815260208120601f198616915b828110156200041957888601518255948401946001909101908401620003f8565b5085821015620004385787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6134bc806200046e6000396000f3fe6080604052600436106101e25760003560e01c80639c7b390111610102578063d01242f911610095578063f23a6e6111610064578063f23a6e6114610596578063f242432a146105c3578063f3fef3a3146105e3578063f4a0a5281461060357600080fd5b8063d01242f91461050b578063d5abeb0114610541578063e985e9c514610556578063f0a57e711461057657600080fd5b8063a22cb465116100d1578063a22cb46514610455578063a81119a114610475578063b15be2f5146104ae578063bc197c81146104c357600080fd5b80639c7b3901146103ed5780639e6a1d7d1461040d578063a035b1fe1461042d578063a0712d681461044257600080fd5b80634e1273f41161017a5780637d55cd92116101495780637d55cd92146103835780638456cb59146103a3578063915aeb7c146103b857806395d89b41146103d857600080fd5b80634e1273f4146102f657806351cff8d9146103235780636435a753146103435780637a1ac61e1461036357600080fd5b80630e89341c116101b65780630e89341c1461028e57806318160ddd146102ae5780632eb2c2d6146102c357806347e7ef24146102e357600080fd5b8062fdd58e146101e757806301ffc9a71461021a57806302fe53051461024a57806306fdde031461026c575b600080fd5b3480156101f357600080fd5b50610207610202366004612984565b610623565b6040519081526020015b60405180910390f35b34801561022657600080fd5b5061023a6102353660046129b0565b61067d565b6040519015158152602001610211565b34801561025657600080fd5b5061026a610265366004612aa4565b6106cb565b005b34801561027857600080fd5b50610281610731565b6040516102119190612b04565b34801561029a57600080fd5b506102816102a9366004612b37565b6107c6565b3480156102ba57600080fd5b50600454610207565b3480156102cf57600080fd5b5061026a6102de366004612bdd565b61085c565b61026a6102f1366004612984565b610996565b34801561030257600080fd5b50610316610311366004612c8a565b6109e8565b6040516102119190612d87565b34801561032f57600080fd5b5061026a61033e366004612d9a565b610ab4565b34801561034f57600080fd5b5061031661035e366004612d9a565b610b44565b34801561036f57600080fd5b5061026a61037e366004612db7565b610b65565b34801561038f57600080fd5b5061026a61039e366004612dec565b61117d565b3480156103af57600080fd5b5061026a6112b5565b3480156103c457600080fd5b506103166103d3366004612984565b6113ca565b3480156103e457600080fd5b506102816115d1565b3480156103f957600080fd5b5061023a610408366004612e3b565b611648565b34801561041957600080fd5b5061026a610428366004612b37565b61170c565b34801561043957600080fd5b50600a54610207565b61026a610450366004612b37565b61173b565b34801561046157600080fd5b5061026a610470366004612e79565b6118ff565b34801561048157600080fd5b50610207610490366004612d9a565b6001600160a01b031660009081526007602052604090206029015490565b3480156104ba57600080fd5b5061026a61196b565b3480156104cf57600080fd5b506104f26104de366004612f33565b63bc197c8160e01b98975050505050505050565b6040516001600160e01b03199091168152602001610211565b34801561051757600080fd5b50610207610526366004612d9a565b6001600160a01b031660009081526008602052604090205490565b34801561054d57600080fd5b50600554610207565b34801561056257600080fd5b5061023a610571366004612ff1565b611ac3565b34801561058257600080fd5b5061026a61059136600461301f565b611af1565b3480156105a257600080fd5b506104f26105b1366004613060565b63f23a6e6160e01b9695505050505050565b3480156105cf57600080fd5b5061026a6105de3660046130db565b611b27565b3480156105ef57600080fd5b5061026a6105fe366004612984565b611bec565b34801561060f57600080fd5b5061026a61061e366004612b37565b611cf6565b6000811580610633575060055482115b1561065957604051637e70ea5b60e01b8152600481018390526024015b60405180910390fd5b6106638284611648565b61066e576000610671565b60015b60ff1690505b92915050565b60006301ffc9a760e01b6001600160e01b0319831614806106ae5750636cdb3d1360e11b6001600160e01b03198316145b806106775750506001600160e01b0319166303a24d0760e21b1490565b600c546001600160a01b031633146107255760405162461bcd60e51b815260206004820152601960248201527f43616e206f6e6c7920626520736574206279206f776e657221000000000000006044820152606401610650565b61072e81611d25565b50565b60606003600001805461074390613143565b80601f016020809104026020016040519081016040528092919081815260200182805461076f90613143565b80156107bc5780601f10610791576101008083540402835291602001916107bc565b820191906000526020600020905b81548152906001019060200180831161079f57829003601f168201915b5050505050905090565b60606003800180546107d790613143565b80601f016020809104026020016040519081016040528092919081815260200182805461080390613143565b80156108505780601f1061082557610100808354040283529160200191610850565b820191906000526020600020905b81548152906001019060200180831161083357829003601f168201915b50505050509050919050565b6002600954600160a01b900460ff16600281111561087c5761087c61317d565b1461089a5760405163c0d2241560e01b815260040160405180910390fd5b6108a78585858585611d31565b60095460408051630241ebdb60e61b815290516001600160a01b039092169163b81bf8fc9188918891859163907af6c0916004808201926020929091908290030181865afa1580156108fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109219190613193565b875161092d91906131c2565b6040518463ffffffff1660e01b815260040161094b939291906131d9565b6020604051808303816000875af115801561096a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098e91906131fd565b505050505050565b348111156109b7576040516384b018ed60e01b815260040160405180910390fd5b6001600160a01b038216600090815260086020526040812080548392906109df90849061321a565b90915550505050565b60608151835114610a195781518351604051635b05999160e01b815260048101929092526024820152604401610650565b600083516001600160401b03811115610a3457610a346129e1565b604051908082528060200260200182016040528015610a5d578160200160208202803683370190505b50905060005b8451811015610aac57602080820286010151610a8790602080840287010151610623565b828281518110610a9957610a9961322d565b6020908102919091010152600101610a63565b509392505050565b6001600160a01b038116600081815260086020526040808220805490839055905190929083908381818185875af1925050503d8060008114610b12576040519150601f19603f3d011682016040523d82523d6000602084013e610b17565b606091505b5090915050600181151514610b3f57604051632333c24d60e01b815260040160405180910390fd5b505050565b6060610b55826003600201546113ca565b50610677826003600201546113ca565b6000600954600160a01b900460ff166002811115610b8557610b8561317d565b14610bde5760405162461bcd60e51b815260206004820152602360248201527f43616e206f6e6c792062652063616c6c6564206f6e206e657720636f6e74726160448201526263742160e81b6064820152608401610650565b600c546001600160a01b03163314610c085760405162461bcd60e51b815260040161065090613243565b6005548210610c595760405162461bcd60e51b815260206004820152601b60248201527f4772616e742063616e6e6f742065786365656420737570706c792100000000006044820152606401610650565b6005548110610caa5760405162461bcd60e51b815260206004820152601b60248201527f4772616e742063616e6e6f742065786365656420737570706c792100000000006044820152606401610650565b600980546001600160a01b038581166001600160a81b031990921691909117600160a01b1791829055600d5460408051630241ebdb60e61b815290519383169363b81bf8fc9388931691859163907af6c0916004808201926020929091908290030181865afa158015610d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d459190613193565b610d4f90876131c2565b6040518463ffffffff1660e01b8152600401610d6d939291906131d9565b6020604051808303816000875af1158015610d8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db091906131fd565b50600954600e5460408051630241ebdb60e61b815290516001600160a01b039384169363b81bf8fc938893911691859163907af6c09160048083019260209291908290030181865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190613193565b610e3890866131c2565b6040518463ffffffff1660e01b8152600401610e56939291906131d9565b6020604051808303816000875af1158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9991906131fd565b506000610ea861010083613290565b905060005b81811015610f16573060009081526007602052604081206001018260288110610ed857610ed861322d565b0155600e546001600160a01b03166000908152600760205260409020600019906001018260288110610f0c57610f0c61322d565b0155600101610ead565b5060006001610f27610100856132a4565b6001901b610f3591906132b8565b600e546001600160a01b0316600090815260076020526040902090915081906001018360288110610f6857610f6861322d565b01553060009081526007602052604090208119906001018360288110610f9057610f9061322d565b0155600e546001600160a01b03166000908152600760205260408082206029908101869055308352908220018054859290610fcc9084906132b8565b909155505060048054849190600090610fe690849061321a565b9091555060009050610ffa61010086613290565b9050600061010061100c8660ff61321a565b6110169190613290565b9050805b611024838361321a565b81101561108c57306000908152600760205260408120600101826028811061104e5761104e61322d565b0155600d546001600160a01b031660009081526007602052604090206000199060010182602881106110825761108261322d565b015560010161101a565b506000600161109d610100896132a4565b6001901b6110ab91906132b8565b600d546001600160a01b0316600090815260076020526040902090915081906001016110d7858561321a565b602881106110e7576110e761322d565b0155306000908152600760205260409020811990600101611108858561321a565b602881106111185761111861322d565b0155600d546001600160a01b031660009081526007602052604080822060299081018a90553083529082200180548992906111549084906132b8565b90915550506004805488919060009061116e90849061321a565b90915550505050505050505050565b6001600954600160a01b900460ff16600281111561119d5761119d61317d565b146111f85760405162461bcd60e51b815260206004820152602560248201527f43616e206f6e6c792062652063616c6c6564206f6e20726561647920636f6e74604482015264726163742160d81b6064820152608401610650565b600c546001600160a01b031633146112225760405162461bcd60e51b815260040161065090613243565b6009805460ff60a01b1916600160a11b179055600a839055600b82905561124881611d25565b600960009054906101000a90046001600160a01b03166001600160a01b03166301339c216040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561129857600080fd5b505af11580156112ac573d6000803e3d6000fd5b50505050505050565b6002600954600160a01b900460ff1660028111156112d5576112d561317d565b1461132e5760405162461bcd60e51b8152602060048201526024808201527f43616e206f6e6c792062652063616c6c6564206f6e206c69766520636f6e74726044820152636163742160e01b6064820152608401610650565b600c546001600160a01b031633146113585760405162461bcd60e51b815260040161065090613243565b60098054600160a01b60ff60a01b1982161790915560408051638456cb5960e01b815290516001600160a01b0390921691638456cb599160048082019260009290919082900301818387803b1580156113b057600080fd5b505af11580156113c4573d6000803e3d6000fd5b50505050565b606060006113f0846001600160a01b031660009081526007602052604090206029015490565b905060008382116114015781611403565b835b6001600160401b0381111561141a5761141a6129e1565b604051908082528060200260200182016040528015611443578160200160208202803683370190505b506001600160a01b038616600090815260076020529091506028815b818110801561146e5750835183105b1561156c576001600160a01b0388166000908152600760205260408120600101826028811061149f5761149f61322d565b01549050806000036114b1575061155a565b60005b610100811080156114c55750855185105b15611557576000816114d9856101006131c2565b6114e3919061321a565b6114ee90600161321a565b6005549091508111156115015750611557565b6001821b831615611544578087878151811061151f5761151f61322d565b602090810291909101015261153560018761321a565b95508986036115445750611557565b508061154f816132cb565b9150506114b4565b50505b80611564816132cb565b91505061145f565b508382148061157a57508582145b6115c65760405162461bcd60e51b815260206004820152601c60248201527f496e636f6e73697374656e7420696e7465726e616c20737461746521000000006044820152606401610650565b509095945050505050565b600954604080516395d89b4160e01b815290516060926001600160a01b0316916395d89b419160048083019260009291908290030181865afa15801561161b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261164391908101906132e4565b905090565b6000821580159061165b57506005548311155b6116955760405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642049442160a81b6044820152606401610650565b60006101006116a56001866132b8565b6116af9190613290565b905060006101006116c16001876132b8565b6116cb91906132a4565b6001600160a01b0385166000908152600760205260409020909150600180831b910183602881106116fe576116fe61322d565b015416151595945050505050565b600c546001600160a01b031633146117365760405162461bcd60e51b815260040161065090613243565b600b55565b6002600954600160a01b900460ff16600281111561175b5761175b61317d565b146117795760405163c0d2241560e01b815260040160405180910390fd5b600a5460009061178990836131c2565b600b549091508211156117b657600b54604051634712163160e01b81526004810191909152602401610650565b803410156117e757600a546117cb90836131c2565b6040516385cfa67760e01b815260040161065091815260200190565b600e546117fd906001600160a01b031682610996565b61180b336102f183346132b8565b611816303384611d90565b60095460408051630241ebdb60e61b815290516001600160a01b039092169163b81bf8fc9183913391839163907af6c0916004808201926020929091908290030181865afa15801561186c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118909190613193565b61189a90876131c2565b6040518463ffffffff1660e01b81526004016118b8939291906131d9565b6020604051808303816000875af11580156118d7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f91906131fd565b5050565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6002600954600160a01b900460ff16600281111561198b5761198b61317d565b146119ef5760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f742072656e6f756e636520636f6e7472616374206265636175736560448201526d20697473206e6f74206c6976652160901b6064820152608401610650565b600c546001600160a01b03163314611a495760405162461bcd60e51b815260206004820152601f60248201527f43616e206f6e6c792062652072656e6f756e636564206279206f776e657221006044820152606401610650565b600960009054906101000a90046001600160a01b03166001600160a01b031663b15be2f56040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a9957600080fd5b505af1158015611aad573d6000803e3d6000fd5b5050600c80546001600160a01b03191690555050565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6009546001600160a01b03163314611b1c576040516309e7447960e11b815260040160405180910390fd5b610b3f838383611d90565b6002600954600160a01b900460ff166002811115611b4757611b4761317d565b14611b655760405163c0d2241560e01b815260040160405180910390fd5b611b7285858585856121d5565b60095460408051630241ebdb60e61b815290516001600160a01b039092169163b81bf8fc9188918891859163907af6c0916004808201926020929091908290030181865afa158015611bc8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092d9190613193565b6001600160a01b03821660009081526008602052604090205480821115611c665760405162461bcd60e51b815260206004820152602860248201527f43616e2774207769746864726177206d6f7265207468616e206d6178696d756d60448201526720616d6f756e742160c01b6064820152608401610650565b611c7082826132b8565b6001600160a01b03841660008181526008602052604080822093909355915184908381818185875af1925050503d8060008114611cc9576040519150601f19603f3d011682016040523d82523d6000602084013e611cce565b606091505b50909150506001811515146113c457604051632333c24d60e01b815260040160405180910390fd5b600c546001600160a01b03163314611d205760405162461bcd60e51b815260040161065090613243565b600a55565b60066118fb82826133a2565b336001600160a01b0386168114801590611d525750611d508682611ac3565b155b15611d835760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610650565b61098e8686868686612263565b600080826001600160401b03811115611dab57611dab6129e1565b604051908082528060200260200182016040528015611dd4578160200160208202803683370190505b5090506000836001600160401b03811115611df157611df16129e1565b604051908082528060200260200182016040528015611e1a578160200160208202803683370190505b50905060005b6001600160a01b0387166000526007602052602881108015611e4157508484105b15611fb4576001600160a01b03871660009081526007602052604081206001018260288110611e7257611e7261322d565b0154905080600003611e845750611fa2565b60005b61010081108015611e9757508686105b15611f9f576001811b82811615611f8c57600082611eb7866101006131c2565b611ec1919061321a565b611ecc90600161321a565b905080878981518110611ee157611ee161322d565b6020026020010181815250506001868981518110611f0157611f0161322d565b6020908102919091018101919091526001600160a01b038c1660009081526007909152604090208219906001018660288110611f3f57611f3f61322d565b01805490911690556001600160a01b038a16600090815260076020526040902082906001018660288110611f7557611f7561322d565b018054909117905587611f87816132cb565b985050505b5080611f97816132cb565b915050611e87565b50505b80611fac816132cb565b915050611e20565b5083831461201c5760405162461bcd60e51b815260206004820152602f60248201527f4e6f7420656e6f75676820656c656d656e7473206f776e65642062792073656e60448201526e3232b9103a37903a3930b739b332b960891b6064820152608401610650565b6001600160a01b038616600090815260076020526040812060290180548592906120479084906132b8565b90915550506001600160a01b0385166000908152600760205260408120602901805485929061207790849061321a565b9091555050306001600160a01b038716036120a75782600360010160008282546120a1919061321a565b90915550505b6001600160a01b03851615806120c557506001600160a01b03851630145b156120e55782600360010160008282546120df91906132b8565b90915550505b8260010361216d57846001600160a01b0316866001600160a01b0316336001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628560008151811061213f5761213f61322d565b60200260200101516001604051612160929190918252602082015260400190565b60405180910390a461098e565b600183111561098e57846001600160a01b0316866001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb85856040516121c5929190613461565b60405180910390a4505050505050565b336001600160a01b03861681148015906121f657506121f48682611ac3565b155b156122275760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610650565b604080516001808252602082018790528183019081526060820186905260808201909252906122598888848488612263565b5050505050505050565b61226f85858585612276565b5050505050565b6001600160a01b0384166122dc5760405162461bcd60e51b815260206004820152602760248201527f455243313135353a207472616e736665722066726f6d20746865207a65726f206044820152666164647265737360c81b6064820152608401610650565b805182511461233d5760405162461bcd60e51b815260206004820152602760248201527f455243313135353a2069647320616e642076616c756573206c656e677468206d6044820152660d2e6dac2e8c6d60cb1b6064820152608401610650565b600082516001600160401b03811115612358576123586129e1565b604051908082528060200260200182016040528015612381578160200160208202803683370190505b509050600083516001600160401b0381111561239f5761239f6129e1565b6040519080825280602002602001820160405280156123c8578160200160208202803683370190505b5090506000805b85518110156125a3578481815181106123ea576123ea61322d565b60200260200101516001146124605760405162461bcd60e51b815260206004820152603660248201527f455243313135353a20696e76616c69642076616c75652c2063616e206f6e6c79604482015275081d1c985b9cd9995c880c481bd988195858da08125160521b6064820152608401610650565b6124838682815181106124755761247561322d565b602002602001015189611648565b1561252d576124ac888888848151811061249f5761249f61322d565b6020026020010151612784565b8581815181106124be576124be61322d565b60200260200101518483815181106124d8576124d861322d565b6020026020010181815250508481815181106124f6576124f661322d565b60200260200101518383815181106125105761251061322d565b602090810291909101015281612525816132cb565b92505061259b565b60405162461bcd60e51b815260206004820152603c60248201527f455243313135353a20617474656d7074696e6720746f207472616e736665722060448201527f616e204944206e6f742068656c64206279207468652073656e646572000000006064820152608401610650565b6001016123cf565b508015612713576000816001600160401b038111156125c4576125c46129e1565b6040519080825280602002602001820160405280156125ed578160200160208202803683370190505b5090506000826001600160401b0381111561260a5761260a6129e1565b604051908082528060200260200182016040528015612633578160200160208202803683370190505b50905060005b838110156126b8578581815181106126535761265361322d565b602002602001015183828151811061266d5761266d61322d565b60200260200101818152505084818151811061268b5761268b61322d565b60200260200101518282815181106126a5576126a561322d565b6020908102919091010152600101612639565b50876001600160a01b0316896001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8585604051612708929190613461565b60405180910390a450505b306001600160a01b0388160361273e578060036001016000828254612738919061321a565b90915550505b6001600160a01b038616158061275c57506001600160a01b03861630145b156112ac57806003600101600082825461277691906132b8565b909155505050505050505050565b61278e8184611648565b6127ce5760405162461bcd60e51b8152602060048201526011602482015270496e636f727265637420686f6c6465722160781b6044820152606401610650565b6127da818460006127e2565b610b3f818360015b60006101006127f26001866132b8565b6127fc9190613290565b9050600061010061280e6001876132b8565b61281891906132a4565b905060006128268686611648565b90508015158415151461098e5783156128d2576001600160a01b038516600090815260076020526040812060290180546001929061286590849061321a565b90915550506001600160a01b0385166000908152600760205260409020600180841b9101846028811061289a5761289a61322d565b01546001600160a01b038716600090815260076020526040902091179060010184602881106128cb576128cb61322d565b015561098e565b6001600160a01b03851660009081526007602052604081206029018054600192906128fe9084906132b8565b90915550506001600160a01b0385166000908152600760205260409020600180841b19910184602881106129345761293461322d565b01546001600160a01b038716600090815260076020526040902091169060010184602881106129655761296561322d565b0155505050505050565b6001600160a01b038116811461072e57600080fd5b6000806040838503121561299757600080fd5b82356129a28161296f565b946020939093013593505050565b6000602082840312156129c257600080fd5b81356001600160e01b0319811681146129da57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612a1f57612a1f6129e1565b604052919050565b60006001600160401b03821115612a4057612a406129e1565b50601f01601f191660200190565b600082601f830112612a5f57600080fd5b8135612a72612a6d82612a27565b6129f7565b818152846020838601011115612a8757600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215612ab657600080fd5b81356001600160401b03811115612acc57600080fd5b612ad884828501612a4e565b949350505050565b60005b83811015612afb578181015183820152602001612ae3565b50506000910152565b6020815260008251806020840152612b23816040850160208701612ae0565b601f01601f19169190910160400192915050565b600060208284031215612b4957600080fd5b5035919050565b60006001600160401b03821115612b6957612b696129e1565b5060051b60200190565b600082601f830112612b8457600080fd5b81356020612b94612a6d83612b50565b8083825260208201915060208460051b870101935086841115612bb657600080fd5b602086015b84811015612bd25780358352918301918301612bbb565b509695505050505050565b600080600080600060a08688031215612bf557600080fd5b8535612c008161296f565b94506020860135612c108161296f565b935060408601356001600160401b0380821115612c2c57600080fd5b612c3889838a01612b73565b94506060880135915080821115612c4e57600080fd5b612c5a89838a01612b73565b93506080880135915080821115612c7057600080fd5b50612c7d88828901612a4e565b9150509295509295909350565b60008060408385031215612c9d57600080fd5b82356001600160401b0380821115612cb457600080fd5b818501915085601f830112612cc857600080fd5b81356020612cd8612a6d83612b50565b82815260059290921b84018101918181019089841115612cf757600080fd5b948201945b83861015612d1e578535612d0f8161296f565b82529482019490820190612cfc565b96505086013592505080821115612d3457600080fd5b50612d4185828601612b73565b9150509250929050565b60008151808452602080850194506020840160005b83811015612d7c57815187529582019590820190600101612d60565b509495945050505050565b6020815260006129da6020830184612d4b565b600060208284031215612dac57600080fd5b81356129da8161296f565b600080600060608486031215612dcc57600080fd5b8335612dd78161296f565b95602085013595506040909401359392505050565b600080600060608486031215612e0157600080fd5b833592506020840135915060408401356001600160401b03811115612e2557600080fd5b612e3186828701612a4e565b9150509250925092565b60008060408385031215612e4e57600080fd5b823591506020830135612e608161296f565b809150509250929050565b801515811461072e57600080fd5b60008060408385031215612e8c57600080fd5b8235612e978161296f565b91506020830135612e6081612e6b565b60008083601f840112612eb957600080fd5b5081356001600160401b03811115612ed057600080fd5b6020830191508360208260051b8501011115612eeb57600080fd5b9250929050565b60008083601f840112612f0457600080fd5b5081356001600160401b03811115612f1b57600080fd5b602083019150836020828501011115612eeb57600080fd5b60008060008060008060008060a0898b031215612f4f57600080fd5b8835612f5a8161296f565b97506020890135612f6a8161296f565b965060408901356001600160401b0380821115612f8657600080fd5b612f928c838d01612ea7565b909850965060608b0135915080821115612fab57600080fd5b612fb78c838d01612ea7565b909650945060808b0135915080821115612fd057600080fd5b50612fdd8b828c01612ef2565b999c989b5096995094979396929594505050565b6000806040838503121561300457600080fd5b823561300f8161296f565b91506020830135612e608161296f565b60008060006060848603121561303457600080fd5b833561303f8161296f565b9250602084013561304f8161296f565b929592945050506040919091013590565b60008060008060008060a0878903121561307957600080fd5b86356130848161296f565b955060208701356130948161296f565b9450604087013593506060870135925060808701356001600160401b038111156130bd57600080fd5b6130c989828a01612ef2565b979a9699509497509295939492505050565b600080600080600060a086880312156130f357600080fd5b85356130fe8161296f565b9450602086013561310e8161296f565b9350604086013592506060860135915060808601356001600160401b0381111561313757600080fd5b612c7d88828901612a4e565b600181811c9082168061315757607f821691505b60208210810361317757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b6000602082840312156131a557600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610677576106776131ac565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006020828403121561320f57600080fd5b81516129da81612e6b565b80820180821115610677576106776131ac565b634e487b7160e01b600052603260045260246000fd5b6020808252601c908201527f43616e206f6e6c792062652063616c6c6564206279206f776e65722100000000604082015260600190565b634e487b7160e01b600052601260045260246000fd5b60008261329f5761329f61327a565b500490565b6000826132b3576132b361327a565b500690565b81810381811115610677576106776131ac565b6000600182016132dd576132dd6131ac565b5060010190565b6000602082840312156132f657600080fd5b81516001600160401b0381111561330c57600080fd5b8201601f8101841361331d57600080fd5b805161332b612a6d82612a27565b81815285602083850101111561334057600080fd5b613351826020830160208601612ae0565b95945050505050565b601f821115610b3f576000816000526020600020601f850160051c810160208610156133835750805b601f850160051c820191505b8181101561098e5782815560010161338f565b81516001600160401b038111156133bb576133bb6129e1565b6133cf816133c98454613143565b8461335a565b602080601f83116001811461340457600084156133ec5750858301515b600019600386901b1c1916600185901b17855561098e565b600085815260208120601f198616915b8281101561343357888601518255948401946001909101908401613414565b50858210156134515787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6040815260006134746040830185612d4b565b82810360208401526133518185612d4b56fea2646970667358221220acb3c47f67c4f5dc62275cb254b7faebb74ef7a0a0525933adc448c24c8bd69e64736f6c6343000818003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000027100000000000000000000000005976f7859f93901c5b1227ef5cded8efb1927fa20000000000000000000000008a5f749de59eb6d2c39cf2e54332ea95ab1882fa00000000000000000000000059a6f1498bc045f415f10269670d8d06d7e92ecd000000000000000000000000000000000000000000000000000000000000000b53686964647950756e6b73000000000000000000000000000000000000000000