6101806040526009805463ffffffff19166101a417905566038d7ea4c68000600a553480156200002e57600080fd5b5060405162006b8838038062006b888339810160408190526200005191620006af565b868a896040518060400160405280600d81526020016c4372616220537472617465677960981b8152506040518060400160405280600481526020016321b930b160e11b81525081818160039080519060200190620000b1929190620005c2565b508051620000c7906004906020840190620005c2565b50506005805460ff19166012179055506001600160a01b038416620001095760405162461bcd60e51b8152600401620001009062000892565b60405180910390fd5b6001600160a01b038316620001325760405162461bcd60e51b81526004016200010090620008c9565b606083901b6001600160601b03191660805260058054610100600160a81b0319166101006001600160a01b0387811682029290921792839055604080516307f07b1360e41b815290519190930490911691637f07b130916004808301926020929190829003018186803b158015620001a957600080fd5b505afa158015620001be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e491906200068b565b6001600160601b031960609190911b1660a052600554604051630728cf2360e31b81526101009091046001600160a01b03169063394679189062000232906000908190819060040162000769565b602060405180830381600087803b1580156200024d57600080fd5b505af115801562000262573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000288919062000750565b60c052505050506001600160a01b038116620002b85760405162461bcd60e51b815260040162000100906200085b565b60601b6001600160601b03191660e05260016006556000620002d9620005be565b600780546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b038916620003505760405162461bcd60e51b8152600401620001009062000824565b6001600160a01b038616620003795760405162461bcd60e51b8152600401620001009062000937565b600085116200039c5760405162461bcd60e51b81526004016200010090620007ed565b60008411620003bf5760405162461bcd60e51b81526004016200010090620007b6565b60008311620003e25760405162461bcd60e51b815260040162000100906200077f565b670de0b6b3a764000082106200040c5760405162461bcd60e51b815260040162000100906200096e565b600082116200042f5760405162461bcd60e51b81526004016200010090620009a5565b670de0b6b3a76400008111620004595760405162461bcd60e51b8152600401620001009062000900565b6001600160601b031960608a811b82166101205287901b1661010052600b859055600c849055600d839055600e829055600f81905560408051632234601160e11b815290516001600160a01b038c1691634468c022916004808301926020929190829003018186803b158015620004cf57600080fd5b505afa158015620004e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200050a91906200068b565b6001600160a01b0316610140816001600160a01b031660601b81525050896001600160a01b03166382564bca6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200056157600080fd5b505afa15801562000576573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200059c91906200068b565b60601b6001600160601b0319166101605250620009dc98505050505050505050565b3390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620005fa576000855562000645565b82601f106200061557805160ff191683800117855562000645565b8280016001018555821562000645579182015b828111156200064557825182559160200191906001019062000628565b506200065392915062000657565b5090565b5b8082111562000653576000815560010162000658565b80516001600160a01b03811681146200068657600080fd5b919050565b6000602082840312156200069d578081fd5b620006a8826200066e565b9392505050565b6000806000806000806000806000806101408b8d031215620006cf578586fd5b620006da8b6200066e565b9950620006ea60208c016200066e565b9850620006fa60408c016200066e565b97506200070a60608c016200066e565b96506200071a60808c016200066e565b955060a08b0151945060c08b0151935060e08b015192506101008b015191506101208b015190509295989b9194979a5092959850565b60006020828403121562000762578081fd5b5051919050565b9283526020830191909152604082015260600190565b60208082526014908201527f696e76616c69642061756374696f6e2074696d65000000000000000000000000604082015260600190565b6020808252601d908201527f696e76616c6964206865646765207072696365207468726573686f6c64000000604082015260600190565b6020808252601c908201527f696e76616c69642068656467652074696d65207468726573686f6c6400000000604082015260600190565b60208082526016908201527f696e76616c6964206f7261636c65206164647265737300000000000000000000604082015260600190565b60208082526017908201527f696e76616c696420666163746f72792061646472657373000000000000000000604082015260600190565b6020808252601a908201527f696e76616c696420636f6e74726f6c6c65722061646472657373000000000000604082015260600190565b60208082526014908201527f696e76616c696420776574682061646472657373000000000000000000000000604082015260600190565b6020808252601c908201527f6d6178207072696365206d756c7469706c69657220746f6f206c6f7700000000604082015260600190565b6020808252601c908201527f696e76616c6964204554483a5753717565657468206164647265737300000000604082015260600190565b6020808252601d908201527f6d696e207072696365206d756c7469706c69657220746f6f2068696768000000604082015260600190565b6020808252601c908201527f696e76616c6964206d696e207072696365206d756c7469706c69657200000000604082015260600190565b60805160601c60a05160601c60c05160e05160601c6101005160601c6101205160601c6101405160601c6101605160601c615ff962000b8f6000398061189f5250806114e8525080610c6d52806118575280611fbf528061254f5280612f585280613360528061348a5280614467525080610c9a5280610db05280610ff8528061150c5280611fec528061257c5280612f855280613116528061320d528061338d52806134ab52806138ef5280613b705280613e1a52806140765280614494525080611d3052806123525280614de35250806112a052806115da5280611aca5280612e5752806147ba52806148ee525080610cbc5280610d6e5280610fd7528061187b528061200e528061259e5280612fa752806130d452806131ec52806133af52806134cc52806138c25280613a155280613ded5280613eae52806144b65280614701528061498a5250806103a05280610cde5280610d8f5280610fb652806114c4528061203052806125c05280612fc952806130f552806131cb52806133d152806134ed52806137be5280613aba5280613b405280613cb15280613fc0528061404652806144d85250615ff96000f3fe6080604052600436106103905760003560e01c80637bcdc16e116101dc578063bdd438b811610102578063dfc19520116100a0578063f5d278e41161006f578063f5d278e4146109e2578063f73e19c3146109f7578063fa004fbf14610a17578063fa461e3314610a3757610402565b8063dfc195201461095c578063f101d92f1461097c578063f20e5e3514610991578063f2fde38b146109c257610402565b8063cae74029116100dc578063cae74029146108ff578063d0e30db014610914578063d4aec8171461091c578063dd62ed3e1461093c57610402565b8063bdd438b8146108a7578063c2451689146108c7578063c45a0155146108ea57610402565b8063955a15e81161017a578063a457c2d711610149578063a457c2d714610827578063a54c889914610847578063a9059cbb14610867578063b0b934611461088757610402565b8063955a15e8146107c857806395d89b41146107dd5780639c1ab1b8146107f2578063a319b29f1461081257610402565b806382564bca116101b657806382564bca146107695780638da5cb5b1461077e5780638ec4b721146107935780638f8b8dbc146107a857610402565b80637bcdc16e1461071f5780637dc0d1d01461073f5780637f07b1301461075457610402565b8063395ebb69116102c15780635e5cdcd71161025f5780636c1040a91161022e5780636c1040a9146106c257806370749b44146106d757806370a08231146106ea578063715018a61461070a57610402565b80635e5cdcd71461067057806363bbc4b61461068357806366a91b761461069857806367b8c345146106ad57610402565b80633fc8cef31161029b5780633fc8cef31461060c5780634468c022146106215780634d76e6fc14610636578063533092ef1461064b57610402565b8063395ebb69146105a85780633d3a62ee146105ca5780633dcb0c5d146105ea57610402565b806323ccafd91161032e5780632e1a7d4d116103085780632e1a7d4d14610531578063313ce5671461055157806333194c0a14610573578063395093511461058857610402565b806323ccafd9146104e957806325d7707c146105095780632a3400561461051c57610402565b8063155f586d1161036a578063155f586d1461047f57806318160ddd146104a15780631a5af342146104b657806323b872dd146104c957610402565b806306fdde0314610407578063095ea7b3146104325780630ca514cd1461045f57610402565b3661040257336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806103db575060055461010090046001600160a01b031633145b6104005760405162461bcd60e51b81526004016103f790615b26565b60405180910390fd5b005b600080fd5b34801561041357600080fd5b5061041c610a57565b60405161042991906157da565b60405180910390f35b34801561043e57600080fd5b5061045261044d36600461519c565b610aed565b604051610429919061573e565b34801561046b57600080fd5b5061040061047a36600461549b565b610b0b565b34801561048b57600080fd5b50610494610bad565b60405161042991906155f7565b3480156104ad57600080fd5b50610494610bb3565b6104006104c436600461549b565b610bb9565b3480156104d557600080fd5b506104526104e436600461515c565b610ebf565b3480156104f557600080fd5b506104006105043660046154f1565b610f47565b6104006105173660046151e3565b6110fd565b34801561052857600080fd5b506104946111cd565b34801561053d57600080fd5b5061040061054c36600461549b565b6111d3565b34801561055d57600080fd5b50610566611295565b6040516104299190615db9565b34801561057f57600080fd5b5061049461129e565b34801561059457600080fd5b506104526105a336600461519c565b6112c2565b3480156105b457600080fd5b506105bd611310565b6040516104299190615da8565b3480156105d657600080fd5b506104006105e536600461549b565b611316565b3480156105f657600080fd5b506105ff6114ae565b604051610429919061561b565b34801561061857600080fd5b506105ff6114c2565b34801561062d57600080fd5b506105ff6114e6565b34801561064257600080fd5b506105ff61150a565b34801561065757600080fd5b5061066061152e565b6040516104299493929190615718565b61040061067e366004615512565b61154a565b34801561068f57600080fd5b506104946115c6565b3480156106a457600080fd5b506104946115cc565b3480156106b957600080fd5b506104946115d2565b3480156106ce57600080fd5b506104946115d8565b6104006106e53660046154cb565b6115fc565b3480156106f657600080fd5b50610494610705366004615108565b6116c6565b34801561071657600080fd5b506104006116e5565b34801561072b57600080fd5b5061040061073a36600461549b565b61179e565b34801561074b57600080fd5b506105ff611855565b34801561076057600080fd5b506105ff611879565b34801561077557600080fd5b506105ff61189d565b34801561078a57600080fd5b506105ff6118c1565b34801561079f57600080fd5b506104946118d0565b3480156107b457600080fd5b506104006107c336600461553d565b6118d6565b3480156107d457600080fd5b506104946119a4565b3480156107e957600080fd5b5061041c6119aa565b3480156107fe57600080fd5b5061040061080d3660046154f1565b611a0b565b34801561081e57600080fd5b50610400611a8f565b34801561083357600080fd5b5061045261084236600461519c565b611b26565b34801561085357600080fd5b5061040061086236600461549b565b611b8e565b34801561087357600080fd5b5061045261088236600461519c565b611c45565b34801561089357600080fd5b506104526108a236600461549b565b611c59565b3480156108b357600080fd5b506104006108c236600461549b565b611c64565b3480156108d357600080fd5b506108dc611d1b565b604051610429929190615749565b3480156108f657600080fd5b506105ff611d2e565b34801561090b57600080fd5b50610494611d52565b610400611d58565b34801561092857600080fd5b5061040061093736600461549b565b611e03565b34801561094857600080fd5b50610494610957366004615124565b611e9a565b34801561096857600080fd5b5061040061097736600461549b565b611ec5565b34801561098857600080fd5b50610494611f83565b34801561099d57600080fd5b506109b16109ac36600461549b565b611f89565b60405161042995949392919061578e565b3480156109ce57600080fd5b506104006109dd366004615108565b612128565b3480156109ee57600080fd5b506105bd612238565b348015610a0357600080fd5b50610494610a1236600461549b565b612244565b348015610a2357600080fd5b50610400610a3236600461549b565b61224f565b348015610a4357600080fd5b50610400610a52366004615223565b61230d565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ae35780601f10610ab857610100808354040283529160200191610ae3565b820191906000526020600020905b815481529060010190602001808311610ac657829003601f168201915b5050505050905090565b6000610b01610afa6123b3565b84846123b7565b5060015b92915050565b610b136123b3565b6001600160a01b0316610b246118c1565b6001600160a01b031614610b6d576040805162461bcd60e51b81526020600482018190526024820152600080516020615f15833981519152604482015290519081900360640190fd5b60088190556040517f29600e2e028c8c5c2b112d021938e0d0237d8fafcbb20394c56cf9fa4661ca2790610ba29083906155f7565b60405180910390a150565b600d5481565b60025490565b60026006541415610c11576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600655600080610c216124a3565b91509150610c2f83826124bd565b6000610c3c8484846124ec565b50905082158015610c4b575081155b15610d695760095460405163cce79bd560e01b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163cce79bd591610d10917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000009163ffffffff169060019060040161562f565b60206040518083038186803b158015610d2857600080fd5b505afa158015610d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6091906154b3565b42601055601155505b610e717f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddca3f436040518163ffffffff1660e01b815260040160206040518083038186803b158015610e0757600080fd5b505afa158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f9190615478565b84610e4a89346126bc565b60008a604051602001610e5d91906155f7565b604051602081830303815290604052612714565b336001600160a01b03167f5d85169ff8329e90f3225f9798e0eba54d00c55d3bbfe201a0d1606febb23a8e8583604051610eac929190615d6c565b60405180910390a2505060016006555050565b6000610ecc848484612795565b610f3c84610ed86123b3565b610f3785604051806060016040528060288152602001615eed602891396001600160a01b038a16600090815260016020526040812090610f166123b3565b6001600160a01b0316815260208101919091526040016000205491906128f0565b6123b7565b5060015b9392505050565b60026006541415610f9f576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026006556000610faf83612987565b90506110b07f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddca3f436040518163ffffffff1660e01b815260040160206040518083038186803b15801561104f57600080fd5b505afa158015611063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110879190615478565b848660018960405160200161109c91906155f7565b6040516020818303038152906040526129ac565b336001600160a01b03167fa13b272c1cf13ba724064d3d4809d9f557aab8da2bb582cba031a2f57e728e9d84836040516110eb929190615d6c565b60405180910390a25050600160065550565b60026006541415611155576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600655600080611165612a23565b91509150816111865760405162461bcd60e51b81526004016103f790615aef565b611191818585612a4c565b336001600160a01b03167eb3acebad2d25b9626850dd370eadbf46d6a94dd0fab19c061f97e1dd4a9639858584604051610eac93929190615759565b600e5481565b6002600654141561122b576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600655600061123b82612987565b9050600061124c3384846000612b7c565b90506112583382612bc9565b336001600160a01b03167f02f25270a4d87bea75db541cdfe559334a275b4a233520ed6c0a2429667cca948484846040516110eb93929190615d92565b60055460ff1690565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610b016112cf6123b3565b84610f3785600160006112e06123b3565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490612cb3565b6101a481565b6002600654141561136e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600681905550600560019054906101000a90046001600160a01b03166001600160a01b031663ff9475256040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156113c657600080fd5b505af11580156113da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fe91906151c7565b61141a5760405162461bcd60e51b81526004016103f790615c37565b60125460ff1661143c5760405162461bcd60e51b81526004016103f79061596e565b600061144f8261144a610bb3565b612d0d565b9050600061145d8247612d19565b90506114693384612d25565b6114733382612bc9565b336001600160a01b03167fe9ab9870b9093d99f8e981919f65ad09b7ae90ff80f1031639af9e0357eb9ed684836040516110eb929190615d6c565b60055461010090046001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060008061153c612e21565b935093509350935090919293565b61155383612f18565b61156f5760405162461bcd60e51b81526004016103f7906159dc565b61157a8383836130b2565b336001600160a01b03167ff99cce6ee3154fddfc55959dd136665c7351fe51c0ea58392ca454be8180dcd4428585856040516115b99493929190615600565b60405180910390a2505050565b60115481565b600b5481565b60105481565b7f000000000000000000000000000000000000000000000000000000000000000090565b60026006541415611654576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260065561166283612f18565b61167e5760405162461bcd60e51b81526004016103f7906159dc565b611689838383612a4c565b336001600160a01b03167fa6806e5672ec1827d23bd4a25f4a41c8d0b055720c40081e3803f6b0a957f7978383866040516110eb93929190615759565b6001600160a01b0381166000908152602081905260409020545b919050565b6116ed6123b3565b6001600160a01b03166116fe6118c1565b6001600160a01b031614611747576040805162461bcd60e51b81526020600482018190526024820152600080516020615f15833981519152604482015290519081900360640190fd5b6007546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36007805473ffffffffffffffffffffffffffffffffffffffff19169055565b6117a66123b3565b6001600160a01b03166117b76118c1565b6001600160a01b031614611800576040805162461bcd60e51b81526020600482018190526024820152600080516020615f15833981519152604482015290519081900360640190fd5b600081116118205760405162461bcd60e51b81526004016103f7906158c9565b600b8190556040517f28e0e4ee0b14d4b056ce88e1bcd890ccd32b22e213723c8765901381b5eae70590610ba29083906155f7565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6007546001600160a01b031690565b600f5481565b6118de6123b3565b6001600160a01b03166118ef6118c1565b6001600160a01b031614611938576040805162461bcd60e51b81526020600482018190526024820152600080516020615f15833981519152604482015290519081900360640190fd5b60b48163ffffffff16101561195f5760405162461bcd60e51b81526004016103f790615ca5565b6009805463ffffffff191663ffffffff83161790556040517f1cd9c7f99a5530a38c8f2b387dcc78e8a76cb5b203e0c4316a66777d993dee3590610ba2908390615da8565b600a5481565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ae35780601f10610ab857610100808354040283529160200191610ae3565b600080611a16612a23565b9150915081611a375760405162461bcd60e51b81526004016103f790615aef565b611a428185856130b2565b336001600160a01b03167f6c3a0d23de8295593e3e236062f9103f4a66c6d8de92b9425a2e17ae3baca67742838787604051611a819493929190615600565b60405180910390a250505050565b60128054600160ff19909116179055600554604051634bf7d4a160e11b81526101009091046001600160a01b0316906397efa94290611af2907f0000000000000000000000000000000000000000000000000000000000000000906004016155f7565b600060405180830381600087803b158015611b0c57600080fd5b505af1158015611b20573d6000803e3d6000fd5b50505050565b6000610b01611b336123b3565b84610f3785604051806060016040528060258152602001615f9f6025913960016000611b5d6123b3565b6001600160a01b03908116825260208083019390935260409182016000908120918d168152925290205491906128f0565b611b966123b3565b6001600160a01b0316611ba76118c1565b6001600160a01b031614611bf0576040805162461bcd60e51b81526020600482018190526024820152600080516020615f15833981519152604482015290519081900360640190fd5b60008111611c105760405162461bcd60e51b81526004016103f79061585b565b600d8190556040517f6405fa008c5cc5710b13a509f31e7596708bdbc2a52c85a15f9992697a791b2090610ba29083906155f7565b6000610b01611c526123b3565b8484612795565b6000610b0582612f18565b611c6c6123b3565b6001600160a01b0316611c7d6118c1565b6001600160a01b031614611cc6576040805162461bcd60e51b81526020600482018190526024820152600080516020615f15833981519152604482015290519081900360640190fd5b60008111611ce65760405162461bcd60e51b81526004016103f790615892565b600c8190556040517f789e4b8ad1c375952cea7f07c9b3b6619a84b406432b948246cecb8ced96b9fa90610ba29083906155f7565b600080611d26612a23565b915091509091565b7f000000000000000000000000000000000000000000000000000000000000000081565b60085481565b60026006541415611db0576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260065534600080611dc43384836132e4565b91509150336001600160a01b03167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a1583836040516110eb929190615d6c565b611e0b6123b3565b6001600160a01b0316611e1c6118c1565b6001600160a01b031614611e65576040805162461bcd60e51b81526020600482018190526024820152600080516020615f15833981519152604482015290519081900360640190fd5b600a8190556040517f48100eb8aecbbf59b3665ff2a7b2d7257a218196dec79a67ca870fca43cdff6290610ba29083906155f7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b611ecd6123b3565b6001600160a01b0316611ede6118c1565b6001600160a01b031614611f27576040805162461bcd60e51b81526020600482018190526024820152600080516020615f15833981519152604482015290519081900360640190fd5b670de0b6b3a76400008111611f4e5760405162461bcd60e51b81526004016103f790615c00565b600f8190556040517fce6ae334d464afcb4f9f5f5218c4e3b0d5d227a821cb8a76bbff56da8f5f0b8890610ba29083906155f7565b600c5481565b6000806000806000806000611f9c6124a3565b60095460405163cce79bd560e01b81529294509092506000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163cce79bd591612064917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000009163ffffffff9091169060019060040161562f565b60206040518083038186803b15801561207c57600080fd5b505afa158015612090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b491906154b3565b905060006120c0613482565b905060006120d0858585856135bf565b50905060006120e08c8584613630565b90506000806120f1888885886135bf565b90925090508315158215151415600061210a83866136e3565b959e50919c50939a5091985091965050505050505091939590929450565b6121306123b3565b6001600160a01b03166121416118c1565b6001600160a01b03161461218a576040805162461bcd60e51b81526020600482018190526024820152600080516020615f15833981519152604482015290519081900360640190fd5b6001600160a01b0381166121cf5760405162461bcd60e51b8152600401808060200182810382526026815260200180615e456026913960400191505060405180910390fd5b6007546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36007805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60095463ffffffff1681565b6000610b0582612987565b6122576123b3565b6001600160a01b03166122686118c1565b6001600160a01b0316146122b1576040805162461bcd60e51b81526020600482018190526024820152600080516020615f15833981519152604482015290519081900360640190fd5b670de0b6b3a764000081106122d85760405162461bcd60e51b81526004016103f790615c6e565b600e8190556040517f07515fe9cd564f272668faa064c14bc4cec5f75710703ff96a21a47b680ce28f90610ba29083906155f7565b600084138061231c5750600083135b61232557600080fd5b600061233382840184615318565b90506000806000612347846000015161371c565b9250925092506123797f000000000000000000000000000000000000000000000000000000000000000084848461374d565b506000808913612389578761238b565b885b90506123a88560200151858585858a606001518b6040015161376c565b505050505050505050565b3390565b6001600160a01b0383166123fc5760405162461bcd60e51b8152600401808060200182810382526024815260200180615f7b6024913960400191505060405180910390fd5b6001600160a01b0382166124415760405162461bcd60e51b8152600401808060200182810382526022815260200180615e6b6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000806000806124b1612e21565b96509450505050509091565b6008546124ca828461410f565b11156124e85760405162461bcd60e51b81526004016103f790615b5d565b5050565b6000806000806124fa613482565b905085158015612508575084155b1561267757612515610bb3565b156125325760405162461bcd60e51b81526004016103f790615a81565b60095460405163cce79bd560e01b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163cce79bd5916125f2917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000009163ffffffff169060019060040161562f565b60206040518083038186803b15801561260a57600080fd5b505afa15801561261e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264291906154b3565b9050600061265882671bc16d674ec800006136e3565b905061266e612667828561410f565b8a90614167565b935050506126a1565b61269e61268e61268788846136e3565b879061410f565b61269889896136e3565b90614167565b91505b60006126ad83836136e3565b92989297509195505050505050565b80820382811115610b05576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b60006127698530600060405180608001604052808d8c8e60405160200161273d939291906155a4565b60408051601f1981840301815291815290825233602083015260ff8a1690820152606001879052614187565b90508381101561278b5760405162461bcd60e51b81526004016103f790615824565b5050505050505050565b6001600160a01b0383166127da5760405162461bcd60e51b8152600401808060200182810382526025815260200180615f566025913960400191505060405180910390fd5b6001600160a01b03821661281f5760405162461bcd60e51b8152600401808060200182810382526023815260200180615e006023913960400191505060405180910390fd5b61282a838383612cae565b61286781604051806060016040528060268152602001615e8d602691396001600160a01b03861660009081526020819052604090205491906128f0565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546128969082612cb3565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000818484111561297f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561294457818101518382015260200161292c565b50505050905090810190601f1680156129715780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600080612992612e21565b9350505050610f406129a2610bb3565b61269883866136e3565b6000612a018530600060405180608001604052808c8c8f6040516020016129d5939291906155a4565b60408051601f1981840301815291815290825233602083015260ff8a16908201526060018790526142c6565b90508381111561278b5760405162461bcd60e51b81526004016103f7906159a5565b6000806000612a3f600b5460105461410f90919063ffffffff16565b4281111593509150509091565b600080600080612a5b87614433565b935093509350935083151586151514612a865760405162461bcd60e51b81526004016103f790615937565b8315612adf5784811115612aac5760405162461bcd60e51b81526004016103f790615a4a565b81341015612acc5760405162461bcd60e51b81526004016103f790615900565b612ada3334858560006145ea565b612b2a565b3415612afd5760405162461bcd60e51b81526004016103f790615b94565b84811015612b1d5760405162461bcd60e51b81526004016103f7906157ed565b612b2a3384846000614684565b336001600160a01b03167f878fd3ca52ad322c7535f559ee7c91afc67363073783360ef1b1420589dc61748787848787604051612b6b9594939291906157b5565b60405180910390a250505050505050565b600080612b876124a3565b9150506000612b988661144a610bb3565b90506000612ba68284612d19565b9050612bb4888783886146e5565b612bbe8888612d25565b979650505050505050565b80471015612c1e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114612c69576040519150601f19603f3d011682016040523d82523d6000602084013e612c6e565b606091505b5050905080612cae5760405162461bcd60e51b815260040180806020018281038252603a815260200180615eb3603a913960400191505060405180910390fd5b505050565b600082820183811015610f40576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610f408383614167565b6000610f4082846136e3565b6001600160a01b038216612d6a5760405162461bcd60e51b8152600401808060200182810382526021815260200180615f356021913960400191505060405180910390fd5b612d7682600083612cae565b612db381604051806060016040528060228152602001615e23602291396001600160a01b03851660009081526020819052604090205491906128f0565b6001600160a01b038316600090815260208190526040902055600254612dd99082614814565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600554604051634632752560e11b8152600091829182918291829161010090046001600160a01b031690638c64ea4a90612e7f907f0000000000000000000000000000000000000000000000000000000000000000906004016155f7565b60806040518083038186803b158015612e9757600080fd5b505afa158015612eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecf91906153d6565b805160208201516040830151606090930151919863ffffffff90911697506bffffffffffffffffffffffff90921695506fffffffffffffffffffffffffffffffff169350915050565b6000601054821015612f2c575060006116e0565b6000612f3842846126bc565b600954604051634ac78d1160e01b81529192506000916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691634ac78d1191612ffe917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000009163ffffffff9091168901908990600401615668565b60206040518083038186803b15801561301657600080fd5b505afa15801561302a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304e91906154b3565b905060006130676011548361416790919063ffffffff16565b90506000670de0b6b3a764000082116130915761308c670de0b6b3a7640000836126bc565b6130a3565b6130a382670de0b6b3a76400006126bc565b600c5411159695505050505050565b6000806000806130c187614433565b935093509350935083156131c6576131c17f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddca3f436040518163ffffffff1660e01b815260040160206040518083038186803b15801561316d57600080fd5b505afa158015613181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a59190615478565b858760025b89898e8e60405160200161109c9493929190615600565b6132a5565b6132a57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddca3f436040518163ffffffff1660e01b815260040160206040518083038186803b15801561326457600080fd5b505afa158015613278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061329c9190615478565b868660036131aa565b336001600160a01b03167f4c1a959210172325f5c6678421c3834b04ae8ce57f7a7c0c0bbfbb62bca37e3485838686604051612b6b9493929190615771565b6000806000806132f26124a3565b9150915061330086826124bd565b60008061330e8885856124ec565b909250905060006133306133228a846126bc565b8561332b610bb3565b614871565b90508415801561333e575083155b1561345c5760095460405163cce79bd560e01b81526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163cce79bd591613403917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000009163ffffffff169060019060040161562f565b60206040518083038186803b15801561341b57600080fd5b505afa15801561342f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345391906154b3565b42601055601155505b6134688a848b8b6148c0565b6134728a82614a1a565b9199919850909650505050505050565b6000806135167f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006101a46000614a24565b90506000600560019054906101000a90046001600160a01b03166001600160a01b031663978bbdb96040518163ffffffff1660e01b815260040160206040518083038186803b15801561356857600080fd5b505afa15801561357c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135a091906154b3565b90506135b86127106135b28484614aca565b90614b36565b9250505090565b600080806135df856135d989671bc16d674ec800006136e3565b906136e3565b90506000806135f083898989614b95565b600a54919350915061360689612698858b6136e3565b116136235760405162461bcd60e51b81526004016103f790615cdc565b9890975095505050505050565b600d54600090819061364242876126bc565b101561365e57600d546136599061269842886126bc565b613668565b670de0b6b3a76400005b9050600083156136a65761369f61369661368f600e54600f546126bc90919063ffffffff16565b84906136e3565b600f54906126bc565b90506136cf565b6136cc6136c361368f600e54600f546126bc90919063ffffffff16565b600e549061410f565b90505b6136d985826136e3565b9695505050505050565b6000670de0b6b3a764000061370d6136fb8585614aca565b6002670de0b6b3a76400005b0461410f565b8161371457fe5b049392505050565b6000808061372a8482614bdb565b9250613737846014614ca7565b9050613744846017614bdb565b91509193909250565b60006137638561375e868686614d63565b614db9565b95945050505050565b60008160ff16600381111561377d57fe5b600381111561378857fe5b14156139ce576000828060200190518101906137a4919061529e565b6040516370a0823160e01b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d9082906370a08231906137fb90309060040161561b565b60206040518083038186803b15801561381357600080fd5b505afa158015613827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384b91906154b3565b6040518263ffffffff1660e01b815260040161386791906155f7565b600060405180830381600087803b15801561388157600080fd5b505af1158015613895573d6000803e3d6000fd5b505050506138a988826000015160016132e4565b505060405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb90613919907f00000000000000000000000000000000000000000000000000000000000000009088906004016156ff565b602060405180830381600087803b15801561393357600080fd5b505af1158015613947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061396b91906151c7565b50876001600160a01b03167fc355ebece16d7e85e486911f0cde1074bc4bd3fec251c88cdddc7076d3e99adb85476040516139a7929190615d6c565b60405180910390a247156139c8576139c86001600160a01b03891647612bc9565b50614106565b60018160ff1660038111156139df57fe5b60038111156139ea57fe5b1415613c5f57600082806020019051810190613a06919061529e565b90506000613ab68983600001517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401613a5f919061561b565b60206040518083038186803b158015613a7757600080fd5b505afa158015613a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aaf91906154b3565b6001612b7c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0866040518263ffffffff1660e01b81526004016000604051808303818588803b158015613b1357600080fd5b505af1158015613b27573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb9250613b9a91507f00000000000000000000000000000000000000000000000000000000000000009089906004016156ff565b602060405180830381600087803b158015613bb457600080fd5b505af1158015613bc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bec91906151c7565b506000613bf982876126bc565b9050896001600160a01b03167f6f3269a64126ef2a1959892f3d921e81865181e09a7f72f55d3a49550c53b48d8783604051613c36929190615d6c565b60405180910390a28015613c5757613c576001600160a01b038b1682612bc9565b505050614106565b60028160ff166003811115613c7057fe5b6003811115613c7b57fe5b1415613f3757600082806020019051810190613c9791906152b9565b6040516370a0823160e01b81529091506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d9082906370a0823190613cee90309060040161561b565b60206040518083038186803b158015613d0657600080fd5b505afa158015613d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d3e91906154b3565b6040518263ffffffff1660e01b8152600401613d5a91906155f7565b600060405180830381600087803b158015613d7457600080fd5b505af1158015613d88573d6000803e3d6000fd5b5050505060208101518151613da1918a918160016145ea565b8051600090613db090866126bc565b90508160400151811015613dd65760405162461bcd60e51b81526004016103f790615bcb565b60405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb90613e44907f00000000000000000000000000000000000000000000000000000000000000009089906004016156ff565b602060405180830381600087803b158015613e5e57600080fd5b505af1158015613e72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e9691906151c7565b5060405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb90613ee5908c9085906004016156ff565b602060405180830381600087803b158015613eff57600080fd5b505af1158015613f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c5791906151c7565b60038160ff166003811115613f4857fe5b6003811115613f5357fe5b141561410657600082806020019051810190613f6f91906152b9565b9050613f8688826000015183602001516001614684565b6020810151600090613f9890866126bc565b90508160600151811015613fbe5760405162461bcd60e51b81526004016103f790615ab8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0866040518263ffffffff1660e01b81526004016000604051808303818588803b15801561401957600080fd5b505af115801561402d573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb92506140a091507f00000000000000000000000000000000000000000000000000000000000000009089906004016156ff565b602060405180830381600087803b1580156140ba57600080fd5b505af11580156140ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140f291906151c7565b506123a86001600160a01b038a1682612bc9565b50505050505050565b80820182811015610b05576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b60008161370d61417f85670de0b6b3a7640000614aca565b600285613707565b60008060008061419a856000015161371c565b919450925090506001600160a01b03808316908416106000806141be868686614ddc565b6001600160a01b031663128acb088b856141d78f614e1a565b6001600160a01b038e16156141ec578d614212565b8761420b5773fffd8963efd1fc6a506488495d951d5263988d25614212565b6401000276a45b8d6040516020016142239190615d13565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016142529594939291906156c5565b6040805180830381600087803b15801561426b57600080fd5b505af115801561427f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a39190615200565b91509150826142b257816142b4565b805b6000039b9a5050505050505050505050565b6000806000806142d9856000015161371c565b919450925090506001600160a01b03808416908316106000806142fd858786614ddc565b6001600160a01b031663128acb088b856143168f614e1a565b6000036001600160a01b038e161561432e578d614354565b8761434d5773fffd8963efd1fc6a506488495d951d5263988d25614354565b6401000276a45b8d6040516020016143659190615d13565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016143949594939291906156c5565b6040805180830381600087803b1580156143ad57600080fd5b505af11580156143c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143e59190615200565b91509150600080846143fb578284600003614401565b83836000035b915091508a6001600160a01b031660001415614423578c811461442357600080fd5b509b9a5050505050505050505050565b6000806000806000806144446124a3565b60095460405163cce79bd560e01b81529294509092506000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163cce79bd59161450c917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000917f00000000000000000000000000000000000000000000000000000000000000009163ffffffff9091169060019060040161562f565b60206040518083038186803b15801561452457600080fd5b505afa158015614538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455c91906154b3565b90506000614568613482565b90506000614578858585856135bf565b50905060006145888b8584613630565b9050600080614599888885886135bf565b91509150811515841515146145c05760405162461bcd60e51b81526004016103f790615a13565b60006145cc82856136e3565b4260105560119790975550929c929b50939950975095505050505050565b8015614602576145fd85848460016148c0565b614638565b61460f85848460006148c0565b600061461b85846126bc565b90508015614636576146366001600160a01b03871682612bc9565b505b846001600160a01b03167f2af3664d72ebbec5e92c3a487f09a4ecd9ef50177eced03cc2b05892b5e0c91584848460405161467593929190615d7a565b60405180910390a25050505050565b614690848484846146e5565b806146a8576146a86001600160a01b03851683612bc9565b836001600160a01b03167fc7472bd0a757f40f801e047dd4f4ec901314e95afcbfed844e62af18401e0e6b848484604051611a8193929190615d7a565b8061478e576040516323b872dd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd9061473a908790309088906004016156a1565b602060405180830381600087803b15801561475457600080fd5b505af1158015614768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061478c91906151c7565b505b600554604051638632cb0360e01b81526101009091046001600160a01b031690638632cb03906147e6907f00000000000000000000000000000000000000000000000000000000000000009087908790600401615d92565b600060405180830381600087803b15801561480057600080fd5b505af115801561278b573d6000803e3d6000fd5b60008282111561486b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080614888614881858761410f565b8690614167565b905082156148b7576148af6148a5670de0b6b3a7640000836126bc565b61269885846136e3565b915050610f40565b50929392505050565b600554604051630728cf2360e31b81526101009091046001600160a01b031690633946791890849061491b907f0000000000000000000000000000000000000000000000000000000000000000908890600090600401615d92565b6020604051808303818588803b15801561493457600080fd5b505af1158015614948573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061496d91906154b3565b5080611b205760405163a9059cbb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906149c190879087906004016156ff565b602060405180830381600087803b1580156149db57600080fd5b505af11580156149ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a1391906151c7565b5050505050565b6124e88282614e30565b6040805163cce79bd560e01b81526001600160a01b0387811660048301528681166024830152858116604483015263ffffffff851660648301528315156084830152915160009289169163cce79bd59160a4808301926020929190829003018186803b158015614a9357600080fd5b505afa158015614aa7573d6000803e3d6000fd5b505050506040513d6020811015614abd57600080fd5b5051979650505050505050565b6000811580614ae557505080820282828281614ae257fe5b04145b610b05576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b6000808211614b8c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161371457fe5b600080848611614bbd57614bb6614bac858561410f565b61269887896126bc565b6001614bce565b614bcb8461269888886126bc565b60005b9150915094509492505050565b600081826014011015614c35576040805162461bcd60e51b815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b8160140183511015614c8e576040805162461bcd60e51b815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b600081826003011015614d01576040805162461bcd60e51b815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015614d5a576040805162461bcd60e51b815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b614d6b61501c565b826001600160a01b0316846001600160a01b03161115614d89579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b6000614dc58383614f20565b9050336001600160a01b03821614610b0557600080fd5b6000614e127f0000000000000000000000000000000000000000000000000000000000000000614e0d868686614d63565b614f20565b949350505050565b6000600160ff1b8210614e2c57600080fd5b5090565b6001600160a01b038216614e8b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b614e9760008383612cae565b600254614ea49082612cb3565b6002556001600160a01b038216600090815260208190526040902054614eca9082612cb3565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600081602001516001600160a01b031682600001516001600160a01b031610614f4857600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b80356116e081615dc7565b600082601f830112615057578081fd5b813567ffffffffffffffff8082111561506c57fe5b604051601f8301601f19168101602001828111828210171561508a57fe5b6040528281528483016020018610156150a1578384fd5b82602086016020830137918201602001929092529392505050565b6000602082840312156150cd578081fd5b6040516020810181811067ffffffffffffffff821117156150ea57fe5b6040529151825250919050565b803560ff811681146116e057600080fd5b600060208284031215615119578081fd5b8135610f4081615dc7565b60008060408385031215615136578081fd5b823561514181615dc7565b9150602083013561515181615dc7565b809150509250929050565b600080600060608486031215615170578081fd5b833561517b81615dc7565b9250602084013561518b81615dc7565b929592945050506040919091013590565b600080604083850312156151ae578182fd5b82356151b981615dc7565b946020939093013593505050565b6000602082840312156151d8578081fd5b8151610f4081615ddf565b600080604083850312156151f5578182fd5b82356151b981615ddf565b60008060408385031215615212578182fd5b505080516020909101519092909150565b60008060008060608587031215615238578182fd5b8435935060208501359250604085013567ffffffffffffffff8082111561525d578384fd5b818701915087601f830112615270578384fd5b81358181111561527e578485fd5b88602082850101111561528f578485fd5b95989497505060200194505050565b6000602082840312156152af578081fd5b610f4083836150bc565b6000608082840312156152ca578081fd5b6040516080810181811067ffffffffffffffff821117156152e757fe5b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b600060208284031215615329578081fd5b813567ffffffffffffffff80821115615340578283fd5b9083019060808286031215615353578283fd5b60405160808101818110838211171561536857fe5b604052823582811115615379578485fd5b61538587828601615047565b8252506153946020840161503c565b60208201526153a5604084016150f7565b60408201526060830135828111156153bb578485fd5b6153c787828601615047565b60608301525095945050505050565b6000608082840312156153e7578081fd5b6040516080810181811067ffffffffffffffff8211171561540457fe5b604052825161541281615dc7565b8152602083015161542281615ded565b602082015260408301516bffffffffffffffffffffffff81168114615445578283fd5b604082015260608301516fffffffffffffffffffffffffffffffff8116811461546c578283fd5b60608201529392505050565b600060208284031215615489578081fd5b815162ffffff81168114610f40578182fd5b6000602082840312156154ac578081fd5b5035919050565b6000602082840312156154c4578081fd5b5051919050565b6000806000606084860312156154df578081fd5b83359250602084013561518b81615ddf565b60008060408385031215615503578182fd5b50508035926020909101359150565b600080600060608486031215615526578081fd5b505081359360208301359350604090920135919050565b60006020828403121561554e578081fd5b8135610f4081615ded565b60008151808452815b8181101561557e57602081850181015186830182015201615562565b8181111561558f5782602083870101525b50601f01601f19169290920160200192915050565b606093841b6bffffffffffffffffffffffff19908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b90815260200190565b93845260208401929092526040830152606082015260800190565b6001600160a01b0391909116815260200190565b6001600160a01b039586168152938516602085015291909316604083015263ffffffff9092166060820152901515608082015260a00190565b6001600160a01b039586168152938516602085015291909316604083015263ffffffff9283166060830152909116608082015260a00190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006001600160a01b038088168352861515602084015285604084015280851660608401525060a06080830152612bbe60a0830184615559565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b901515815260200190565b9115158252602082015260400190565b92151583526020830191909152604082015260600190565b931515845260208401929092526040830152606082015260800190565b94151585526020850193909352604084019190915260608301521515608082015260a00190565b9415158552602085019390935260408401919091526060830152608082015260a00190565b600060208252610f406020830184615559565b60208082526019908201527f41756374696f6e207072696365203c206d696e20707269636500000000000000604082015260600190565b60208082526018908201527f616d6f756e74206f7574206c657373207468616e206d696e0000000000000000604082015260600190565b60208082526014908201527f696e76616c69642061756374696f6e2074696d65000000000000000000000000604082015260600190565b6020808252601d908201527f696e76616c6964206865646765207072696365207468726573686f6c64000000604082015260600190565b6020808252601c908201527f696e76616c69642068656467652074696d65207468726573686f6c6400000000604082015260600190565b60208082526017908201527f4c6f772045544820616d6f756e74207265636569766564000000000000000000604082015260600190565b60208082526012908201527f77726f6e672061756374696f6e20747970650000000000000000000000000000604082015260600190565b6020808252601d908201527f43726162206d7573742072656465656d53686f727453687574646f776e000000604082015260600190565b6020808252601a908201527f616d6f756e7420696e2067726561746572207468616e206d6178000000000000604082015260600190565b60208082526019908201527f50726963652068656467696e67206e6f7420616c6c6f77656400000000000000604082015260600190565b60208082526019908201527f61756374696f6e20646972656374696f6e206368616e67656400000000000000604082015260600190565b60208082526019908201527f41756374696f6e207072696365203e206d617820707269636500000000000000604082015260600190565b60208082526018908201527f4372616220636f6e747261637473207368757420646f776e0000000000000000604082015260600190565b6020808252601b908201527f70726f666974206973206c657373207468616e206d696e204554480000000000604082015260600190565b6020808252601b908201527f54696d652068656467696e67206973206e6f7420616c6c6f7765640000000000604082015260600190565b60208082526012908201527f43616e6e6f742072656365697665206574680000000000000000000000000000604082015260600190565b6020808252601c908201527f4465706f73697420657863656564732073747261746567792063617000000000604082015260600190565b6020808252601c908201527f45544820617474616368656420666f72206275792061756374696f6e00000000604082015260600190565b6020808252818101527f70726f666974206973206c657373207468616e206d696e207753717565657468604082015260600190565b6020808252601c908201527f6d6178207072696365206d756c7469706c69657220746f6f206c6f7700000000604082015260600190565b6020808252601f908201527f5371756565746820636f6e747261637473206e6f74207368757420646f776e00604082015260600190565b6020808252601d908201527f6d696e207072696365206d756c7469706c69657220746f6f2068696768000000604082015260600190565b60208082526018908201527f7477617020706572696f6420697320746f6f2073686f72740000000000000000604082015260600190565b60208082526019908201527f73747261746567792069732064656c7461206e65757472616c00000000000000604082015260600190565b600060208252825160806020840152615d2f60a0840182615559565b90506001600160a01b03602085015116604084015260ff60408501511660608401526060840151601f198483030160808501526137638282615559565b918252602082015260400190565b92835260208301919091521515604082015260600190565b9283526020830191909152604082015260600190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b6001600160a01b0381168114615ddc57600080fd5b50565b8015158114615ddc57600080fd5b63ffffffff81168114615ddc57600080fdfe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d6179206861766520726576657274656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208683c7fc748ea20306a3d0e4238b04992c97f43a3230a0fa3f676efc73bce13f64736f6c6343000706003300000000000000000000000064187ae08781b09368e6253f9e94951243a493d500000000000000000000000065d66c76447ccb45daf1e8044e918fa786a483a1000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98400000000000000000000000082c427adfdf2d245ec51d8046b41c4ee87f0d29c000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000000000000000004b00000000000000000000000000000000000000000000000000d2f13f7789f00000000000000000000000000000000000000000000000000000e92596fd6290000