Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save elenadimitrova/4f58d3795d009a05be2c2f56ca77d97c to your computer and use it in GitHub Desktop.
Save elenadimitrova/4f58d3795d009a05be2c2f56ca77d97c to your computer and use it in GitHub Desktop.
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639be65a601161008c578063d5e69ee911610066578063d5e69ee9146101ca578063d89784fc146101dd578063ea2347e6146101e5578063fd6ac309146101fa576100ea565b80639be65a6014610184578063a287fdbd14610197578063b20f3f37146101b7576100ea565b80632df546f4116100c85780632df546f4146101355780633b73d67f146101485780634b57b0be146101695780638eac81d514610171576100ea565b806302370b16146100ef5780631094fa571461010457806319ab453c14610122575b600080fd5b6101026100fd366004611c5d565b61020d565b005b61010c610373565b604051610119919061205d565b60405180910390f35b610102610130366004611c5d565b610382565b610102610143366004611d3e565b610385565b61015b610156366004611e8f565b61052a565b60405161011992919061247c565b61010c610607565b61010261017f366004611dbe565b610616565b610102610192366004611c5d565b610901565b6101aa6101a5366004611c78565b610a35565b6040516101199190612221565b6101026101c5366004611eed565b610ac1565b6101026101d8366004611cac565b610cc7565b61010c610fb4565b6101ed610fc3565b60405161011991906121d3565b610102610208366004611e20565b610fc8565b600154604051635a51fd4360e01b815282916001600160a01b031690635a51fd439061023f9084903390600401612071565b60206040518083038186803b15801561025757600080fd5b505afa15801561026b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028f9190611f17565b6102b45760405162461bcd60e51b81526004016102ab90612389565b60405180910390fd5b600054604051631293efbb60e21b815283916001600160a01b031690634a4fbeec906102e490849060040161205d565b60206040518083038186803b1580156102fc57600080fd5b505afa158015610310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103349190611f17565b156103515760405162461bcd60e51b81526004016102ab9061231b565b60015460045461036e916001600160a01b039081169116856112b1565b505050565b6004546001600160a01b031681565b50565b600154604051635a51fd4360e01b815287916001600160a01b031690635a51fd43906103b79084903390600401612071565b60206040518083038186803b1580156103cf57600080fd5b505afa1580156103e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104079190611f17565b6104235760405162461bcd60e51b81526004016102ab90612389565b600054604051631293efbb60e21b815288916001600160a01b031690634a4fbeec9061045390849060040161205d565b60206040518083038186803b15801561046b57600080fd5b505afa15801561047f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190611f17565b156104c05760405162461bcd60e51b81526004016102ab9061231b565b6105038888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112ef92505050565b600154600454610520916001600160a01b0390811691168a6112b1565b5050505050505050565b6003546040517f5040fb76000000000000000000000000000000000000000000000000000000008152600091829182916105d5916001600160a01b0390911690635040fb769061057e908a9060040161205d565b60206040518083038186803b15801561059657600080fd5b505afa1580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce9190611fd2565b6002611417565b9050600081116105f75760405162461bcd60e51b81526004016102ab906122ad565b6001908101969095509350505050565b6002546001600160a01b031681565b600154604051635a51fd4360e01b815287916001600160a01b031690635a51fd43906106489084903390600401612071565b60206040518083038186803b15801561066057600080fd5b505afa158015610674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106989190611f17565b6106b45760405162461bcd60e51b81526004016102ab90612389565b600054604051631293efbb60e21b815288916001600160a01b031690634a4fbeec906106e490849060040161205d565b60206040518083038186803b1580156106fc57600080fd5b505afa158015610710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107349190611f17565b156107515760405162461bcd60e51b81526004016102ab9061231b565b8785816001600160a01b0316816001600160a01b0316141580156107ee575060405163d6eb1bbf60e01b81526001600160a01b0383169063d6eb1bbf9061079c90849060040161205d565b60206040518083038186803b1580156107b457600080fd5b505afa1580156107c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ec9190611f17565b155b80156108795750600154604051635a51fd4360e01b81526001600160a01b0390911690635a51fd43906108279085908590600401612071565b60206040518083038186803b15801561083f57600080fd5b505afa158015610853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108779190611f17565b155b6108955760405162461bcd60e51b81526004016102ab9061242c565b6108d88a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061144592505050565b6001546004546108f5916001600160a01b0390811691168c6112b1565b50505050505050505050565b6040516370a0823160e01b81526000906001600160a01b038316906370a082319061093090309060040161205d565b60206040518083038186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109809190611fd2565b6001546040519192506001600160a01b038085169263a9059cbb60e01b926109ae921690859060240161218c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516109ec9190612041565b6000604051808303816000865af19150503d8060008114610a29576040519150601f19603f3d011682016040523d82523d6000602084013e610a2e565b606091505b5050505050565b600154604051635a51fd4360e01b81526000916001600160a01b031690635a51fd4390610a689086908690600401612071565b60206040518083038186803b158015610a8057600080fd5b505afa158015610a94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab89190611f17565b90505b92915050565b600154604051635a51fd4360e01b815283916001600160a01b031690635a51fd4390610af39084903390600401612071565b60206040518083038186803b158015610b0b57600080fd5b505afa158015610b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b439190611f17565b610b5f5760405162461bcd60e51b81526004016102ab90612389565b600054604051631293efbb60e21b815284916001600160a01b031690634a4fbeec90610b8f90849060040161205d565b60206040518083038186803b158015610ba757600080fd5b505afa158015610bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdf9190611f17565b15610bfc5760405162461bcd60e51b81526004016102ab9061231b565b6000610c0784611555565b9050610c11611bc8565b604080516060810182526fffffffffffffffffffffffffffffffff84168082526020820152908101610c424261158b565b67ffffffffffffffff1690529050610c58611be8565b506040805180820190915260008082526020820152610c788783836115b5565b816040015167ffffffffffffffff1686886001600160a01b03167f8a747eae44b6307d1b112c127968367d02d9f52ffef8533b3e899983ff2b1d4a60405160405180910390a450505050505050565b600154604051635a51fd4360e01b815288916001600160a01b031690635a51fd4390610cf99084903390600401612071565b60206040518083038186803b158015610d1157600080fd5b505afa158015610d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d499190611f17565b610d655760405162461bcd60e51b81526004016102ab90612389565b600054604051631293efbb60e21b815289916001600160a01b031690634a4fbeec90610d9590849060040161205d565b60206040518083038186803b158015610dad57600080fd5b505afa158015610dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de59190611f17565b15610e025760405162461bcd60e51b81526004016102ab9061231b565b8885816001600160a01b0316816001600160a01b031614158015610e9f575060405163d6eb1bbf60e01b81526001600160a01b0383169063d6eb1bbf90610e4d90849060040161205d565b60206040518083038186803b158015610e6557600080fd5b505afa158015610e79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9d9190611f17565b155b8015610f2a5750600154604051635a51fd4360e01b81526001600160a01b0390911690635a51fd4390610ed89085908590600401612071565b60206040518083038186803b158015610ef057600080fd5b505afa158015610f04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f289190611f17565b155b610f465760405162461bcd60e51b81526004016102ab9061242c565b610f8a8b8b8b8b8b8b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061168792505050565b600154600454610fa7916001600160a01b0390811691168d6112b1565b5050505050505050505050565b6003546001600160a01b031681565b606090565b600154604051635a51fd4360e01b815286916001600160a01b031690635a51fd4390610ffa9084903390600401612071565b60206040518083038186803b15801561101257600080fd5b505afa158015611026573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104a9190611f17565b6110665760405162461bcd60e51b81526004016102ab90612389565b600054604051631293efbb60e21b815287916001600160a01b031690634a4fbeec9061109690849060040161205d565b60206040518083038186803b1580156110ae57600080fd5b505afa1580156110c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e69190611f17565b156111035760405162461bcd60e51b81526004016102ab9061231b565b8686816001600160a01b0316816001600160a01b0316141580156111a0575060405163d6eb1bbf60e01b81526001600160a01b0383169063d6eb1bbf9061114e90849060040161205d565b60206040518083038186803b15801561116657600080fd5b505afa15801561117a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119e9190611f17565b155b801561122b5750600154604051635a51fd4360e01b81526001600160a01b0390911690635a51fd43906111d99085908590600401612071565b60206040518083038186803b1580156111f157600080fd5b505afa158015611205573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112299190611f17565b155b6112475760405162461bcd60e51b81526004016102ab9061242c565b61128989898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061198592505050565b6001546004546112a6916001600160a01b0390811691168b6112b1565b505050505050505050565b61036e838383604051806040016040528060006fffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152506119e5565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156113355761132f85848460405180602001604052806000815250611a86565b506113c2565b6060838360405160240161134a92919061218c565b60408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052905060606113858787600085611a86565b8051909150156113bf57808060200190518101906113a39190611f17565b6113bf5760405162461bcd60e51b81526004016102ab90612352565b50505b81846001600160a01b0316866001600160a01b03167fd5c97f2e041b2046be3b4337472f05720760a198f4d7d84980b7155eec7cca6f86856040516114089291906120e9565b60405180910390a45050505050565b60008082848161142357fe5b04905082848161142f57fe5b0661143b579050610abb565b6001019050610abb565b6002546040516370a0823160e01b81526000916001600160a01b0316906370a082319061147690899060040161205d565b60206040518083038186803b15801561148e57600080fd5b505afa1580156114a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c69190611fd2565b905083811015611532576002546040805160048152602481019091526020810180516001600160e01b03167fd0e30db0000000000000000000000000000000000000000000000000000000001790526115309188916001600160a01b039091169084880390611a86565b505b60025461154d9087906001600160a01b031687878787611687565b505050505050565b600070010000000000000000000000000000000082106115875760405162461bcd60e51b81526004016102ab9061223f565b5090565b60006801000000000000000082106115875760405162461bcd60e51b81526004016102ab906122e4565b6001546004546040516001600160a01b039283169263e452b7909287929116907f61c4121e000000000000000000000000000000000000000000000000000000009061160990849089908990602401612130565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e086901b909216825261165093929160040161208b565b600060405180830381600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b50505050505050565b6040516370a0823160e01b81526000906001600160a01b038716906370a08231906116b6908a9060040161205d565b60206040518083038186803b1580156116ce57600080fd5b505afa1580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117069190611fd2565b9050838110156117285760405162461bcd60e51b81526004016102ab906123c0565b604051636eb1769f60e11b81526000906001600160a01b0388169063dd62ed3e90611759908b908a90600401612071565b60206040518083038186803b15801561177157600080fd5b505afa158015611785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a99190611fd2565b905060006117b78287611b35565b9050606087826040516024016117ce92919061218c565b60408051601f198184030181529190526020810180516001600160e01b031663095ea7b360e01b17905290506118078a8a600084611a86565b506118158a87600088611a86565b50604051636eb1769f60e11b81526000906001600160a01b038b169063dd62ed3e90611847908e908d90600401612071565b60206040518083038186803b15801561185f57600080fd5b505afa158015611873573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118979190611fd2565b905060006118a58483611b5a565b9050888111156118c75760405162461bcd60e51b81526004016102ab906123f7565b84821461191c5789856040516024016118e192919061218c565b60408051601f198184030181529190526020810180516001600160e01b031663095ea7b360e01b179052925061191a8c8c600086611a86565b505b8a6001600160a01b0316886001600160a01b03168d6001600160a01b03167fb99e2a91cdfde581196884f6b42392a5000200a43dd5726d92d9405616fdffb98d8d868d60405161196f94939291906121a5565b60405180910390a4505050505050505050505050565b61199184848484611a86565b50826001600160a01b0316846001600160a01b03167fbfbd7fb6c6d7dd1ef01d18a7e98333f084363d82d5ce600328e8b941a53d665484846040516119d7929190612463565b60405180910390a350505050565b836001600160a01b031663e452b7908385635ae5bc5260e01b8686604051602401611a11929190612113565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e086901b9092168252611a5893929160040161208b565b600060405180830381600087803b158015611a7257600080fd5b505af1158015610520573d6000803e3d6000fd5b6001546040517f915c77b90000000000000000000000000000000000000000000000000000000081526060916001600160a01b03169063915c77b990611ad69088908890889088906004016120b7565b600060405180830381600087803b158015611af057600080fd5b505af1158015611b04573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b2c9190810190611f37565b95945050505050565b600082820183811015610ab85760405162461bcd60e51b81526004016102ab90612276565b6000610ab883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115611bbb5760405162461bcd60e51b81526004016102ab919061222c565b50508183035b9392505050565b604080516060810182526000808252602082018190529181019190915290565b604080518082019091526000808252602082015290565b80356001600160a01b0381168114610abb57600080fd5b60008083601f840112611c27578182fd5b50813567ffffffffffffffff811115611c3e578182fd5b602083019150836020828501011115611c5657600080fd5b9250929050565b600060208284031215611c6e578081fd5b610ab88383611bff565b60008060408385031215611c8a578081fd5b611c948484611bff565b9150611ca38460208501611bff565b90509250929050565b600080600080600080600060c0888a031215611cc6578283fd5b611cd08989611bff565b9650611cdf8960208a01611bff565b9550611cee8960408a01611bff565b945060608801359350611d048960808a01611bff565b925060a088013567ffffffffffffffff811115611d1f578283fd5b611d2b8a828b01611c16565b989b979a50959850939692959293505050565b60008060008060008060a08789031215611d56578182fd5b611d608888611bff565b9550611d6f8860208901611bff565b9450611d7e8860408901611bff565b935060608701359250608087013567ffffffffffffffff811115611da0578283fd5b611dac89828a01611c16565b979a9699509497509295939492505050565b60008060008060008060a08789031215611dd6578182fd5b611de08888611bff565b9550611def8860208901611bff565b945060408701359350611e058860608901611bff565b9250608087013567ffffffffffffffff811115611da0578283fd5b600080600080600060808688031215611e37578081fd5b611e418787611bff565b9450611e508760208801611bff565b935060408601359250606086013567ffffffffffffffff811115611e72578182fd5b611e7e88828901611c16565b969995985093965092949392505050565b600080600060408486031215611ea3578283fd5b83356001600160a01b0381168114611eb9578384fd5b9250602084013567ffffffffffffffff811115611ed4578283fd5b611ee086828701611c16565b9497909650939450505050565b60008060408385031215611eff578182fd5b611f098484611bff565b946020939093013593505050565b600060208284031215611f28578081fd5b81518015158114610ab8578182fd5b600060208284031215611f48578081fd5b815167ffffffffffffffff80821115611f5f578283fd5b818401915084601f830112611f72578283fd5b815181811115611f80578384fd5b604051601f8201601f191681016020018381118282101715611fa0578586fd5b604052818152838201602001871015611fb7578485fd5b611fc882602083016020870161249a565b9695505050505050565b600060208284031215611fe3578081fd5b5051919050565b6000815180845261200281602086016020860161249a565b601f01601f19169290920160200192915050565b80516fffffffffffffffffffffffffffffffff16825260209081015167ffffffffffffffff16910152565b6000825161205381846020870161249a565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b60006001600160a01b03808616835280851660208401525060606040830152611b2c6060830184611fea565b60006001600160a01b03808716835280861660208401525083604083015260806060830152611fc86080830184611fea565b60006001600160a01b03841682526040602083015261210b6040830184611fea565b949350505050565b6001600160a01b038316815260608101611bc16020830184612016565b600060c0820190506001600160a01b03851682526fffffffffffffffffffffffffffffffff8085511660208401528060208601511660408401525067ffffffffffffffff604085015116606083015261210b6080830184612016565b6001600160a01b03929092168252602082015260400190565b60006001600160a01b038616825284602083015283604083015260806060830152611fc86080830184611fea565b6020808252825182820181905260009190848201906040850190845b818110156122155783516001600160e01b031916835292840192918401916001016121ef565b50909695505050505050565b901515815260200190565b600060208252610ab86020830184611fea565b60208082526016908201527f4c553a206d6f7265207468656e20313238206269747300000000000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601e908201527f41543a206e6f20677561726469616e7320736574206f6e2077616c6c65740000604082015260600190565b60208082526015908201527f4c553a206d6f7265207468656e20363420626974730000000000000000000000604082015260600190565b60208082526011908201527f42463a2077616c6c6574206c6f636b6564000000000000000000000000000000604082015260600190565b60208082526013908201527f524d3a205472616e73666572206661696c656400000000000000000000000000604082015260600190565b6020808252601c908201527f42463a206d75737420626520612077616c6c6574206665617475726500000000604082015260600190565b60208082526018908201527f42543a20696e73756666696369656e742062616c616e63650000000000000000604082015260600190565b6020808252818101527f42543a20696e73756666696369656e7420616d6f756e7420666f722063616c6c604082015260600190565b60208082526016908201527f42543a20466f7262696464656e20636f6e747261637400000000000000000000604082015260600190565b60008382526040602083015261210b6040830184611fea565b828152604081016004831061248d57fe5b8260208301529392505050565b60005b838110156124b557818101518382015260200161249d565b838111156124c4576000848401525b5050505056fea264697066735822122057ec5c9899f65caa11e4556757ce72a9a522cff28c74bb20df88543447a83ddf64736f6c634300060c0033
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment