solc-0.8.36-fakeopcode 0xdd3f50f8a6cafbe9b31a427582963f465e745af8 via-ir-low-runs
9150 bytes
60806040526004361015610011575f80fd5b5f5f3560e01c806312065fe014610fb15780631b7dd4c014610f195780631e35fed814610eff5780631eddb62614610ee557806322b1751d14610d8f57806327c8f19314610d055780633b36f59214610cc157806354fd4d5014610ca0578063606b649714610b1a57806363a5db9e1461094f57806372f5158d1461085d578063888b042f1461083a578063b7013dc11461074c578063c095415d146106c6578063d0e30db0146101695763db82047b146100ca575f80fd5b80600319360112610166576100f06100e0611476565b6001600160a01b031630146110a9565b61015b61014b6100fe6113a9565b6040516101436030826020808201956f636f6e74726163742e6164647265737360801b87528051918291018484015e810188838201520301601f198101835282610fcb565b519020611509565b6001600160a01b031633146110a9565b61016361112f565b80f35b80fd5b5080600319360112610166576101806100e0611476565b61019061018b6110f4565b611549565b604051636ada784760e01b81526001600160a01b0390911691908290602081600481855afa90811561063e5783916106a7575b5015610649576040516301ae78a160e11b8152602081600481855afa90811561063e57839161060c575b5034106105a45761020534610200611002565b6116ad565b604051637eb6744f60e11b8152602081600481865afa908115610599578491610567575b508082116103a4575b5050602060049160405192838092630de705b560e01b82525afa8015610399578290610365575b61026491503461220b565b8161035157670de0b6b3a764000061027d910434611718565b6001600160a01b037f000000000000000000000000ae78736cd615f374d3085123a210448e74fc6393169290833b1561034d57604051906394bf804d60e01b825260048201525f81604481833360601b60601c988960248401525af180156103425761032c575b50604080513481524260208201529293610163936001600160a01b03909116917f7aa1a8eb998c779420645fc14513bf058edb347d95c2fc2e6845bdc22f88863191a26115de565b61016392505f61033b91610fcb565b5f916102e4565b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b82526012600452602482fd5b506020813d602011610391575b8161037f60209383610fcb565b8101031261034d576102649051610259565b3d9150610372565b6040513d84823e3d90fd5b6040516323fd21a560e11b8152602081600481875afa9081156104d5578591610538575b50156104e05760049060206103de61018b61119a565b60405163e60b40bf60e01b815293849182906001600160a01b03165afa9081156104d557859161049f575b61041392506116ad565b106104215760206004610232565b60405162461bcd60e51b815260206004820152605d60248201525f51602061239e5f395f51905f5260448201527f736974696e672028616e64206d61746368696e672077697468206d696e69706f60648201527f6f6c7329206578636565647320746865206d6178696d756d2073697a65000000608482015260a490fd5b90506020823d6020116104cd575b816104ba60209383610fcb565b8101031261034d57610413915190610409565b3d91506104ad565b6040513d87823e3d90fd5b60405162461bcd60e51b815260206004820152603f60248201525f51602061239e5f395f51905f5260448201527f736974696e67206578636565647320746865206d6178696d756d2073697a65006064820152608490fd5b61055a915060203d602011610560575b6105528183610fcb565b810190611182565b5f6103c8565b503d610548565b90506020813d602011610591575b8161058260209383610fcb565b8101031261034d57515f610229565b3d9150610575565b6040513d86823e3d90fd5b60405162461bcd60e51b815260206004820152603a60248201527f546865206465706f736974656420616d6f756e74206973206c657373207468616044820152796e20746865206d696e696d756d206465706f7369742073697a6560301b6064820152608490fd5b90506020813d602011610636575b8161062760209383610fcb565b8101031261034d57515f6101ed565b3d915061061a565b6040513d85823e3d90fd5b60405162461bcd60e51b815260206004820152603060248201527f4465706f7369747320696e746f20526f636b657420506f6f6c2061726520637560448201526f1c9c995b9d1b1e48191a5cd8589b195960821b6064820152608490fd5b6106c0915060203d602011610560576105528183610fcb565b5f6101c3565b5080600319360112610166576106dd6100e0611476565b61016361014b6040516106f1604082610fcb565b600b8152602081016a1c9bd8dad95d15985d5b1d60aa1b81526101436030604051809360208201956f636f6e74726163742e6164647265737360801b87525180918484015e810188838201520301601f198101835282610fcb565b503461016657806003193601126101665761076d610768611002565b612188565b610778610768611652565b918083830393129082841390821593851283168285161761082657508261081d575b8215610804575b5050156107b357602090604051908152f35b60405162461bcd60e51b8152602060048201526024808201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604482015263666c6f7760e01b6064820152608490fd5b90915081610815575b505f806107a1565b90505f61080d565b8015925061079a565b634e487b7160e01b81526011600452602490fd5b503461016657806003193601126101665760206108556113d6565b604051908152f35b5080600319360112610166576108746100e0611476565b6040516e6d696e69706f6f6c2e65786973747360881b602082019081523360601b602f83015260238252906108aa604382610fcb565b5190208154604051633d70e7e560e11b815260048101929092526020908290602490829060081c6001600160a01b03165afa908115610399578291610930575b50156108f85761016361112f565b60405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081b5a5b9a5c1bdbdb60821b6044820152606490fd5b610949915060203d602011610560576105528183610fcb565b5f6108ea565b50346101665760203660031901126101665760043561096f6100e0611476565b61097a6100fe6113a9565b3390610990906001600160a01b031682146110a9565b6109986113d6565b8211610ac257826001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b15610aa957818091602460405180948193631df699e760e11b83528960048401525af1801561039957610aad575b506001600160a01b037f000000000000000000000000ae78736cd615f374d3085123a210448e74fc639316803b15610aa957818491600460405180948193630d930b5160e31b83525af1801561039957610a90575b5050604080519283524260208401526001600160a01b03909116917f992f462cfb62e164bd03bf07baf2cffce83fbd9370cae10635842b20200121209190a280f35b81610a9a91610fcb565b610aa557825f610a4e565b8280fd5b5080fd5b81610ab791610fcb565b610aa557825f6109f9565b60405162461bcd60e51b815260206004820152602a60248201527f496e73756666696369656e74206578636573732062616c616e636520666f72206044820152691dda5d1a191c985dd85b60b21b6064820152608490fd5b50346101665760203660031901126101665780600435610b3b6100e0611476565b610b8e61014b610b4961137a565b6040516101436030826020808201956f636f6e74726163742e6164647265737360801b87528051918291018484015e810189838201520301601f198101835282610fcb565b6001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b15610c9c57828091602460405180948193631df699e760e11b83528760048401525af190811561063e578391610c84575b50808092335af13d15610c7f573d6001600160401b038111610c6b5760405190610c1f601f8201601f191660200183610fcb565b81528260203d92013e5b15610c315780f35b60405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b6044820152606490fd5b634e487b7160e01b83526041600452602483fd5b610c29565b81610c8e91610fcb565b610c9957815f610beb565b50fd5b5050fd5b50346101665780600319360112610166575460405160ff9091168152602090f35b5034610166578060031936011261016657610cdd6100e0611476565b6020610cfb610ced61018b6110f4565b6001600160a01b0316611771565b6040519015158152f35b5034610166578060031936011261016657610d216100e0611476565b610d2f610ced61018b6110f4565b15610d375780f35b60405162461bcd60e51b815260206004820152602a60248201527f4465706f7369742061737369676e6d656e7473206172652063757272656e746c6044820152691e48191a5cd8589b195960b21b6064820152608490fd5b50602036600319011261034d57610da76100e0611476565b610dfa61014b610db561137a565b6040516101436030826020808201956f636f6e74726163742e6164647265737360801b87528051918291018484015e81015f838201520301601f198101835282610fcb565b34610e77575b8054819060081c6001600160a01b0316803b15610c9957818091604460405180948193632b6cd4f760e21b8352786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b600484015260043560248401525af1801561039957610e665750f35b81610e7091610fcb565b6101665780f35b6001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b1561034d575f60049160405192838092634c752fe560e11b825234905af1801561034257610ed2575b50610e00565b610ede91505f90610fcb565b5f5f610ecc565b3461034d575f36600319011261034d5760206108556111cb565b3461034d575f36600319011261034d576020610855611652565b5f36600319011261034d57610f2f6100e0611476565b610fa761014b604051610f43604082610fcb565b6014815260208101733937b1b5b2ba20bab1ba34b7b726b0b730b3b2b960611b81526101436030604051809360208201956f636f6e74726163742e6164647265737360801b87525180918484015e81015f838201520301601f198101835282610fcb565b610faf61112f565b005b3461034d575f36600319011261034d576020610855611002565b601f909101601f19168101906001600160401b03821190821017610fee57604052565b634e487b7160e01b5f52604160045260245ffd5b6040516335ee5f8760e01b815260206004820181905260116024830152701c9bd8dad95d11195c1bdcda5d141bdbdb607a1b6044830152816064816001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d6165afa908115610342575f9161107a575090565b90506020813d6020116110a1575b8161109560209383610fcb565b8101031261034d575190565b3d9150611088565b156110b057565b60405162461bcd60e51b815260206004820152601c60248201527b125b9d985b1a59081bdc881bdd5d19185d19590818dbdb9d1c9858dd60221b6044820152606490fd5b60405190611103604083610fcb565b602082527f726f636b657444414f50726f746f636f6c53657474696e67734465706f7369746020830152565b61118061113d61018b6110f4565b604080513481524260208201526001600160a01b039092169133917f3a6614e80d02b57255cbb1f8305fbeca53d7e05a4b779d40627919660851292591a26115de565b565b9081602091031261034d5751801515810361034d5790565b604051906111a9604083610fcb565b6013825272726f636b65744d696e69706f6f6c517565756560681b6020830152565b6111d661018b6110f4565b604051636ada784760e01b81526001600160a01b0390911690602081600481855afa908115610342575f9161135b575b501561135657611214611002565b604051637eb6744f60e11b8152602081600481865afa908115610342575f91611324575b50600460208294604051928380926323fd21a560e11b82525afa908115610342575f91611305575b50611281575b508181101561127b5761127891611718565b90565b50505f90565b6004919250602061129361018b61119a565b60405163e60b40bf60e01b815293849182906001600160a01b03165afa908115610342575f916112cf575b6112c892506116ad565b905f611266565b90506020823d6020116112fd575b816112ea60209383610fcb565b8101031261034d576112c89151906112be565b3d91506112dd565b61131e915060203d602011610560576105528183610fcb565b5f611260565b90506020813d60201161134e575b8161133f60209383610fcb565b8101031261034d57515f611238565b3d9150611332565b505f90565b611374915060203d602011610560576105528183610fcb565b5f611206565b60405190611389604083610fcb565b60118252701c9bd8dad95d139bd91951195c1bdcda5d607a1b6020830152565b604051906113b8604083610fcb565b600f82526e0e4dec6d6cae8a8ded6cadca48aa89608b1b6020830152565b600460206113e561018b61119a565b60405163e60b40bf60e01b815292839182906001600160a01b03165afa908115610342575f91611430575b50611419611002565b908181106114275750505f90565b61127891611718565b90506020813d60201161145a575b8161144b60209383610fcb565b8101031261034d57515f611410565b3d915061143e565b51906001600160a01b038216820361034d57565b5f546040516321f8a72160e01b81527f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb26004820152906020908290602490829060081c6001600160a01b03165afa908115610342575f916114d5575090565b90506020813d602011611501575b816114f060209383610fcb565b8101031261034d5761127890611462565b3d91506114e3565b5f546040516321f8a72160e01b815260048101929092526020908290602490829060081c6001600160a01b03165afa908115610342575f916114d5575090565b611592906040516101436030826020808201956f636f6e74726163742e6164647265737360801b87528051918291018484015e81015f838201520301601f198101835282610fcb565b6001600160a01b038116156115a45790565b60405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081b9bdd08199bdd5b9960721b6044820152606490fd5b6001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b1561034d575f60049260405193848092634c752fe560e11b825234905af19182156103425761163f92611642575b50611771565b50565b5f61164c91610fcb565b5f611639565b5f5460405163bd02d0f560e01b8152786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b6004820152906020908290602490829060081c6001600160a01b03165afa908115610342575f9161107a575090565b908101908181116117045781106116c15790565b60405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b6044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b9081811161172c5781039081116117045790565b60405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606490fd5b6040516323fd21a560e11b81525f916001600160a01b031690602081600481855afa908115610342575f91612169575b501561127b576117b261018b61119a565b604051638ed8045360e01b81526001600160a01b039091169190602081600481865afa908115610342575f9161214a575b5015611cd957906004916117f861018b6122d2565b6001600160a01b0316611809611002565b6020869360405196878092633b474a6560e01b82525afa948515611cce578695611c9a575b5061183d859493979695612317565b9261184b6040519485610fcb565b848452601f1961185a86612317565b01865b818110611c435750869283915081805b8882106119ef575b50505050505050909192938061188f575b50505050600190565b6001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b156119eb578491602483926040519485938492631df699e760e11b845260048401525af18015610599579084916119d6575b505b82811015611886576020611904828461232e565b510151156119d157611916818361232e565b51516001600160a01b0316602061192d838561232e565b51015190803b156119cd578590600460405180948193634814611360e01b83525af180156104d5579085916119b4575b50508061196c6001928461232e565b51516001600160a01b03165f51602061237e5f395f51905f5260406020611993858861232e565b51015181519081524260208201526001600160a01b0390931692a2016118f0565b816119be91610fcb565b6119c957835f61195d565b8380fd5b8580fd5b611886565b816119e091610fcb565b610aa557825f6118ee565b8480fd5b8015611b1f575b8015611b0b575f19019085158015611af9575b611af457604051631d33eeb960e31b81529b60208d8c8180611a2e8a60048301612356565b03918a5af19c8d15611ae9578b9d611a89575b509088999a9b9c876020611a6184611a5b846001986116ad565b9d61232e565b510152611a6e828c61232e565b516001600160a01b039091169052979b9a999897019061186d565b909c506020813d8211611ae1575b81611aa460209383610fcb565b81010312611add579088999a9b9c876020611a6184611a5b84611ac8600199611462565b9f5050505050505090919c9b9a99989c611a41565b8a80fd5b3d9150611a97565b6040513d8d823e3d90fd5b611875565b5085611b058d85611718565b10611a09565b634e487b7160e01b8a52601160045260248afd5b50604080516304b5466b60e01b815291955090925082600481865afa8015611c385788928991611bef575b5093826005811015611bdb578015611af4576020611b7c91604051809381926304a0030d60e21b835260048301612356565b03816001600160a01b038b165afa908115611bd0578a91611b9f575b50946119f6565b90506020813d8211611bc8575b81611bb960209383610fcb565b8101031261034d57515f611b98565b3d9150611bac565b6040513d8c823e3d90fd5b634e487b7160e01b8a52602160045260248afd5b9250506040823d8211611c30575b81611c0a60409383610fcb565b81010312611c2c578151916005831015611c2857602001515f611b4a565b8880fd5b8780fd5b3d9150611bfd565b6040513d8a823e3d90fd5b60408051999a9899979896979081016001600160401b03811182821017611c865790602092916040528a81528a8382015282828a0101520198979695949861185d565b634e487b7160e01b8b52604160045260248bfd5b9094506020813d602011611cc6575b81611cb660209383610fcb565b8101031261034d5751935f61182e565b3d9150611ca9565b6040513d88823e3d90fd5b611ce761018b9493946122d2565b604051633b474a6560e01b81526001600160a01b03909116929091602083600481845afa928315610342575f93612113575b50604051630d1a7ded60e21b815293602090859060049082906001600160a01b03165afa938415610342575f946120df575b50611d568434612280565b60046020611d6b87611d66611002565b612280565b93604051928380926378cda08360e11b82525afa908115610342575f916120a7575b50915f94611d9f6024938796956116ad565b9180831161209f575b50808211612097575b506040519485938492637e0e497b60e01b845260048401525af1908115610342575f91611fff575b50805180611deb575b50600193505050565b82611df59161220b565b6001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b1561034d575f91602483926040519485938492631df699e760e11b845260048401525af1801561034257611fea575b5083805b8251821015611f6457611e68828461232e565b516001600160a01b0316803b15611f6057604051630d0e30db60e41b8152879081816004818a875af1801561039957611f4b575b505060206004916040519283809263d2ceebd160e01b82525afa908115611f40578791611f0e575b50611ed1906001926116ad565b91611edc818561232e565b51604080518781524260208201526001600160a01b03909216915f51602061237e5f395f51905f529190a20190611e55565b90506020813d8211611f38575b81611f2860209383610fcb565b8101031261034d57516001611ec4565b3d9150611f1b565b6040513d89823e3d90fd5b81611f5591610fcb565b611f6057865f611e9c565b8680fd5b855494959460081c6001600160a01b03169350915050813b15610aa557829160448392604051948593849263ebb9d8c960e01b8452786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b600485015260248401525af1801561039957611fd5575b808392611de2565b611fe0828092610fcb565b6101665780611fcd565b611ff79194505f90610fcb565b5f925f611e51565b90503d805f833e6120108183610fcb565b81019060208183031261034d578051906001600160401b03821161034d57019080601f8301121561034d57815161204681612317565b926120546040519485610fcb565b81845260208085019260051b82010192831161034d57602001905b82821061207f575050505f611dd9565b6020809161208c84611462565b81520191019061206f565b90505f611db1565b91505f611da8565b939290506020843d6020116120d7575b816120c460209383610fcb565b8101031261034d5792519192915f611d8d565b3d91506120b7565b9093506020813d60201161210b575b816120fb60209383610fcb565b8101031261034d5751925f611d4b565b3d91506120ee565b9392506020843d602011612142575b8161212f60209383610fcb565b8101031261034d57925191926020611d19565b3d9150612122565b612163915060203d602011610560576105528183610fcb565b5f6117e3565b612182915060203d602011610560576105528183610fcb565b5f6117a1565b600160ff1b8110156121975790565b60405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608490fd5b81156121f7570490565b634e487b7160e01b5f52601260045260245ffd5b90811561127b578082029180830482036117045761222990836121ed565b036122315790565b60405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608490fd5b90801561229057611278916121ed565b60405162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b6044820152606490fd5b604051906122e1606083610fcb565b60218252601b60fa1b6040837f726f636b657444414f50726f746f636f6c53657474696e67734d696e69706f6f60208201520152565b6001600160401b038111610fee5760051b60200190565b80518210156123425760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b9190602083019260058210156123695752565b634e487b7160e01b5f52602160045260245ffdfea1811054b7d96716259cff0d366c2f6405951e0efe00c8db3e237cbf77fe7be9546865206465706f73697420706f6f6c2073697a65206166746572206465706f