0x6080604052621275006004556706f05b59d3b20000600555670de0b6b3a76400006006819055600755600e805460ff191690553480156200003f57600080fd5b5060405162003b4f38038062003b4f83398101604081905262000062916200030a565b838383836200007133620001bb565b60018055600280546001600160a01b038087166001600160a01b0319928316179092556003805492861692909116919091179055620000b5426301e13380620003fd565b600d5580518251146200011d5760405162461bcd60e51b815260206004820152602660248201527f6d65726b6c6520726f6f747320616e64207261746573206c656e677468206d696044820152650e6dac2e8c6d60d31b606482015260840160405180910390fd5b60005b825181101562000164578281815181106200013f576200013f62000425565b6020908102919091018101516000838152600b90925260409091205560010162000120565b5060005b8151811015620001ac5781818151811062000187576200018762000425565b6020908102919091018101516000838152600a90925260409091205560010162000168565b5050505050505050506200043b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200022157600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000265576200026562000224565b604052919050565b60006001600160401b0382111562000289576200028962000224565b5060051b60200190565b600082601f830112620002a557600080fd5b81516020620002be620002b8836200026d565b6200023a565b8083825260208201915060208460051b870101935086841115620002e157600080fd5b602086015b84811015620002ff5780518352918301918301620002e6565b509695505050505050565b600080600080608085870312156200032157600080fd5b84516200032e816200020b565b8094505060208086015162000343816200020b565b60408701519094506001600160401b03808211156200036157600080fd5b818801915088601f8301126200037657600080fd5b815162000387620002b8826200026d565b81815260059190911b8301840190848101908b831115620003a757600080fd5b938501935b82851015620003c757845182529385019390850190620003ac565b60608b01519097509450505080831115620003e157600080fd5b5050620003f18782880162000293565b91505092959194509250565b808201808211156200041f57634e487b7160e01b600052601160045260246000fd5b92915050565b634e487b7160e01b600052603260045260246000fd5b613704806200044b6000396000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c806364ab86751161015c578063bc07aa64116100ce578063e2fb6e3111610087578063e2fb6e31146105cc578063e8a3d485146105ec578063e984d79414610601578063ee0dd5d614610614578063f2fde38b14610627578063fcd1af011461063a57600080fd5b8063bc07aa641461054d578063bd28cc1714610560578063c0f05d8014610573578063c27a20d214610586578063c88b863c14610599578063cea01962146105ac57600080fd5b80638b58c569116101205780638b58c569146104da5780638da5cb5b146104fa5780639a03d9a31461050b578063a56dade21461051e578063b2a2b72214610531578063b32534cf1461053a57600080fd5b806364ab8675146104795780636d3f96fc1461048c5780636ff1c9bc1461049f578063715018a6146104b25780638462151c146104ba57600080fd5b8063372500ab116101f55780634d9f92c2116101b95780634d9f92c2146103c3578063518051c4146103ff57806351e5b6721461042357806352c84fe7146104365780635773d778146104495780636186938a1461046657600080fd5b8063372500ab146103875780633c76f6bd1461038f5780633ccfd60b1461039857806348179ee5146103a05780634a39fa801461033b57600080fd5b8063226112801161024757806322611280146103085780632352a8641461031057806326a4e8d21461033b57806326b321d11461034e578063276184ae14610361578063315a095d1461037457600080fd5b806307b25bba146102845780630ea230de146102a0578063150b7a02146102b357806319a249a8146102eb5780631db2b99d146102f5575b600080fd5b61028d60055481565b6040519081526020015b60405180910390f35b61028d6102ae366004612b2a565b61065a565b6102d26102c1366004612b47565b630a85bd0160e11b95945050505050565b6040516001600160e01b03199091168152602001610297565b6102f36106f3565b005b6102f3610303366004612c63565b61070f565b6102f3610802565b600254610323906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b6102f3610349366004612b2a565b610885565b6102f361035c366004612d00565b6108af565b600354610323906001600160a01b031681565b6102f3610382366004612d00565b6108bc565b6102f36108d2565b61028d600d5481565b6102f36108dc565b61028d6103ae366004612b2a565b60096020526000908152604090206001015481565b6103ea6103d1366004612b2a565b6008602052600090815260409020805460019091015482565b60408051928352602083019190915201610297565b61028d61040d366004612d19565b61ffff166000908152600c602052604090205490565b6102f3610431366004612d34565b610b2c565b6102f3610444366004612dac565b610b53565b600e546104569060ff1681565b6040519015158152602001610297565b61028d610474366004612d19565b611335565b61028d610487366004612b2a565b611346565b6102f361049a366004612dac565b611351565b6102f36104ad366004612b2a565b611974565b6102f3611b0e565b6104cd6104c8366004612b2a565b611b20565b6040516102979190612e46565b61028d6104e8366004612d00565b600c6020526000908152604090205481565b6000546001600160a01b0316610323565b6102f3610519366004612b2a565b611bb7565b61028d61052c366004612b2a565b611be1565b61028d60045481565b6102f3610548366004612e8e565b611dcb565b6102f361055b366004612eb0565b611de5565b6102f361056e366004612c63565b611e2f565b6102f3610581366004612d00565b6120cf565b6102f3610594366004612f36565b6120dc565b6102f36105a7366004612d00565b61213c565b61028d6105ba366004612d00565b600b6020526000908152604090205481565b6105df6105da366004612b2a565b612149565b6040516102979190612fc2565b6105f4612202565b6040516102979190613018565b6102f361060f366004612e8e565b612247565b6102f3610622366004612eb0565b612261565b6102f3610635366004612b2a565b6122ab565b61064d610648366004612b2a565b612324565b604051610297919061304b565b600080805b6001600160a01b0384166000908152600860205260409020600201548110156106ec576001600160a01b03841660009081526008602052604090206002018054829081106106af576106af613082565b60009182526020909120601082040154600f9091166002026101000a900461ffff16156106e457816106e0816130ae565b9250505b60010161065f565b5092915050565b6106fb6123fc565b600e805460ff19811660ff90911615179055565b6107176123fc565b60005b81518110156107bd57600082828151811061073757610737613082565b602002602001015161ffff169050806000146107b457600254604051635c46a7ef60e11b81526001600160a01b039091169063b88d4fde90610781903090339086906004016130c7565b600060405180830381600087803b15801561079b57600080fd5b505af11580156107af573d6000803e3d6000fd5b505050505b5060010161071a565b50336001600160a01b03167ff0b7bd0c6bac1e6b288e801469a8fe79118fc27bf620dbfce792534bc2878e20826040516107f79190612e46565b60405180910390a250565b61080a612456565b3360009081526009602052604081209061082482826129c5565b60018201600090555050610837336125b0565b336000818152600860205260409081902090517ffb0fa2c910642b32b54a3cb67e087132deb00fe0e5d488e7ce5f43b4991f70899161087b91600290910190613435565b60405180910390a2565b61088d6123fc565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6108b76123fc565b600455565b6108c46123fc565b6108ce33826125b9565b5050565b6108da612456565b565b336000908152600960205260409020546108f557600080fd5b6108fd612456565b3360009081526009602052604090206001015442811061093757604051632fac778f60e21b81523360048201526024015b60405180910390fd5b336000908152600960205260408120905b8154811015610aca57600082828154811061096557610965613082565b6000918252602080832060108304015433845260089091526040832060029081018054600f9094169091026101000a90910461ffff16935090839081106109ae576109ae613082565b6000918252602080832060108304015433845260089091526040909220865461ffff6002600f90941684026101000a90940493909316935001908590859081106109fa576109fa613082565b90600052602060002090601091828204019190066002029054906101000a900461ffff1661ffff1681548110610a3257610a32613082565b600091825260209091206010820401805461ffff6002600f90941684026101000a021916905554604051635c46a7ef60e11b81526001600160a01b039091169063b88d4fde90610a8a903090339086906004016130c7565b600060405180830381600087803b158015610aa457600080fd5b505af1158015610ab8573d6000803e3d6000fd5b50506001909401935061094892505050565b5033600081815260096020526040812060010155610ae7906125b0565b336001600160a01b03167ff0b7bd0c6bac1e6b288e801469a8fe79118fc27bf620dbfce792534bc2878e2082604051610b209190613435565b60405180910390a25050565b610b346123fc565b6001600160a01b03909116600090815260086020526040902060010155565b610b5b612456565b848314610b7a5760405162461bcd60e51b815260040161092e90613448565b848114610b995760405162461bcd60e51b815260040161092e90613448565b336000908152600860205260408120600201549003610f8057336000908152600860205260409020610bcf9060020187876129ea565b5060005b85811015610f7a5760025433906001600160a01b0316636352211e898985818110610c0057610c00613082565b9050602002016020810190610c159190612d19565b6040516001600160e01b031960e084901b16815261ffff9091166004820152602401602060405180830381865afa158015610c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c78919061347f565b6001600160a01b031614610ccd57868682818110610c9857610c98613082565b9050602002016020810190610cad9190612d19565b604051635b50a3cf60e11b815261ffff909116600482015260240161092e565b6000878783818110610ce157610ce1613082565b9050602002016020810190610cf69190612d19565b868684818110610d0857610d08613082565b9050602002016020810190610d1d919061349c565b6040805161ffff909316602084015260ff9091169082015260600160408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052805190602001209050610e08848484818110610d8257610d82613082565b9050602002810190610d9491906134bf565b808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250600a935091508a90508987818110610ddb57610ddb613082565b9050602002016020810190610df0919061349c565b60ff16815260200190815260200160002054836126bf565b610e495760405162461bcd60e51b815260206004820152601260248201527124b73b30b634b226b2b935b632a83937b7b360711b604482015260640161092e565b858583818110610e5b57610e5b613082565b9050602002016020810190610e70919061349c565b60ff1615610ee357858583818110610e8a57610e8a613082565b9050602002016020810190610e9f919061349c565b60ff16600c60008a8a86818110610eb857610eb8613082565b9050602002016020810190610ecd9190612d19565b61ffff1681526020810191909152604001600020555b6002546001600160a01b031663b88d4fde33308b8b87818110610f0857610f08613082565b9050602002016020810190610f1d9190612d19565b6040518463ffffffff1660e01b8152600401610f3b93929190613509565b600060405180830381600087803b158015610f5557600080fd5b505af1158015610f69573d6000803e3d6000fd5b505060019093019250610bd3915050565b506112e1565b60005b858110156112df5760025433906001600160a01b0316636352211e898985818110610fb057610fb0613082565b9050602002016020810190610fc59190612d19565b6040516001600160e01b031960e084901b16815261ffff9091166004820152602401602060405180830381865afa158015611004573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611028919061347f565b6001600160a01b03161461104857868682818110610c9857610c98613082565b600087878381811061105c5761105c613082565b90506020020160208101906110719190612d19565b86868481811061108357611083613082565b9050602002016020810190611098919061349c565b6040805161ffff909316602084015260ff9091169082015260600160408051601f19818403018152828252805160209182012090830152016040516020818303038152906040528051906020012090506110fd848484818110610d8257610d82613082565b61113e5760405162461bcd60e51b815260206004820152601260248201527124b73b30b634b226b2b935b632a83937b7b360711b604482015260640161092e565b85858381811061115057611150613082565b9050602002016020810190611165919061349c565b60ff16156111d85785858381811061117f5761117f613082565b9050602002016020810190611194919061349c565b60ff16600c60008a8a868181106111ad576111ad613082565b90506020020160208101906111c29190612d19565b61ffff1681526020810191909152604001600020555b3360009081526008602052604090206002018888848181106111fc576111fc613082565b90506020020160208101906112119190612d19565b8154600181018355600092835260209092206010830401805461ffff9283166002600f90951685026101000a90810293021916919091179055546001600160a01b031663b88d4fde33308b8b8781811061126d5761126d613082565b90506020020160208101906112829190612d19565b6040518463ffffffff1660e01b81526004016112a093929190613509565b600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505060019093019250610f83915050565b505b6112ea336125b0565b336001600160a01b03167f29ac78bc3dcd88143fb4d2986027c15f05c86c7adec8521f8df902c854c0f5c1878760405161132592919061353f565b60405180910390a2505050505050565b6000611340826126d5565b92915050565b600061134082612779565b6113596123fc565b8281146113785760405162461bcd60e51b815260040161092e90613448565b60005b8581101561196b57600087878381811061139757611397613082565b90506020020160208101906113ac9190612b2a565b905060008686848181106113c2576113c2613082565b90506020028101906113d491906134bf565b80806020026020016040519081016040528093929190818152602001838360200280828437600092018290525093945088925087915086905081811061141c5761141c613082565b905060200281019061142e91906134bf565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201829052506001600160a01b0388168152600860205260408120600201549495509390930392506116b1915050576001600160a01b038316600090815260086020908152604090912083516114b392600290920191850190612a97565b5060005b82518110156116ab57600254835133916001600160a01b031690636352211e908690859081106114e9576114e9613082565b60200260200101516040518263ffffffff1660e01b8152600401611517919061ffff91909116815260200190565b602060405180830381865afa158015611534573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611558919061347f565b6001600160a01b0316146115a45782818151811061157857611578613082565b6020026020010151604051635b50a3cf60e11b815260040161092e919061ffff91909116815260200190565b8181815181106115b6576115b6613082565b602002602001015160ff1660001461161a578181815181106115da576115da613082565b602002602001015160ff16600c60008584815181106115fb576115fb613082565b602002602001015161ffff168152602001908152602001600020819055505b60025483516001600160a01b039091169063b88d4fde903390309087908690811061164757611647613082565b60200260200101516040518463ffffffff1660e01b815260040161166d93929190613509565b600060405180830381600087803b15801561168757600080fd5b505af115801561169b573d6000803e3d6000fd5b5050600190920191506114b79050565b506118fb565b60005b82518110156118f957600254835133916001600160a01b031690636352211e908690859081106116e6576116e6613082565b60200260200101516040518263ffffffff1660e01b8152600401611714919061ffff91909116815260200190565b602060405180830381865afa158015611731573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611755919061347f565b6001600160a01b0316146117755782818151811061157857611578613082565b81818151811061178757611787613082565b602002602001015160ff166000146117eb578181815181106117ab576117ab613082565b602002602001015160ff16600c60008584815181106117cc576117cc613082565b602002602001015161ffff168152602001908152602001600020819055505b60086000856001600160a01b03166001600160a01b0316815260200190815260200160002060020183828151811061182557611825613082565b60209081029190910181015182546001810184556000938452919092206010820401805461ffff9384166002600f90941684026101000a90810294021916929092179091555483516001600160a01b039091169063b88d4fde903390309087908690811061189557611895613082565b60200260200101516040518463ffffffff1660e01b81526004016118bb93929190613509565b600060405180830381600087803b1580156118d557600080fd5b505af11580156118e9573d6000803e3d6000fd5b5050600190920191506116b49050565b505b6001600160a01b038316600090815260086020526040902042905561191f836125b0565b826001600160a01b03167f29ac78bc3dcd88143fb4d2986027c15f05c86c7adec8521f8df902c854c0f5c1836040516119589190612e46565b60405180910390a250505060010161137b565b50505050505050565b61197c6123fc565b6001600160a01b038116600090815260086020908152604080832060020180548251818502810185019093528083529192909190830182828015611a0757602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116119ce5790505b5050505050905060005b8151811015611ab4576000828281518110611a2e57611a2e613082565b602002602001015161ffff16905080600014611aab57600254604051635c46a7ef60e11b81526001600160a01b039091169063b88d4fde90611a78903090889086906004016130c7565b600060405180830381600087803b158015611a9257600080fd5b505af1158015611aa6573d6000803e3d6000fd5b505050505b50600101611a11565b50611abe82611be1565b6001600160a01b038316600081815260086020526040908190206001019290925590517ff0b7bd0c6bac1e6b288e801469a8fe79118fc27bf620dbfce792534bc2878e2090610b20908490612e46565b611b166123fc565b6108da60006128ad565b6001600160a01b038116600090815260086020908152604091829020600201805483518184028101840190945280845260609392830182828015611bab57602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411611b725790505b50505050509050919050565b611bbf6123fc565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600860209081526040808320600201805482518185028101850190935280835284938493849390929091830182828015611c7157602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411611c385790505b5050505050905060005b8151811015611cba57611ca6828281518110611c9957611c99613082565b60200260200101516126d5565b611cb09085613586565b9350600101611c7b565b506001600160a01b0385166000908152600960205260409020600101548015611dc15760005b6001600160a01b038716600090815260096020526040902054811015611d7c576001600160a01b03871660009081526009602052604090208054611d6891859184908110611d3057611d30613082565b90600052602060002090601091828204019190066002029054906101000a900461ffff1661ffff1681518110611c9957611c99613082565b611d729085613586565b9350600101611ce0565b50600654600554611d8d9085613599565b611d9791906135b0565b925082841015611dad5750600095945050505050565b611db783856135d2565b9695505050505050565b5091949350505050565b611dd36123fc565b6000918252600b602052604090912055565b611ded6123fc565b60005b81518110156108ce57818181518110611e0b57611e0b613082565b6020908102919091018101516000838152600a909252604090912055600101611df0565b611e37612456565b3360009081526008602052604090206002015481511115611ea45760405162461bcd60e51b815260206004820152602160248201527f72657175657374696e67206d6f726520746f6b656e73207468616e206f776e656044820152601960fa1b606482015260840161092e565b6000815111611eee5760405162461bcd60e51b815260206004820152601660248201527572657175657374696e67207a65726f20746f6b656e7360501b604482015260640161092e565b3360009081526009602052604090206001015415611f2157604051632fac778f60e21b815233600482015260240161092e565b33600090815260086020908152604080832060020180548251818502810185019093528083529192909190830182828015611fa357602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411611f6a5790505b5050505050905060005b82518110156120485781838281518110611fc957611fc9613082565b602002602001015161ffff1681518110611fe557611fe5613082565b602002602001015161ffff166000036120405760405162461bcd60e51b815260206004820152601e60248201527f72657175657374696e67207a65726f20746f6b656e2077697468647261770000604482015260640161092e565b600101611fad565b50336000908152600960209081526040909120835161206992850190612a97565b506004546120779042613586565b33600081815260096020526040902060010191909155612096906125b0565b336001600160a01b03167f83edb46098d7facbf9ea0441339f25f8bba07cf211f4047cd2d8bef7747452e983604051610b209190612e46565b6120d76123fc565b600755565b6120e46123fc565b60005b8281101561213657600084848381811061210357612103613082565b90506020020160208101906121189190612d19565b61ffff166000908152600c60205260409020839055506001016120e7565b50505050565b6121446123fc565b600d55565b6040805180820182526060808252600060208084018290526001600160a01b03861682526009815290849020845181549283028101840186529485018281529394939092849284918401828280156121e857602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116121af5790505b505050505081526020016001820154815250509050919050565b6060600060405180608001604052806044815260200161368b6044913990508060405160200161223291906135e5565b60405160208183030381529060405291505090565b61224f6123fc565b6000918252600c602052604090912055565b6122696123fc565b60005b81518110156108ce5781818151811061228757612287613082565b6020908102919091018101516000838152600b90925260409091205560010161226c565b6122b36123fc565b6001600160a01b0381166123185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161092e565b612321816128ad565b50565b61234860405180606001604052806000815260200160008152602001606081525090565b6001600160a01b038216600090815260086020908152604091829020825160608101845281548152600182015481840152600282018054855181860281018601875281815292959394938601938301828280156123ec57602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116123b35790505b5050505050815250509050919050565b6000546001600160a01b031633146108da5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161092e565b61245e6128fd565b600e5460ff161561246e57600080fd5b3360009081526008602052604090205442146125a757600061248f33612779565b336000908152600860205260409020429055905080156125a5576124b333826125b9565b1561250d57336000818152600860205260409081902090517fa713cedec5f3f717911608ee42ed2c7a49db9b06305a7f817990cce586575acd91612500916002909101908590429061362a565b60405180910390a26125a5565b336000818152600860205260409081902090517fbc42de6c6966c6186e5cc495ff9dbd3510cfb473c3bb08480c93d6dd493d790091612555916002909101908590429061362a565b60405180910390a260405162461bcd60e51b815260206004820152601760248201527f6661696c656420746f20636c61696d2072657761726473000000000000000000604482015260640161092e565b505b6108da60018055565b610b3481611be1565b6003546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612606573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262a919061364f565b90508083116126b55760035460405163a9059cbb60e01b81526001600160a01b038681166004830152602482018690529091169063a9059cbb906044016020604051808303816000875af1158015612686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126aa9190613668565b506001915050611340565b5060009392505050565b6000826126cc8584612956565b14949350505050565b60008161ffff166000036126eb57506000919050565b604051631460147160e21b815261ffff83166004820152600090309063518051c490602401602060405180830381865afa15801561272d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612751919061364f565b6000818152600b6020526040902054909150612772906301e13380906135b0565b9392505050565b6001600160a01b03811660009081526008602052604081206001015481036127a357506000919050565b6001600160a01b0382166000908152600860205260409020544210156127cb57506000919050565b6006546007541461284c576006546001600160a01b038316600090815260086020526040902054600d54421061280357600d54612805565b425b61280f91906135d2565b6007546001600160a01b0385166000908152600860205260409020600101546128389190613599565b6128429190613599565b61134091906135b0565b6001600160a01b038216600090815260086020526040902054600d54421061287657600d54612878565b425b61288291906135d2565b6001600160a01b0383166000908152600860205260409020600101546113409190613599565b919050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60026001540361294f5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161092e565b6002600155565b600081815b8451811015612991576129878286838151811061297a5761297a613082565b6020026020010151612999565b915060010161295b565b509392505050565b60008183106129b5576000828152602084905260409020612772565b5060009182526020526040902090565b50805460008255600f0160109004906000526020600020908101906123219190612b00565b82805482825590600052602060002090600f01601090048101928215612a875791602002820160005b83821115612a5757833561ffff1683826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302612a13565b8015612a855782816101000a81549061ffff0219169055600201602081600101049283019260010302612a57565b505b50612a93929150612b00565b5090565b82805482825590600052602060002090600f01601090048101928215612a875791602002820160005b83821115612a5757835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302612ac0565b5b80821115612a935760008155600101612b01565b6001600160a01b038116811461232157600080fd5b600060208284031215612b3c57600080fd5b813561277281612b15565b600080600080600060808688031215612b5f57600080fd5b8535612b6a81612b15565b94506020860135612b7a81612b15565b935060408601359250606086013567ffffffffffffffff80821115612b9e57600080fd5b818801915088601f830112612bb257600080fd5b813581811115612bc157600080fd5b896020828501011115612bd357600080fd5b9699959850939650602001949392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612c2557612c25612be6565b604052919050565b600067ffffffffffffffff821115612c4757612c47612be6565b5060051b60200190565b803561ffff811681146128a857600080fd5b60006020808385031215612c7657600080fd5b823567ffffffffffffffff811115612c8d57600080fd5b8301601f81018513612c9e57600080fd5b8035612cb1612cac82612c2d565b612bfc565b81815260059190911b82018301908381019087831115612cd057600080fd5b928401925b82841015612cf557612ce684612c51565b82529284019290840190612cd5565b979650505050505050565b600060208284031215612d1257600080fd5b5035919050565b600060208284031215612d2b57600080fd5b61277282612c51565b60008060408385031215612d4757600080fd5b8235612d5281612b15565b946020939093013593505050565b60008083601f840112612d7257600080fd5b50813567ffffffffffffffff811115612d8a57600080fd5b6020830191508360208260051b8501011115612da557600080fd5b9250929050565b60008060008060008060608789031215612dc557600080fd5b863567ffffffffffffffff80821115612ddd57600080fd5b612de98a838b01612d60565b90985096506020890135915080821115612e0257600080fd5b612e0e8a838b01612d60565b90965094506040890135915080821115612e2757600080fd5b50612e3489828a01612d60565b979a9699509497509295939492505050565b6020808252825182820181905260009190848201906040850190845b81811015612e8257835161ffff1683529284019291840191600101612e62565b50909695505050505050565b60008060408385031215612ea157600080fd5b50508035926020909101359150565b60006020808385031215612ec357600080fd5b823567ffffffffffffffff811115612eda57600080fd5b8301601f81018513612eeb57600080fd5b8035612ef9612cac82612c2d565b81815260059190911b82018301908381019087831115612f1857600080fd5b928401925b82841015612cf557833582529284019290840190612f1d565b600080600060408486031215612f4b57600080fd5b833567ffffffffffffffff811115612f6257600080fd5b612f6e86828701612d60565b909790965060209590950135949350505050565b60008151808452602080850194506020840160005b83811015612fb757815161ffff1687529582019590820190600101612f97565b509495945050505050565b602081526000825160406020840152612fde6060840182612f82565b9050602084015160408401528091505092915050565b60005b8381101561300f578181015183820152602001612ff7565b50506000910152565b6020815260008251806020840152613037816040850160208701612ff4565b601f01601f19169190910160400192915050565b6020815281516020820152602082015160408201526000604083015160608084015261307a6080840182612f82565b949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016130c0576130c0613098565b5060010190565b6001600160a01b039384168152919092166020820152604081019190915260806060820181905260009082015260a00190565b805480835260008281526020808220940193909190825b82600f8201101561326257815461ffff8082168852602061313c818a01838560101c1661ffff169052565b6040613151818b018486851c1661ffff169052565b60609150613169828b01848660301c1661ffff169052565b608061317e818c018587851c1661ffff169052565b60a09150613196828c01858760501c1661ffff169052565b60c06131ab818d018688871c1661ffff169052565b60e093506131c3848d01868860701c1661ffff169052565b61ffff86831c8616166101008d01526131e86101208d01868860901c1661ffff169052565b61ffff86841c8616166101408d015261320d6101608d01868860b01c1661ffff169052565b61ffff86821c8616166101808d01525050506132356101a08a01838560d01c1661ffff169052565b82901c1661ffff166101c088015260f01c6101e08701526102009095019460019190910190601001613111565b9054908281101561327e5761ffff821686526020909501946001015b8281101561329b5761ffff601083901c1686526020909501946001015b828110156132b957602082901c61ffff168652602095909501946001015b828110156132d65761ffff603083901c1686526020909501946001015b828110156132f35761ffff604083901c1686526020909501946001015b828110156133105761ffff605083901c1686526020909501946001015b8281101561332d5761ffff606083901c1686526020909501946001015b8281101561334a5761ffff607083901c1686526020909501946001015b828110156133675761ffff608083901c1686526020909501946001015b828110156133845761ffff609083901c1686526020909501946001015b828110156133a15761ffff60a083901c1686526020909501946001015b828110156133be5761ffff60b083901c1686526020909501946001015b828110156133db5761ffff60c083901c1686526020909501946001015b828110156133f85761ffff60d083901c1686526020909501946001015b828110156134155761ffff60e083901c1686526020909501946001015b8281101561342b5760f082901c86526020860195505b5093949350505050565b60208152600061277260208301846130fa565b60208082526019908201527f617267756d656e7473206c656e677468206d69736d6174636800000000000000604082015260600190565b60006020828403121561349157600080fd5b815161277281612b15565b6000602082840312156134ae57600080fd5b813560ff8116811461277257600080fd5b6000808335601e198436030181126134d657600080fd5b83018035915067ffffffffffffffff8211156134f157600080fd5b6020019150600581901b3603821315612da557600080fd5b6001600160a01b03938416815291909216602082015261ffff909116604082015260806060820181905260009082015260a00190565b60208082528181018390526000908460408401835b8681101561357b5761ffff61356884612c51565b1682529183019190830190600101613554565b509695505050505050565b8082018082111561134057611340613098565b808202811582820484141761134057611340613098565b6000826135cd57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561134057611340613098565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c000000000081526000825161361d81601b850160208701612ff4565b91909101601b0192915050565b60608152600061363d60608301866130fa565b60208301949094525060400152919050565b60006020828403121561366157600080fd5b5051919050565b60006020828403121561367a57600080fd5b8151801515811461277257600080fdfe7b226e616d65223a2022436861726765642053616b757261205061726b222c226465736372697074696f6e223a2253616e6b6f206f6666696369616c20c2a9efb88f227da2646970667358221220269176253cc6a4df9f33361ef14306020d2014d830949b5a69b93d957e7c048064736f6c63430008170033000000000000000000000000000000000000000000000000000000000000000000000000000000000000000099484914a078a816f9fa7fbf4a0c7cfcbe39843b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000005c9099a92bdb0000000000000000000000000000000000000000000000000000739a1adda30100000000000000000000000000000000000000000000000000008ac7230489e800000000000000000000000000000000000000000000000000000000000000000004115eff2a4a2e70c88b8c75c9fa36c89d0109f9403126951f26801cd95f364d6b7139a1cf05e886b3b0ca5d906d38cfcd0ba589dcd6290dfae93528138adef0b6a767d4f718c1a9efec1a6398712b33d18b2329b731db000cc5f5a6692cbc749e5114074f8e3324729ebceca08416e9e7acbb495dc23077bdf0fecd5ffd5851a5