0x6101606040523480156200001257600080fd5b5060405162003c7c38038062003c7c833981016040819052620000359162000775565b600481600161c4e060006040518060400160405280600a81526020016926bca3b7bb32b93737b960b11b81525080620000736200015760201b60201c565b815160209283012081519183019190912060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818801819052818301969096526060810194909452608080850193909352308483018190528151808603909301835260c09485019091528151919095012090529190915261012052600062000110828262000845565b506200011e90508362000172565b6200012982620001b3565b62000134816200025a565b5050506001600160a01b0316610140526200014f816200029b565b505062000939565b6040805180820190915260018152603160f81b602082015290565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b60008111620002195760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084015b60405180910390fd5b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b6064811115620003205760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a40162000210565b60006200032c62000413565b905080158015906200033e5750600954155b15620003b95760096000016040518060400160405280600063ffffffff16815260200162000377846200044b60201b6200138f1760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b620003d4826009620004ba60201b620013fc1790919060201c565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b6009546000901562000444576200043660096200050d60201b620014321760201c565b6001600160e01b0316905090565b5060085490565b60006001600160e01b03821115620004b65760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840162000210565b5090565b600080620004f784600001620004db436200055b60201b620014791760201c565b620004f1866200044b60201b6200138f1760201c565b620005c2565b6001600160e01b03918216969116945092505050565b80546000908015620005515762000539836200052b60018462000911565b600091825260209091200190565b5464010000000090046001600160e01b031662000554565b60005b9392505050565b600063ffffffff821115620004b65760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840162000210565b82546000908190801562000717576000620005e4876200052b60018562000911565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b031660208401529192509087161015620006685760405162461bcd60e51b815260206004820152601760248201527f436865636b706f696e743a20696e76616c6964206b6579000000000000000000604482015260640162000210565b805163ffffffff808816911603620006b657846200068d886200052b60018662000911565b80546001600160e01b03929092166401000000000263ffffffff90921691909117905562000706565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216640100000000029216919091179101555b6020015192508391506200076d9050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a8152918220955192519093166401000000000291909316179201919091559050815b935093915050565b6000602082840312156200078857600080fd5b81516001600160a01b03811681146200055457600080fd5b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007cb57607f821691505b602082108103620007ec57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200084057600081815260208120601f850160051c810160208610156200081b5750805b601f850160051c820191505b818110156200083c5782815560010162000827565b5050505b505050565b81516001600160401b03811115620008615762000861620007a0565b6200087981620008728454620007b6565b84620007f2565b602080601f831160018114620008b15760008415620008985750858301515b600019600386901b1c1916600185901b1785556200083c565b600085815260208120601f198616915b82811015620008e257888601518255948401946001909101908401620008c1565b5085821015620009015787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103818111156200093357634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05160c05160e0516101005161012051610140516132da620009a26000396000818161079101528181611be40152611d6f01526000612023015260006120720152600061204d01526000611fa601526000611fd001526000611ffa01526132da6000f3fe60806040526004361061021e5760003560e01c806370b0f66011610123578063c28bc2fa116100ab578063eb9019d41161006f578063eb9019d4146106f3578063ece40cc114610713578063f23a6e6114610733578063f8ce560a1461075f578063fc0c546a1461077f57600080fd5b8063c28bc2fa14610626578063c59057e414610639578063dd4e2ba514610659578063deaaa7cc1461069f578063ea0217cf146106d357600080fd5b80639a802a6d116100f25780639a802a6d14610590578063a7713a70146105b0578063b58131b0146105c5578063bc197c81146105da578063c01f9e371461060657600080fd5b806370b0f6601461051c5780637b3c71d31461053c5780637d5e81e21461055c57806397c3d3341461057c57600080fd5b80633932abb1116101a6578063544ffc9c11610175578063544ffc9c1461043d57806354fd4d501461049257806356781388146104bc5780635f398a14146104dc57806360c4247f146104fc57600080fd5b80633932abb1146103915780633bccf4fd146103a65780633e4f49e6146103c657806343859632146103f357600080fd5b806306fdde03116101ed57806306fdde03146102c4578063150b7a02146102e65780632656227d1461032a5780632d63f6931461033d5780632fe3e2611461035d57600080fd5b806301ffc9a71461022c57806302a251a314610261578063034201811461028457806306f3f9e6146102a457600080fd5b3661022757005b005b600080fd5b34801561023857600080fd5b5061024c610247366004612527565b6107cb565b60405190151581526020015b60405180910390f35b34801561026d57600080fd5b50610276610838565b604051908152602001610258565b34801561029057600080fd5b5061027661029f366004612665565b610848565b3480156102b057600080fd5b506102256102bf36600461270b565b610940565b3480156102d057600080fd5b506102d961098b565b6040516102589190612774565b3480156102f257600080fd5b5061031161030136600461279e565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610258565b610276610338366004612974565b610a1d565b34801561034957600080fd5b5061027661035836600461270b565b610b44565b34801561036957600080fd5b506102767fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af8881565b34801561039d57600080fd5b50610276610b7b565b3480156103b257600080fd5b506102766103c1366004612a03565b610b86565b3480156103d257600080fd5b506103e66103e136600461270b565b610bfc565b6040516102589190612a67565b3480156103ff57600080fd5b5061024c61040e366004612a8f565b60008281526007602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b34801561044957600080fd5b5061047761045836600461270b565b6000908152600760205260409020805460018201546002909201549092565b60408051938452602084019290925290820152606001610258565b34801561049e57600080fd5b506040805180820190915260018152603160f81b60208201526102d9565b3480156104c857600080fd5b506102766104d7366004612abb565b610d0b565b3480156104e857600080fd5b506102766104f7366004612ade565b610d34565b34801561050857600080fd5b5061027661051736600461270b565b610d7e565b34801561052857600080fd5b5061022561053736600461270b565b610e15565b34801561054857600080fd5b50610276610557366004612b61565b610e54565b34801561056857600080fd5b50610276610577366004612bba565b610ea6565b34801561058857600080fd5b506064610276565b34801561059c57600080fd5b506102766105ab366004612c6e565b611169565b3480156105bc57600080fd5b50610276611180565b3480156105d157600080fd5b506102766111aa565b3480156105e657600080fd5b506103116105f5366004612cc4565b63bc197c8160e01b95945050505050565b34801561061257600080fd5b5061027661062136600461270b565b6111b5565b610225610634366004612d53565b6111e4565b34801561064557600080fd5b50610276610654366004612974565b6112ab565b34801561066557600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e908201526102d9565b3480156106ab57600080fd5b506102767f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b3480156106df57600080fd5b506102256106ee36600461270b565b6112e5565b3480156106ff57600080fd5b5061027661070e366004612d94565b611324565b34801561071f57600080fd5b5061022561072e36600461270b565b611345565b34801561073f57600080fd5b5061031161074e366004612dbe565b63f23a6e6160e01b95945050505050565b34801561076b57600080fd5b5061027661077a36600461270b565b611384565b34801561078b57600080fd5b506107b37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610258565b60006001600160e01b0319821663bf26d89760e01b14806107fc57506001600160e01b031982166379dd796f60e01b145b8061081757506001600160e01b03198216630271189760e51b145b8061083257506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061084360055490565b905090565b6000806108ec6108e47fb3b3f3b703cd84ce352197dcff232b1b5d3cfb2025ce47cf04742d0651f1af888c8c8c8c604051610884929190612e22565b60405180910390208b805190602001206040516020016108c9959493929190948552602085019390935260ff9190911660408401526060830152608082015260a00190565b604051602081830303815290604052805190602001206114de565b86868661152c565b90506109328a828b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d925061154a915050565b9a9950505050505050505050565b3330146109685760405162461bcd60e51b815260040161095f90612e32565b60405180910390fd5b61097f565b8061097860026116af565b0361096d57505b6109888161172e565b50565b60606000805461099a90612e69565b80601f01602080910402602001604051908101604052809291908181526020018280546109c690612e69565b8015610a135780601f106109e857610100808354040283529160200191610a13565b820191906000526020600020905b8154815290600101906020018083116109f657829003601f168201915b5050505050905090565b600080610a2c868686866112ab565b90506000610a3982610bfc565b90506004816007811115610a4f57610a4f612a51565b1480610a6c57506005816007811115610a6a57610a6a612a51565b145b610ac25760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b606482015260840161095f565b600082815260016020818152604092839020600201805460ff191690921790915590518381527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f910160405180910390a1610b20828888888861187a565b610b2d8288888888611907565b610b3a828888888861187a565b5095945050505050565b60008181526001602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b600061084360045490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610bd4906108e4906080016108c9565b9050610bf1878288604051806020016040528060008152506119fd565b979650505050505050565b6000818152600160205260408120600281015460ff1615610c205750600792915050565b6002810154610100900460ff1615610c3b5750600292915050565b6000610c4684610b44565b905080600003610c985760405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c206964000000604482015260640161095f565b438110610ca9575060009392505050565b6000610cb4856111b5565b9050438110610cc857506001949350505050565b610cd185611a29565b8015610cf0575060008581526007602052604090208054600190910154115b15610d0057506004949350505050565b506003949350505050565b600080339050610d2c848285604051806020016040528060008152506119fd565b949350505050565b600080339050610bf187828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a925061154a915050565b600954600090808203610d95575050600854919050565b60006009610da4600184612eb9565b81548110610db457610db4612ecc565b60009182526020918290206040805180820190915291015463ffffffff8116808352600160201b9091046001600160e01b03169282019290925291508410610e0a57602001516001600160e01b03169392505050565b610d2c600985611a60565b333014610e345760405162461bcd60e51b815260040161095f90612e32565b610e4b565b80610e4460026116af565b03610e3957505b61098881611b12565b600080339050610e9c86828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119fd92505050565b9695505050505050565b6000610eb06111aa565b610ebf3361070e600143612eb9565b1015610f275760405162461bcd60e51b815260206004820152603160248201527f476f7665726e6f723a2070726f706f73657220766f7465732062656c6f7720706044820152701c9bdc1bdcd85b081d1a1c995cda1bdb19607a1b606482015260840161095f565b6000610f3c86868686805190602001206112ab565b90508451865114610f5f5760405162461bcd60e51b815260040161095f90612ee2565b8351865114610f805760405162461bcd60e51b815260040161095f90612ee2565b6000865111610fd15760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c0000000000000000604482015260640161095f565b600081815260016020908152604091829020825191820190925281546001600160401b031690819052156110515760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b606482015260840161095f565b600061106361105e610b7b565b611b53565b61106c43611b53565b6110769190612f23565b9050600061108561105e610838565b61108f9083612f23565b835467ffffffffffffffff19166001600160401b038416178455905060018301805467ffffffffffffffff19166001600160401b0383161790557f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115611107576111076125a8565b60405190808252806020026020018201604052801561113a57816020015b60608152602001906001900390816111255790505b508c88888e60405161115499989796959493929190613013565b60405180910390a15091979650505050505050565b6000611176848484611bbb565b90505b9392505050565b600954600090156111a3576111956009611432565b6001600160e01b0316905090565b5060085490565b600061084360065490565b60008181526001602081815260408084208151928301909152909101546001600160401b031690819052610b6c565b3330146112035760405162461bcd60e51b815260040161095f90612e32565b61121a565b8061121360026116af565b0361120857505b600080856001600160a01b0316858585604051611238929190612e22565b60006040518083038185875af1925050503d8060008114611275576040519150601f19603f3d011682016040523d82523d6000602084013e61127a565b606091505b50915091506112a2828260405180606001604052806028815260200161325660289139611c51565b50505050505050565b6000848484846040516020016112c49493929190613102565b60408051601f19818403018152919052805160209091012095945050505050565b3330146113045760405162461bcd60e51b815260040161095f90612e32565b61131b565b8061131460026116af565b0361130957505b61098881611c6a565b6000611179838361134060408051602081019091526000815290565b611bbb565b3330146113645760405162461bcd60e51b815260040161095f90612e32565b61137b565b8061137460026116af565b0361136957505b61098881611d0b565b600061083282611d4c565b60006001600160e01b038211156113f85760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b606482015260840161095f565b5090565b60008061141a8461140c43611479565b6114158661138f565b611df6565b6001600160e01b0391821693501690505b9250929050565b805460009080156114705761145a8361144c600184612eb9565b600091825260209091200190565b54600160201b90046001600160e01b0316611179565b60009392505050565b600063ffffffff8211156113f85760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161095f565b60006108326114eb611f99565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061153d878787876120c0565b91509150610b3a81612184565b600085815260016020819052604082209061156488610bfc565b600781111561157557611575612a51565b146115ce5760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b606482015260840161095f565b604080516020810190915281546001600160401b0316908190526000906115f790889086611bbb565b905061160688888884886122ce565b835160000361165b57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda48988848960405161164e949392919061314d565b60405180910390a2610bf1565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb8712898884898960405161169c959493929190613175565b60405180910390a2979650505050505050565b60006116ca8254600f81810b600160801b909204900b131590565b156116e857604051631ed9509560e11b815260040160405180910390fd5b508054600f0b6000818152600180840160205260408220805492905583546fffffffffffffffffffffffffffffffff191692016001600160801b03169190911790915590565b60648111156117b15760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72566f74657351756f72756d4672616374696f6e3a2071756f60448201527f72756d4e756d657261746f72206f7665722071756f72756d44656e6f6d696e616064820152623a37b960e91b608482015260a40161095f565b60006117bb611180565b905080158015906117cc5750600954155b15611830576040805180820190915260008152600990602081016117ef8461138f565b6001600160e01b039081169091528254600181018455600093845260209384902083519490930151909116600160201b0263ffffffff909316929092179101555b61183b6009836113fc565b505060408051828152602081018490527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a15050565b611900565b84518110156118fe57306001600160a01b03168582815181106118a4576118a4612ecc565b60200260200101516001600160a01b0316036118ee576118ee8382815181106118cf576118cf612ecc565b602002602001015180519060200120600261244890919063ffffffff16565b6118f7816131bb565b905061187f565b505b5050505050565b600060405180606001604052806027815260200161327e60279139905060005b85518110156112a25760008087838151811061194557611945612ecc565b60200260200101516001600160a01b031687848151811061196857611968612ecc565b602002602001015187858151811061198257611982612ecc565b602002602001015160405161199791906131d4565b60006040518083038185875af1925050503d80600081146119d4576040519150601f19603f3d011682016040523d82523d6000602084013e6119d9565b606091505b50915091506119e9828286611c51565b505050806119f6906131bb565b9050611927565b6000611a2085858585611a1b60408051602081019091526000815290565b61154a565b95945050505050565b600081815260076020526040812060028101546001820154611a4b91906131f0565b611a5761077a85610b44565b11159392505050565b6000438210611ab15760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e6564604482015260640161095f565b6000611abc83611479565b84549091506000611acf86848385612484565b90508015611afc57611ae68661144c600184612eb9565b54600160201b90046001600160e01b0316611aff565b60005b6001600160e01b03169695505050505050565b60045460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1600455565b60006001600160401b038211156113f85760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b606482015260840161095f565b604051630748d63560e31b81526001600160a01b038481166004830152602482018490526000917f000000000000000000000000000000000000000000000000000000000000000090911690633a46b1a890604401602060405180830381865afa158015611c2d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111769190613203565b60608315611c60575081611179565b61117983836124e2565b60008111611cca5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b606482015260840161095f565b60055460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1600555565b60065460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600655565b60006064611d5983610d7e565b604051632394e7a360e21b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638e539e8c90602401602060405180830381865afa158015611dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de29190613203565b611dec919061321c565b6108329190613233565b825460009081908015611f3c576000611e148761144c600185612eb9565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b031660208401529192509087161015611e955760405162461bcd60e51b815260206004820152601760248201527f436865636b706f696e743a20696e76616c6964206b6579000000000000000000604482015260640161095f565b805163ffffffff808816911603611edd5784611eb68861144c600186612eb9565b80546001600160e01b0392909216600160201b0263ffffffff909216919091179055611f2c565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b602001519250839150611f919050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b0291909316179201919091559050815b935093915050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611ff257507f000000000000000000000000000000000000000000000000000000000000000046145b1561201c57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156120f7575060009050600361217b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561214b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166121745760006001925092505061217b565b9150600090505b94509492505050565b600081600481111561219857612198612a51565b036121a05750565b60018160048111156121b4576121b4612a51565b036122015760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161095f565b600281600481111561221557612215612a51565b036122625760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161095f565b600381600481111561227657612276612a51565b036109885760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161095f565b60008581526007602090815260408083206001600160a01b0388168452600381019092529091205460ff16156123565760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b606482015260840161095f565b6001600160a01b03851660009081526003820160205260409020805460ff1916600117905560ff84166123a2578281600001600082825461239791906131f0565b909155506118fe9050565b60001960ff8516016123c2578281600101600082825461239791906131f0565b60011960ff8516016123e2578281600201600082825461239791906131f0565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b606482015260840161095f565b8154600160801b90819004600f0b6000818152600180860160205260409091209390935583546001600160801b03908116939091011602179055565b60005b818310156124da57600061249b848461250c565b60008781526020902090915063ffffffff86169082015463ffffffff1611156124c6578092506124d4565b6124d18160016131f0565b93505b50612487565b509392505050565b8151156124f25781518083602001fd5b8060405162461bcd60e51b815260040161095f9190612774565b600061251b6002848418613233565b611179908484166131f0565b60006020828403121561253957600080fd5b81356001600160e01b03198116811461117957600080fd5b803560ff8116811461256257600080fd5b919050565b60008083601f84011261257957600080fd5b5081356001600160401b0381111561259057600080fd5b60208301915083602082850101111561142b57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156125e6576125e66125a8565b604052919050565b60006001600160401b03831115612607576126076125a8565b61261a601f8401601f19166020016125be565b905082815283838301111561262e57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261265657600080fd5b611179838335602085016125ee565b60008060008060008060008060e0898b03121561268157600080fd5b8835975061269160208a01612551565b965060408901356001600160401b03808211156126ad57600080fd5b6126b98c838d01612567565b909850965060608b01359150808211156126d257600080fd5b506126df8b828c01612645565b9450506126ee60808a01612551565b925060a0890135915060c089013590509295985092959890939650565b60006020828403121561271d57600080fd5b5035919050565b60005b8381101561273f578181015183820152602001612727565b50506000910152565b60008151808452612760816020860160208601612724565b601f01601f19169290920160200192915050565b6020815260006111796020830184612748565b80356001600160a01b038116811461256257600080fd5b600080600080608085870312156127b457600080fd5b6127bd85612787565b93506127cb60208601612787565b92506040850135915060608501356001600160401b038111156127ed57600080fd5b6127f987828801612645565b91505092959194509250565b60006001600160401b0382111561281e5761281e6125a8565b5060051b60200190565b600082601f83011261283957600080fd5b8135602061284e61284983612805565b6125be565b82815260059290921b8401810191818101908684111561286d57600080fd5b8286015b8481101561288f5761288281612787565b8352918301918301612871565b509695505050505050565b600082601f8301126128ab57600080fd5b813560206128bb61284983612805565b82815260059290921b840181019181810190868411156128da57600080fd5b8286015b8481101561288f57803583529183019183016128de565b600082601f83011261290657600080fd5b8135602061291661284983612805565b82815260059290921b8401810191818101908684111561293557600080fd5b8286015b8481101561288f5780356001600160401b038111156129585760008081fd5b6129668986838b0101612645565b845250918301918301612939565b6000806000806080858703121561298a57600080fd5b84356001600160401b03808211156129a157600080fd5b6129ad88838901612828565b955060208701359150808211156129c357600080fd5b6129cf8883890161289a565b945060408701359150808211156129e557600080fd5b506129f2878288016128f5565b949793965093946060013593505050565b600080600080600060a08688031215612a1b57600080fd5b85359450612a2b60208701612551565b9350612a3960408701612551565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052602160045260246000fd5b6020810160088310612a8957634e487b7160e01b600052602160045260246000fd5b91905290565b60008060408385031215612aa257600080fd5b82359150612ab260208401612787565b90509250929050565b60008060408385031215612ace57600080fd5b82359150612ab260208401612551565b600080600080600060808688031215612af657600080fd5b85359450612b0660208701612551565b935060408601356001600160401b0380821115612b2257600080fd5b612b2e89838a01612567565b90955093506060880135915080821115612b4757600080fd5b50612b5488828901612645565b9150509295509295909350565b60008060008060608587031215612b7757600080fd5b84359350612b8760208601612551565b925060408501356001600160401b03811115612ba257600080fd5b612bae87828801612567565b95989497509550505050565b60008060008060808587031215612bd057600080fd5b84356001600160401b0380821115612be757600080fd5b612bf388838901612828565b95506020870135915080821115612c0957600080fd5b612c158883890161289a565b94506040870135915080821115612c2b57600080fd5b612c37888389016128f5565b93506060870135915080821115612c4d57600080fd5b508501601f81018713612c5f57600080fd5b6127f9878235602084016125ee565b600080600060608486031215612c8357600080fd5b612c8c84612787565b92506020840135915060408401356001600160401b03811115612cae57600080fd5b612cba86828701612645565b9150509250925092565b600080600080600060a08688031215612cdc57600080fd5b612ce586612787565b9450612cf360208701612787565b935060408601356001600160401b0380821115612d0f57600080fd5b612d1b89838a0161289a565b94506060880135915080821115612d3157600080fd5b612d3d89838a0161289a565b93506080880135915080821115612b4757600080fd5b60008060008060608587031215612d6957600080fd5b612d7285612787565b93506020850135925060408501356001600160401b03811115612ba257600080fd5b60008060408385031215612da757600080fd5b612db083612787565b946020939093013593505050565b600080600080600060a08688031215612dd657600080fd5b612ddf86612787565b9450612ded60208701612787565b9350604086013592506060860135915060808601356001600160401b03811115612e1657600080fd5b612b5488828901612645565b8183823760009101908152919050565b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600181811c90821680612e7d57607f821691505b602082108103612e9d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561083257610832612ea3565b634e487b7160e01b600052603260045260246000fd5b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b6001600160401b03818116838216019080821115612f4357612f43612ea3565b5092915050565b600081518084526020808501945080840160005b83811015612f835781516001600160a01b031687529582019590820190600101612f5e565b509495945050505050565b600081518084526020808501945080840160005b83811015612f8357815187529582019590820190600101612fa2565b600081518084526020808501808196508360051b8101915082860160005b85811015613006578284038952612ff4848351612748565b98850198935090840190600101612fdc565b5091979650505050505050565b60006101208b8352602060018060a01b038c168185015281604085015261303c8285018c612f4a565b91508382036060850152613050828b612f8e565b915083820360808501528189518084528284019150828160051b850101838c0160005b838110156130a157601f1987840301855261308f838351612748565b94860194925090850190600101613073565b505086810360a08801526130b5818c612fbe565b9450505050506130d060c08401876001600160401b03169052565b6001600160401b03851660e08401528281036101008401526130f28185612748565b9c9b505050505050505050505050565b6080815260006131156080830187612f4a565b82810360208401526131278187612f8e565b9050828103604084015261313b8186612fbe565b91505082606083015295945050505050565b84815260ff84166020820152826040820152608060608201526000610e9c6080830184612748565b85815260ff8516602082015283604082015260a06060820152600061319d60a0830185612748565b82810360808401526131af8185612748565b98975050505050505050565b6000600182016131cd576131cd612ea3565b5060010190565b600082516131e6818460208701612724565b9190910192915050565b8082018082111561083257610832612ea3565b60006020828403121561321557600080fd5b5051919050565b808202811582820484141761083257610832612ea3565b60008261325057634e487b7160e01b600052601260045260246000fd5b50049056fe476f7665726e6f723a2072656c617920726576657274656420776974686f7574206d657373616765476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765a264697066735822122088f00c71193b41f554ab7873b80f358479ec3fd271cc9ed7ea7737eab456129464736f6c63430008120033000000000000000000000000c747f9d3e6b34596977e79f09a2ab122042673e1