0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516142946200011f60003960008181610ae801528181610b2801528181610bc701528181610c070152610c9601526142946000f3fe6080604052600436106102fe5760003560e01c806387ff8b6711610190578063c78f19f9116100dc578063e830784511610095578063f57df22e1161006f578063f57df22e14610975578063f7245a1414610995578063fb12fc40146109aa578063fba7cc79146109e157600080fd5b8063e83078451461090a578063ec87621c14610921578063ee3a44561461095557600080fd5b8063c78f19f914610842578063c90c5aed1461086a578063d21335131461087f578063d547741f1461089f578063df0f03bb146108bf578063e58378bb146108d657600080fd5b8063a4c0a29611610149578063af0a774a11610123578063af0a774a146107ca578063b13ef343146107eb578063b1e012ba1461080b578063baeb91ae1461082257600080fd5b8063a4c0a2961461076b578063ad47b28214610782578063ad91d8da146107a257600080fd5b806387ff8b67146106c55780638f84aa09146106dc57806391d14854146106fd57806396d0daae1461071d578063a217fddf14610734578063a3dd26191461074957600080fd5b80633659cfe61161024f57806352d1902d116102085780636d0a6607116101e25780636d0a6607146106235780636f99ee951461065157806378e979251461067e57806387f91e06146106a357600080fd5b806352d1902d146105b957806357060efe146105ce57806360ee302f146105ef57600080fd5b80633659cfe6146105215780633b341943146105415780633b41923814610562578063412f072f146105795780634d52a512146105905780634f1ef286146105a657600080fd5b80631e9c8c1c116102bc5780632f2ff15d116102965780632f2ff15d14610485578063307aebc9146104a75780633197cbb6146104c757806336568abe1461050157600080fd5b80631e9c8c1c1461041a57806322f3e2d41461043a578063248a9ca31461045557600080fd5b80620e7fa81461030357806301ffc9a714610341578063020353c31461037157806302a5f51f146103aa578063074da40a146103e6578063116b21b114610404575b600080fd5b34801561030f57600080fd5b5061010754610324906001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b34801561034d57600080fd5b5061036161035c3660046137f8565b6109fa565b6040519015158152602001610338565b34801561037d57600080fd5b5061010254610392906001600160a01b031681565b6040516001600160a01b039091168152602001610338565b3480156103b657600080fd5b506103d86103c5366004613842565b61010f6020526000908152604090205481565b604051908152602001610338565b3480156103f257600080fd5b5061010e54610100900460ff16610361565b34801561041057600080fd5b5061010c546103d8565b34801561042657600080fd5b5060fc54610392906001600160a01b031681565b34801561044657600080fd5b5061010e546103619060ff1681565b34801561046157600080fd5b506103d861047036600461385f565b600090815260c9602052604090206001015490565b34801561049157600080fd5b506104a56104a0366004613878565b610a31565b005b3480156104b357600080fd5b5061010e5461036190610100900460ff1681565b3480156104d357600080fd5b50610107546104ec90600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610338565b34801561050d57600080fd5b506104a561051c366004613878565b610a5b565b34801561052d57600080fd5b506104a561053c366004613842565b610ade565b34801561054d57600080fd5b5061010154610392906001600160a01b031681565b34801561056e57600080fd5b506103d86101095481565b34801561058557600080fd5b506103d861010a5481565b34801561059c57600080fd5b50610104546103d8565b6104a56105b4366004613939565b610bbd565b3480156105c557600080fd5b506103d8610c89565b3480156105da57600080fd5b5061010354610392906001600160a01b031681565b3480156105fb57600080fd5b506101085461061190600160401b900460ff1681565b60405160ff9091168152602001610338565b34801561062f57600080fd5b506103d861063e366004613842565b6101106020526000908152604090205481565b34801561065d57600080fd5b5061067161066c3660046139fa565b610d3c565b6040516103389190613a3b565b34801561068a57600080fd5b50610107546104ec90600160801b900463ffffffff1681565b3480156106af57600080fd5b506101085461061190600160481b900460ff1681565b3480156106d157600080fd5b506103d861010b5481565b3480156106e857600080fd5b5061010054610392906001600160a01b031681565b34801561070957600080fd5b50610361610718366004613878565b610e54565b34801561072957600080fd5b506103d86101045481565b34801561074057600080fd5b506103d8600081565b34801561075557600080fd5b5061075e610e7f565b6040516103389190613a84565b34801561077757600080fd5b506103d861010c5481565b34801561078e57600080fd5b5060ff54610392906001600160a01b031681565b3480156107ae57600080fd5b506101075461032490600160c01b90046001600160401b031681565b3480156107d657600080fd5b5061010854610324906001600160401b031681565b3480156107f757600080fd5b5060fd54610392906001600160a01b031681565b34801561081757600080fd5b506103d86101065481565b34801561082e57600080fd5b506104a561083d366004613aac565b610f6f565b34801561084e57600080fd5b506101075461032490600160401b90046001600160401b031681565b34801561087657600080fd5b506104a56113b1565b34801561088b57600080fd5b506104a561089a366004613ad5565b6116c6565b3480156108ab57600080fd5b506104a56108ba366004613878565b611f28565b3480156108cb57600080fd5b506103d861010d5481565b3480156108e257600080fd5b506103d87fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e81565b34801561091657600080fd5b506103d86101055481565b34801561092d57600080fd5b506103d87f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b34801561096157600080fd5b5060fb54610392906001600160a01b031681565b34801561098157600080fd5b5060fe54610392906001600160a01b031681565b3480156109a157600080fd5b506104a5611f4d565b3480156109b657600080fd5b506103d86109c5366004613842565b6001600160a01b0316600090815261010f602052604090205490565b3480156109ed57600080fd5b5061010e5460ff16610361565b60006001600160e01b03198216637965db0b60e01b1480610a2b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600082815260c96020526040902060010154610a4c8161208d565b610a568383612097565b505050565b6001600160a01b0381163314610ad05760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b610ada828261211d565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b265760405162461bcd60e51b8152600401610ac790613aee565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b6f600080516020614218833981519152546001600160a01b031690565b6001600160a01b031614610b955760405162461bcd60e51b8152600401610ac790613b3a565b610b9e81612184565b60408051600080825260208201909252610bba918391906121ae565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c055760405162461bcd60e51b8152600401610ac790613aee565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c4e600080516020614218833981519152546001600160a01b031690565b6001600160a01b031614610c745760405162461bcd60e51b8152600401610ac790613b3a565b610c7d82612184565b610ada828260016121ae565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d295760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610ac7565b5060008051602061421883398151915290565b606060ff8216610d6957505060408051808201909152600781526657616974696e6760c81b602082015290565b60001960ff831601610d9757505060408051808201909152600681526541637469766560d01b602082015290565b60011960ff831601610dc657505060408051808201909152600781526650656e64696e6760c81b602082015290565b60021960ff831601610df757505060408051808201909152600981526814dd58d8d95959195960ba1b602082015290565b60031960ff831601610e2557505060408051808201909152600681526511985a5b195960d21b602082015290565b505060408051808201909152600e81526d111bd95cc81b9bdd08195e1a5cdd60921b602082015290565b919050565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61010e5460009060ff168015610ea4575061010754600160801b900463ffffffff1642105b15610eaf5750600090565b61010e5460ff168015610ed2575061010754600160801b900463ffffffff164210155b8015610eed575061010754600160a01b900463ffffffff1642105b15610ef85750600190565b61010e5460ff168015610f1b575061010754600160a01b900463ffffffff164210155b15610f265750600290565b61010e5460ff16158015610f42575061010e54610100900460ff165b8015610f5e575061010754600160a01b900463ffffffff164210155b15610f695750600390565b50600490565b6001610f79610e7f565b6004811115610f8a57610f8a613a6e565b14610fd75760405162461bcd60e51b815260206004820152601a60248201527f4c61756e63687061642073686f756c64206265206163746976650000000000006044820152606401610ac7565b33600090815261010f6020526040812054900361105a5761010754600160c01b90046001600160401b03166001600160801b038216101561105a5760405162461bcd60e51b815260206004820152601c60248201527f496e766573746d656e7420616d6f756e7420697320746f6f206c6f77000000006044820152606401610ac7565b60fc546040516370a0823160e01b81523360048201526001600160801b038316916001600160a01b0316906370a0823190602401602060405180830381865afa1580156110ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cf9190613b86565b101561111d5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320746f20696e7665737400000000006044820152606401610ac7565b6000816001600160801b031661010c546111379190613bb5565b9050610105548111156111965760405162461bcd60e51b815260206004820152602160248201527f43616e206e6f7420696e76657374206d6f7265207468616e20686172642063616044820152600760fc1b6064820152608401610ac7565b33600090815261010f60205260408120546111bb906001600160801b03851690613bb5565b610108549091506001600160401b03168111156112265760405162461bcd60e51b815260206004820152602360248201527f496e766573742063616e206e6f74206265206d6f7265207468616e20616c6c6f6044820152621dd95960ea1b6064820152608401610ac7565b60fc54611247906001600160a01b031633306001600160801b038716612319565b61010c82905533600090815261010f602090815260408083208490556101075460fb54825163313ce56760e01b815292516001600160401b03909216936001600160a01b039091169263313ce56792600480830193928290030181865afa1580156112b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112da9190613bc8565b6112e590600a613cc9565b6112f8906001600160801b038716613cd8565b6113029190613cef565b60fd5460405163ec20b45760e01b8152336004820152602481018390529192506001600160a01b03169063ec20b45790604401600060405180830381600087803b15801561134f57600080fd5b505af1158015611363573d6000803e3d6000fd5b5050610106546040516001600160801b03881681529092503391507f9e9d071824fd57d062ca63fd8b786d8da48a6807eebbcb2d83f9e8d21398e28c9060200160405180910390a350505050565b60026113bb610e7f565b60048111156113cc576113cc613a6e565b146114275760405162461bcd60e51b815260206004820152602560248201527f4c61756e63687061642073686f756c6420626520696e207374617475732050656044820152646e64696e6760d81b6064820152608401610ac7565b6101025460fb5460fc5460009261144e926001600160a01b0391821692908216911661238a565b90506101045461010c541080611462575080155b156115745761010e805460ff1916905560fd5460408051633ccfd60b60e01b815290516001600160a01b0390921691633ccfd60b9160048082019260009290919082900301818387803b1580156114b857600080fd5b505af11580156114cc573d6000803e3d6000fd5b505060fe546001600160a01b031615915061154c90505760fe60009054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561153357600080fd5b505af1158015611547573d6000803e3d6000fd5b505050505b6101005461010b5460fb5461156f926001600160a01b0391821692911690612534565b611684565b60008061157f612564565b915091506101045461010c541015801561159e57506101055461010c54105b1561160c5760fd60009054906101000a90046001600160a01b03166001600160a01b031663a2a28c696040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115f357600080fd5b505af1158015611607573d6000803e3d6000fd5b505050505b60ff54604051630ebdaf1960e21b815260048101849052602481018390526001600160a01b0390911690633af6bc6490604401600060405180830381600087803b15801561165957600080fd5b505af115801561166d573d6000803e3d6000fd5b505061010e805461ffff1916610100179055505050505b61010e546101065460405161010090920460ff1615159133907f584671d7401e0bd8a9ce2bd44cfa3bf7734a74828c5102956823baac3aecd04390600090a450565b600054610100900460ff16158080156116e65750600054600160ff909116105b806117005750303b158015611700575060005460ff166001145b6117635760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ac7565b6000805460ff191660011790558015611786576000805461ff0019166101001790555b61179536839003830183613f56565b8051516001600160a01b03166117bd5760405162461bcd60e51b8152600401610ac79061401d565b8051602001516001600160a01b03166117e85760405162461bcd60e51b8152600401610ac79061401d565b8051604001516001600160a01b03166118135760405162461bcd60e51b8152600401610ac79061401d565b6020810151516001600160a01b031661183e5760405162461bcd60e51b8152600401610ac79061401d565b60208082015101516001600160a01b031661186b5760405162461bcd60e51b8152600401610ac79061401d565b6020810151604001516001600160a01b03166118995760405162461bcd60e51b8152600401610ac79061401d565b6020810151606001516001600160a01b03166118c75760405162461bcd60e51b8152600401610ac79061401d565b6020810151608001516001600160a01b03166118f55760405162461bcd60e51b8152600401610ac79061401d565b602081015160a001516001600160a01b03166119235760405162461bcd60e51b8152600401610ac79061401d565b602081015160e001516001600160a01b03166119515760405162461bcd60e51b8152600401610ac79061401d565b611970610160840161196b6102c086016102a087016139fa565b61299b565b600061198461014085016101208601613842565b6001600160a01b0316146119a6576119a66102c08401356102e0850135612fc8565b600080806119db6119c03688900388016101608901614054565b6102c08801356119d660808a0160608b01613842565b61307c565b6102c08901356101095561010a83905561010b82905561010d81905591945092509050611a0e6080870160608801613842565b60fb80546001600160a01b0319166001600160a01b0392909216919091179055611a3e60a0870160808801613842565b60fc80546001600160a01b0319166001600160a01b0392909216919091179055611a6f610100870160e08801613842565b60fd80546001600160a01b0319166001600160a01b0392909216919091179055611aa161014087016101208801613842565b60fe80546001600160a01b0319166001600160a01b0392909216919091179055611ad361012087016101008801613842565b60ff80546001600160a01b0319166001600160a01b0392831617905561010b5460fb546040516370a0823160e01b8152306004820152919216906370a0823190602401602060405180830381865afa158015611b33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b579190613b86565b1015611ba55760405162461bcd60e51b815260206004820152601e60248201527f4e6f7420656e6f75676820746f6b656e73206f6e206c61756e636870616400006044820152606401610ac7565b611bb560c0870160a08801613842565b61010180546001600160a01b0319166001600160a01b0392909216919091179055611be660e0870160c08801613842565b61010280546001600160a01b0319166001600160a01b0392909216919091179055611c1961016087016101408801613842565b61010380546001600160a01b0319166001600160a01b0392909216919091179055611c4a6060870160408801613842565b61010080546001600160a01b0319166001600160a01b0392909216919091179055610160860135610104556101808601356101055561028086013561010655611c9b6101c087016101a08801614071565b610107805467ffffffffffffffff19166001600160401b0392909216919091179055611ccf6101e087016101c0880161408c565b610107805463ffffffff92909216600160801b0263ffffffff60801b19909216919091179055611d0761020087016101e08801614071565b61010780546001600160401b0392909216600160401b026fffffffffffffffff000000000000000019909216919091179055611d4b6102208701610200880161408c565b610107805463ffffffff92909216600160a01b0263ffffffff60a01b19909216919091179055611d8361024087016102208801614071565b61010780546001600160401b0392909216600160c01b026001600160c01b03909216919091179055611dbd61026087016102408801614071565b610108805467ffffffffffffffff19166001600160401b0392909216919091179055611df1610280870161026088016139fa565b610108805460ff92909216600160401b0268ff000000000000000019909216919091179055611e286102c087016102a088016139fa565b610108805460ff92909216600160481b0269ff0000000000000000001990921691909117905561010e805460ff19166001179055611e736000611e6e6020890189613842565b612097565b611ea77f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08611e6e6040890160208a01613842565b611edb7fb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214e611e6e6060890160408a01613842565b505050508015610ada576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600082815260c96020526040902060010154611f438161208d565b610a56838361211d565b6004611f57610e7f565b6004811115611f6857611f68613a6e565b14611fc15760405162461bcd60e51b8152602060048201526024808201527f4c61756e63687061642073686f756c6420626520696e207374617475732046616044820152631a5b195960e21b6064820152608401610ac7565b33600090815261010f60205260409020546120135760405162461bcd60e51b8152602060048201526012602482015271043616e206e6f7420776974686472617720360741b6044820152606401610ac7565b33600081815261010f6020908152604080832080549084905561011090925290912081905560fc549091612051916001600160a01b03169083612534565b6101065460405182815233907f4852848468c6a6e4a55b54b0942f4f62094aa72b7bd0c0837df10b0be13196c19060200160405180910390a350565b610bba81336131ef565b6120a18282610e54565b610ada57600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556120d93390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6121278282610e54565b15610ada57600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b08610ada8161208d565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156121e157610a5683613248565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561223b575060408051601f3d908101601f1916820190925261223891810190613b86565b60015b61229e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610ac7565b600080516020614218833981519152811461230d5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610ac7565b50610a568383836132e4565b6040516001600160a01b03808516602483015283166044820152606481018290526123849085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613309565b50505050565b6000816001600160a01b0316836001600160a01b0316036123f95760405162461bcd60e51b815260206004820152602360248201527f43616e206e6f74206372656174652077697468207468652073616d6520746f6b604482015262656e7360e81b6064820152608401610ac7565b60405163e6a4390560e01b81526001600160a01b03848116600483015283811660248301526000919086169063e6a4390590604401602060405180830381865afa15801561244b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246f91906140a9565b90506001600160a01b03811661248957600191505061252d565b600080826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156124ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ee91906140dd565b5091509150816001600160701b0316600014158061251457506001600160701b03811615155b15612525576000935050505061252d565b600193505050505b9392505050565b6040516001600160a01b038316602482015260448101829052610a5690849063a9059cbb60e01b9060640161234d565b610108546101075460fb546040805163313ce56760e01b815290516000948594859460649460ff600160401b948590041694939092046001600160401b0316926001600160a01b039091169163313ce5679160048083019260209291908290030181865afa1580156125da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125fe9190613bc8565b61260990600a613cc9565b61010c546126179190613cd8565b6126219190613cef565b61262b9190613cd8565b6126359190613cef565b6101085461010c54919250829160009160649161265c91600160401b900460ff1690613cd8565b6126669190613cef565b905060008161010c546126799190614124565b905060008461010b5461268c9190614124565b61010854909150600160481b900460ff16156127f657610108546000906064906126c090600160481b900460ff1688613cd8565b6126ca9190613cef565b90506126d68187614124565b6101085461010c549196506000916064916126fc91600160481b90910460ff1690613cd8565b6127069190613cef565b9050808561010c546127189190614124565b6127229190614124565b6101035460fb54919550612743916001600160a01b03908116911684612534565b6101035460fc54612761916001600160a01b03918216911683612534565b61010654610103546040518481526001600160a01b039091169033907fc14cc8914258f7c280193d8da1e749f8981d1605fdf3fb65e9b8e5f4d277c0129060200160405180910390a461010654610103546040518381526001600160a01b039091169033907ff97d3779578b7076ba3baffb71244b44115d2cc3853ded007a1679b2a7f039919060200160405180910390a450505b60ff5460fb54612813916001600160a01b03918216911686612534565b6101005460fb54612831916001600160a01b03918216911683612534565b60ff5460fc5461284e916001600160a01b03918216911685612534565b6101005460fc5461286c916001600160a01b03918216911684612534565b6101065460ff546040518681526001600160a01b039091169033907fa3dcaa39db391545b7f2b7ebeef2f0506ce101777dd10295ed33b25254709e189060200160405180910390a461010654610100546040518381526001600160a01b039091169033907fcc0deaa8a53c81c5c68041a3eef9ec5b5aa81d75569298b67fd8db94c9eaf7769060200160405180910390a46101065460ff546040518581526001600160a01b039091169033907fed9233ed5fd7485ad114d74754653c221558a4a3b22799bef930c6197412892b9060200160405180910390a461010654610100546040518481526001600160a01b039091169033907f9bddefc66373182b4992cacc02ed725e43c9d17730cad95fec1be1c9b7d7f55a9060200160405180910390a45090959194509092505050565b620f4240823510156129e55760405162461bcd60e51b8152602060048201526013602482015272536f66742063617020697320746f6f206c6f7760681b6044820152606401610ac7565b6020820135823510612a475760405162461bcd60e51b815260206004820152602560248201527f536f6674206361702073686f756c64206265206c657373207468616e20686172604482015264064206361760dc1b6064820152608401610ac7565b612a52600142613bb5565b612a62608084016060850161408c565b63ffffffff161015612aee5760405162461bcd60e51b815260206004820152604960248201527f4c61756e63687061642073746172742064617465206c657373207468616e206260448201527f6c6f636b2e74696d657374616d70202b204255464645525f54494d455f42454660648201526813d49157d4d510549560ba1b608482015260a401610ac7565b612afe60c0830160a0840161408c565b63ffffffff166001612b16608085016060860161408c565b63ffffffff16612b269190613bb5565b1115612b805760405162461bcd60e51b815260206004820152602360248201527f456e642074696d6520697320746f6f20636c6f736520746f2073746172742074604482015262696d6560e81b6064820152608401610ac7565b6001612b926060840160408501614071565b6001600160401b03161015612be95760405162461bcd60e51b815260206004820152601860248201527f50726573616c6520707269636520697320746f6f206c6f7700000000000000006044820152606401610ac7565b6001612bfb60a0840160808501614071565b6001600160401b031611612c515760405162461bcd60e51b815260206004820152601860248201527f4c697374696e6720707269636520697320746f6f206c6f7700000000000000006044820152606401610ac7565b612c6160a0830160808401614071565b6001600160401b0316612c7a6060840160408501614071565b6001600160401b03161115612ce35760405162461bcd60e51b815260206004820152602960248201527f50726573616c652070726963652073686f756c64206265206c657373207468616044820152686e206c697374696e6760b81b6064820152608401610ac7565b612cf360e0830160c08401614071565b6001600160401b0316612d0d610100840160e08501614071565b6001600160401b03161015612d815760405162461bcd60e51b815260206004820152603460248201527f4d617820616c6c6f636174696f6e2073686f756c642062652067726561746572604482015273103a3430b71036b4b71030b63637b1b0ba34b7b760611b6064820152608401610ac7565b6064612d9360e0840160c08501614071565b6001600160401b03161015612dea5760405162461bcd60e51b815260206004820181905260248201527f4d696e20696e766573746d656e7420616d6f756e7420697320746f6f206c6f776044820152606401610ac7565b8135612dfd610100840160e08501614071565b6001600160401b03161115612e705760405162461bcd60e51b815260206004820152603360248201527f4d617820496e766573746f72416c6c6f636174696f6e2073686f756c642062656044820152720206c657373207468616e20736f66742063617606c1b6064820152608401610ac7565b603c612e84610120840161010085016139fa565b60ff161015612ee95760405162461bcd60e51b815260206004820152602b60248201527f526169736564206c69717569646974792073686f756c6420626520677265617460448201526a6572207468616e2036302560a81b6064820152608401610ac7565b6064612efd610120840161010085016139fa565b60ff161115612f605760405162461bcd60e51b815260206004820152602960248201527f526169736564206c69717569646974792073686f756c64206265206c657373206044820152687468616e203130302560b81b6064820152608401610ac7565b606460ff82161115610ada5760405162461bcd60e51b815260206004820152602b60248201527f7773436f6d6d697373696f6e50657263656e742073686f756c64206265206c6560448201526a07373207468616e203130360ac1b6064820152608401610ac7565b620186a08210156130125760405162461bcd60e51b8152602060048201526014602482015273546f6f206c6f772065787472615265776172647360601b6044820152606401610ac7565b60008111610ada5760405162461bcd60e51b815260206004820152603160248201527f4578747261526577617264734c6f636b4475726174696f6e2073686f756c642060448201527067726561746572207468616e207a65726f60781b6064820152608401610ac7565b600080600085604001516001600160401b0316846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130f19190613bc8565b6130fc90600a613cc9565b876020015161310b9190613cd8565b6131159190613cef565b9250606460ff1686610100015160ff1687608001516001600160401b0316866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613171573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131959190613bc8565b6131a090600a613cc9565b89602001516131af9190613cd8565b6131b99190613cef565b6131c39190613cd8565b6131cd9190613cef565b9150846131da8385613bb5565b6131e49190613bb5565b905093509350939050565b6131f98282610e54565b610ada57613206816133de565b6132118360206133f0565b604051602001613222929190614137565b60408051601f198184030181529082905262461bcd60e51b8252610ac791600401613a3b565b6001600160a01b0381163b6132b55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610ac7565b60008051602061421883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6132ed8361358b565b6000825111806132fa5750805b15610a565761238483836135cb565b600061335e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135f09092919063ffffffff16565b905080516000148061337f57508080602001905181019061337f91906141ac565b610a565760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610ac7565b6060610a2b6001600160a01b03831660145b606060006133ff836002613cd8565b61340a906002613bb5565b6001600160401b03811115613421576134216138a8565b6040519080825280601f01601f19166020018201604052801561344b576020820181803683370190505b509050600360fc1b81600081518110613466576134666141ce565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613495576134956141ce565b60200101906001600160f81b031916908160001a90535060006134b9846002613cd8565b6134c4906001613bb5565b90505b600181111561353c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106134f8576134f86141ce565b1a60f81b82828151811061350e5761350e6141ce565b60200101906001600160f81b031916908160001a90535060049490941c93613535816141e4565b90506134c7565b50831561252d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ac7565b61359481613248565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061252d838360405180606001604052806027815260200161423860279139613607565b60606135ff848460008561367f565b949350505050565b6060600080856001600160a01b03168560405161362491906141fb565b600060405180830381855af49150503d806000811461365f576040519150601f19603f3d011682016040523d82523d6000602084013e613664565b606091505b50915091506136758683838761375a565b9695505050505050565b6060824710156136e05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610ac7565b600080866001600160a01b031685876040516136fc91906141fb565b60006040518083038185875af1925050503d8060008114613739576040519150601f19603f3d011682016040523d82523d6000602084013e61373e565b606091505b509150915061374f8783838761375a565b979650505050505050565b606083156137c95782516000036137c2576001600160a01b0385163b6137c25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ac7565b50816135ff565b6135ff83838151156137de5781518083602001fd5b8060405162461bcd60e51b8152600401610ac79190613a3b565b60006020828403121561380a57600080fd5b81356001600160e01b03198116811461252d57600080fd5b6001600160a01b0381168114610bba57600080fd5b8035610e4f81613822565b60006020828403121561385457600080fd5b813561252d81613822565b60006020828403121561387157600080fd5b5035919050565b6000806040838503121561388b57600080fd5b82359150602083013561389d81613822565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156138e1576138e16138a8565b60405290565b604051606081016001600160401b03811182821017156138e1576138e16138a8565b604051601f8201601f191681016001600160401b0381118282101715613931576139316138a8565b604052919050565b6000806040838503121561394c57600080fd5b823561395781613822565b91506020838101356001600160401b038082111561397457600080fd5b818601915086601f83011261398857600080fd5b81358181111561399a5761399a6138a8565b6139ac601f8201601f19168501613909565b915080825287848285010111156139c257600080fd5b80848401858401376000848284010152508093505050509250929050565b60ff81168114610bba57600080fd5b8035610e4f816139e0565b600060208284031215613a0c57600080fd5b813561252d816139e0565b60005b83811015613a32578181015183820152602001613a1a565b50506000910152565b6020815260008251806020840152613a5a816040850160208701613a17565b601f01601f19169190910160400192915050565b634e487b7160e01b600052602160045260246000fd5b6020810160058310613aa657634e487b7160e01b600052602160045260246000fd5b91905290565b600060208284031215613abe57600080fd5b81356001600160801b038116811461252d57600080fd5b60006103008284031215613ae857600080fd5b50919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215613b9857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a2b57610a2b613b9f565b600060208284031215613bda57600080fd5b815161252d816139e0565b600181815b80851115613c20578160001904821115613c0657613c06613b9f565b80851615613c1357918102915b93841c9390800290613bea565b509250929050565b600082613c3757506001610a2b565b81613c4457506000610a2b565b8160018114613c5a5760028114613c6457613c80565b6001915050610a2b565b60ff841115613c7557613c75613b9f565b50506001821b610a2b565b5060208310610133831016604e8410600b8410161715613ca3575081810a610a2b565b613cad8383613be5565b8060001904821115613cc157613cc1613b9f565b029392505050565b600061252d60ff841683613c28565b8082028115828204841417610a2b57610a2b613b9f565b600082613d0c57634e487b7160e01b600052601260045260246000fd5b500490565b6000610100808385031215613d2557600080fd5b604051908101906001600160401b0382118183101715613d4757613d476138a8565b8160405280925083359150613d5b82613822565b818152613d6a60208501613837565b6020820152613d7b60408501613837565b6040820152613d8c60608501613837565b6060820152613d9d60808501613837565b6080820152613dae60a08501613837565b60a0820152613dbf60c08501613837565b60c0820152613dd060e08501613837565b60e0820152505092915050565b80356001600160401b0381168114610e4f57600080fd5b63ffffffff81168114610bba57600080fd5b8035610e4f81613df4565b60006101208284031215613e2457600080fd5b613e2c6138be565b90508135815260208201356020820152613e4860408301613ddd565b6040820152613e5960608301613e06565b6060820152613e6a60808301613ddd565b6080820152613e7b60a08301613e06565b60a0820152613e8c60c08301613ddd565b60c0820152613e9d60e08301613ddd565b60e0820152610100613eb08184016139ef565b9082015292915050565b60006101608284031215613ecd57600080fd5b613ed56138e7565b9050613ee18383613e11565b81526101208201356020820152610140820135613efd816139e0565b604082015292915050565b600060408284031215613f1a57600080fd5b604051604081018181106001600160401b0382111715613f3c57613f3c6138a8565b604052823581526020928301359281019290925250919050565b6000818303610300811215613f6a57600080fd5b604051608081018181106001600160401b0382111715613f8c57613f8c6138a8565b6040526060821215613f9d57600080fd5b613fa56138e7565b91508335613fb281613822565b82526020840135613fc281613822565b60208301526040840135613fd581613822565b6040830152818152613fea8560608601613d11565b6020820152613ffd856101608601613eba565b6040820152614010856102c08601613f08565b6060820152949350505050565b60208082526017908201527f43616e206e6f74206265207a65726f2061646472657373000000000000000000604082015260600190565b6000610120828403121561406757600080fd5b61252d8383613e11565b60006020828403121561408357600080fd5b61252d82613ddd565b60006020828403121561409e57600080fd5b813561252d81613df4565b6000602082840312156140bb57600080fd5b815161252d81613822565b80516001600160701b0381168114610e4f57600080fd5b6000806000606084860312156140f257600080fd5b6140fb846140c6565b9250614109602085016140c6565b9150604084015161411981613df4565b809150509250925092565b81810381811115610a2b57610a2b613b9f565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161416f816017850160208801613a17565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516141a0816028840160208801613a17565b01602801949350505050565b6000602082840312156141be57600080fd5b8151801515811461252d57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000816141f3576141f3613b9f565b506000190190565b6000825161420d818460208701613a17565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220e91ea7dae7e3bc2118363fa72336c391de94ba7d02fbe7dd4b30dc79696b5f7f64736f6c63430008130033