false
false

Contract Address Details

0xa0Fac3232234478E6A0d4d5564ed239c956A21f0

Creator
0xd118b6–70bc49 at 0xbf23cc–f53593
Balance
0.004667643 Berg
Tokens
Fetching tokens...
Transactions
2,868 Transactions
Transfers
0 Transfers
Gas Used
334,090,938
Last Balance Update
30154615

Contract Creation Code

Verify & Publish
0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556158a280620000336000396000f3fe6080604052600436106102515760003560e01c8063893d20e811610139578063d638fdba116100b6578063ed29bffd1161007a578063ed29bffd14610714578063edbf969214610729578063edc922a914610749578063f2fde38b1461076b578063f7ae02021461078b578063f8a1ee5f146107ab57610251565b8063d638fdba14610674578063dd7bf0c014610687578063de53b2e5146106b4578063e28a2a94146106d4578063e6ae74c2146106f457610251565b8063c46087ab116100fd578063c46087ab146105e5578063c6df398614610605578063c853258914610348578063d246ecbc14610634578063d4b2464e1461065457610251565b8063893d20e81461054e5780638da5cb5b14610570578063a52d9d0114610585578063a716baf7146105a5578063b9dd0ddd146105c557610251565b80634f48c37f116101d257806367f7079c1161019657806367f7079c146104975780636f9fb98a146104ac57806370a08231146104c157806378bea80b146104e15780637e7366a614610501578063805b38241461052e57610251565b80634f48c37f146103e657806350f53252146104065780635367428814610426578063582e8c7a14610457578063628b1a3c1461047757610251565b80632843b78a116102195780632843b78a146103285780632855d0d5146103485780633519877e146103755780633ccfd60b146103a35780633cffa233146103b857610251565b806302f8542e146102565780630bbb8c93146102785780630f7eb764146102ae5780631b2eb61e146102ce57806327e235e3146102fb575b600080fd5b34801561026257600080fd5b50610276610271366004614d96565b6107cb565b005b34801561028457600080fd5b50610298610293366004614c37565b6109e2565b6040516102a59190615432565b60405180910390f35b3480156102ba57600080fd5b506102986102c9366004614be5565b610a52565b3480156102da57600080fd5b506102ee6102e9366004614932565b610af3565b6040516102a591906156ba565b34801561030757600080fd5b5061031b610316366004614897565b610c36565b6040516102a5919061543d565b34801561033457600080fd5b5061031b610343366004614897565b610c48565b34801561035457600080fd5b50610368610363366004614897565b610c63565b6040516102a591906153f4565b34801561038157600080fd5b506103956103903660046148f3565b610cfb565b6040516102a5929190615749565b3480156103af57600080fd5b50610298610e2d565b3480156103c457600080fd5b506103d86103d3366004614bad565b610ee5565b6040516102a592919061579a565b3480156103f257600080fd5b5061029861040136600461505d565b611068565b34801561041257600080fd5b50610276610421366004614fd1565b611184565b34801561043257600080fd5b50610446610441366004614a88565b6112b6565b6040516102a59594939291906156da565b34801561046357600080fd5b50610298610472366004614c37565b6113d1565b34801561048357600080fd5b50610298610492366004614897565b61142a565b3480156104a357600080fd5b5061029861144d565b3480156104b857600080fd5b5061031b6114b7565b3480156104cd57600080fd5b5061031b6104dc366004614897565b6114bb565b3480156104ed57600080fd5b506102766104fc366004614d96565b6114d6565b34801561050d57600080fd5b5061052161051c366004614897565b6115f9565b6040516102a59190615789565b34801561053a57600080fd5b50610298610549366004614aef565b61161a565b34801561055a57600080fd5b50610563611890565b6040516102a59190615344565b34801561057c57600080fd5b5061056361189f565b34801561059157600080fd5b506102986105a03660046149c0565b6118ae565b3480156105b157600080fd5b506102986105c03660046148b3565b61196b565b3480156105d157600080fd5b506102986105e0366004614907565b611a83565b3480156105f157600080fd5b50610298610600366004614897565b611ae2565b34801561061157600080fd5b50610625610620366004614bad565b611b0f565b6040516102a5939291906157b4565b34801561064057600080fd5b5061036861064f366004614907565b611bc3565b34801561066057600080fd5b5061029861066f366004614cc4565b611c67565b610276610682366004614dcc565b611e0d565b34801561069357600080fd5b506106a76106a2366004614a32565b612371565b6040516102a5919061573b565b3480156106c057600080fd5b506102766106cf366004614c1f565b612461565b3480156106e057600080fd5b5061031b6106ef366004614973565b6124ac565b34801561070057600080fd5b5061029861070f36600461510c565b612519565b34801561072057600080fd5b50610298612711565b34801561073557600080fd5b50610298610744366004614897565b612755565b34801561075557600080fd5b5061075e612778565b6040516102a591906153a7565b34801561077757600080fd5b50610276610786366004614897565b6127da565b34801561079757600080fd5b506102766107a6366004614e97565b612872565b3480156107b757600080fd5b506102986107c6366004614907565b612ff9565b3360009081526003602052604090205463ffffffff166107ea57600080fd5b33600090815260036020818152604080842087855290920190529020805461081157600080fd5b63ffffffff8316610823578260010192505b60008160000180548060200260200160405190810160405280929190818152602001828054801561089f57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116108625790505b505050505090506000816001835103815181106108b857fe5b60200260200101519050438163ffffffff1611156109165763ffffffff81811660009081526001850160205260409020805463ffffffff19168783161763ffffffff60201b1916600160201b928716929092029190911790556109da565b63ffffffff8082166000818152600186016020526040902054600160201b900490911690810143811161096857818363ffffffff1643038161095457fe5b0460010190508181028363ffffffff160190505b60008181526001868101602090815260408320805463ffffffff191663ffffffff8c81169190911763ffffffff60201b1916600160201b8c831602179091558854928301895588845292206008820401805460046007909316929092026101000a808402199092169290931602179055505b505050505050565b3360009081526003602052604081205463ffffffff16610a0157600080fd5b84336001600160a01b03167fcdaff867abac2aaa830f0e81523d81ac4f5a32dbb867445a8be99d0e039e9d61868686604051610a3f93929190615446565b60405180910390a3506001949350505050565b33600090815260036020526040812054600160201b900460ff16610a7557600080fd5b336000908152600360205260408120905b8351811015610ae7576000848281518110610a9d57fe5b60200260200101519050610ab183826130f4565b15610ade5760008181526002840160205260409020805469ff0000000000000000001916600160481b1790555b50600101610a86565b5060019150505b919050565b610afb6144a6565b6001600160a01b03841660009081526003602081815260408084208785529092019052902063ffffffff8316610bf357600081600001805480602002602001604051908101604052809291908181526020018280548015610ba757602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610b6a5790505b5050505050905080600182510381518110610bbe57fe5b60200260200101519350438463ffffffff161115610bf15780600282510381518110610be657fe5b602002602001015193505b505b63ffffffff8084166000908152600190920160209081526040928390208351808501909452548083168452600160201b90049091169082015290505b9392505050565b60066020526000908152604090205481565b6001600160a01b031660009081526005602052604090205490565b6001600160a01b038116600090815260046020908152604091829020805483518184028101840190945280845260609392830182828015610cef57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610cb25790505b50505050509050919050565b6000610d056144bd565b6001600160a01b03851660009081526003602052604090208054600160201b900460ff16610d3257600080fd5b6001600160a01b038516610da55760008481526002909101602090815260408083208151608081018352905463ffffffff8082168352600160201b8204169382019390935260ff600160401b84048116151592820192909252600160481b90920416151560608201529092509050610e25565b6001600160a01b0385166000908152600482016020908152604080832087845282528083205460029094018252918290208251608081018452905463ffffffff8082168352600160201b8204169282019290925260ff600160401b83048116151593820193909352600160481b9091049091161515606082015290925090505b935093915050565b336000908152600660205260408120548190610e4d90633b9aca0061315b565b3360008181526006602052604080822082905551929350918390610e7090615341565b60006040518083038185875af1925050503d8060008114610ead576040519150601f19603f3d011682016040523d82523d6000602084013e610eb2565b606091505b5050905080610edc5760405162461bcd60e51b8152600401610ed390615621565b60405180910390fd5b60019250505090565b6000610eef6144e4565b6001600160a01b038416600090815260046020908152604080832080548251818502810185019093528083529192909190830182828015610f7b57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610f3e5790505b505050505090508363ffffffff1660001415610fd45780600182510381518110610fa157fe5b60200260200101519350438463ffffffff161115610fd45780600282510381518110610fc957fe5b602002602001015193505b5050506001600160a01b0391909116600090815260036020908152604080832063ffffffff85811685526001909101835292819020815160c08101835290548085168252600160201b8104851693820193909352600160401b8304841691810191909152600160601b820483166060820152600160801b820483166080820152600160a01b90910490911660a08201529091565b60008163ffffffff164281111561107e57600080fd5b3360009081526003602052604080822090516005909101906110a1908990615325565b90815260200160405180910390208663ffffffff16815481106110c057fe5b6000918252602080832063ffffffff8916845260056006909302019190910190526040902090506001815460ff1660078111156110f957fe5b11156111175760405162461bcd60e51b8152600401610ed390615670565b8054600264ffffffff001990911661010063ffffffff8716021760ff19168117825560405133917f1ed0dfeede93aca193505d2c4448bfa80fc53727e2e524f2596ae333d7f4977c9161116f918b918b918b916155e6565b60405180910390a25060019695505050505050565b33600090815260036020526040902054600160201b900460ff166111a757600080fd5b3360009081526003602090815260409182902091516111ca918591859101615299565b6040516020818303038152906040528051906020012081600501866040516111f29190615325565b90815260200160405180910390208563ffffffff168154811061121157fe5b9060005260206000209060060201600301541461122d57600080fd5b60005b83518110156109da57600082600201600086848151811061124d57fe5b6020026020010151815260200190815260200160002090508060000160099054906101000a900460ff16801561129c5750600060ff1684838151811061128f57fe5b602002602001015160ff16145b156112ad57805460ff60401b191681555b50600101611230565b6112be6144a6565b6000806000806000600360008b6001600160a01b03166001600160a01b03168152602001908152602001600020600501896040516112fc9190615325565b90815260200160405180910390208863ffffffff168154811061131b57fe5b600091825260208083208a84526005600690930201918201905260409182902060018201546002830154835485518087019096528354949650929491936001600160a01b039091169263ffffffff600160201b8204811693600160401b90920416918690829060ff16600781111561138f57fe5b600781111561139a57fe5b8152905463ffffffff6101009091048116602090920191909152909b50939950919750821695501692505050945094509450945094565b33600081815260026020526040808220805463ffffffff19164363ffffffff1617905551909186917fc98f6c9d476630f8e465540b0a790aa56ef97c26f7d59649b8e56da66e17630290610a3f90889088908890615446565b6001600160a01b031660009081526003602052604090205463ffffffff16151590565b3360009081526003602052604081205463ffffffff1661146c57600080fd5b33600090815260036020526040902054600160201b900460ff161561149057600080fd5b50336000908152600360205260409020805464ff000000001916600160201b179055600190565b4790565b6001600160a01b031660009081526006602052604090205490565b3360009081526003602052604090205463ffffffff166114f557600080fd5b336000908152600360208181526040808420878552909201905290208054158015611528575061025863ffffffff831610155b61153157600080fd5b63ffffffff8316611543578260010192505b436000818152600183810160209081526040808420805463ffffffff191663ffffffff8a81169190911763ffffffff60201b1916600160201b8a8316021790915586549384018755868552919093206008830401805460046007909416939093026101000a808302199093169190941691909102179091555133907f63b34caa4654531c1ea1645263f2d28e8233fe72f5a0925d41f702edf5d92b8c906115eb90879061543d565b60405180910390a250505050565b6001600160a01b031660009081526002602052604090205463ffffffff1690565b6001600160a01b038616600090815260036020526040808220905182906005830190611647908a90615325565b90815260200160405180910390208763ffffffff168154811061166657fe5b906000526020600020906006020190508484604051602001611689929190615310565b604051602081830303815290604052805190602001208160040154146116ae57600080fd5b63ffffffff86166000908152600582016020526040902060028201546001600160a01b03163314806116e85750336001600160a01b038b16145b801561170457506005815460ff16600781111561170157fe5b14155b801561172057506003815460ff16600781111561171d57fe5b14155b801561173c57506004815460ff16600781111561173957fe5b14155b61174557600080fd5b8254600090600160201b900460ff16158061177057506001825460ff16600781111561176d57fe5b11155b806117d057506002825460ff16600781111561178857fe5b1480156117d05750858863ffffffff16815181106117a257fe5b6020026020010151603c02610e10018260000160019054906101000a900463ffffffff1663ffffffff164203115b156118125750805460ff1916600317815560018201805460009182905560028401546001600160a01b0316825260066020526040909120805482019055611836565b6002825460ff16600781111561182457fe5b141561025157815460ff191660041782555b8a6001600160a01b03167f84ee10d060221dce9423d13e552ceee10a21bf41bd5bedcc60dc203039cc61d28b8b8b856040516118759493929190615540565b60405180910390a260019450505050505b9695505050505050565b6000546001600160a01b031690565b6000546001600160a01b031681565b6001600160a01b03831660009081526003602052604080822090516005909101906118da908590615325565b90815260200160405180910390206000815481106118f457fe5b60009182526020909120600690910201600201546001600160a01b0316331461191c57600080fd5b836001600160a01b03167f3bd0feb5eb1eb62e58a57ceb991a8b7050e6780c0d2af4d424958c752827c13c33858560405161195993929190615371565b60405180910390a25060019392505050565b6001600160a01b03808416600090815260036020908152604080832093861683526004840182528083208584529091528120805482825591929180158015906119cc57506000858152600284016020526040902054600160481b900460ff16155b6119d557600080fd5b6000858152600284016020526040902080544390611a069063ffffffff80821691600160201b90048116906131ca16565b63ffffffff1610611a1657600080fd5b611a1f816131e5565b6001600160a01b03871660008181526006602052604090819020805485019055517facafa53d73da949760af59b77d3adf645986bfeca66849b98b0e8a4d1e21150a90611a6d90859061543d565b60405180910390a2506001979650505050505050565b600080546001600160a01b03163314611a9b57600080fd5b6001600160a01b038316600090815260056020526040902054839015611ac057600080fd5b50506001600160a01b0391909116600090815260056020526040902055600190565b6001600160a01b038116600090815260056020526040812054611b0757506000610aee565b506001919050565b6001600160a01b03821660009081526003602052604080822090516338e073f560e21b81528291829173a40d5a50315689e2f0b0862be8d2100b827af6049163e381cfd491611b6691600601908890600401615727565b60606040518083038186803b158015611b7e57600080fd5b505af4158015611b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb691906150cf565b9250925092509250925092565b6001600160a01b03821660009081526003602081815260408084208585529092018152918190208054825181850281018501909352808352606093830182828015611c5957602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411611c1c5790505b505050505090505b92915050565b3360009081526003602052604081205463ffffffff1615611c8757600080fd5b33600090815260036020526040902063ffffffff851615801590611cc55750600084600081518110611cb557fe5b602002602001015163ffffffff16115b8015611ceb5750600084600281518110611cdb57fe5b602002602001015163ffffffff16115b8015611d0057508054600160201b900460ff16155b8015611d14575061025863ffffffff841610155b611d1d57600080fd5b611d2a81438787876131f8565b503360009081526004602081815260408320805460018101825590845292206008830401805463ffffffff43811660079095169093026101000a9384029290930219909216179055611d7b81613369565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b031916339081179091556040518a91907fcdaff867abac2aaa830f0e81523d81ac4f5a32dbb867445a8be99d0e039e9d6190611df6908c908c908c90615446565b60405180910390a350600198975050505050505050565b82516001600160a01b031660009081526003602052604090208054600160201b900460ff168015611e3f575060008251115b8015611e5057508360800151518351145b8015611e5d575081518351145b8015611e6a575084518351145b8015611e7b57508360400151518351145b8015611e8c57508360600151518351145b8015611eb4575060048460400151600081518110611ea657fe5b602002602001015160ff1611155b8015611ec957508360c00151518460a0015151145b8015611ed95750611ed933612755565b8015611ee757506040865111155b8015611efa575033600052600560205260015b8015611f17575083516001600160a01b0316600052600560205260015b611f2057600080fd5b60408401515115611faf5760015b846040015151811015611fad5784604001518181518110611f4b57fe5b602002602001015160ff168560400151600081518110611f6757fe5b602002602001015160ff161480611f9c5750600260ff1685604001518281518110611f8e57fe5b602002602001015160ff1611155b611fa557600080fd5b600101611f2e565b505b83516001600160a01b031660009081526004602090815260408083208054825181850281018501909352808352919290919083018282801561203c57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411611fff5790505b5050505050905060008160018351038151811061205557fe5b602002602001015163ffffffff1690504381111561208e578160028351038151811061207d57fe5b602002602001015163ffffffff1690505b80866020015163ffffffff16146120a457600080fd5b60008181526001840160209081526040808320815160c081018352905463ffffffff8082168352600160201b8204811694830194909452600160401b8104841692820192909252600160601b820483166060820152600160801b820483166080820152600160a01b90910490911660a08201529080612127868a898d8c8861339e565b8d60008151811061213457fe5b602002602001018c60008151811061214857fe5b63ffffffff938416602091820292909201015292811690925291935090915060009061217c903490633b9aca009061386216565b905061219b612194858c60a001518d60c001516138bf565b84906139c1565b9250828110156121aa57600080fd5b6000876005018d6040516121be9190615325565b90815260405160209181900382019020805460018101825560009182529181208c5160069093020192508b916121f057fe5b6020908102919091010151815463ffffffff191663ffffffff9091161781558b518c9060009061221c57fe5b6020908102919091010151815460e08d015163ffffffff60201b19909116600160201b63ffffffff938416021763ffffffff60401b1916600160401b918316919091021763ffffffff60601b1916600160601b888316021782556122849085908590613a0f16565b60018201556002810180546001600160a01b0319163317905560608b01516040516122b3918b91602001615299565b60408051601f19818403018152908290528051602091820120600384015560a08d015160c08e01516122e99391929091016152fb565b6040516020818303038152906040528051906020012081600401819055506001886005018e60405161231b9190615325565b908152604051908190036020019020540395506000828514612353575033600090815260066020526040902080548584039081019091555b6123618e888c8f8588613a63565b5050505050505050505050505050565b6123796144e4565b6001600160a01b03841660009081526003602052604080822090516005909101906123a5908690615325565b908152602001604051809103902083815481106123be57fe5b600091825260208083206001600160a01b038916845260038252604080852060069094029091015463ffffffff600160601b91829004811686526001909401835293819020815160c08101835290548085168252600160201b8104851693820193909352600160401b830484169181019190915292810482166060840152600160801b810482166080840152600160a01b90041660a08201529150509392505050565b3360009081526003602052604090205463ffffffff1661248057600080fd5b33600090815260036020818152604080842085855290920190528120906124a78282614519565b505050565b3360009081526003602052604081205463ffffffff166124cb57600080fd5b60036000846001600160a01b03166001600160a01b03168152602001908152602001600020600501826040516125019190615325565b90815260405190819003602001902054905092915050565b3360009081526003602052604081205463ffffffff1661253857600080fd5b60008463ffffffff16118015612568575060008260008151811061255857fe5b602002602001015163ffffffff16115b801561257c575061025863ffffffff841610155b61258557600080fd5b33600090815260036020908152604080832060048352818420805483518186028101860190945280845291949390919083018282801561261057602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116125d35790505b5050505050905060008160018351038151811061262957fe5b60200260200101519050438163ffffffff16111561265a57612654838263ffffffff1689888a6131f8565b50612704565b63ffffffff8082166000818152600186016020526040902054600160201b90049091169081014381116126ac57818363ffffffff1643038161269857fe5b0460010190508181028363ffffffff160190505b6126b985828b8a8c6131f8565b503360009081526004602081815260408320805460018101825590845292206008830401805463ffffffff94851660079094169092026101000a928302939092021916919091179055505b5060019695505050505050565b33600090815260036020526040812054600160201b900460ff1661273457600080fd5b50336000908152600360205260409020805464ff0000000019169055600190565b6001600160a01b031660009081526002602052604090205463ffffffff16151590565b606060018054806020026020016040519081016040528092919081815260200182805480156127d057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116127b2575b5050505050905090565b6000546001600160a01b031633146127f157600080fd5b6001600160a01b0381166128175760405162461bcd60e51b8152600401610ed39061564a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260036020526040902054600160201b900460ff1661289557600080fd5b42826040015163ffffffff1611156128bf5760405162461bcd60e51b8152600401610ed390615697565b33600090815260036020526040808220905190919060058301906128e4908790615325565b9081526020016040518091039020846000015163ffffffff168154811061290757fe5b906000526020600020906006020190508360c001518460e00151604051602001612932929190615310565b6040516020818303038152906040528051906020012081600401541461295757600080fd5b60208085015163ffffffff16600090815260058084019092526040902090815460ff16600781111561298557fe5b141580156129a357506003815460ff1660078111156129a057fe5b14155b80156129da57508460e00151856020015163ffffffff16815181106129c457fe5b60200260200101518560a0015163ffffffff1611155b80156129fc57508154606086015163ffffffff600160201b9092048216911611155b8015612a1e57508154608086015163ffffffff600160401b9092048216911611155b8015612a4e575060008560a0015163ffffffff16118015612a4e57506002815460ff166007811115612a4c57fe5b145b612a5757600080fd5b815463ffffffff600160601b91829004811660009081526001860160209081526040808320815160c0808201845291548087168252600160201b8104871682860152600160401b810487169382019390935295820485166060870152600160801b820485166080870152600160a01b909104841660a086015289015190890151815192938493849392909116908110612aec57fe5b6020026020010151905060008960e001518a6020015163ffffffff1681518110612b1257fe5b6020026020010151905060008a6060015163ffffffff161115612c7557865463ffffffff1615612bd557612b5d8a606001518660a0015163ffffffff16613acf90919063ffffffff16565b60608b0151885463ffffffff9283169650612ba192612b8892600160201b90920481169190613b0e16565b8660a0015163ffffffff16613acf90919063ffffffff16565b875463ffffffff9182169450811690612bbe90869086906139c116565b1115612bc957600080fd5b865463ffffffff191687555b8654600160201b900463ffffffff1615801590612c085750865460608b015163ffffffff908116600160201b9092041614155b15612c755760608a01518754612c6491612c4f91612c369163ffffffff600160201b909204821691613b0e16565b876060015163ffffffff16613acf90919063ffffffff16565b63ffffffff16846139c190919063ffffffff16565b875463ffffffff60201b1916885592505b8654600160401b900463ffffffff1615801590612c9957506101008a015115156001145b8015612cbb5750865460808b015163ffffffff908116600160401b9092041614155b15612d9a5760808a01518754612ce991612c4f91612c369163ffffffff600160401b909204821691613b0e16565b875490935063ffffffff1615612d2857865460a0860151612d1a91612c4f9163ffffffff90811691811690613acf16565b875463ffffffff1916885592505b8654600160201b900463ffffffff1615801590612d4d575060608a015163ffffffff16155b15612d8b5786546060860151612d7a91612c4f9163ffffffff90811691600160201b9004811690613acf16565b875463ffffffff60201b1916885592505b865463ffffffff60401b191687555b612e29612e22612ddd612dc48d608001518e6060015163ffffffff166131ca90919063ffffffff16565b886060015163ffffffff16613acf90919063ffffffff16565b63ffffffff16612e1c612e038e60a0015163ffffffff168761315b90919063ffffffff16565b896040015163ffffffff1661315b90919063ffffffff16565b906139c1565b85906139c1565b9350612e71612194612e58612e518d60a0015163ffffffff1685613a0f90919063ffffffff16565b859061315b565b876040015163ffffffff1661315b90919063ffffffff16565b6001880154909350612e8385856139c1565b1115612e8e57600080fd5b612e966144bd565b865463ffffffff610100909104811682526040808d0151821660208401528751600390810b606085015285810b900b90830152612eda9060068b01908390613b2916565b612f3d57865460ff1916600317875560018801805460009182905560028a0180546001600160a01b0390811684526006602052604084208054840190559054919650612f2f928f928f928f9291169089613db5565b5050505050505050506124a7565b6004875460ff166007811115612f4f57fe5b1415612f6557865460ff19166003178755612f71565b865460ff191660051787555b612f89612f7e86866139c1565b60018a015490613a0f565b60018901558315612fb75760028801546001600160a01b031660009081526006602052604090208054850190555b3360009081526006602052604090208054860190556002880154612feb908d908d908d906001600160a01b03168989613db5565b505050505050505050505050565b33600090815260036020526040812054600160201b900460ff1661301c57600080fd5b3360009081526003602090815260408083206001600160a01b038716845260048101835281842086855283528184206002820190935292208054600160481b900460ff1680156130905750805443906130889063ffffffff80821691600160201b90048116906131ca16565b63ffffffff16105b61309957600080fd5b815460008084553381526006602052604090208054820190556130bb826131e5565b336001600160a01b03167facafa53d73da949760af59b77d3adf645986bfeca66849b98b0e8a4d1e21150a8260405161116f919061543d565b60008181526002830160205260408120805443906131259063ffffffff80821691600160201b90048116906131ca16565b63ffffffff16101561313b576000915050611c61565b805463ffffffff1916436000190163ffffffff1617905550600192915050565b60008261316a57506000611c61565b8282028284828161317757fe5b0414610c2f576040805162461bcd60e51b815260206004820152601760248201527f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000604482015290519081900360640190fd5b600082820163ffffffff8085169082161015610c2f57600080fd5b805469ffffffffffffffffffff19169055565b60006040518060c001604052808563ffffffff1681526020018363ffffffff1681526020018460008151811061322a57fe5b602002602001015163ffffffff1681526020018460018151811061324a57fe5b602002602001015163ffffffff1681526020018460028151811061326a57fe5b602002602001015163ffffffff1681526020018460038151811061328a57fe5b60209081029190910181015163ffffffff90811690925260008881526001808b0183526040918290208551815494870151938701516060880151608089015160a0909901518816600160a01b0263ffffffff60a01b19998916600160801b0263ffffffff60801b19928a16600160601b0263ffffffff60601b19948b16600160401b0263ffffffff60401b19998c16600160201b0263ffffffff60201b1997909c1663ffffffff19909b169a909a1795909516999099179690961696909617161793909316939093179390931692909217909155905095945050505050565b805463ffffffff431663ffffffff1964ff0000000019909216600160201b178216178255600690910180549091166001179055565b600080808080805b89518110156137f15760008a82815181106133bd57fe5b6020026020010151905060008d6002016000838152602001908152602001600020905060008e6004016000336001600160a01b03166001600160a01b03168152602001908152602001600020600084815260200190815260200160002090508060000154945060008511801561344c575081544363ffffffff808316600160201b909304811692909201909116105b156134c45760008082558e516001600160a01b03811682526006602052604090912080548701905561347d836131e5565b8e600001516001600160a01b03167facafa53d73da949760af59b77d3adf645986bfeca66849b98b0e8a4d1e21150a876040516134ba919061543d565b60405180910390a2505b8054151580613515575081544363ffffffff808316600160201b9093048116929092019091161080159061350157508154600160401b900460ff16155b801561351557508154600160481b900460ff165b6137e65760008f600301600085815260200190815260200160002090506135548f60800151868151811061354557fe5b60200260200101518289613e24565b975095508561379e5782544363ffffffff808316600160201b90930481169290920190911610156136ee5760008c868151811061358d57fe5b602002602001015163ffffffff1611156136a357825463ffffffff19164363ffffffff161783558b516135e690610258908e90889081106135ca57fe5b602002602001015163ffffffff16613acf90919063ffffffff16565b835463ffffffff91909116600160201b0263ffffffff60201b199091161783558b5161364990613630908e908890811061361c57fe5b60200260200101518f88815181106135ca57fe5b8c6080015163ffffffff16613acf90919063ffffffff16565b63ffffffff908116808455965061366490899088906139c116565b9750600160ff168f60600151868151811061367b57fe5b602002602001015160ff16141561369e57825460ff60401b1916600160401b1783555b6136e9565b6136e66136d68e87815181106136b557fe5b60200260200101518d60a0015163ffffffff16613acf90919063ffffffff16565b63ffffffff808a1691906131ca16565b96505b613724565b815415801561370a57508254600160401b900460ff1615156001145b15613724576137216136d68e87815181106136b557fe5b96505b6137508d868151811061373357fe5b60200260200101518a63ffffffff166131ca90919063ffffffff16565b98508e600001516001600160a01b03167f80dba27df5461a688671716d31fb3db878585175dd426accdcd2d7575355542d3386604051613791929190615358565b60405180910390a26137e4565b8e600001516001600160a01b03167f258852d33ffd0dba761363df607e9bd50bf6f684b1f6a1e0dd6ff1222f9642d5856040516137db919061543d565b60405180910390a25b505b5050506001016133a6565b5061382a613815612dc48c60e001518763ffffffff166131ca90919063ffffffff16565b63ffffffff16866139c190919063ffffffff16565b94506138498263ffffffff16612e1c85886139c190919063ffffffff16565b94505063ffffffff909116909650965096509692505050565b60008082116138ab576040805162461bcd60e51b815260206004820152601060248201526f6469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b60008284816138b657fe5b04949350505050565b60008060005b84518110156139b857600061392d6139148684815181106138e257fe5b602002602001015161ffff168885815181106138fa57fe5b602002602001015161ffff1661315b90919063ffffffff16565b886040015163ffffffff1661315b90919063ffffffff16565b905061395985838151811061393e57fe5b602002602001015161ffff16846139c190919063ffffffff16565b9250866000015163ffffffff1686838151811061397257fe5b602002602001015161ffff161115801561398c5750600081115b801561399a57506105a08311155b6139a357600080fd5b6139ad84826139c1565b9350506001016138c5565b50509392505050565b600082820183811015610c2f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b600082821115613a5d576040805162461bcd60e51b81526020600482015260146024820152737375627472616374696f6e206f766572666c6f7760601b604482015290519081900360640190fd5b50900390565b8251604080850151606086015160a087015160c0880151935133956001600160a01b0316947f70ef18f1e199e6d1dad787809fb510ee88159612964bdd4ba0aeb342a5c4442a94613abf948e948e9492938e938c908e9061547f565b60405180910390a3505050505050565b600063ffffffff8316613ae457506000611c61565b82820263ffffffff8084169080861690831681613afd57fe5b0463ffffffff1614610c2f57600080fd5b60008263ffffffff168263ffffffff161115613a5d57600080fd5b815463ffffffff600160201b909104811660008181526001850160209081526040822054908501519193849283928392839283928392600160401b9091048116911611613bae57869450849350613b828a86868c613f5b565b949c50929a5090975063ffffffff90911694509250905087613bae576000975050505050505050611c61565b895463ffffffff1660018911613c5157613bd38b898c602001518d604001518561423d565b60408a0151925060010188613c11578a5463ffffffff60201b1916600160201b600019830163ffffffff16908102919091178c558897509550613c51565b600095865260018b0160205260409095208054600019870163ffffffff908116600160201b81810263ffffffff60201b1985161790945592909104169650945b6001891115613c7b57600086815260018c016020526040902054600160201b900463ffffffff1696505b869450613c8c8b868884878f6142a1565b15613cd3578860021415613cc257600088815260018c0160205260409020805463ffffffff191663ffffffff600385900b161790555b600198505050505050505050611c61565b60018911613d6e5763ffffffff60001982018116600090815260018d016020526040902080546bffffffffffffffffffffffff191690558b54600160201b900416861415613d3c578a5463ffffffff60201b1916600160201b63ffffffff891602178b55613d69565b600086815260018c0160205260409020805463ffffffff60201b1916600160201b63ffffffff8a16021790555b613da4565b8860031415613da457600086815260018c0160205260409020805463ffffffff60201b1916600160201b63ffffffff8716021790555b600098505050505050505050611c61565b336001600160a01b03167f3247a6bce758540366529653a56f96ff1bfab0511d52c848598d4ececd7edbd687876000015188602001518960a001518888888c8e606001518f60800151604051613e149a99989796959493929190615573565b60405180910390a2505050505050565b60008063ffffffff851615613f4e57835415613f4e57600084600001805480602002602001604051908101604052809291908181526020018280548015613eb657602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411613e795790505b50505050509050600081600183510381518110613ecf57fe5b60200260200101519050438163ffffffff161115613f025781600283510381518110613ef757fe5b602002602001015190505b63ffffffff8082166000908152600180890160205260409091205490911690811115613f3f57613f3c63ffffffff8088169083906131ca16565b95505b60018694509450505050610e25565b5060009491935090915050565b600083815260018581016020526040822054909190819081908190819063ffffffff600160401b8204811691600160201b81049091169060030b835b8363ffffffff168b6020015163ffffffff161061416d578a60400151870196508a606001518760030b1315613fe057506000985088965086955085945084935061423092505050565b8363ffffffff168b6020015163ffffffff16141561415c578a604001518201905081870196508a606001518760030b138061402157508a606001518160030b135b1561404057506000985088965086955085945084935061423092505050565b8060030b600014614054576002995061415c565b600399508d60010160008e815260200190815260200160002060000160049054906101000a900463ffffffff1695508d60010160008463ffffffff1681526020019081526020016000208e60010160008e81526020019081526020016000206000820160009054906101000a900460030b8160000160006101000a81548163ffffffff021916908360030b63ffffffff1602179055506000820160049054906101000a900463ffffffff168160000160046101000a81548163ffffffff021916908363ffffffff1602179055506000820160089054906101000a900463ffffffff168160000160086101000a81548163ffffffff021916908363ffffffff1602179055509050505b8b98508c9750935061423092505050565b81870196508a606001518760030b131561419b57506000985088965086955085945084935061423092505050565b8b9c508263ffffffff169b508d60010160008d815260200190815260200160002060000160089054906101000a900463ffffffff1693508d60010160008d815260200190815260200160002060000160049054906101000a900463ffffffff1692508d60010160008d815260200190815260200160002060000160009054906101000a900460030b91506001613f9757505050505b9499939850945094509450565b63ffffffff9081166000908152600190950160205260409094208054938516600160201b0263ffffffff60201b1960039390930b861663ffffffff1996909416600160401b0263ffffffff60401b1990951694909417949094169190911716179055565b600085815260018701602052604081205463ffffffff600160401b8204811691600381900b91600160201b909104165b845163ffffffff16831161444a57845163ffffffff168314156143c25760408501516000038201600381900b61436257600089815260018c016020526040808220805463ffffffff60201b1916600160201b63ffffffff87811691909102919091179091558c8352912080546bffffffffffffffffffffffff191690558b5463ffffffff1916908916178b556143b5565b85606001518160030b131561437e576000945050505050611886565b60008a815260018c01602052604090208054600383900b63ffffffff90811663ffffffff19928316179092558c54918a169116178b555b6001945050505050611886565b600088815260018b016020526040808220548751918801516143f8938e93600160201b90930463ffffffff16929190038b61423d565b505050600085815260018881016020526040909120805463ffffffff60201b1916600160201b63ffffffff8881169190910291909117909155885463ffffffff19168683019091161788559050611886565b818601955084606001518660030b131561446a5760009350505050611886565b63ffffffff908116600081815260018c01602052604090205490999850600160401b810482169350600381900b9250600160201b9004166142d1565b604080518082019091526000808252602082015290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460008255600701600890049060005260206000209081019061453e9190614541565b50565b5b808211156145565760008155600101614542565b5090565b8035610aee81615845565b600082601f830112614575578081fd5b8135602061458a614585836157f8565b6157d5565b82815281810190858301838502870184018810156145a6578586fd5b855b858110156145c4578135845292840192908401906001016145a8565b5090979650505050505050565b600082601f8301126145e1578081fd5b813560206145f1614585836157f8565b828152818101908583018385028701840188101561460d578586fd5b855b858110156145c457813561ffff81168114614628578788fd5b8452928401929084019060010161460f565b600082601f83011261464a578081fd5b8135602061465a614585836157f8565b8281528181019085830183850287018401881015614676578586fd5b855b858110156145c457813561468b8161585a565b84529284019290840190600101614678565b600082601f8301126146ad578081fd5b813560206146bd614585836157f8565b82815281810190858301838502870184018810156146d9578586fd5b855b858110156145c457813560ff811681146146f3578788fd5b845292840192908401906001016146db565b80358015158114610aee57600080fd5b600082601f830112614725578081fd5b81356001600160401b0381111561473857fe5b61474b601f8201601f19166020016157d5565b81815284602083860101111561475f578283fd5b816020850160208301379081016020019190915292915050565b600061010080838503121561478c578182fd5b614795816157d5565b9150506147a18261455a565b81526147af6020830161488c565b602082015260408201356001600160401b03808211156147ce57600080fd5b6147da8583860161469d565b604084015260608401359150808211156147f357600080fd5b6147ff8583860161469d565b6060840152608084013591508082111561481857600080fd5b6148248583860161463a565b608084015260a084013591508082111561483d57600080fd5b614849858386016145d1565b60a084015260c084013591508082111561486257600080fd5b5061486f848285016145d1565b60c08301525061488160e0830161488c565b60e082015292915050565b8035610aee8161585a565b6000602082840312156148a8578081fd5b8135610c2f81615845565b6000806000606084860312156148c7578182fd5b83356148d281615845565b925060208401356148e281615845565b929592945050506040919091013590565b6000806000606084860312156148c7578081fd5b60008060408385031215614919578182fd5b823561492481615845565b946020939093013593505050565b600080600060608486031215614946578081fd5b833561495181615845565b92506020840135915060408401356149688161585a565b809150509250925092565b60008060408385031215614985578182fd5b823561499081615845565b915060208301356001600160401b038111156149aa578182fd5b6149b685828601614715565b9150509250929050565b6000806000606084860312156149d4578081fd5b83356149df81615845565b925060208401356001600160401b03808211156149fa578283fd5b614a0687838801614715565b93506040860135915080821115614a1b578283fd5b50614a2886828701614715565b9150509250925092565b600080600060608486031215614a46578081fd5b8335614a5181615845565b925060208401356001600160401b03811115614a6b578182fd5b614a7786828701614715565b925050604084013590509250925092565b60008060008060808587031215614a9d578182fd5b8435614aa881615845565b935060208501356001600160401b03811115614ac2578283fd5b614ace87828801614715565b9350506040850135614adf8161585a565b9396929550929360600135925050565b60008060008060008060c08789031215614b07578384fd5b8635614b1281615845565b955060208701356001600160401b0380821115614b2d578586fd5b614b398a838b01614715565b965060408901359150614b4b8261585a565b909450606088013590614b5d8261585a565b90935060808801359080821115614b72578384fd5b614b7e8a838b01614565565b935060a0890135915080821115614b93578283fd5b50614ba089828a01614565565b9150509295509295509295565b60008060408385031215614bbf578182fd5b8235614bca81615845565b91506020830135614bda8161585a565b809150509250929050565b600060208284031215614bf6578081fd5b81356001600160401b03811115614c0b578182fd5b614c1784828501614565565b949350505050565b600060208284031215614c30578081fd5b5035919050565b60008060008060808587031215614c4c578182fd5b8435935060208501356001600160401b0380821115614c69578384fd5b614c7588838901614715565b94506040870135915080821115614c8a578384fd5b614c9688838901614715565b93506060870135915080821115614cab578283fd5b50614cb887828801614715565b91505092959194509250565b600080600080600080600060e0888a031215614cde578485fd5b8735965060208801356001600160401b0380821115614cfb578687fd5b614d078b838c01614715565b975060408a0135915080821115614d1c578687fd5b614d288b838c01614715565b965060608a0135915080821115614d3d578283fd5b614d498b838c01614715565b9550614d5760808b0161488c565b945060a08a0135915080821115614d6c578283fd5b50614d798a828b0161463a565b925050614d8860c0890161488c565b905092959891949750929550565b600080600060608486031215614daa578081fd5b833592506020840135614dbc8161585a565b915060408401356149688161585a565b600080600080600060a08688031215614de3578283fd5b85356001600160401b0380821115614df9578485fd5b614e0589838a01614715565b96506020880135915080821115614e1a578485fd5b614e2689838a0161463a565b95506040880135915080821115614e3b578485fd5b614e4789838a01614779565b94506060880135915080821115614e5c578283fd5b614e6889838a0161463a565b93506080880135915080821115614e7d578283fd5b50614e8a88828901614565565b9150509295509295909350565b600080600060608486031215614eab578081fd5b83356001600160401b0380821115614ec1578283fd5b614ecd87838801614715565b94506020860135915080821115614ee2578283fd5b8186019150610120808389031215614ef8578384fd5b614f01816157d5565b9050614f0c8361488c565b8152614f1a6020840161488c565b6020820152614f2b6040840161488c565b6040820152614f3c6060840161488c565b6060820152614f4d6080840161488c565b6080820152614f5e60a0840161488c565b60a082015260c083013582811115614f74578485fd5b614f8089828601614565565b60c08301525060e083013582811115614f97578485fd5b614fa389828601614565565b60e0830152506101009150614fb9828401614705565b82820152809450505050604084013590509250925092565b60008060008060808587031215614fe6578182fd5b84356001600160401b0380821115614ffc578384fd5b61500888838901614715565b95506020870135915061501a8261585a565b9093506040860135908082111561502f578384fd5b61503b88838901614565565b93506060870135915080821115615050578283fd5b50614cb88782880161469d565b60008060008060808587031215615072578182fd5b84356001600160401b03811115615087578283fd5b61509387828801614715565b94505060208501356150a48161585a565b925060408501356150b48161585a565b915060608501356150c48161585a565b939692955090935050565b6000806000606084860312156150e3578081fd5b83516150ee8161585a565b809350506020840151915060408401518060030b8114614968578182fd5b600080600060608486031215615120578081fd5b833561512b8161585a565b9250602084013561513b8161585a565b915060408401356001600160401b03811115615155578182fd5b614a288682870161463a565b6000815180845260208085019450808401835b8381101561519457815161ffff1687529582019590820190600101615174565b509495945050505050565b8051600090602080840183831561519457815161ffff1687529582019590820190600101615174565b600081516020808401835b83811015615194578151875295820195908201906001016151d3565b6000815180845260208085019450808401835b8381101561519457815160ff1687529582019590820190600101615202565b60008151808452615239816020860160208601615815565b601f01601f19169290920160200192915050565b63ffffffff8082511683528060208301511660208401528060408301511660408401528060608301511660608401528060808301511660808401528060a08301511660a0840152505050565b825160009082906020808701845b838110156152c3578151855293820193908201906001016152a7565b50508551818701939250845b818110156152ee57845160ff16845293820193928201926001016152cf565b5091979650505050505050565b6000614c1761530a838661519f565b8461519f565b6000614c1761531f83866151c8565b846151c8565b60008251615337818460208701615815565b9190910192915050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038416815260606020820181905260009061539590830185615221565b82810360408401526118868185615221565b6020808252825182820181905260009190848201906040850190845b818110156153e85783516001600160a01b0316835292840192918401916001016153c3565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156153e857835163ffffffff1683529284019291840191600101615410565b901515815260200190565b90815260200190565b6000606082526154596060830186615221565b828103602084015261546b8186615221565b905082810360408401526118868185615221565b60006101208083526154938184018d615221565b9050602063ffffffff8c168185015283820360408501526154b4828c6151ef565b84810360608601528a51808252828c01935090820190845b818110156154e8578451835293830193918301916001016154cc565b505084810360808601526154fc818b6151ef565b9250505082810360a08401526155128188615161565b905082810360c08401526155268187615161565b60e084019590955250506101000152979650505050505050565b6000608082526155536080830187615221565b63ffffffff95861660208401529390941660408201526060015292915050565b60006101408083526155878184018e615221565b63ffffffff9c8d1660208501529a8c166040840152505096891660608801526001600160a01b0395909516608087015260a086019390935260c085019190915260e0840152841661010083015290921661012090920191909152919050565b6000608082526155f96080830187615221565b63ffffffff958616602084015293909416604082015260ff9190911660609091015292915050565b6020808252600f908201526e151c985b9cd9995c8819985a5b1959608a1b604082015260600190565b6020808252600c908201526b5a65726f206164647265737360a01b604082015260600190565b6020808252600d908201526c139bdd081c195c9b5a5d1d1959609a1b604082015260600190565b6020808252600990820152684168656164206e6f7760b81b604082015260600190565b815163ffffffff9081168252602092830151169181019190915260400190565b855160c0820190600881106156eb57fe5b825260209687015163ffffffff169682019690965260408101949094526001600160a01b03929092166060840152608083015260a09091015290565b91825263ffffffff16602082015260400190565b60c08101611c61828461524d565b918252805163ffffffff90811660208085019190915282015116604080840191909152810151151560608084019190915201511515608082015260a00190565b63ffffffff91909116815260200190565b63ffffffff8316815260e08101610c2f602083018461524d565b63ffffffff939093168352602083019190915260030b604082015260600190565b6040518181016001600160401b03811182821017156157f057fe5b604052919050565b60006001600160401b0382111561580b57fe5b5060209081020190565b60005b83811015615830578181015183820152602001615818565b8381111561583f576000848401525b50505050565b6001600160a01b038116811461453e57600080fd5b63ffffffff8116811461453e57600080fdfea2646970667358221220b0aaf360d7131d053f2ddc281675a76294817257f51b5d7b99741aa2104f400864736f6c63430007060033

Deployed ByteCode

0x6080604052600436106102515760003560e01c8063893d20e811610139578063d638fdba116100b6578063ed29bffd1161007a578063ed29bffd14610714578063edbf969214610729578063edc922a914610749578063f2fde38b1461076b578063f7ae02021461078b578063f8a1ee5f146107ab57610251565b8063d638fdba14610674578063dd7bf0c014610687578063de53b2e5146106b4578063e28a2a94146106d4578063e6ae74c2146106f457610251565b8063c46087ab116100fd578063c46087ab146105e5578063c6df398614610605578063c853258914610348578063d246ecbc14610634578063d4b2464e1461065457610251565b8063893d20e81461054e5780638da5cb5b14610570578063a52d9d0114610585578063a716baf7146105a5578063b9dd0ddd146105c557610251565b80634f48c37f116101d257806367f7079c1161019657806367f7079c146104975780636f9fb98a146104ac57806370a08231146104c157806378bea80b146104e15780637e7366a614610501578063805b38241461052e57610251565b80634f48c37f146103e657806350f53252146104065780635367428814610426578063582e8c7a14610457578063628b1a3c1461047757610251565b80632843b78a116102195780632843b78a146103285780632855d0d5146103485780633519877e146103755780633ccfd60b146103a35780633cffa233146103b857610251565b806302f8542e146102565780630bbb8c93146102785780630f7eb764146102ae5780631b2eb61e146102ce57806327e235e3146102fb575b600080fd5b34801561026257600080fd5b50610276610271366004614d96565b6107cb565b005b34801561028457600080fd5b50610298610293366004614c37565b6109e2565b6040516102a59190615432565b60405180910390f35b3480156102ba57600080fd5b506102986102c9366004614be5565b610a52565b3480156102da57600080fd5b506102ee6102e9366004614932565b610af3565b6040516102a591906156ba565b34801561030757600080fd5b5061031b610316366004614897565b610c36565b6040516102a5919061543d565b34801561033457600080fd5b5061031b610343366004614897565b610c48565b34801561035457600080fd5b50610368610363366004614897565b610c63565b6040516102a591906153f4565b34801561038157600080fd5b506103956103903660046148f3565b610cfb565b6040516102a5929190615749565b3480156103af57600080fd5b50610298610e2d565b3480156103c457600080fd5b506103d86103d3366004614bad565b610ee5565b6040516102a592919061579a565b3480156103f257600080fd5b5061029861040136600461505d565b611068565b34801561041257600080fd5b50610276610421366004614fd1565b611184565b34801561043257600080fd5b50610446610441366004614a88565b6112b6565b6040516102a59594939291906156da565b34801561046357600080fd5b50610298610472366004614c37565b6113d1565b34801561048357600080fd5b50610298610492366004614897565b61142a565b3480156104a357600080fd5b5061029861144d565b3480156104b857600080fd5b5061031b6114b7565b3480156104cd57600080fd5b5061031b6104dc366004614897565b6114bb565b3480156104ed57600080fd5b506102766104fc366004614d96565b6114d6565b34801561050d57600080fd5b5061052161051c366004614897565b6115f9565b6040516102a59190615789565b34801561053a57600080fd5b50610298610549366004614aef565b61161a565b34801561055a57600080fd5b50610563611890565b6040516102a59190615344565b34801561057c57600080fd5b5061056361189f565b34801561059157600080fd5b506102986105a03660046149c0565b6118ae565b3480156105b157600080fd5b506102986105c03660046148b3565b61196b565b3480156105d157600080fd5b506102986105e0366004614907565b611a83565b3480156105f157600080fd5b50610298610600366004614897565b611ae2565b34801561061157600080fd5b50610625610620366004614bad565b611b0f565b6040516102a5939291906157b4565b34801561064057600080fd5b5061036861064f366004614907565b611bc3565b34801561066057600080fd5b5061029861066f366004614cc4565b611c67565b610276610682366004614dcc565b611e0d565b34801561069357600080fd5b506106a76106a2366004614a32565b612371565b6040516102a5919061573b565b3480156106c057600080fd5b506102766106cf366004614c1f565b612461565b3480156106e057600080fd5b5061031b6106ef366004614973565b6124ac565b34801561070057600080fd5b5061029861070f36600461510c565b612519565b34801561072057600080fd5b50610298612711565b34801561073557600080fd5b50610298610744366004614897565b612755565b34801561075557600080fd5b5061075e612778565b6040516102a591906153a7565b34801561077757600080fd5b50610276610786366004614897565b6127da565b34801561079757600080fd5b506102766107a6366004614e97565b612872565b3480156107b757600080fd5b506102986107c6366004614907565b612ff9565b3360009081526003602052604090205463ffffffff166107ea57600080fd5b33600090815260036020818152604080842087855290920190529020805461081157600080fd5b63ffffffff8316610823578260010192505b60008160000180548060200260200160405190810160405280929190818152602001828054801561089f57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116108625790505b505050505090506000816001835103815181106108b857fe5b60200260200101519050438163ffffffff1611156109165763ffffffff81811660009081526001850160205260409020805463ffffffff19168783161763ffffffff60201b1916600160201b928716929092029190911790556109da565b63ffffffff8082166000818152600186016020526040902054600160201b900490911690810143811161096857818363ffffffff1643038161095457fe5b0460010190508181028363ffffffff160190505b60008181526001868101602090815260408320805463ffffffff191663ffffffff8c81169190911763ffffffff60201b1916600160201b8c831602179091558854928301895588845292206008820401805460046007909316929092026101000a808402199092169290931602179055505b505050505050565b3360009081526003602052604081205463ffffffff16610a0157600080fd5b84336001600160a01b03167fcdaff867abac2aaa830f0e81523d81ac4f5a32dbb867445a8be99d0e039e9d61868686604051610a3f93929190615446565b60405180910390a3506001949350505050565b33600090815260036020526040812054600160201b900460ff16610a7557600080fd5b336000908152600360205260408120905b8351811015610ae7576000848281518110610a9d57fe5b60200260200101519050610ab183826130f4565b15610ade5760008181526002840160205260409020805469ff0000000000000000001916600160481b1790555b50600101610a86565b5060019150505b919050565b610afb6144a6565b6001600160a01b03841660009081526003602081815260408084208785529092019052902063ffffffff8316610bf357600081600001805480602002602001604051908101604052809291908181526020018280548015610ba757602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610b6a5790505b5050505050905080600182510381518110610bbe57fe5b60200260200101519350438463ffffffff161115610bf15780600282510381518110610be657fe5b602002602001015193505b505b63ffffffff8084166000908152600190920160209081526040928390208351808501909452548083168452600160201b90049091169082015290505b9392505050565b60066020526000908152604090205481565b6001600160a01b031660009081526005602052604090205490565b6001600160a01b038116600090815260046020908152604091829020805483518184028101840190945280845260609392830182828015610cef57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610cb25790505b50505050509050919050565b6000610d056144bd565b6001600160a01b03851660009081526003602052604090208054600160201b900460ff16610d3257600080fd5b6001600160a01b038516610da55760008481526002909101602090815260408083208151608081018352905463ffffffff8082168352600160201b8204169382019390935260ff600160401b84048116151592820192909252600160481b90920416151560608201529092509050610e25565b6001600160a01b0385166000908152600482016020908152604080832087845282528083205460029094018252918290208251608081018452905463ffffffff8082168352600160201b8204169282019290925260ff600160401b83048116151593820193909352600160481b9091049091161515606082015290925090505b935093915050565b336000908152600660205260408120548190610e4d90633b9aca0061315b565b3360008181526006602052604080822082905551929350918390610e7090615341565b60006040518083038185875af1925050503d8060008114610ead576040519150601f19603f3d011682016040523d82523d6000602084013e610eb2565b606091505b5050905080610edc5760405162461bcd60e51b8152600401610ed390615621565b60405180910390fd5b60019250505090565b6000610eef6144e4565b6001600160a01b038416600090815260046020908152604080832080548251818502810185019093528083529192909190830182828015610f7b57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610f3e5790505b505050505090508363ffffffff1660001415610fd45780600182510381518110610fa157fe5b60200260200101519350438463ffffffff161115610fd45780600282510381518110610fc957fe5b602002602001015193505b5050506001600160a01b0391909116600090815260036020908152604080832063ffffffff85811685526001909101835292819020815160c08101835290548085168252600160201b8104851693820193909352600160401b8304841691810191909152600160601b820483166060820152600160801b820483166080820152600160a01b90910490911660a08201529091565b60008163ffffffff164281111561107e57600080fd5b3360009081526003602052604080822090516005909101906110a1908990615325565b90815260200160405180910390208663ffffffff16815481106110c057fe5b6000918252602080832063ffffffff8916845260056006909302019190910190526040902090506001815460ff1660078111156110f957fe5b11156111175760405162461bcd60e51b8152600401610ed390615670565b8054600264ffffffff001990911661010063ffffffff8716021760ff19168117825560405133917f1ed0dfeede93aca193505d2c4448bfa80fc53727e2e524f2596ae333d7f4977c9161116f918b918b918b916155e6565b60405180910390a25060019695505050505050565b33600090815260036020526040902054600160201b900460ff166111a757600080fd5b3360009081526003602090815260409182902091516111ca918591859101615299565b6040516020818303038152906040528051906020012081600501866040516111f29190615325565b90815260200160405180910390208563ffffffff168154811061121157fe5b9060005260206000209060060201600301541461122d57600080fd5b60005b83518110156109da57600082600201600086848151811061124d57fe5b6020026020010151815260200190815260200160002090508060000160099054906101000a900460ff16801561129c5750600060ff1684838151811061128f57fe5b602002602001015160ff16145b156112ad57805460ff60401b191681555b50600101611230565b6112be6144a6565b6000806000806000600360008b6001600160a01b03166001600160a01b03168152602001908152602001600020600501896040516112fc9190615325565b90815260200160405180910390208863ffffffff168154811061131b57fe5b600091825260208083208a84526005600690930201918201905260409182902060018201546002830154835485518087019096528354949650929491936001600160a01b039091169263ffffffff600160201b8204811693600160401b90920416918690829060ff16600781111561138f57fe5b600781111561139a57fe5b8152905463ffffffff6101009091048116602090920191909152909b50939950919750821695501692505050945094509450945094565b33600081815260026020526040808220805463ffffffff19164363ffffffff1617905551909186917fc98f6c9d476630f8e465540b0a790aa56ef97c26f7d59649b8e56da66e17630290610a3f90889088908890615446565b6001600160a01b031660009081526003602052604090205463ffffffff16151590565b3360009081526003602052604081205463ffffffff1661146c57600080fd5b33600090815260036020526040902054600160201b900460ff161561149057600080fd5b50336000908152600360205260409020805464ff000000001916600160201b179055600190565b4790565b6001600160a01b031660009081526006602052604090205490565b3360009081526003602052604090205463ffffffff166114f557600080fd5b336000908152600360208181526040808420878552909201905290208054158015611528575061025863ffffffff831610155b61153157600080fd5b63ffffffff8316611543578260010192505b436000818152600183810160209081526040808420805463ffffffff191663ffffffff8a81169190911763ffffffff60201b1916600160201b8a8316021790915586549384018755868552919093206008830401805460046007909416939093026101000a808302199093169190941691909102179091555133907f63b34caa4654531c1ea1645263f2d28e8233fe72f5a0925d41f702edf5d92b8c906115eb90879061543d565b60405180910390a250505050565b6001600160a01b031660009081526002602052604090205463ffffffff1690565b6001600160a01b038616600090815260036020526040808220905182906005830190611647908a90615325565b90815260200160405180910390208763ffffffff168154811061166657fe5b906000526020600020906006020190508484604051602001611689929190615310565b604051602081830303815290604052805190602001208160040154146116ae57600080fd5b63ffffffff86166000908152600582016020526040902060028201546001600160a01b03163314806116e85750336001600160a01b038b16145b801561170457506005815460ff16600781111561170157fe5b14155b801561172057506003815460ff16600781111561171d57fe5b14155b801561173c57506004815460ff16600781111561173957fe5b14155b61174557600080fd5b8254600090600160201b900460ff16158061177057506001825460ff16600781111561176d57fe5b11155b806117d057506002825460ff16600781111561178857fe5b1480156117d05750858863ffffffff16815181106117a257fe5b6020026020010151603c02610e10018260000160019054906101000a900463ffffffff1663ffffffff164203115b156118125750805460ff1916600317815560018201805460009182905560028401546001600160a01b0316825260066020526040909120805482019055611836565b6002825460ff16600781111561182457fe5b141561025157815460ff191660041782555b8a6001600160a01b03167f84ee10d060221dce9423d13e552ceee10a21bf41bd5bedcc60dc203039cc61d28b8b8b856040516118759493929190615540565b60405180910390a260019450505050505b9695505050505050565b6000546001600160a01b031690565b6000546001600160a01b031681565b6001600160a01b03831660009081526003602052604080822090516005909101906118da908590615325565b90815260200160405180910390206000815481106118f457fe5b60009182526020909120600690910201600201546001600160a01b0316331461191c57600080fd5b836001600160a01b03167f3bd0feb5eb1eb62e58a57ceb991a8b7050e6780c0d2af4d424958c752827c13c33858560405161195993929190615371565b60405180910390a25060019392505050565b6001600160a01b03808416600090815260036020908152604080832093861683526004840182528083208584529091528120805482825591929180158015906119cc57506000858152600284016020526040902054600160481b900460ff16155b6119d557600080fd5b6000858152600284016020526040902080544390611a069063ffffffff80821691600160201b90048116906131ca16565b63ffffffff1610611a1657600080fd5b611a1f816131e5565b6001600160a01b03871660008181526006602052604090819020805485019055517facafa53d73da949760af59b77d3adf645986bfeca66849b98b0e8a4d1e21150a90611a6d90859061543d565b60405180910390a2506001979650505050505050565b600080546001600160a01b03163314611a9b57600080fd5b6001600160a01b038316600090815260056020526040902054839015611ac057600080fd5b50506001600160a01b0391909116600090815260056020526040902055600190565b6001600160a01b038116600090815260056020526040812054611b0757506000610aee565b506001919050565b6001600160a01b03821660009081526003602052604080822090516338e073f560e21b81528291829173a40d5a50315689e2f0b0862be8d2100b827af6049163e381cfd491611b6691600601908890600401615727565b60606040518083038186803b158015611b7e57600080fd5b505af4158015611b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb691906150cf565b9250925092509250925092565b6001600160a01b03821660009081526003602081815260408084208585529092018152918190208054825181850281018501909352808352606093830182828015611c5957602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411611c1c5790505b505050505090505b92915050565b3360009081526003602052604081205463ffffffff1615611c8757600080fd5b33600090815260036020526040902063ffffffff851615801590611cc55750600084600081518110611cb557fe5b602002602001015163ffffffff16115b8015611ceb5750600084600281518110611cdb57fe5b602002602001015163ffffffff16115b8015611d0057508054600160201b900460ff16155b8015611d14575061025863ffffffff841610155b611d1d57600080fd5b611d2a81438787876131f8565b503360009081526004602081815260408320805460018101825590845292206008830401805463ffffffff43811660079095169093026101000a9384029290930219909216179055611d7b81613369565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b031916339081179091556040518a91907fcdaff867abac2aaa830f0e81523d81ac4f5a32dbb867445a8be99d0e039e9d6190611df6908c908c908c90615446565b60405180910390a350600198975050505050505050565b82516001600160a01b031660009081526003602052604090208054600160201b900460ff168015611e3f575060008251115b8015611e5057508360800151518351145b8015611e5d575081518351145b8015611e6a575084518351145b8015611e7b57508360400151518351145b8015611e8c57508360600151518351145b8015611eb4575060048460400151600081518110611ea657fe5b602002602001015160ff1611155b8015611ec957508360c00151518460a0015151145b8015611ed95750611ed933612755565b8015611ee757506040865111155b8015611efa575033600052600560205260015b8015611f17575083516001600160a01b0316600052600560205260015b611f2057600080fd5b60408401515115611faf5760015b846040015151811015611fad5784604001518181518110611f4b57fe5b602002602001015160ff168560400151600081518110611f6757fe5b602002602001015160ff161480611f9c5750600260ff1685604001518281518110611f8e57fe5b602002602001015160ff1611155b611fa557600080fd5b600101611f2e565b505b83516001600160a01b031660009081526004602090815260408083208054825181850281018501909352808352919290919083018282801561203c57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411611fff5790505b5050505050905060008160018351038151811061205557fe5b602002602001015163ffffffff1690504381111561208e578160028351038151811061207d57fe5b602002602001015163ffffffff1690505b80866020015163ffffffff16146120a457600080fd5b60008181526001840160209081526040808320815160c081018352905463ffffffff8082168352600160201b8204811694830194909452600160401b8104841692820192909252600160601b820483166060820152600160801b820483166080820152600160a01b90910490911660a08201529080612127868a898d8c8861339e565b8d60008151811061213457fe5b602002602001018c60008151811061214857fe5b63ffffffff938416602091820292909201015292811690925291935090915060009061217c903490633b9aca009061386216565b905061219b612194858c60a001518d60c001516138bf565b84906139c1565b9250828110156121aa57600080fd5b6000876005018d6040516121be9190615325565b90815260405160209181900382019020805460018101825560009182529181208c5160069093020192508b916121f057fe5b6020908102919091010151815463ffffffff191663ffffffff9091161781558b518c9060009061221c57fe5b6020908102919091010151815460e08d015163ffffffff60201b19909116600160201b63ffffffff938416021763ffffffff60401b1916600160401b918316919091021763ffffffff60601b1916600160601b888316021782556122849085908590613a0f16565b60018201556002810180546001600160a01b0319163317905560608b01516040516122b3918b91602001615299565b60408051601f19818403018152908290528051602091820120600384015560a08d015160c08e01516122e99391929091016152fb565b6040516020818303038152906040528051906020012081600401819055506001886005018e60405161231b9190615325565b908152604051908190036020019020540395506000828514612353575033600090815260066020526040902080548584039081019091555b6123618e888c8f8588613a63565b5050505050505050505050505050565b6123796144e4565b6001600160a01b03841660009081526003602052604080822090516005909101906123a5908690615325565b908152602001604051809103902083815481106123be57fe5b600091825260208083206001600160a01b038916845260038252604080852060069094029091015463ffffffff600160601b91829004811686526001909401835293819020815160c08101835290548085168252600160201b8104851693820193909352600160401b830484169181019190915292810482166060840152600160801b810482166080840152600160a01b90041660a08201529150509392505050565b3360009081526003602052604090205463ffffffff1661248057600080fd5b33600090815260036020818152604080842085855290920190528120906124a78282614519565b505050565b3360009081526003602052604081205463ffffffff166124cb57600080fd5b60036000846001600160a01b03166001600160a01b03168152602001908152602001600020600501826040516125019190615325565b90815260405190819003602001902054905092915050565b3360009081526003602052604081205463ffffffff1661253857600080fd5b60008463ffffffff16118015612568575060008260008151811061255857fe5b602002602001015163ffffffff16115b801561257c575061025863ffffffff841610155b61258557600080fd5b33600090815260036020908152604080832060048352818420805483518186028101860190945280845291949390919083018282801561261057602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116125d35790505b5050505050905060008160018351038151811061262957fe5b60200260200101519050438163ffffffff16111561265a57612654838263ffffffff1689888a6131f8565b50612704565b63ffffffff8082166000818152600186016020526040902054600160201b90049091169081014381116126ac57818363ffffffff1643038161269857fe5b0460010190508181028363ffffffff160190505b6126b985828b8a8c6131f8565b503360009081526004602081815260408320805460018101825590845292206008830401805463ffffffff94851660079094169092026101000a928302939092021916919091179055505b5060019695505050505050565b33600090815260036020526040812054600160201b900460ff1661273457600080fd5b50336000908152600360205260409020805464ff0000000019169055600190565b6001600160a01b031660009081526002602052604090205463ffffffff16151590565b606060018054806020026020016040519081016040528092919081815260200182805480156127d057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116127b2575b5050505050905090565b6000546001600160a01b031633146127f157600080fd5b6001600160a01b0381166128175760405162461bcd60e51b8152600401610ed39061564a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33600090815260036020526040902054600160201b900460ff1661289557600080fd5b42826040015163ffffffff1611156128bf5760405162461bcd60e51b8152600401610ed390615697565b33600090815260036020526040808220905190919060058301906128e4908790615325565b9081526020016040518091039020846000015163ffffffff168154811061290757fe5b906000526020600020906006020190508360c001518460e00151604051602001612932929190615310565b6040516020818303038152906040528051906020012081600401541461295757600080fd5b60208085015163ffffffff16600090815260058084019092526040902090815460ff16600781111561298557fe5b141580156129a357506003815460ff1660078111156129a057fe5b14155b80156129da57508460e00151856020015163ffffffff16815181106129c457fe5b60200260200101518560a0015163ffffffff1611155b80156129fc57508154606086015163ffffffff600160201b9092048216911611155b8015612a1e57508154608086015163ffffffff600160401b9092048216911611155b8015612a4e575060008560a0015163ffffffff16118015612a4e57506002815460ff166007811115612a4c57fe5b145b612a5757600080fd5b815463ffffffff600160601b91829004811660009081526001860160209081526040808320815160c0808201845291548087168252600160201b8104871682860152600160401b810487169382019390935295820485166060870152600160801b820485166080870152600160a01b909104841660a086015289015190890151815192938493849392909116908110612aec57fe5b6020026020010151905060008960e001518a6020015163ffffffff1681518110612b1257fe5b6020026020010151905060008a6060015163ffffffff161115612c7557865463ffffffff1615612bd557612b5d8a606001518660a0015163ffffffff16613acf90919063ffffffff16565b60608b0151885463ffffffff9283169650612ba192612b8892600160201b90920481169190613b0e16565b8660a0015163ffffffff16613acf90919063ffffffff16565b875463ffffffff9182169450811690612bbe90869086906139c116565b1115612bc957600080fd5b865463ffffffff191687555b8654600160201b900463ffffffff1615801590612c085750865460608b015163ffffffff908116600160201b9092041614155b15612c755760608a01518754612c6491612c4f91612c369163ffffffff600160201b909204821691613b0e16565b876060015163ffffffff16613acf90919063ffffffff16565b63ffffffff16846139c190919063ffffffff16565b875463ffffffff60201b1916885592505b8654600160401b900463ffffffff1615801590612c9957506101008a015115156001145b8015612cbb5750865460808b015163ffffffff908116600160401b9092041614155b15612d9a5760808a01518754612ce991612c4f91612c369163ffffffff600160401b909204821691613b0e16565b875490935063ffffffff1615612d2857865460a0860151612d1a91612c4f9163ffffffff90811691811690613acf16565b875463ffffffff1916885592505b8654600160201b900463ffffffff1615801590612d4d575060608a015163ffffffff16155b15612d8b5786546060860151612d7a91612c4f9163ffffffff90811691600160201b9004811690613acf16565b875463ffffffff60201b1916885592505b865463ffffffff60401b191687555b612e29612e22612ddd612dc48d608001518e6060015163ffffffff166131ca90919063ffffffff16565b886060015163ffffffff16613acf90919063ffffffff16565b63ffffffff16612e1c612e038e60a0015163ffffffff168761315b90919063ffffffff16565b896040015163ffffffff1661315b90919063ffffffff16565b906139c1565b85906139c1565b9350612e71612194612e58612e518d60a0015163ffffffff1685613a0f90919063ffffffff16565b859061315b565b876040015163ffffffff1661315b90919063ffffffff16565b6001880154909350612e8385856139c1565b1115612e8e57600080fd5b612e966144bd565b865463ffffffff610100909104811682526040808d0151821660208401528751600390810b606085015285810b900b90830152612eda9060068b01908390613b2916565b612f3d57865460ff1916600317875560018801805460009182905560028a0180546001600160a01b0390811684526006602052604084208054840190559054919650612f2f928f928f928f9291169089613db5565b5050505050505050506124a7565b6004875460ff166007811115612f4f57fe5b1415612f6557865460ff19166003178755612f71565b865460ff191660051787555b612f89612f7e86866139c1565b60018a015490613a0f565b60018901558315612fb75760028801546001600160a01b031660009081526006602052604090208054850190555b3360009081526006602052604090208054860190556002880154612feb908d908d908d906001600160a01b03168989613db5565b505050505050505050505050565b33600090815260036020526040812054600160201b900460ff1661301c57600080fd5b3360009081526003602090815260408083206001600160a01b038716845260048101835281842086855283528184206002820190935292208054600160481b900460ff1680156130905750805443906130889063ffffffff80821691600160201b90048116906131ca16565b63ffffffff16105b61309957600080fd5b815460008084553381526006602052604090208054820190556130bb826131e5565b336001600160a01b03167facafa53d73da949760af59b77d3adf645986bfeca66849b98b0e8a4d1e21150a8260405161116f919061543d565b60008181526002830160205260408120805443906131259063ffffffff80821691600160201b90048116906131ca16565b63ffffffff16101561313b576000915050611c61565b805463ffffffff1916436000190163ffffffff1617905550600192915050565b60008261316a57506000611c61565b8282028284828161317757fe5b0414610c2f576040805162461bcd60e51b815260206004820152601760248201527f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000604482015290519081900360640190fd5b600082820163ffffffff8085169082161015610c2f57600080fd5b805469ffffffffffffffffffff19169055565b60006040518060c001604052808563ffffffff1681526020018363ffffffff1681526020018460008151811061322a57fe5b602002602001015163ffffffff1681526020018460018151811061324a57fe5b602002602001015163ffffffff1681526020018460028151811061326a57fe5b602002602001015163ffffffff1681526020018460038151811061328a57fe5b60209081029190910181015163ffffffff90811690925260008881526001808b0183526040918290208551815494870151938701516060880151608089015160a0909901518816600160a01b0263ffffffff60a01b19998916600160801b0263ffffffff60801b19928a16600160601b0263ffffffff60601b19948b16600160401b0263ffffffff60401b19998c16600160201b0263ffffffff60201b1997909c1663ffffffff19909b169a909a1795909516999099179690961696909617161793909316939093179390931692909217909155905095945050505050565b805463ffffffff431663ffffffff1964ff0000000019909216600160201b178216178255600690910180549091166001179055565b600080808080805b89518110156137f15760008a82815181106133bd57fe5b6020026020010151905060008d6002016000838152602001908152602001600020905060008e6004016000336001600160a01b03166001600160a01b03168152602001908152602001600020600084815260200190815260200160002090508060000154945060008511801561344c575081544363ffffffff808316600160201b909304811692909201909116105b156134c45760008082558e516001600160a01b03811682526006602052604090912080548701905561347d836131e5565b8e600001516001600160a01b03167facafa53d73da949760af59b77d3adf645986bfeca66849b98b0e8a4d1e21150a876040516134ba919061543d565b60405180910390a2505b8054151580613515575081544363ffffffff808316600160201b9093048116929092019091161080159061350157508154600160401b900460ff16155b801561351557508154600160481b900460ff165b6137e65760008f600301600085815260200190815260200160002090506135548f60800151868151811061354557fe5b60200260200101518289613e24565b975095508561379e5782544363ffffffff808316600160201b90930481169290920190911610156136ee5760008c868151811061358d57fe5b602002602001015163ffffffff1611156136a357825463ffffffff19164363ffffffff161783558b516135e690610258908e90889081106135ca57fe5b602002602001015163ffffffff16613acf90919063ffffffff16565b835463ffffffff91909116600160201b0263ffffffff60201b199091161783558b5161364990613630908e908890811061361c57fe5b60200260200101518f88815181106135ca57fe5b8c6080015163ffffffff16613acf90919063ffffffff16565b63ffffffff908116808455965061366490899088906139c116565b9750600160ff168f60600151868151811061367b57fe5b602002602001015160ff16141561369e57825460ff60401b1916600160401b1783555b6136e9565b6136e66136d68e87815181106136b557fe5b60200260200101518d60a0015163ffffffff16613acf90919063ffffffff16565b63ffffffff808a1691906131ca16565b96505b613724565b815415801561370a57508254600160401b900460ff1615156001145b15613724576137216136d68e87815181106136b557fe5b96505b6137508d868151811061373357fe5b60200260200101518a63ffffffff166131ca90919063ffffffff16565b98508e600001516001600160a01b03167f80dba27df5461a688671716d31fb3db878585175dd426accdcd2d7575355542d3386604051613791929190615358565b60405180910390a26137e4565b8e600001516001600160a01b03167f258852d33ffd0dba761363df607e9bd50bf6f684b1f6a1e0dd6ff1222f9642d5856040516137db919061543d565b60405180910390a25b505b5050506001016133a6565b5061382a613815612dc48c60e001518763ffffffff166131ca90919063ffffffff16565b63ffffffff16866139c190919063ffffffff16565b94506138498263ffffffff16612e1c85886139c190919063ffffffff16565b94505063ffffffff909116909650965096509692505050565b60008082116138ab576040805162461bcd60e51b815260206004820152601060248201526f6469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b60008284816138b657fe5b04949350505050565b60008060005b84518110156139b857600061392d6139148684815181106138e257fe5b602002602001015161ffff168885815181106138fa57fe5b602002602001015161ffff1661315b90919063ffffffff16565b886040015163ffffffff1661315b90919063ffffffff16565b905061395985838151811061393e57fe5b602002602001015161ffff16846139c190919063ffffffff16565b9250866000015163ffffffff1686838151811061397257fe5b602002602001015161ffff161115801561398c5750600081115b801561399a57506105a08311155b6139a357600080fd5b6139ad84826139c1565b9350506001016138c5565b50509392505050565b600082820183811015610c2f576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b600082821115613a5d576040805162461bcd60e51b81526020600482015260146024820152737375627472616374696f6e206f766572666c6f7760601b604482015290519081900360640190fd5b50900390565b8251604080850151606086015160a087015160c0880151935133956001600160a01b0316947f70ef18f1e199e6d1dad787809fb510ee88159612964bdd4ba0aeb342a5c4442a94613abf948e948e9492938e938c908e9061547f565b60405180910390a3505050505050565b600063ffffffff8316613ae457506000611c61565b82820263ffffffff8084169080861690831681613afd57fe5b0463ffffffff1614610c2f57600080fd5b60008263ffffffff168263ffffffff161115613a5d57600080fd5b815463ffffffff600160201b909104811660008181526001850160209081526040822054908501519193849283928392839283928392600160401b9091048116911611613bae57869450849350613b828a86868c613f5b565b949c50929a5090975063ffffffff90911694509250905087613bae576000975050505050505050611c61565b895463ffffffff1660018911613c5157613bd38b898c602001518d604001518561423d565b60408a0151925060010188613c11578a5463ffffffff60201b1916600160201b600019830163ffffffff16908102919091178c558897509550613c51565b600095865260018b0160205260409095208054600019870163ffffffff908116600160201b81810263ffffffff60201b1985161790945592909104169650945b6001891115613c7b57600086815260018c016020526040902054600160201b900463ffffffff1696505b869450613c8c8b868884878f6142a1565b15613cd3578860021415613cc257600088815260018c0160205260409020805463ffffffff191663ffffffff600385900b161790555b600198505050505050505050611c61565b60018911613d6e5763ffffffff60001982018116600090815260018d016020526040902080546bffffffffffffffffffffffff191690558b54600160201b900416861415613d3c578a5463ffffffff60201b1916600160201b63ffffffff891602178b55613d69565b600086815260018c0160205260409020805463ffffffff60201b1916600160201b63ffffffff8a16021790555b613da4565b8860031415613da457600086815260018c0160205260409020805463ffffffff60201b1916600160201b63ffffffff8716021790555b600098505050505050505050611c61565b336001600160a01b03167f3247a6bce758540366529653a56f96ff1bfab0511d52c848598d4ececd7edbd687876000015188602001518960a001518888888c8e606001518f60800151604051613e149a99989796959493929190615573565b60405180910390a2505050505050565b60008063ffffffff851615613f4e57835415613f4e57600084600001805480602002602001604051908101604052809291908181526020018280548015613eb657602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411613e795790505b50505050509050600081600183510381518110613ecf57fe5b60200260200101519050438163ffffffff161115613f025781600283510381518110613ef757fe5b602002602001015190505b63ffffffff8082166000908152600180890160205260409091205490911690811115613f3f57613f3c63ffffffff8088169083906131ca16565b95505b60018694509450505050610e25565b5060009491935090915050565b600083815260018581016020526040822054909190819081908190819063ffffffff600160401b8204811691600160201b81049091169060030b835b8363ffffffff168b6020015163ffffffff161061416d578a60400151870196508a606001518760030b1315613fe057506000985088965086955085945084935061423092505050565b8363ffffffff168b6020015163ffffffff16141561415c578a604001518201905081870196508a606001518760030b138061402157508a606001518160030b135b1561404057506000985088965086955085945084935061423092505050565b8060030b600014614054576002995061415c565b600399508d60010160008e815260200190815260200160002060000160049054906101000a900463ffffffff1695508d60010160008463ffffffff1681526020019081526020016000208e60010160008e81526020019081526020016000206000820160009054906101000a900460030b8160000160006101000a81548163ffffffff021916908360030b63ffffffff1602179055506000820160049054906101000a900463ffffffff168160000160046101000a81548163ffffffff021916908363ffffffff1602179055506000820160089054906101000a900463ffffffff168160000160086101000a81548163ffffffff021916908363ffffffff1602179055509050505b8b98508c9750935061423092505050565b81870196508a606001518760030b131561419b57506000985088965086955085945084935061423092505050565b8b9c508263ffffffff169b508d60010160008d815260200190815260200160002060000160089054906101000a900463ffffffff1693508d60010160008d815260200190815260200160002060000160049054906101000a900463ffffffff1692508d60010160008d815260200190815260200160002060000160009054906101000a900460030b91506001613f9757505050505b9499939850945094509450565b63ffffffff9081166000908152600190950160205260409094208054938516600160201b0263ffffffff60201b1960039390930b861663ffffffff1996909416600160401b0263ffffffff60401b1990951694909417949094169190911716179055565b600085815260018701602052604081205463ffffffff600160401b8204811691600381900b91600160201b909104165b845163ffffffff16831161444a57845163ffffffff168314156143c25760408501516000038201600381900b61436257600089815260018c016020526040808220805463ffffffff60201b1916600160201b63ffffffff87811691909102919091179091558c8352912080546bffffffffffffffffffffffff191690558b5463ffffffff1916908916178b556143b5565b85606001518160030b131561437e576000945050505050611886565b60008a815260018c01602052604090208054600383900b63ffffffff90811663ffffffff19928316179092558c54918a169116178b555b6001945050505050611886565b600088815260018b016020526040808220548751918801516143f8938e93600160201b90930463ffffffff16929190038b61423d565b505050600085815260018881016020526040909120805463ffffffff60201b1916600160201b63ffffffff8881169190910291909117909155885463ffffffff19168683019091161788559050611886565b818601955084606001518660030b131561446a5760009350505050611886565b63ffffffff908116600081815260018c01602052604090205490999850600160401b810482169350600381900b9250600160201b9004166142d1565b604080518082019091526000808252602082015290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b50805460008255600701600890049060005260206000209081019061453e9190614541565b50565b5b808211156145565760008155600101614542565b5090565b8035610aee81615845565b600082601f830112614575578081fd5b8135602061458a614585836157f8565b6157d5565b82815281810190858301838502870184018810156145a6578586fd5b855b858110156145c4578135845292840192908401906001016145a8565b5090979650505050505050565b600082601f8301126145e1578081fd5b813560206145f1614585836157f8565b828152818101908583018385028701840188101561460d578586fd5b855b858110156145c457813561ffff81168114614628578788fd5b8452928401929084019060010161460f565b600082601f83011261464a578081fd5b8135602061465a614585836157f8565b8281528181019085830183850287018401881015614676578586fd5b855b858110156145c457813561468b8161585a565b84529284019290840190600101614678565b600082601f8301126146ad578081fd5b813560206146bd614585836157f8565b82815281810190858301838502870184018810156146d9578586fd5b855b858110156145c457813560ff811681146146f3578788fd5b845292840192908401906001016146db565b80358015158114610aee57600080fd5b600082601f830112614725578081fd5b81356001600160401b0381111561473857fe5b61474b601f8201601f19166020016157d5565b81815284602083860101111561475f578283fd5b816020850160208301379081016020019190915292915050565b600061010080838503121561478c578182fd5b614795816157d5565b9150506147a18261455a565b81526147af6020830161488c565b602082015260408201356001600160401b03808211156147ce57600080fd5b6147da8583860161469d565b604084015260608401359150808211156147f357600080fd5b6147ff8583860161469d565b6060840152608084013591508082111561481857600080fd5b6148248583860161463a565b608084015260a084013591508082111561483d57600080fd5b614849858386016145d1565b60a084015260c084013591508082111561486257600080fd5b5061486f848285016145d1565b60c08301525061488160e0830161488c565b60e082015292915050565b8035610aee8161585a565b6000602082840312156148a8578081fd5b8135610c2f81615845565b6000806000606084860312156148c7578182fd5b83356148d281615845565b925060208401356148e281615845565b929592945050506040919091013590565b6000806000606084860312156148c7578081fd5b60008060408385031215614919578182fd5b823561492481615845565b946020939093013593505050565b600080600060608486031215614946578081fd5b833561495181615845565b92506020840135915060408401356149688161585a565b809150509250925092565b60008060408385031215614985578182fd5b823561499081615845565b915060208301356001600160401b038111156149aa578182fd5b6149b685828601614715565b9150509250929050565b6000806000606084860312156149d4578081fd5b83356149df81615845565b925060208401356001600160401b03808211156149fa578283fd5b614a0687838801614715565b93506040860135915080821115614a1b578283fd5b50614a2886828701614715565b9150509250925092565b600080600060608486031215614a46578081fd5b8335614a5181615845565b925060208401356001600160401b03811115614a6b578182fd5b614a7786828701614715565b925050604084013590509250925092565b60008060008060808587031215614a9d578182fd5b8435614aa881615845565b935060208501356001600160401b03811115614ac2578283fd5b614ace87828801614715565b9350506040850135614adf8161585a565b9396929550929360600135925050565b60008060008060008060c08789031215614b07578384fd5b8635614b1281615845565b955060208701356001600160401b0380821115614b2d578586fd5b614b398a838b01614715565b965060408901359150614b4b8261585a565b909450606088013590614b5d8261585a565b90935060808801359080821115614b72578384fd5b614b7e8a838b01614565565b935060a0890135915080821115614b93578283fd5b50614ba089828a01614565565b9150509295509295509295565b60008060408385031215614bbf578182fd5b8235614bca81615845565b91506020830135614bda8161585a565b809150509250929050565b600060208284031215614bf6578081fd5b81356001600160401b03811115614c0b578182fd5b614c1784828501614565565b949350505050565b600060208284031215614c30578081fd5b5035919050565b60008060008060808587031215614c4c578182fd5b8435935060208501356001600160401b0380821115614c69578384fd5b614c7588838901614715565b94506040870135915080821115614c8a578384fd5b614c9688838901614715565b93506060870135915080821115614cab578283fd5b50614cb887828801614715565b91505092959194509250565b600080600080600080600060e0888a031215614cde578485fd5b8735965060208801356001600160401b0380821115614cfb578687fd5b614d078b838c01614715565b975060408a0135915080821115614d1c578687fd5b614d288b838c01614715565b965060608a0135915080821115614d3d578283fd5b614d498b838c01614715565b9550614d5760808b0161488c565b945060a08a0135915080821115614d6c578283fd5b50614d798a828b0161463a565b925050614d8860c0890161488c565b905092959891949750929550565b600080600060608486031215614daa578081fd5b833592506020840135614dbc8161585a565b915060408401356149688161585a565b600080600080600060a08688031215614de3578283fd5b85356001600160401b0380821115614df9578485fd5b614e0589838a01614715565b96506020880135915080821115614e1a578485fd5b614e2689838a0161463a565b95506040880135915080821115614e3b578485fd5b614e4789838a01614779565b94506060880135915080821115614e5c578283fd5b614e6889838a0161463a565b93506080880135915080821115614e7d578283fd5b50614e8a88828901614565565b9150509295509295909350565b600080600060608486031215614eab578081fd5b83356001600160401b0380821115614ec1578283fd5b614ecd87838801614715565b94506020860135915080821115614ee2578283fd5b8186019150610120808389031215614ef8578384fd5b614f01816157d5565b9050614f0c8361488c565b8152614f1a6020840161488c565b6020820152614f2b6040840161488c565b6040820152614f3c6060840161488c565b6060820152614f4d6080840161488c565b6080820152614f5e60a0840161488c565b60a082015260c083013582811115614f74578485fd5b614f8089828601614565565b60c08301525060e083013582811115614f97578485fd5b614fa389828601614565565b60e0830152506101009150614fb9828401614705565b82820152809450505050604084013590509250925092565b60008060008060808587031215614fe6578182fd5b84356001600160401b0380821115614ffc578384fd5b61500888838901614715565b95506020870135915061501a8261585a565b9093506040860135908082111561502f578384fd5b61503b88838901614565565b93506060870135915080821115615050578283fd5b50614cb88782880161469d565b60008060008060808587031215615072578182fd5b84356001600160401b03811115615087578283fd5b61509387828801614715565b94505060208501356150a48161585a565b925060408501356150b48161585a565b915060608501356150c48161585a565b939692955090935050565b6000806000606084860312156150e3578081fd5b83516150ee8161585a565b809350506020840151915060408401518060030b8114614968578182fd5b600080600060608486031215615120578081fd5b833561512b8161585a565b9250602084013561513b8161585a565b915060408401356001600160401b03811115615155578182fd5b614a288682870161463a565b6000815180845260208085019450808401835b8381101561519457815161ffff1687529582019590820190600101615174565b509495945050505050565b8051600090602080840183831561519457815161ffff1687529582019590820190600101615174565b600081516020808401835b83811015615194578151875295820195908201906001016151d3565b6000815180845260208085019450808401835b8381101561519457815160ff1687529582019590820190600101615202565b60008151808452615239816020860160208601615815565b601f01601f19169290920160200192915050565b63ffffffff8082511683528060208301511660208401528060408301511660408401528060608301511660608401528060808301511660808401528060a08301511660a0840152505050565b825160009082906020808701845b838110156152c3578151855293820193908201906001016152a7565b50508551818701939250845b818110156152ee57845160ff16845293820193928201926001016152cf565b5091979650505050505050565b6000614c1761530a838661519f565b8461519f565b6000614c1761531f83866151c8565b846151c8565b60008251615337818460208701615815565b9190910192915050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038416815260606020820181905260009061539590830185615221565b82810360408401526118868185615221565b6020808252825182820181905260009190848201906040850190845b818110156153e85783516001600160a01b0316835292840192918401916001016153c3565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156153e857835163ffffffff1683529284019291840191600101615410565b901515815260200190565b90815260200190565b6000606082526154596060830186615221565b828103602084015261546b8186615221565b905082810360408401526118868185615221565b60006101208083526154938184018d615221565b9050602063ffffffff8c168185015283820360408501526154b4828c6151ef565b84810360608601528a51808252828c01935090820190845b818110156154e8578451835293830193918301916001016154cc565b505084810360808601526154fc818b6151ef565b9250505082810360a08401526155128188615161565b905082810360c08401526155268187615161565b60e084019590955250506101000152979650505050505050565b6000608082526155536080830187615221565b63ffffffff95861660208401529390941660408201526060015292915050565b60006101408083526155878184018e615221565b63ffffffff9c8d1660208501529a8c166040840152505096891660608801526001600160a01b0395909516608087015260a086019390935260c085019190915260e0840152841661010083015290921661012090920191909152919050565b6000608082526155f96080830187615221565b63ffffffff958616602084015293909416604082015260ff9190911660609091015292915050565b6020808252600f908201526e151c985b9cd9995c8819985a5b1959608a1b604082015260600190565b6020808252600c908201526b5a65726f206164647265737360a01b604082015260600190565b6020808252600d908201526c139bdd081c195c9b5a5d1d1959609a1b604082015260600190565b6020808252600990820152684168656164206e6f7760b81b604082015260600190565b815163ffffffff9081168252602092830151169181019190915260400190565b855160c0820190600881106156eb57fe5b825260209687015163ffffffff169682019690965260408101949094526001600160a01b03929092166060840152608083015260a09091015290565b91825263ffffffff16602082015260400190565b60c08101611c61828461524d565b918252805163ffffffff90811660208085019190915282015116604080840191909152810151151560608084019190915201511515608082015260a00190565b63ffffffff91909116815260200190565b63ffffffff8316815260e08101610c2f602083018461524d565b63ffffffff939093168352602083019190915260030b604082015260600190565b6040518181016001600160401b03811182821017156157f057fe5b604052919050565b60006001600160401b0382111561580b57fe5b5060209081020190565b60005b83811015615830578181015183820152602001615818565b8381111561583f576000848401525b50505050565b6001600160a01b038116811461453e57600080fd5b63ffffffff8116811461453e57600080fdfea2646970667358221220b0aaf360d7131d053f2ddc281675a76294817257f51b5d7b99741aa2104f400864736f6c63430007060033